问题标签 [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 投票
2 回答
7175 浏览

python - ros python 发布者/订阅者

我正在尝试通过 python 订阅 ROS 中的 4 个不同的发布者。我使用以下代码:

其中custom_msg1.msg包含定义为字符串的custom_string1并且以相同的方式custom_msg2.msgcustom_msg3.msgcustom_msg4.msg

我想知道我是否正确使用了浮动消息以及自定义消息。输出如下:

以错误结束:

我不知道这里出了什么问题

0 投票
1 回答
1219 浏览

python - 当 rospy.is_shutdown 时停止 serve_forever

我有以下 Python 程序来启动 HTTP 服务器和 ROS 节点。

我希望程序终止

  • 当我打电话时httpd.shutdown()(例如在收到/kill命令后),
  • 当 ROS 关闭时(即 if rospy.is_shutdown())和
  • 当我按下时Ctrl+C(这是最不重要的)。

不知何故,我正在努力识别 ROS 关闭,即使我尝试rospy.on_shutdown()了自己的while循环调用httpd.handle_request()

在当前版本中,节点(以 开头rosrun)在关闭时不会停止roscore

如何合理地组合这两个模块?

0 投票
1 回答
1789 浏览

python - 确认图像已发布到 ROS

我一直在尝试将图像发布到 ROS(使用 Python/rospy),虽然我认为我的方法是正确的,但我很难确认它。使用

似乎没有显示任何东西。我也尝试过 rqtbag,但我真的不知道那个东西是如何工作的,除了它没有显示发布的东西,无论如何。

粘贴我当前的代码之前的一些注意事项:

  1. 我现在使用的代码是基于我以前工作的代码。我使用类似的设置将文本图像发布到 ROS,并且这些输出相当可靠。
  2. 此处稍作修改。大部分代码都是on_message函数的一部分,因为这一切在实现时都通过 MQTT 运行。(逻辑是在一个系统上获取图像 -> 对其进行编码 -> 传输到另一个系统 -> 解码 -> 发布到 ROS。)
  3. 我在 Ubuntu 和 ROS Indigo 上使用 Python 2.7。

事不宜迟,我当前的发布代码:

我正在使用一个基本的监听功能来尝试看看发生了什么(这是在我在单独的终端中执行的不同脚本中):

回调只是打印出图像已收到。

0 投票
1 回答
2029 浏览

python - 在 ROS 中创建动作服务器和客户端

我正在尝试设置一个 ROS 操作服务器和客户端来处理在 Python 和 ROS 之间发送图像(编码为 64 位字符串)(目的是使图像成为其他脚本可以从 ROS 中提取的图像)。作为对所有这些(Python、Ubuntu、Bash、ROS 等)非常陌生的人,我很难确定如何准确地做到这一点。我认为部分原因是 ROS wiki 教程/文档是线性错误的,而这个过程只是令人费解且异常复杂。有没有人知道任何非 ROS-wiki 相关/依赖的教程来帮助我解决这个问题?或者您能否创建一个简明的分步指南来建立该系统?我一直找不到与这个主题相关的任何东西——这让我觉得它要么是一个非常不常见的用途,要么是超级简单的,而我还没有达到那个水平。

我对解决方案的尝试基本上只是让信息流下来。我希望 Python 能够读取图像,将其转换为字节(使用 b64encode),然后将其发送到 ROS 以作为操作发布。(因此,如果我理解正确,可以像使用服务一样,不间断地发送图像流。)订阅节点(或服务器,但是有效,我会在我得到时弄清楚)那里)然后可以看到图像并从操作服务器中提取它们。

现在,有人告诉我采取行动是做到这一点的最佳方式。就个人而言,我不明白为什么一项服务不够用(而且我至少已经让其中一项工作)。

再次感谢大家可以提供的任何帮助!

编辑:这里的最终应用程序是用于视频流。服务器将抓取实时视频,将其转换为图像,将其更改为字节字符串,并将它们流式传输到客户端,然后将它们发布到 ROS Action Server。

0 投票
1 回答
264 浏览

python-2.7 - 关于 ROS 包的必要性

到目前为止,在我的项目上工作时,我一直在使用 rospy 构建 ROS 脚本——建立主题和节点,订阅事物,并且通常只做各种功能。不过,我一直相信,最终我的脚本将需要被制作成“包”,其概念是它们增加了程序的模块化(这就是事情的完成方式)。

到目前为止,我的脚本非常紧凑,我不明白为什么发送调用 rospy 的 python 脚本需要这种额外的包装级别(特别是考虑到大多数 ROS wiki 教程的混淆性质)。到目前为止,我不必为我的任何程序创建 catkin 包或任何东西。为什么我需要关心 ROS 包和 catkin 之类的东西,有什么压倒性的原因吗?现在,我只是看不到一切运行良好并且可能会在运行脚本的任何机器上运行的点。

谢谢!

0 投票
1 回答
271 浏览

python-2.7 - 一个 rospy 订阅者必须在一个函数中吗?

我见过的大多数程序和示例都会在函数中启动 rospy 订阅者,例如

但是有必要将它保留在一个函数中吗?它能否像 MQTT 一样工作,在函数开始时抛出订阅者,并在看到订阅主题的帖子时执行回调?

我可以理解这样做的必要性,因为您可能需要 rospy.spin() 来等待您正在寻找的输入,但如果回调可以作为可中断事件触发,那可能对我的场景更好(更新图像新图像进入时的窗口)。

谢谢!

0 投票
0 回答
149 浏览

python - 是否可以在 Rviz 的相机图像上显示机器人模型?

我正在尝试在之前拍摄的图像上显示我的无人机的 3D 模型。我有转换、camera_info、历史位置数据和时间戳,以及 URDF 和模型。但是,我似乎无法让该图像和机器人模型出现在同一个 [可视化框架] 中。

是否可以在与机器人模型、TF 和标记相同的 [可视化框架] 中显示相机图像?这可能允许倾斜图像以表示其拍摄时的状态。或者,我可以在相机框架上显示机器人模型吗?

0 投票
1 回答
2777 浏览

python - ROS Indigo/Rospy:AttributeError:'function'对象没有属性'_request_class'

我一直在尝试建立一个ROS服务来帮助程序之间传输图像,但无济于事。无论使用与该程序的旧版本相同的程序 - 完全有效 - 我在这里得到的只是同样令人沮丧的模糊错误消息:

这个错误是什么意思??我如何解决它??我没有尝试过任何工作,包括更改服务、重试 catkin_make、重写代码以确保没有多余的空格 - 没有。

服务请求如下:

此服务由以下代码处理(在单独的 rospy 脚本中):

任何帮助将不胜感激。谢谢!

0 投票
1 回答
1954 浏览

php - 使用特定库时,Python 脚本不会从 php 执行

我正在尝试执行 Python 脚本来获取和设置 ROS 中的参数服务器。当我运行任何其他简单的 Python 脚本(例如打印“Hello”)时,我会取回 PHP 中的值。但是当我运行这段代码时:

我得到一个空的回声。但是,此代码在终端中运行良好!

我在 PHP 中所做的只是:

我尝试了 shell_exec,我尝试在命令中使用 python,但没有。我也尝试过 /usr/bin/python 仍然不适用于这个特定的代码,但一切都适用于简单的打印!

0 投票
2 回答
8917 浏览

python - Python实时绘制ROS数据

我正在尝试使用 python 绘制进入计算机的实时数据。数据来自 ROS 主题,我使用“rospy”订阅主题以获取数据。这是我写的代码

我的问题是当我plotThrottle()使用从 rostopic 获得的数据调用时,出现以下错误。

但是,如果我使用相同的函数并传递代码中生成的一些数据(一些随机数据),则绘图工作正常。我是 python 的绝对初学者。我搜索了这个错误,它说这是因为一些线程问题。但我不明白如何修复此代码。如果有人可以解释问题并帮助修复此代码,我将不胜感激。