As I’m running the
roslaunch my_python_class bb8_move_circle_service_server.launch code in part 7 of ROS_Basice, I’m getting the following error:
This is not exercise and the codes are already in the course. But I’ll put the codes down, in case you want to see:
Python File: bb8_move_circle_class.py
from geometry_msgs.msg import Twist
def __init__(self): self.bb8_vel_publisher = rospy.Publisher('/cmd_vel', Twist, queue_size=1) self.cmd = Twist() self.ctrl_c = False self.rate = rospy.Rate(10) # 10hz rospy.on_shutdown(self.shutdownhook) def publish_once_in_cmd_vel(self): """ This is because publishing in topics sometimes fails the first time you publish. In continuous publishing systems, this is no big deal, but in systems that publish only once, it IS very important. """ while not self.ctrl_c: connections = self.bb8_vel_publisher.get_num_connections() if connections > 0: self.bb8_vel_publisher.publish(self.cmd) rospy.loginfo("Cmd Published") break else: self.rate.sleep() def shutdownhook(self): # works better than the rospy.is_shutdown() self.ctrl_c = True def move_bb8(self, linear_speed=0.2, angular_speed=0.2): self.cmd.linear.x = linear_speed self.cmd.angular.z = angular_speed rospy.loginfo("Moving BB8!") self.publish_once_in_cmd_vel()
if name == ‘main’:
movebb8_object = MoveBB8()
Python File: bb8_move_circle_service_server.py
#! /usr/bin/env python
import rospy from std_srvs.srv import Empty, EmptyResponse from bb8_move_circle_class import MoveBB8 def my_callback(request): rospy.loginfo("The Service move_bb8_in_circle has been called") movebb8_object = MoveBB8() movebb8_object.move_bb8() rospy.loginfo("Finished service move_bb8_in_circle") return EmptyResponse() rospy.init_node('service_move_bb8_in_circle_server') my_service = rospy.Service('/move_bb8_in_circle', Empty , my_callback) rospy.loginfo("Service /move_bb8_in_circle Ready") rospy.spin() # mantain the service open.
Note: When I want to put launch file codes here with tags, they aren’t visible after posting it. So I’ve to remove tags from the codes to make them visible.
Launch File: bb8_move_circle_service_server.launch
!-- Start Service Server for move_bb8_in_circle service –
node pkg=“my_python_class” type=“bb8_move_circle_service_server.py” name=“service_move_bb8_in_circle_server” output=“screen”
I’ve given permissions to python files. I’ve also tried removing built files and running
source devel/setup.bash again. It didn’t work.
Do I need to change something in CMakeLists.txt and package.xml files ? If yes, would you please tell me what do I need to include there?
If no, would you please tell me solution to this error ?