You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何测试ROS1(Melodic)包API与自研ROS2包的兼容性?

ROS1包与自研ROS2包API协同测试方法

要让你的ROS1包和自研ROS2包的API协同工作,核心依赖是ros1_bridge工具,它能实现ROS1与ROS2之间话题、服务、动作的跨版本通信。以下是具体操作步骤:

1. 环境准备

确保Ubuntu18.04系统上同时安装:

  • ROS1 Melodic(已完成你的ROS1包测试)
  • ROS2 Eloquent(适配Ubuntu18.04的LTS版本,与Melodic兼容性最佳)

安装ROS2后,先加载其环境变量:

source /opt/ros/eloquent/setup.bash

2. 构建ros1_bridge

ros1_bridge需要在同时兼容ROS1和ROS2的混合工作空间中构建:

# 创建混合工作空间
mkdir -p ~/ros1_ros2_ws/src
cd ~/ros1_ros2_ws/src

# 克隆适配ROS2 Eloquent版本的ros1_bridge源码
git clone https://github.com/ros2/ros1_bridge.git -b eloquent

# 安装依赖
sudo apt update
rosdep install --from-paths src --ignore-src -r -y

# 同时加载ROS1和ROS2环境后构建
source /opt/ros/melodic/setup.bash
source /opt/ros/eloquent/setup.bash
colcon build --symlink-install --packages-select ros1_bridge

3. 准备ROS1与ROS2工作空间

  • 你的ROS1包保持在原~/catkin_ws,确保已构建并加载环境:
cd ~/catkin_ws
catkin build
source devel/setup.bash
  • 将自研ROS2包放入ROS2工作空间(如~/colcon_ws/src),构建并加载环境:
cd ~/colcon_ws
colcon build
source install/setup.bash

4. 启动桥接并测试API协同

步骤1:启动ROS1核心

打开第一个终端:

source /opt/ros/melodic/setup.bash
roscore

步骤2:启动ros1_bridge

打开第二个终端,加载所有必要环境变量后启动动态桥接:

source /opt/ros/melodic/setup.bash
source /opt/ros/eloquent/setup.bash
source ~/ros1_ros2_ws/install/setup.bash
source ~/catkin_ws/devel/setup.bash
source ~/colcon_ws/install/setup.bash

# 动态桥接会自动识别跨版本的话题/服务/动作
ros2 run ros1_bridge dynamic_bridge

步骤3:测试API交互

根据你的ROS1包API类型,选择对应测试方式:

  • 话题通信:启动ROS1节点发布话题,用ROS2节点订阅,或反向操作,验证数据是否正常传输;
  • 服务调用:用ROS2客户端调用ROS1包提供的服务,或用ROS1客户端调用ROS2包的服务,检查请求响应是否正常;
  • 动作通信:测试ROS1动作服务器与ROS2动作客户端的交互,或反向测试,确认目标执行、反馈、结果的传递是否无误。

如果需要针对特定API做性能更优的静态桥接,可以参考ros1_bridge的官方文档生成对应桥接代码后重新构建。

内容的提问来源于stack exchange,提问作者Bob9710

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 21:20:26