
# Jaka Mini2
本章介绍如何通过 ROS2 适配器（hardware.type: "ros2"）接入 Jaka Mini2 协作机械臂。
#### 硬件说明
表1硬件信息 
| 组件    | 型号                         | 协议                            | 说明                                      |
|:---|:---|:---|:---|
| 机械臂   | Jaka Mini2 (JAKA MiniCobo) | ROS2 topic                    | 6 DOF 协作机械臂，TCP 通信（默认 IP 192.168.1.xxx） |
| 夹爪    | Wheeltec MS42DC 步进电机       | ROS2 topic (step_motor/Motor) | 开度 0～0.13 m，USB CDC-ACM 串口，115200 baud  |
| 相机 ×2 | USB UVC                    | ROS2 topic (CompressedImage)  | 腕部 + 顶部，640×480 @ 30fps                 |
   
#### 关键ROS2话题
| 话题                                 | 消息类型                        | 方向       | 说明         |
|:---|:---|:---|:---|
| /jaka_driver/joint_position        | sensor_msgs/JointState      | 硬件 → SDK | 关节状态，10 Hz |
| /gripper_state                     | std_msgs/Float32            | 硬件 → SDK | 夹爪开度百分比    |
| /camera_top/image_raw/compressed   | sensor_msgs/CompressedImage | 硬件 → SDK | 顶部相机       |
| /camera_wrist/image_raw/compressed | sensor_msgs/CompressedImage | 硬件 → SDK | 腕部相机       |
| /robot_command_servo_j             | sensor_msgs/JointState      | SDK → 硬件 | 机械臂 6 关节控制 |
| /motor_control                     | step_motor/Motor            | SDK → 硬件 | 夹爪控制       |
   
#### 依赖与环境
```
# 安装 ROS2 Humblesudo 
apt install ros-humble-desktop python3-colcon-common-extensions ros-humble-usb-cam  
# 克隆并编译 r2c_jaka ROS2 workspace
git clone git@github.com:xxxxxx/r2c_jaka.git 
cd ~/jaka_mini2/r2c_jaka 
colcon build 
source install/setup.bash  
# 安装 SDK
cd /home/robot/project/r2c_sdk_python 
pip install -e .
```
#### 环境激活顺序
```
source /opt/ros/humble/setup.bash 
source ~/jaka_mini2/r2c_jaka/install/setup.bash 
cd /home/robot/project/r2c_sdk_python
```
#### 配置文件
使用 config/robot_mini2_ros_config.yaml
**关键配置差异**
Jaka Mini2配置与其他ROS2机器人的主要差异：
表2配置差异 
| 差异点          | Jaka Mini2                                                     | 通用 ROS2                   |
|:---|:---|:---|
| 相机类型         | CompressedImage                                                | Image 或 CompressedImage   |
| 图像 transform | ros_compressed_image_to_ndarray → bgr_to_rgb → ndarray_to_jpeg | ros_image_to_jpeg         |
| 夹爪消息类型       | step_motor.msg.Motor（自定义）                                      | Float64MultiArray         |
| 控制话题         | /robot_command_servo_j (JointState)                            | controller commands       |
| 动作目标         | commands_by_publisher.jaka_control.data                        | 直接 target: publisher_name |
   
#### 启动硬件节点
在跑SDK之前，需要先启动r2c_jaka的ROS2节点：
```
# 相机 + 夹爪（一键启动）
ros2 launch camera_c170 camera_and_motor.launch.py  
# 机械臂控制（根据实际 IP 修改）
ros2 launch jaka_joint_control jaka_joint_control.launch.py robot_ip:=192.168.1.xxx
```
验证硬件话题：
```
ros2 topic hz /jaka_driver/joint_position      
# 预期 10 Hz
ros2 topic hz /gripper_state                   
# 预期 10 Hz
ros2 topic hz /camera_top/image_raw/compressed 
# 预期 30 Hz
```
**启动SDK**
```
cd /home/robot/project/r2c_sdk_python 
source /opt/ros/humble/setup.bash 
source ~/jaka_mini2/r2c_jaka/install/setup.bash python -m r2c_sdk.cloudroboclient 配置文件名.zip --robot-config config/robot_mini2_ros_config.yaml
```
#### 键盘控制
表3按键功能 
| 按键     | 功能      |
|:---|:---|
| Space键 | 暂停 / 恢复 |
| q键     | 退出      |
   
#### udev 规则（设备持久化）
```
# 夹爪串口持久化
sudo bash ~/jaka_mini2/r2c_jaka/src/step_motor/ch9102_udev.sh  
# 用户加入 dialout 组
sudo usermod -aG dialout $USER
```
