echo ros自定义message报警

zyn@ubuntu:~$ rostopic echo /ultrasonic_type
Traceback (most recent call last):
File “/opt/ros/indigo/bin/rostopic”, line 35, in
rostopic.rostopicmain()
File “/opt/ros/indigo/lib/python2.7/dist-packages/rostopic/init.py”, line 1916, in rostopicmain
_rostopic_cmd_echo(argv)
File “/opt/ros/indigo/lib/python2.7/dist-packages/rostopic/init.py”, line 1257, in _rostopic_cmd_echo
_rostopic_echo(topic, callback_echo, bag_file=options.bag)
File “/opt/ros/indigo/lib/python2.7/dist-packages/rostopic/init.py”, line 915, in _rostopic_echo
sub = rospy.Subscriber(real_topic, msg_class, callback_echo.callback, {‘topic’: topic, ‘type_information’: type_information})
File “/opt/ros/indigo/lib/python2.7/dist-packages/rospy/topics.py”, line 533, in init
super(Subscriber, self).init(name, data_class, Registration.SUB)
File “/opt/ros/indigo/lib/python2.7/dist-packages/rospy/topics.py”, line 138, in init
raise ValueError(“data_class [%s] is not a class”%data_class)
ValueError: data_class [<module ‘ultrasonic_test’ from ‘/home/local_ws/devel/lib/python2.7/dist-packages/ultrasonic_test/init.pyc’>] is not a class

(1)上述报警是先定义了一个message,然后根据该message定义了一个topic,并发布该topic
(2)通过rostopic echo /topic 可以正常输出
(3)修改message中的数据,再进行编译正常,没有报警
(4)通过rostopic echo /topic 则出现伤处报警

处理措施:
重新建立一个msg文件,msg文件中的数据格式和上述错误报警时的格式一样,则新生成的msg消息格式定义的topic则可以正常输出。

猜你喜欢

转载自blog.csdn.net/bbtang5568/article/details/82952719