如何检查对象是否是ROS消息

发布于 2025-02-07 13:00:24 字数 831 浏览 3 评论 0原文

在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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文