Source code for rosplan_simulated_motion_system

#! /usr/bin/env python

import rospy
from robocluedo_rosplan_msgs.srv import NavigationCommand, NavigationCommandRequest, NavigationCommandResponse
from robocluedo_rosplan_msgs.srv import ManipulationCommand, ManipulationCommandRequest, ManipulationCommandResponse


[docs]def simulated_navigation( cmd ): ''' simulate the service for the navigation ''' rospy.loginfo(f"navigation SIMULATED {cmd.waypoint}") return NavigationCommandResponse( success=True )
[docs]def simulated_manipulation( cmd ): ''' simulate the service for the manipulation ''' if cmd.home_position: rospy.loginfo("manipulation SIMULATED -> home position") else: rospy.loginfo("manipulation SIMULATED -> near the marker") return ManipulationCommandResponse( success=True )
[docs]def open_srv( srv_name, srv_type, srv_callback ): ''' handful utility to open a service ''' rospy.loginfo(f"(rosplan_simulated_motion_system) service: {srv_name} ...") srv_this = rospy.Service( srv_name, srv_type, srv_callback ) rospy.sleep( rospy.Duration(0.75) ) rospy.loginfo(f"(rosplan_simulated_motion_system) service: {srv_name} ... OK") return srv_this
[docs]def shut_msg( ): ''' called at the shutdown of the node, just a message ''' rospy.loginfo( "(simulated_motion_controller) stopping ... " )
if __name__ == "__main__": rospy.init_node( "simulated_motion_controller" ) rospy.on_shutdown( shut_msg ) rospy.loginfo("(rosplan_simulated_motion_system) starting...") open_srv( "/robocluedo/manipulator_command", ManipulationCommand, simulated_manipulation ) open_srv( "/robocluedo/navigation_command", NavigationCommand, simulated_navigation ) rospy.loginfo("(rosplan_simulated_motion_system) ready") rospy.spin()