问题标签 [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.
linux - 无法建立 ROS2 网络
我开始使用 ROS2(目前处于 alpha7 状态)。为此,我建立了一个小型网络,其中 Raspberry Pi (Raspbian Jessie) 通过 LAN 连接到路由器,主机 PC (Ubuntu Gnome 16.04) 通过 WLAN 连接到同一路由器。主机内部是一些安装了 Debian Jessie 并通过桥接网络 (wlp4s0) 连接的虚拟机(使用 VirtualBox)。我也可以在我的所有机器(Rasp、Host、VM)之间使用ping,ssh和。scp
我发现 Rasp 没有连接到虚拟机,但虚拟机相互联系。所以我可以在虚拟机之间发送消息。但是 Rasp 和 VM 之间的谈话者 - 听众 - 连接不起作用。
谁能给我一些建议来找出这种行为的原因是什么?
我使用来源(alpha7)中的谈话者和听众进行了一些研究。
:(所有ros用户都在虚拟机上)
树莓派上的谈话者
虚拟机上的谈话者
python - ROS2:ImportError:没有名为 genmsg 的模块
我从目前处于 alpha 阶段的ROS2开始。在构建包时ros1_bridge出现此错误:
这很奇怪。在同一台计算机上,我构建相同的代码没有任何问题。唯一改变的是:我安装了ROS Kinetic。
我在突触中发现我现在genmsg安装了两个不同的包:python-genmsg和ros-kinetic-genmsg. 第一个是ROS2的依赖项,第二个是ROS的依赖项。所以可能两者都是必要的。我认为那是Python的东西,我不熟悉Python。我该怎么做才能让它再次运行?
python - 在 rclpy ROS2 的 pub&sub 中设置端点
我正在尝试从 rclpy 客户端库运行演示示例。
我的问题是我能够在同一台机器上从客户端库运行发布者和订阅者示例。但是现在我想在不同的机器上运行这两个,例如我想在我的 windows 主机上运行 mz 发布者,在 LInux 虚拟机上运行监听器我在哪里可以在 rclpy lib 中设置 pu&b&sub 的端点,以便我在 windows 上的发布者可以发送数据到在 LLinux VM 上运行的侦听器。
任何帮助,将不胜感激。
networking - DDS 通信是否可以在不同网络中的两台计算机之间进行?
我对 DDS 很陌生。我正在使用基于 DDS 的 ROS2。我想运行一个基于 ROS2 的发布者并订阅一个基于 RTI Connext 的 Simulink 模型,它们都位于不同的 PC 上。
我想要两台不同的电脑之间的通信。
问题 :
- 两台 PC 是否应位于同一网络中。
- 应该启用多播吗?多播在我公司的网络中被阻止。有替代方案吗?
robotics - ROS2和DDS有什么区别?
ROS2 是一种分布式架构,在节点之间使用发布者/订阅者消息传递。
ROS2 在其消息传递层采用了不同的方法,现在采用称为数据分布式服务 (DDS) 的行业标准。
但是,DDS 是一个通信中间件,也支持发布者/订阅者。
那么,我们可以直接使用DDS,为什么要使用ROS2呢?
python - ROS图像主题帧率极低
我正在尝试通过 ROS api 使用 opencv 处理 VREP 视觉传感器输出。我确实设法设置了场景并让脚本运行,但问题是即使没有实际处理,我也得到了 4-5 fps(目前我只是将图像直接推送到输出)。
此问题似乎与图像分辨率无关,因为 1024*512 和 128*128 捕获的 fps 完全相同。
这也不是阻塞调用的问题,虽然我发布的是单头代码,但我确实有相当复杂的多线程处理管道,它在实际相机(~50 fps)上表现得相当好。
VREP 方面的 Lua 脚本似乎也不是问题,因为我尝试使用 vrep 提供的视频重新翻译示例,它们似乎实现了相当令人满意的 fps。
所以看起来图像流是一个瓶颈。
这是我的示例脚本:
我还必须提到我使用 ros bridge 运行它,因为我需要使用 python3 完成处理,这仅受 ROS2 支持,而 VREP 似乎仅适用于 ROS1(尽管我刚刚开始使用这些系统,所以我对那种情况没有信心)。
networking - RTI Connext DDS 和 ROS2 之间的通信
在 ROS2 中,Usingqos_profile = rmw_qos_profile_system_default将使用 DDS 供应商安装目录中的默认 xml 配置,在本例中为 RTI CONNEXT。
从 RTI查看此文档,这意味着该文件NDDS_QOS_PROFILES.xml已加载。但是这个文件没有任何 QoS 设置。这只是参与者的发现。
此外,是否有可能通过某些 RTI 实用程序(例如管理控制台)了解 QoS?
用例:可以说,其他一些应用程序,例如 ROS2 正在使用我不知道的 QoS 设置发布主题。现在,我需要使用 RTI Connector for Python 使用 XML 应用程序创建为此主题创建订阅者。为此,我需要知道 ROS2 应用程序使用的 QoS 设置,然后使用 XML 创建类似的 QoS。
xml - 将原生 DDS 系统与 ROS2 连接
要与基于 ROS2 的发布者和基于 RTI Connext 的订阅者进行通信,它们都需要具有兼容的 QoS 设置。
我正在使用 RTI Connector for python 并使用 XML Application Creation 来运行订阅者。
我talker_py在具有默认QoS 的 ROS2 中运行一个并在 RTI Connext Pro 中订阅这些消息。
ROS2 IDL 看起来像这样:
我使用rtiddsgen实用工具将其转换为 XML 文件。这是转换后的 XML:
我添加<types>到我的USER_QoS.xml,它看起来像:
现在,当我使用 RTI Connector for python 时,这里的第一步是尝试加载USER_QoS.xml文件,它总是给出错误Unable to parse the .xml file。我强烈认为这是因为定义中存在module关键字<types>。
这是 RTI 连接器的 python 脚本:
我觉得连接器无法解析这个module关键字。会不会是这样?
cmake - colcon 找不到第三方库 (Poco)
我正在尝试为 Arm 交叉编译 ROS2。我正在遵循的步骤可以在这里找到:https ://github.com/ros2-for-arm/ros2/wiki/ROS2-on-arm-architecture
使用的构建命令是
colcon build --symlink-install --cmake-force-configure --cmake-args -DCMAKE_TOOLCHAIN_FILE=aarch64_toolchainfile.cmake -DTHIRDPARTY=ON -DBUILD_TESTING:BOOL=OFF
找不到 poco 库,但它位于“ /work/ROS2_Bouncy/ros2_ws/install/poco_vendor/lib/libPocoFoundation.so.50”中并且已正确交叉编译:
我想知道在哪里可以修改 CMake 脚本以指定第三方库的路径。我试图手动指定 Poco 的路径,但它不起作用:
我还尝试在CMAKE_EXE_LINKER_FLAGS
(-L) 中添加 Poco 库的路径,但没有成功。
一切看起来都被正确编译了,但是在链接阶段我遇到了一个错误: