7. 跳转至

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地址#

使用网线插入到本机电脑中,然后远程登录到香橙派中查看

# 测试有线连接
ping 192.168.11.200

# 远程登录, pw: airbot
ssh orangepi@192.168.11.200

#查看香橙派无线ip地址
ifconfig

记录无线ip地址后,可以拔掉网线,后续可在上位机使用无线网络连接机器人。

7.3 电机版本确认#

下位机113版本适配的电机硬件版本说明如下:

电机类型 说明 适用关节 固件版本
重量 6.9 kg 机械臂关节1-3 04114
自由度 6 机械臂关节4-6、头部2个电机、G2夹爪 5015

7.4 关节限位值说明#

关节类型 自由度 关节限位 说明
机械臂 6
joint1: (-3.14, 2.06)
joint2: (-2.8, 0.17)
joint3: (-0.087, 3.14)
joint4: (-2.96, 2.96)
joint5: (-1.74, 1.74)
joint6: (-3, 3)
适用于左臂和右臂
夹爪 1
GRIPPER_MIN = 0.0
GRIPPER_MAX = 1.0
0 -- 完全关闭
1 -- 完全打开
头部 2
HEAD_YAW_MIN = -0.47
HEAD_YAW_MAX = 0.47
HEAD_PITCH_MIN = -0.98
HEAD_PITCH_MAX = 0.32
升降 1
SPINE_MIN = -0.04
SPINE_MAX = 0.87

7.5 例程与使用说明#

MMK2 机器人开机自检通过后处于 待机模式 时,此时头和身的灯光处于 白色长亮状态,底盘处于蓝色呼吸灯状态,此时 上位机 可以通过 SDK软件 控制机器人操作。

7.5.1 运行例程#

安装 mmk2-sdk 软件包后,可以通过下面运行示例脚本快速熟悉 MMK2 机器人的控制

conda activate mmk2sdk
python3 -m mmk_sdk.example.run_examples

运行前需要确认: - 机器人连接 - 确保机器人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):