| .. | ||
| scripts | ||
| src | ||
| README.md | ||
README_RDK_X5 使用说明
1. 当前机器的实际设备映射
根据现场枚举结果,当前机器建议按下面的映射理解和使用:
1.1 串口设备
- 底盘控制口:
/dev/ttyUSB0 - 机械臂控制口:
/dev/ttyUSB1 - 机械臂默认波特率:
9600
现场串口枚举:
root@ubuntu:~# ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1
1.2 摄像头设备
- 普通 USB 摄像头:
/dev/video0 - 深度摄像头设备节点:
/dev/video1 - 深度相机型号:Orbbec Gemini 2
现场 USB 枚举:
root@ubuntu:~# lsusb
Bus 002 Device 003: ID 2bc5:0670 Orbbec 3D Technology International, Inc Orbbec(R) Gemini(TM)
Bus 001 Device 008: ID 0c45:6341 Microdia Defender G-Lens 2577 HD720p Camera
Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 001 Device 003: ID 1a86:7523 QinHeng Electronics CH340 serial converter
1.3 一个很重要的说明
虽然系统里能看到 /dev/video1,但这套工程中的 Gemini 2 深度数据并不是按普通 UVC 摄像头方式直接读取 /dev/video1,而是通过 orbbec_camera 驱动发布 ROS 2 话题:
/camera/color/image_raw/camera/depth/image_raw/camera/depth/camera_info
所以:
- 普通 USB 摄像头 走
usb_video_device:=/dev/video0 - Gemini 2 走
orbbec_camera驱动和对应 ROS 话题
不要把这两套链路混在一起。
2. 工作空间目录
~/dev_ws
├── src
│ ├── depth_target_detector
│ ├── lerobot_arm_controller
│ ├── mission_manager
│ ├── orbbec_camera
│ ├── orbbec_camera_msgs
│ ├── origintank_base
│ ├── origintank_bringup
│ └── signal_board_detector
3. 各功能包作用
origintank_base:底盘驱动,负责底盘控制与基础传感器数据发布origintank_bringup:整机启动入口mission_manager:任务状态机,统一调度底盘、识别和机械臂动作signal_board_detector:普通 USB 摄像头识别任务目标或标志牌depth_target_detector:基于 Gemini 2 输出深度目标三维点lerobot_arm_controller:机械臂串口控制与抓取流程orbbec_camera:Gemini 2 驱动orbbec_camera_msgs:Orbbec 相机消息定义
4. 整机控制链路
整机链路可以理解为:
- 底盘 由
origintank_base负责,发布/odom、/imu、/ultrasonic/front/range - 普通 USB 摄像头 由相关 launch 拉起,供
signal_board_detector使用 - Gemini 2 由
orbbec_camera启动,输出彩色图、深度图和相机内参 depth_target_detector将目标转换为三维点并发布到/depth_target/point3dlerobot_arm_controller订阅/depth_target/point3d,控制机械臂执行抓取mission_manager统一管理开始、停止、状态切换和任务流程
5. 编译前准备
5.1 加载 ROS 环境
source /opt/ros/humble/setup.bash
5.2 安装 Orbbec udev 规则
如果工程里带有安装脚本,可先执行:
cd ~/raico_rdk_x5_ws_minimal_gemini2
chmod +x scripts/setup_orbbec_udev.sh
./scripts/setup_orbbec_udev.sh
如果你实际使用的是 ~/dev_ws 这一套工程,也要确保 orbbec_camera/scripts/99-obsensor-libusb.rules 已正确安装到系统里。
5.3 编译工作空间
cd ~/dev_ws
source /opt/ros/humble/setup.bash
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
source install/setup.bash
6. 内存不足时的处理方法
Orbbec 相关包较大,如果编译时内存不足,可以临时开 8G swap:
free -h
swapon --show
fallocate -l 8G /swapfile || dd if=/dev/zero of=/swapfile bs=1M count=8192
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
free -h
swapon --show
编译完成后可关闭:
swapoff /swapfile
rm -f /swapfile
7. 整机启动方式
7.1 推荐启动命令(按当前机器实际连接)
cd ~/dev_ws
source /opt/ros/humble/setup.bash
source install/setup.bash
ros2 launch origintank_bringup rdk_x5_auto_mission.launch.py \
cmd_port:=/dev/ttyUSB0 \
arm_port:=/dev/ttyUSB1 \
usb_video_device:=/dev/video0
7.2 启动后默认会拉起的模块
- 底盘驱动
- 普通 USB 摄像头识别
- Gemini 2 驱动
- 深度目标检测
- 机械臂控制
- 任务状态机
8. 只测试 Gemini 2
cd ~/dev_ws
source /opt/ros/humble/setup.bash
source install/setup.bash
ros2 launch origintank_bringup orbbec_gemini2.launch.py
可选检查:
ros2 run orbbec_camera list_devices_node
ros2 run orbbec_camera list_depth_work_mode_node
9. 手动启动和停止任务
启动任务:
ros2 topic pub --once /mission/start std_msgs/msg/Bool "{data: true}"
停止任务:
ros2 topic pub --once /mission/start std_msgs/msg/Bool "{data: false}"