sim_smart_car_bridge

ROS2 桥接中转节点:将 Origincar 仿真 的 HTTP API端口 8765全面桥接到 ROS2 话题。

数据流

                    origincar_bridge
仿真机 HTTP API  ←──── HTTP ────→  ←── ROS2 ──→  你的其他节点

GET  /image  ──→  cv_bridge 解码   ──→  sensor_msgs/Image      /image
GET  /imu    ──→  填充字段        ──→  sensor_msgs/Imu         /imu/data_raw
GET  /scan   ──→  填充字段        ──→  sensor_msgs/LaserScan   /scan
GET  /odom   ──→  填充字段        ──→  nav_msgs/Odometry       /odom
GET  /power  ──→  Float32         ──→  std_msgs/Float32        /PowerVoltage
POST /cmd    ←──  vx / wz         ←──  geometry_msgs/Twist      /cmd_vel
方向 话题 消息类型 HTTP 端点 频率
上行 /image sensor_msgs/Image GET /image 10 Hz可配
上行 /imu/data_raw sensor_msgs/Imu GET /imu 30 Hz sync
上行 /scan sensor_msgs/LaserScan GET /scan 30 Hz sync
上行 /odom nav_msgs/Odometry GET /odom 30 Hz sync
上行 /PowerVoltage std_msgs/Float32 GET /power 30 Hz sync
下行 /cmd_vel geometry_msgs/Twist POST /cmd 事件驱动

帧 ID: camera_front(图像)、gyro_linkIMUlaser(雷达)、odombase_link(里程计)

依赖

依赖 用途
rclpy ROS2 Python 客户端
sensor_msgs Image / Imu / LaserScan
nav_msgs Odometry
geometry_msgs Twist / Quaternion
std_msgs Float32 (PowerVoltage)
cv_bridge OpenCV ↔ ROS Image
opencv-python JPEG 解码
numpy 图像数组
requests HTTP 客户端

安装

cd <your_workspace>
git clone http://106.14.170.56:57575/cyy/sim_smart_car_bridge.git src/origincar_bridge
colcon build --packages-select origincar_bridge --symlink-install
source install/setup.bash

使用

# launch 启动(推荐)
ros2 launch origincar_bridge bridge.launch.py http_host:=192.168.11.159

# 直接运行
ros2 run origincar_bridge bridge_node --ros-args -p http_host:=192.168.11.159

运行时调参

ros2 param set /origincar_bridge image_rate 15.0
ros2 param set /origincar_bridge sync_rate 20.0
ros2 param set /origincar_bridge timeout 2.0

可配置参数

参数 默认值 说明
http_host 192.168.11.159 仿真机 IP
http_port 8765 HTTP API 端口
timeout 1.0 HTTP 请求超时 (s)
sync_rate 30.0 scan/odom/imu/power 统一同步频率 (Hz)
image_rate 10.0 图像独立拉取频率 (Hz)
image_topic /image 图像发布话题
imu_topic /imu/data_raw IMU 发布话题
scan_topic /scan 激光雷达发布话题
odom_topic /odom 里程计发布话题
power_topic /PowerVoltage 电池电压发布话题
cmd_vel_topic /cmd_vel 控制指令订阅话题

上游 HTTP API

端点 方法 返回 说明
/image GET JPEG bytes 前置摄像头图像
/imu GET JSON IMU 数据MPU6050 噪声)
/scan GET JSON LSLIDAR N10 2D 激光雷达360°, 450 点)
/odom GET JSON 里程计(位置/姿态/速度)
/power GET JSON 电池电压 {"voltage": 12.0}
/state GET JSON 小车完整状态
/cmd POST 控制指令 {"vx": vx, "wz": wz}

/cmd 控制模式

HTTP /cmd 使用差速模式 {"vx": vx, "wz": wz}(匹配串口协议,与 Twist 语义一致),服务端内部通过 bicycle model 将 wz 转为阿克曼转向角。

{"vx": 1.0, "wz": 0.5}

项目结构

origincar_bridge/
├── README.md
├── .gitignore
├── package.xml                    # ROS2 包清单
├── setup.py                       # ament_python 构建入口
├── setup.cfg
├── resource/
│   └── origincar_bridge           # 包标记
├── launch/
│   └── bridge.launch.py           # 启动文件
└── origincar_bridge/
    ├── __init__.py
    └── bridge_node.py             # ★ 全功能桥接节点
Description
ros2仿真桥
Readme 44 KiB
Languages
Python 100%