Files
sim_smart_car_bridge/README.md
cyy 954ca7f8a7 feat: init sim_smart_car_bridge — ROS2 bridge relay for Origincar HTTP API
Bridge image (GET /image → sensor_msgs/Image), IMU (GET /imu → sensor_msgs/Imu),
and cmd_vel (Twist → POST /cmd) between Origincar simulation and ROS2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 22:57:18 +08:00

96 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# sim_smart_car_bridge
ROS2 桥接中转节点:将 Origincar 仿真的 HTTP API 与 ROS2 话题双向桥接。
## 数据流
```
仿真机 HTTP API ←———HTTP———→ origincar_bridge ←———ROS2———→ 你的其他节点
GET /image ──→ cv_bridge 解码 ──→ sensor_msgs/Image /image
GET /imu ──→ 填充字段 ──→ sensor_msgs/Imu /imu
POST /cmd ←── speed/steer ←── geometry_msgs/Twist /cmd_vel
```
## 依赖
| 依赖 | 用途 |
|------|------|
| `rclpy` | ROS2 Python 客户端 |
| `sensor_msgs` | Image / Imu 消息 |
| `geometry_msgs` | Twist 消息 (cmd_vel) |
| `cv_bridge` | OpenCV ↔ ROS Image 转换 |
| `opencv-python` | 图像解码 |
| `numpy` | 图像数组处理 |
| `requests` | HTTP 请求 |
## 安装
```bash
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 启动(推荐)
```bash
ros2 launch origincar_bridge bridge.launch.py http_host:=192.168.11.159
```
### 直接运行
```bash
ros2 run origincar_bridge bridge_node --ros-args -p http_host:=192.168.11.159
```
### 运行时调参
```bash
ros2 param set /origincar_bridge image_rate 15.0
ros2 param set /origincar_bridge timeout 2.0
```
## 可配置参数
| 参数 | 默认值 | 说明 |
|------|--------|------|
| `http_host` | `192.168.11.159` | 仿真机 IP 地址 |
| `http_port` | `8765` | HTTP API 端口 |
| `image_topic` | `/image` | 图像发布话题 |
| `imu_topic` | `/imu` | IMU 发布话题 |
| `cmd_vel_topic` | `/cmd_vel` | 控制指令订阅话题 |
| `image_rate` | `30.0` | 图像拉取频率 (Hz) |
| `imu_rate` | `30.0` | IMU 拉取频率 (Hz) |
| `timeout` | `1.0` | HTTP 请求超时 (秒) |
## 上游 API
本节点对接 [Origincar Simulation](https://github.com/mxxxdev/motrixsim) 的 HTTP API端口 8765
| 端点 | 方法 | 说明 |
|------|------|------|
| `/image` | GET | 前置摄像头 JPEG 图像 |
| `/imu` | GET | IMU 数据 (MPU6050) JSON |
| `/state` | GET | 小车状态 JSON |
| `/cmd` | POST | 发送控制指令 `{"speed": 1.0, "steer": 0.3}` |
## 项目结构
```
origincar_bridge/
├── package.xml # ROS2 包清单
├── setup.py # ament_python 构建入口
├── setup.cfg
├── resource/
│ └── origincar_bridge # 包标记
├── launch/
│ └── bridge.launch.py # 启动文件
└── origincar_bridge/
├── __init__.py
└── bridge_node.py # 桥接节点主程序
```