问题标签 [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 回答
3311 浏览

ros - ModuleNotFoundError:没有名为“std_msgs”的模块 - Gazebo 安装

我正在尝试根据https://github.com/erlerobot/gym-gazebo在我的 Ubuntu 16.04 LTS 系统上安装gym_gazebo

一切都已正确安装,但是,在尝试运行python circuit2_turtlebot_lidar_qlearn.py时,我收到错误消息

ModuleNotFoundError: No module named 'std_msgs'.

这应该是我已安装的ros_comm项目的一部分,但我仍然无法在任何地方看到与std_msgs相关的代码文件。

有人可以指点我如何安装std_msgs,这样我就可以摆脱这个错误消息吗?

提前致谢!

0 投票
3 回答
24369 浏览

python - ImportError:没有名为“rospy”的模块

我为 Crazyflie 安装了 ROS 包,我想运行一个简单的脚本,但是当我键入时 sudo python3 execute_trajectory.py,它给了我一个没有名为 rospy 的模块的错误。

这是包:https ://github.com/whoenig/crazyflie_ros ,文件在 crazyflie_demo/scripts。此外,我正在使用 Ubuntu 16.04 和 ROS Kinect,我尝试在没有 ROS 的情况下运行 Python3 脚本,一切正常。

这是我的 CMakeLists.txt

有什么建议么?

谢谢

0 投票
1 回答
1106 浏览

python - Tcl_AsyncDelete 错误。无法终止 Tk

我在 ROS 节点中使用 Tkinter 创建 GUI 并将比例值发布到另一个 ROS 节点。我已经做到了这一点。当我尝试关闭此 GUI 并重新运行节点时,问题就出现了。我得到的日志消息如下:

据此我想我将不得不从它自己的线程中终止 Tk。但我不知道该怎么做。我的代码如下:

如果您能提供帮助,我将不胜感激。谢谢!

0 投票
1 回答
580 浏览

python - Python 类变量在其回调函数之外延迟

我编写了一个订阅 ROS 主题的 python 脚本,然后进入一个回调函数,然后调用测试函数,该函数通过提取主题中的必要数据点以升序返回半径列表。这工作正常,但是我想在整个班级(以及班级之外)访问这个半径列表。

我已将其设为类变量“self.radii”,但控制台会抛出一个错误,指出实例没有属性“radii”,除非我告诉它使用rospy.sleep(2)2 秒睡眠,然后它返回一个值。如果我尝试在 main 函数中调用 self.radii,情况也是如此。

我觉得这是一个 Python 线程问题而不是 ROS 问题,因为实际订阅者工作正常,似乎有很长的延迟,我不知道如何补救。

如果我改为print(self.radii)在回调函数中工作正常,值会立即出现,但我想在此之外访问此变量。

代码如下。谢谢!

0 投票
1 回答
273 浏览

python - “ROS”如何通过 SSH 远程控制 Python 脚本

我有一个在凉亭模拟器上驾驶车辆的 python 文件。从 PC 运行测试 python 文件向车辆发送命令,然后继续前进。当我尝试通过 SSH 发送相同的命令(python drive.py)时,ros 包会出现以下错误。那是我的问题。

我也尝试过使用 .sh 脚本运行。但是没有任何错误发生变化。

我也尝试过:(通常在没有 SSH 的情况下执行并且代码工作正常)

误差近似

错误看起来像 ROS 和 $PythonPATH 环境冲突问题。因此,如果我遇到此错误,则代码将永远无法正常工作。只有 SSH 通常会出现错误,并且程序包可以正常工作。那么你正在考虑的问题是什么问题?

那是我的问题:

如何通过 SSH 执行我的脚本而不会遇到任何 ROS 环境问题。

0 投票
1 回答
55 浏览

python - 如何使用 ROS2 创建 service-on-request 包程序?

系统配置:操作系统 - Ubuntu 18.04 (Bionic Beaver) ROS - ROS2 Bouncy Language - Python

问题 - 所以我有一个程序,它应该只在向程序发送请求时运行并返回值。如何使用 ROS2 py 创建这样的包

我尝试修改 demo_node_cpp,但没有达到预期的效果。

0 投票
1 回答
3933 浏览

python - 用于处理和可视化的 Python 上 PCL 的替代方案

rospy用来接收点云。为了处理这些点云,有一个名为 的包python-pcl,我无法让它运行,因为它非常有缺陷且无功能,Github 上有大量问题等。

我想知道 Python 中是否还有另一个用于处理点云的库?我通过 ROS 收到一个点云,如下所示:

从现在开始,如何在不使用 PCL 库的情况下使用 ICP 处理、可视化或注册点云。

0 投票
1 回答
1989 浏览

python - message_filters 不调用回调函数

我正在尝试使用 message_filters 来订阅两个主题。这是我的代码

但它永远不会去回调函数。它只是冻结在rospy.spin()

0 投票
1 回答
535 浏览

ros - 如何将预序列化数据发布到 ROS?

我面临的情况是,我有多个机器人,大多数都运行完整的 ROS 堆栈(包含 Master),我想通过另一个消息传递框架有选择地将一些主题路由到其他机器人(其中一些不运行 ROS)。

实现这一点的简单方法是,设置一个订阅相关 ROS 主题的节点并通过网络发送该主题,然后另一个节点发布它(如果是它的 ROS)。太好了,但是不得不做这么多的序列化似乎很奇怪。现在消息从它的消息类型到 ROS 序列化,回到消息类型,然后到不同的序列化格式(目前是 Pickle),通过网络,然后回到消息类型,然后回到 ROS 序列化,然后回到消息类型。

所以问题是,我可以简化吗?如何对 ROS 序列化数据进行操作(即订阅时无需 rospy 为我自动反序列化)? http://wiki.ros.org/rospy/Overview/Publishers%20and%20Subscribers建议我可以将连接信息作为字符串的dict访问,这可能是解决方案的一半,但另一端如何获取连接信息并重新发布它而不首先反序列化然后立即重新序列化?

编辑:我刚刚找到https://gist.github.com/wkentaro/2cd56593107c158e2e02,这似乎解决了一半。它使用 AnyMsg 来避免在 ROS 订阅者端反序列化,但是当它重新发布时,它仍然反序列化并立即重新序列化消息。我问的是不可能的吗?

0 投票
1 回答
371 浏览

python - 如何使用 Python 和 ROS 订阅 Naoqi 中的事件?

如何使用ALMemory'ssubscribeToEvent函数订阅事件,该函数需要正确的 Python 范围,同时使用 ROS(rospy)在我的代码之外启动模块?

这个问题和这个 Naoqi 订阅问题类似,但不同之处在于没有使用 rospy,这对实现至关重要。

我当前的代码就是这样;
主要行为.py

nao.py

我想要的是使用 nao.py 的 mainBehaviour.py robotHasFallen在机器人跌倒时触发其功能。但是,当前代码不会产生这种行为(它忽略任何下降),但也不会产生错误。我尝试使用此 ALMemory 教程来实现这一点。但是,本教程使用单个 python 文件,其中的方法不是由 ROS 实例化的。因此我无法使用 line pythonModule = myModule("pythonModule")。我试图通过声明一个指向self.

如何创建所需的行为,subscribeToEvent使用 ROS 检测倒下的机器人,其后果是自己不启动模块,因此无法传递其构造函数?
我无法安装任何其他库,因为我使用的是大学计算机。