如何检查对象是否是ROS消息
在ROS1中,可以通过使用genpy
来检查对象是否是ROS消息:
isinstance(obj, genpy.message.Message)
但是,我似乎无法在ROS2中找到相同的功能。如果我们查看类的__ mro __
,似乎没有什么可使用的:
在ros1:
>>> from rospy_tutorials.srv import AddTwoIntsRequest
>>> AddTwoIntsRequest.__mro__
(<class 'rospy_tutorials.srv._AddTwoInts.AddTwoIntsRequest'>, <class 'genpy.message.Message'>, <class 'object'>)
in Ros2中:
>>> from example_interfaces.srv import AddTwoInts
>>> AddTwoInts.Request.__mro__
(<class 'example_interfaces.srv._add_two_ints.AddTwoInts_Request'>, <class 'object'>)
我错过了什么吗?
In ROS1, it was possible to check if an object was a ROS Message by using genpy
:
isinstance(obj, genpy.message.Message)
However, I cannot seem to find the same functionality in ROS2. If we look at the __mro__
of the classes there does not seem to be anything to work with:
In ROS1:
>>> from rospy_tutorials.srv import AddTwoIntsRequest
>>> AddTwoIntsRequest.__mro__
(<class 'rospy_tutorials.srv._AddTwoInts.AddTwoIntsRequest'>, <class 'genpy.message.Message'>, <class 'object'>)
In ROS2:
>>> from example_interfaces.srv import AddTwoInts
>>> AddTwoInts.Request.__mro__
(<class 'example_interfaces.srv._add_two_ints.AddTwoInts_Request'>, <class 'object'>)
Have I missed something?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论