双臂机器人平台(固定基座)+ 双 Linkerhand O6 灵巧手 + Orbbec Gemini2 RGB-D 相机, 树莓派作为下位机控制器。
基坐标系(左右臂共用同一"肩心系"):原点在两肩安装点连线中点; X 向前、Y 向左(指向左臂)、Z 向上。左侧目标 +Y、右侧 −Y。
笛卡尔指令 position 单位米、euler 单位弧度;关节角单位弧度。完整控制方法见 docs/arm_control.md。
真实关节名为语义名(与 URDF 中 arm_left_L*_Joint 不同,对接以此为准)。
顺序即 move_joint 的 joints[0..6]。轴向为关节全 0 时的局部轴(已实测:J5→Z、J6→Y、J7→X)。
限位为左臂命令空间值;右臂 J2 镜像相反(2026-06-27 实机修正,其余对称)。
| # | 语义名(左臂) | 轴 | 限位(rad) | 功能 |
|---|---|---|---|---|
| J1 | Left_Shoulder_Pitch_Joint | Y | −2.91 ~ 2.91 | 肩 pitch,整臂前抬/后摆 |
| J2 | Left_Shoulder_Roll_Joint | X | −0.07 ~ 3.20 | 肩 roll(极不对称;左臂抬起 +1.57) |
| J3 | Left_Shoulder_Yaw_Joint | Z | −2.69 ~ 2.69 | 上臂自转(电机在肱二头肌处) |
| J4 | Left_Elbow_Pitch_Joint | Y | −2.05 ~ 2.05 | 肘屈伸 |
| J5 | Left_Wrist_Yaw_Joint | Z | −2.69 ~ 2.69 | 前臂自转 |
| J6 | Left_Wrist_Roll_Joint | Y | −1.59 ~ 1.59 | 手腕 |
| J7 | Left_Wrist_Pitch_Joint | X | −1.59 ~ 1.59 | 手腕 |
[-0.07, +3.20],抬起 +1.57;右臂 J2 ∈ [-3.20, +0.07],抬起 -1.57。
(旧文档把左右写反了。)2026-06-26 左臂 J2 曾因运动测试烧毁电机,待修;运动前务必硬校验限位+余量、禁止 warn-only,
用 arm_mover 包(已带逐关节限位校验)。注意控制器 set_emergency_stop 不抢占进行中的运动——硬急停以物理按钮为准。每臂末端一只。控制接口支持 L6 / L10(位置/速度/力矩),下位机 ROS 图还额外暴露 L20 命令话题。
抓取 TCP / 抓取点需自行定义并校验(与手眼标定独立,但抓取必需)。
| 型号 | Orbbec Gemini 2 |
|---|---|
| USB ID | 2bc5:0670 |
| 序列号 | AY6R46301DG |
| 固件 | 1.4.92 |
| 安装方式 | 固定式 eye-to-hand(俯视/斜视工作区;最终角度待锁定) |
| 彩色 | RGB888 640×480 ~30Hz(固定,见下) |
|---|---|
| 深度 | ~30Hz(与彩色对齐) |
| 点云 | depth/points ~29Hz |
| IMU | accel/gyro 100Hz |
| 畸变模型 | plumb_bob(K/D 见 camera_info) |
color_format:=ANY 协商成 MJPG,本机 x86 无硬件 JPEG 解码,
订阅 color 时软解 MJPG 偶发失败刷屏 color frame is not decoded。cam-driver 已固定 color_format:=RGB888 640×480@30(直通、零解码)。
注意 640×480 的相机内参与旧 1280×720 不同,手眼标定/反投影请用当前分辨率的 camera_info。