问题标签 [ros2]

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 回答
1744 浏览

python - ROS2 RCLPY 库中的速率和睡眠函数

最近我开始学习 ROS2,但是我遇到了一个问题,我创建了一个包并定义了一个节点。

所以,我需要将上面的 ROS1 代码转换为 ROS2,为此我用 RCLPY 替换了 ROSPY 库并将其编码如下:

现在,我想使用 RCLPY 实现下面给出的代码片段,但我无法获得所需的所有功能,我有 RCLPY 替代品rospy.Rate(2),它是rclpy.create_node('simple_node').create_rate(2).

请建议功能的 RCLPY 替代品rospy.is_shutdown()rospy.Rate(2).sleep()

0 投票
0 回答
146 浏览

c++ - ROS 2 中两个工作区之间的链接

我知道我应该在 RosAnswers 中询问 - 我确实做到了,但没有人回答,我仍然在为此苦苦挣扎,所以我想我应该尝试在这里询问。

为了保持一切整洁干净,我的包中有一个 dev_ws,所有其他包(vision_opencv、perception_pcl 等)都有一个 tools_ws。

现在我不确定为什么,但是当我尝试在我自己的 dev_ws 包中包含来自 tools_ws 包的头文件时,colcon 无法找到这些头文件。因此,如果我尝试在我的头文件中添加 #include <pcl_conversions pcl_conversions.h> 错误消息将显示

/home/test_ws/src/test_pkg/include/CameraAdapter.h:8:10:致命错误:pcl_conversions/pcl_conversions.h:没有这样的文件或目录#include <pcl_conversions/pcl_conversions.h>

我通常只添加<depend>pcl_conversions</depend>我的 package.xml 和find_package(pcl_conversions REQUIRED)我的 CMakeList.txt

tools_ws 是有源的,ros2 能够在其中找到启动文件等,我的 python 节点能够使用来自 tools_ws 的包,只是在 Cpp 中使用包含文件是行不通的。我很确定答案非常简单,可能只是我的 CMakeList 中的一行,但我没有设法在 Ros2 文档中或通过谷歌搜索找到任何内容。

你知道我做错了什么吗?

0 投票
1 回答
864 浏览

python-3.x - 如何使用 ROS 2 在 python 节点中发布批量图像?

我在 ROS 2 中有一个发布者,它发布如下图像消息:

它适用于单个图像。但我想发布一批具有给定形状的图像:

[12, 3, 224, 224] => [批次、通道、宽度、高度]

我尝试将其作为图像列表发送,但失败了。怎么做?

更多信息:

python 3.6
ROS 2 - 雄辩的(从源代码构建)
Ubuntu 18

0 投票
0 回答
104 浏览

c++ - 为什么我不能将 ament_cpplint 与各种 IDE 的 cpplint 插件一起使用?

我正在使用 ROS2 处理 C++ 代码。ROS2 有代码风格标准,推荐的 linter 之一是 ament_cpplint,它与 cpplint 略有不同

大多数 C++ IDE/编辑器(Clion、Atom、VS Code、Sublime Text)都有用于 cpplint 的插件,这些插件会在您编辑文件时运行定期 linter 检查。您通常必须设置计算机上 cpplint 可执行文件的路径。我试图将路径设置为 ament_cpplint 可执行文件,但它不起作用。到目前为止,我已经使用多个 IDE 和插件进行了尝试,但它们都不起作用。

我不确定是什么原因造成的,谷歌的 cpplint 适用于 IDE。我可以从命令行运行 $ ament_cpplint 就好了,但我不能让它在 IDE 中工作。

0 投票
1 回答
796 浏览

python - 类类型的类型提示作为参数

在 ros2 的 python 客户端库中,有一个函数接受类类型作为参数(不是该类的实例,而是定义)。

例如

如何使用 python 类型注释来注释这样的事情?

一种方法是使用Executable类型提示,因为可以调用类类型()来构造对象。但这并不能很好地传达它的真正含义。

如果有类似的东西会更好:

有这样的吗?执行此操作的标准方法是什么?

理想情况下,我希望它与 MyPy 静态类型检查系统一起使用。

0 投票
1 回答
147 浏览

data-distribution-service - 为什么主题的帧率与ROS2中的realsense图像fps不同

我测试了我的 ros2 节点是否从重新评估 ROS2 节点完全订阅 /camera/depth/image_rect_raw 主题。我将一个 realsense 相机连接到 TX2 板上并配置为 15 fps。但是,我预计订阅 /camera/depth/image_rect_raw 的速率应该类似于 15 hz,但它不同如下。为什么发布和订阅图像主题之间存在速率差异?是否可以将订阅率与发布率相匹配?

$ ros2 主题 hz /camera/depth/image_rect_raw

平均利率:10.798

平均利率:8.610

平均利率:8.085

平均利率:9.498

平均利率:9.552

平均利率:9.265

平均利率:8.510

平均利率:7.940

平均利率:7.539

平均利率:7.750

0 投票
2 回答
2313 浏览

c++ - ROS 2订阅者回调与成员类的方法

我想在回调函数中使用成员类方法。下面的 C++ 代码是一个简单的订阅者,带有一个使用成员类方法的回调hello()

我构建了 C++ 代码并捕获了以下消息。我如何修复代码?使用 Ubuntu LTS 20.04 中的 ROS2 Foxy 构建。

0 投票
1 回答
75 浏览

c++ - ros2 消息是自我描述的吗?

在 c++ 和 ros2 中,是否可以在不知道其类型的情况下订阅主题?如果是这样,并且收到了一条消息,是否有可能在不知道其类型的情况下再次自省该消息?意思是,ros2 消息是自描述的(例如 FlexBuffer 消息)吗?

0 投票
1 回答
42 浏览

ros2 - LGSVL 无效模拟

上周我能够运行模拟器,但现在我得到了休闲错误

无效:用于 ROS 桥的不支持的消息类型 Simulator.Bridge.Data.ClockData 无效:未设置 ROS RMW。您需要将 RMW_IMPLEMENTATION 设置为 rmw_cyclonedds_cpp

每次我重新进入并更新 ade docker 时,错误都会发生变化。我的一位同事也遇到了同样的问题,我们不可能犯同样的错误。运行时模拟错误

0 投票
1 回答
65 浏览

c++ - 在 Fast-DDS 中,将 localhost 的 IP 设置为某个 LAN

我是 DDS 和 C++ 的新手,我使用 fastrtps 在 raspberry(ubuntu 服务器)中运行 dds 代码(动态示例),这是成功的。但是,当我将订阅部分移动到另一个覆盆子时,两个覆盆子找不到彼此。

到目前为止,我想有两个原因:

  1. 我的手机(安卓)有防火墙。换手机要不要换?
  2. 我应该使用 API 来设置 raspberry-self ip,但我找不到它适合 命令 lsof -i -P -n 的示例代码结果

这是示例代码DynamicHelloWorldExample

谢谢><