问题标签 [rospy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1918 浏览

python - 如何使用 rospy.wait_for_message

我在一个项目中使用 rospy,但是我不完全理解获取消息的工作原理。我有一架无人机每秒发送一条特定消息,但是当我尝试获取该消息时,程序卡住了(从不打印“a”)。我究竟做错了什么?

0 投票
1 回答
89 浏览

python-3.x - 为什么我得到“rospy.ServiceException”?

我和 ros 一起工作了大约 3 个月!我在机器人控制器上工作。我在 ui 中收到有关此客户端的错误:

该客户端可以从数据库中获取数据并使用 dict 保存并将所有 dict 保存在列表中。

我最常写“try/except”,我看到 43 号!所以我知道我的例外在for i in range(len(wps)):

令人惊奇的是,我可以运行这个脚本并得到答案,但是如果在我的 ui 中调用这个脚本,在我使用保存航点并尝试加载航点后,我会得到 ServiceException!

我的“add_move.py”代码:

我在没有“try/except”的终端中的错误是:

我怎么了?

srv/get_move:

srv/get_moves:

味精/移动:

味精/航点:

0 投票
1 回答
505 浏览

python-3.x - 如何在 python 中导入不属于通常 .msg 路径的 ROS .msg 文件?

我在这里为 ROS使用这个驱动程序。驱动程序位于我的 ROS catkin 工作区 (catkin_ws) 中。在这个工作区中,我有另一个我想要的包import TelloStatus位于tello_driver/msg/TelloStatus.msg

通常 ROS 中的消息(msg)是这样导入的:

例子:

我认为这些文件位于系统上的以下路径:

所以我的问题是如何导入TelloStatus不属于此路径但属于tello_driver包的部分?

我尝试通过以下方式导入它:

但随后我收到此错误消息:

提前感谢您的帮助!

0 投票
1 回答
58 浏览

python - 实时使用 cv2.CascadeClassifier() 时显示图像的延迟

我正在为 Tello 无人机开发一个 ROS 项目,我使用这个驱动程序。当我只是订阅 CompressedImage来自无人机相机的消息并在屏幕上显示图像时,我没有任何问题,一切正常。

但是,一旦我尝试将人脸检测与 一起使用cv2.CascadeClassifier,帧就会实时出现大约 30 秒的巨大延迟。因此,图像仅在大约 30 秒后显示在屏幕上。有谁知道如何最大限度地减少这种延迟以获得实时的良好结果?

这是到目前为止的代码:

编辑:

当我打印出图像的形状 ( image_msg) 时,我得到了(720, 960, 3)高度、宽度和 3 个通道的尺寸

这显示了流的大小(以字节为单位)

0 投票
1 回答
152 浏览

python - 我们如何使用 Twist() 在 ROS python 中旋转乌龟两次,制作不同的圆圈?

我想将海龟绕圈移动两次,制作两个不同的圆圈,并且我正在使用 Twist() 但是当我为同一个发布者提供两种不同的扭曲和值时,即使我尝试过使用两个不同的发布者,但获得相同的输出。所以任何人都可以请告诉我如何发布具有两个不同值的 Twist()。

0 投票
1 回答
54 浏览

python - 在一个Node中设置两个订阅者,在两个Node中设置两个订阅者是否相同?

我是 ROS 系统的新手,我正在开发一个订阅两个视频源并用它做一些简历的系统。

但我很困惑,我应该使用具有两个不同订阅者的两个 python 文件(两个节点),还是只使用一个具有两个不同订阅者的类的 python 文件?

完全一样吗?或者哪种方式是定义我的代码的更好方式?

谢谢!!

还有一个小问题……我能知道图像类型数据的来源吗?因为我有两个图像数据要接收,但它们的图像大小完全一样。我需要知道哪个是对其进行不同处理的原因,所以这就是我在工作中使用两个订阅者的原因

如果我只使用一个订阅者订阅两个源图像,我可以区分是哪一个吗?

0 投票
1 回答
34 浏览

python-3.x - 无法访问另一个函数中的类属性

在上面的代码中,我想从函数中访问self.data定义。问题是我得到错误说没有属性。我该如何解决这个问题?imu_callbackget_observationImuDatadata

注意:我觉得这个问题与 python 类有关,与 Ros 和 rospy 无关。

0 投票
1 回答
68 浏览

python - 在 ROS 中发布法线

我是 ROS 的新手,我与正常人有斗争。所以这是我的情况。

我订阅了我的相机(realsense 相机),我得到了点云,我将点云从 ROS_to_pcl 转换,最后我使用 python_pcl 的函数 make_NormalEstimation() 来获取法线。到目前为止,一切都很好!现在我想以某种方式将这些法线发布到一个 ROS 主题中,并且通过发布我的意思是在 RVIZ 中也将它们可视化。python_pcl 函数 make_NormalEstimation() 以向量的形式返回 4 个值。第 3 个值是 normal_x、normal_y、normal_z,第 4 个值是曲率。我想通过 PoseStamed 消息发布和可视化 RVIZ 中的法线。据我所知,PoseStamped 消息需要一个姿势和一个四元数。对于姿势字段,我使用点云中所需点的 x、y、z 来找到法线。但是当涉及到四元数时(这是我的主要问题和斗争),我不知道 不知道用什么!我尝试使用返回的值,因为它们是 quaternion_x、quaternion_y、quaernion_z、quaternion_w,但结果不太好......

所以。我的问题是:

  • 如何使用 make_NormalEstimation() 的返回值来创建 PoseStamed 消息?
  • 有没有办法将返回的值转换为四元数?
  • 我是否缺少有关返回值的信息?
  • 是否有另一种在 ROS 中查找和使用法线的方法?
  • 如何在 ROS 中生成和发布法线?不仅是 normal_x、normal_y、normal_z 值,还有方向。
  • 我是否必须同时发布它的 normal_x、normal_y、normal_z 和方向,或者只是它的 normal_x、normal_y、normal_z 值?如果是这样,机器人如何知道接近兴趣点所需的方向?

对不起,我的问题混乱!我真的希望他们有意义!

提前致谢!

0 投票
1 回答
35 浏览

python - 有没有办法查看 ROS 主题之前发布的消息,以便后期订阅者可以看到之前发布的数据?

我正在一个系统中开发 ros 节点,该系统运行的其他节点对我来说是不透明的(由另一方开发并且基本上锁定了任何更改)。其中一个节点在系统启动序列的早期发布关于 ROS 主题的单个消息。不能保证我的节点会及时活着看到这条消息被发布,实际上我的节点更有可能还没有启动。此消息包含我的节点正确配置自身所需的一些信息以及其他一些信息。

那么我的节点有什么方法可以在发布此消息后检索它?

0 投票
1 回答
43 浏览

python - 订阅者收到带有“数据:”的字符串

我有一个发布者发送一个从 0 到 6 或无的数字。所以我在发送之前将其转换为字符串,以确保它可以发送“无”值。

然后我希望订阅者收到它:

而不是打印:

3

相反,它打印

数据:“3”

这分解了我需要该数字(或无)的其余代码。我尝试 str(data) 然后尝试编辑字符串以删除“数据:”部分,但这不起作用。我试着用谷歌搜索了一个小时,但不知道如何摆脱“数据:”或如何更改消息类型以仅发送字符串。

PS稍后在我做的代码中:

我得到了错误:int() 参数必须是一个字符串

如果我在开头做 jugada = str(data) ,我得到错误: int() 的无效文字,基数为 10:'data:"3"'