7. SDK概述及使用示例#
MMK2-SDK:在开发者模式下,用户可以使用此接口实现机器人各组件的控制,机器人本体已内置控制算法,用户可以在这个基础上实现开发自己的软件业务功能,比如机器人管理、自主抓取,移动操作等上层应用
7.1 通讯架构图#
下图呈现了开发者电脑与机器人本体的系统组成及交互关系:
- 开发者电脑部分 通过上层 MMK2-SDK 提供的API接口控制机器人本体的运动。
- 机器人下位机为香橙派,内置了本体控制软件。
graph TB
subgraph "开发电脑 / 上位机"
subgraph A["上层应用开发"]
UI["mmk2-ui<br/>控制界面"]
SIM["mmk2-mujoco-sim<br/>仿真器"]
SDK["mmk2-sdk<br/>(Python)"]
VIZ["mmk2-urdf-ros2<br/>(rviz2)"]
end
end
subgraph B["通信连接"]
WIRELESS["无线传输"]
ROS2["ROS2 cyclonoids<br/>有线端口绑定"]
ETHERNET["外置网口"]
end
subgraph C["MMK2机器人"]
OP["香橙派 (ubuntu 24.04 arm64-arch)"]
ARMS["双机械臂+夹爪"]
HEAD["头部电机"]
LIFT["升降"]
BASE["底盘"]
CAMERA["相机"]
end
%% 连接关系
UI --> SDK
SIM --> SDK
VIZ --> SDK
SDK --> WIRELESS
SDK --> ROS2
SDK --> ETHERNET
WIRELESS --> OP
ROS2 --> OP
ETHERNET --> OP
OP --> ARMS
OP --> HEAD
OP --> LIFT
OP --> BASE
OP --> CAMERA
%% 样式定义 - 字体颜色为黑色
classDef host fill:#e1f5fe,stroke:#01579b,stroke-width:2px,color:#000000
classDef communication fill:#f3e5f5,stroke:#4a148c,stroke-width:2px,color:#000000
classDef robot fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px,color:#000000
classDef hardware fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000000
class A,UI,SIM,SDK,VIZ host
class B,WIRELESS,ROS2,ETHERNET communication
class C,OP robot
class ARMS,HEAD,LIFT,BASE,CAMERA hardware
7.2 查看机器人无线ip地址#
使用网线插入到本机电脑中,然后远程登录到香橙派中查看
记录无线ip地址后,可以拔掉网线,后续可在上位机使用无线网络连接机器人。
7.3 电机版本确认#
下位机113版本适配的电机硬件版本说明如下:
| 电机类型 | 说明 | 适用关节 | 固件版本 |
|---|---|---|---|
| 重量 | 6.9 kg | 机械臂关节1-3 | 04114 |
| 自由度 | 6 | 机械臂关节4-6、头部2个电机、G2夹爪 | 5015 |
7.4 关节限位值说明#
| 关节类型 | 自由度 | 关节限位 | 说明 |
|---|---|---|---|
| 机械臂 | 6 | joint1: (-3.14, 2.06) |
适用于左臂和右臂 |
| 夹爪 | 1 | GRIPPER_MIN = 0.0 |
0 -- 完全关闭 |
| 头部 | 2 | HEAD_YAW_MIN = -0.47 |
|
| 升降 | 1 | SPINE_MIN = -0.04 |
7.5 例程与使用说明#
MMK2 机器人开机自检通过后处于 待机模式 时,此时头和身的灯光处于 白色长亮状态,底盘处于蓝色呼吸灯状态,此时 上位机 可以通过 SDK软件 控制机器人操作。
7.5.1 运行例程#
安装 mmk2-sdk 软件包后,可以通过下面运行示例脚本快速熟悉 MMK2 机器人的控制
运行前需要确认: - 机器人连接 - 确保机器人IP地址正确(默认:172.25.14.1) - 确保机器人处于可连接状态 - 确保网络连接正常 - 相机配置 - 确保相机硬件连接正常 - 相机序列号配置正确 (可在香橙派中docker内输入 rs-enumerate-devices | grep Serial 查看) - 支持 RGB 和深度图像
7.5.2 功能说明#
程序会显示交互式菜单如下,可以输入 数字选项 测试 SDK 功能:
============================================================
🤖 MMK2 SDK 使用示例
============================================================
请选择要运行的示例:
1. 基本使用示例 - 连接测试、状态获取
- 确保机器人IP地址正确(默认:172.25.14.1)
- 确保机器人处于可连接状态
- 确保网络连接正常
2. 机械臂控制示例 - 关节控制、位姿控制、夹爪控制
- 关节角度控制
- 末端位姿控制
- 夹爪开合控制
- 相对运动控制
- 轨迹点控制
- 重置到起始/零点姿态
3. 底盘控制示例 - 前进后退、转向、侧移
- 前进/后退移动
- 左转/右转
- 侧向移动
- 移动到指定位姿
4. 头部控制示例 - 头部左右转动、上下俯仰
- 头部左右转动
- 头部上下俯仰
- 头部回零
5. 升降控制示例 - 脊柱升降运动
- 脊柱升降运动
- 高度设置
- 升降回零
6. 相机使用示例 - 图像获取和可视化显示
- 启动相机流(头部、左手、右手相机)
- RGB图像显示
- depth图像显示
- 按'q'键退出
7. TF获取示例 - 坐标系变换信息
- 获取坐标系变换信息
- 显示位置和旋转信息
- 支持多个坐标系关系
8. 错误处理示例 - 错误检测和处理
- 无效参数测试
- 错误信息获取
- 错误状态检查
- 错误清除
9. 状态检查示例 - 闭环控制验证
- 关节状态检查
- 位姿状态检查
- 底盘状态检查
- 闭环控制验证
10. 连续轨迹点控制示例 - 关节轨迹、位姿轨迹
- 关机轨迹控制
- 末端位姿轨迹控制
0. 退出程序
============================================================
请输入选择 (0-9):