XGO_miniXGO-mini机器人控制模块使用说明
模块基本信息
- 模块名称: XGO-mini
- 作者: luwudynamics
- 版本: 1.0
- 功能描述: XGO-nano是一款具有15个自由度和机械臂的桌面级机器狗。积木库包括机器狗的xyz轴平移运动、xyz轴旋转运动,以及各种运动状态叠加、运动参数设置和读取机器狗状态等功能。
坐标系介绍
机器人坐标系是描述机器人位置、姿态和运动的数学框架,核心遵循右手定则(食指指向 X 轴正方向,中指指向 Y 轴正方向,拇指指向 Z 轴正方向,三轴两两垂直)。旋转方向的判定均以「旋转轴正方向朝向观察者」为视角,这是区分顺时针 / 逆时针的唯一基准;且逆时针为正角、顺时针为负角(ROS / 机器人工程通用规范)。
极坐标是平面位置描述的常用坐标系,核心用距离 + 角度替代直角坐标(X/Y)的两个线性坐标 。
核心变量说明
- arm_param: 机械臂参数配置
- servo_param: 舵机参数配置
- yaw_offset: 偏航角偏移量
系统初始化函数
功能: XGO机器人系统初始化包含操作:
- 串口通信初始化(115200波特率)
- 舵机扩展功能启用
- 腿部和机械臂舵机参数配置
- 机械臂初始化(L1=120mm, L2=120mm),这里的长度是根据实际的机械臂的长度来写的,如果自己修改了机械臂需要自行修改。同时机械臂初始化内部加入了机械臂角度修正值,可以在当前基础上加入修正值。返回值: 无
功能: 机器人复位到初始状态执行动作:
- 执行复位动作页面(255)
- 机械臂回到初始角度[0, -90, 90]
- 机器狗所有运动配置恢复默认值返回值: 无
移动控制函数
基础移动控制
功能: 设置机器人移动速度,同时包含三个速度参数范围:
- X: X步长(-25~25mm)
- Y: Y步长(-18~18mm)
- 角速度: 角速度(-100~100°/s)
这里需要
功能: 按方向和步长移动参数:
- direction: 移动方向('前移(0~25)', '后移(-25~0)', '左移(0~18)', '右移(-18~0)')
- steps: 步长数值
- duration: 持续时间(ms)使用示例: move_set_step_time '前移(0~25)' 15 1000
功能: 旋转移动控制参数:
- dir: 旋转方向('逆时针', '顺时针')
- steps: 旋转步长(角度)
高级移动控制
功能: 转动到指定绝对角度参数:
- angle: 目标角度(相对于初始方向)
- step: 转动步长工作机制: 使用IMU反馈进行PID控制使用示例: move_set_angle 90 20
功能: 设置当前朝向为0度参考点
功能: 设置移动频率(速度模式)参数: mode - '正常', '慢速', '快速'
功能: 设置移动步态参数: mode - '对角', '行走', '高抬腿', '微调'
姿态控制函数
身体位置控制
功能: 设置机器人身体相对位置参数范围:
- X: -25~25mm
- Y: -18~18mm
- Z: 60~110mm
功能: 设置机器人欧拉角姿态参数范围:
- X: 横滚角(-20~20°)
- Y: 俯仰角(-20~20°)
- Z: 偏航角(-12~12°)
功能: 姿势平移控制参数:
- direction: 平移方向('X(-25~25)', 'Y(-18~18)', 'Z(60~110)')
- steps: 平移距离
功能: 姿势旋转控制参数:
- direction: 旋转轴('X(-20°-20°)', 'Y(-20°-20°)', 'Z(-12°-12°)')
- angle: 旋转角度
腿部控制函数
位置控制
功能: 设置指定腿部足尖位置参数:
- leg: 腿部标识('左前', '右前', '右后', '左后')
- X: X坐标(±20mm)
- Y: Y坐标(±15mm)
- Z: Z坐标(60-110mm)
功能: 直接设置腿部舵机角度参数:
- angle1: 上舵机角度(-30°~30°)
- angle2: 中舵机角度(-70°~90°)
- angle3: 下舵机角度(-85°~50°)
功能: 前腿抬起动作执行效果: 前进抬高动作
功能: 后腿抬起动作执行效果: 后腿抬高动作
功能: 爬楼梯复合动作执行流程: 小步前进→前腿抬起→大步前进→小步前进→后腿抬起
机械臂控制函数
初始化函数
功能: 初始化机械臂参数参数:
- L1: 第一段臂长(mm)
- L2: 第二段臂长(mm)默认值: L1=120mm, L2=120mm
执行流程:
步骤1: 设置臂长参数
步骤2: 设置关节角度偏移量(补偿机械安装误差)[0, -5, -9, 36] 分别对应:
- 基座旋转偏移: 0°- 大臂关节偏移: -5°- 小臂关节偏移: -9°- 抓手偏移: 36°
步骤3: 初始化当前关节角度列表[0, 0, 0, 0] 初始角度状态
步骤4: 初始化末端位置坐标local 'arm_pos' ('[data:makeList]' 0 0 0 0 0) [x, y, z, rlen, th1] 末端位置状态
步骤5: 组装完整参数结构最终结构: [[L1,L2], [offsets], [angles], [positions], vision_angle, grab_angle]
机械臂坐标系控制
功能: 设置机械臂末端直角坐标位置参数:
- X,Y,Z: 直角坐标(mm)
- t: 运动时间(ms),默认时间0-10表示安装默认速度运行
功能: 相对于当前位置的坐标偏移参数:
- dx, dy, dz - 各轴偏移量
- t: 运动时间(ms),默认时间0-10表示安装默认速度运行
机械臂极坐标控制
功能: 极坐标系位置控制参数:
- rlen: 径向长度(mm)
- z: 高度(mm)
- t: 运动时间(ms)
功能: 极坐标偏移控制参数:
- dlen, dz - 径向和高度偏移量
- t: 运动时间(ms)
方向控制
功能: 设置机械臂基座旋转角度参数:
- th1: 旋转角度(°)
- t: 运动时间(ms)
功能: 相对角度偏移参数: dth1 - 角度偏移量使用示例: arm_set_polar_dir_offset 30 0
关节角度控制
功能: 设置三个关节角度参数:
- 下: 基座旋转角度(-175°~175°)
- 中: 第二关节角度(-50°~83°)
- 上: 第三关节角度(-90°~90°)
- t: 运动时间(ms)
抓取控制
功能: 控制机械爪开合参数:
- angle: 爪子角度(-40°完全张开 ~ 20°完全闭合)
- t: 运动时间(ms)
视觉角度
功能: 设置视觉观察角度参数:
- angle: 视觉角度偏移
- t: 调整时间
状态更新
功能: 更新机械臂位置状态作用: 计算并更新当前末端位置坐标
舵机控制函数
基础舵机操作
功能: 设置指定舵机角度参数:
- servo_id: 舵机编号(11-99)
- angle: 目标角度
功能: 读取指定舵机当前角度返回值: 当前角度值
舵机参数
功能: 获取舵机参数配置参数: idx - 舵机编号返回值: [寄存器地址, 最小角度, 最大角度]
功能: 设置所有舵机运动速度参数: val - 速度值(1-255)
舵机功能控制
功能: 舵机扩展功能开关参数: able - 布尔值(true/false)
功能: 卸载所有舵机,使舵机处于有力度或者无力状态参数: mode - 布尔值
动作执行函数
预设动作
功能: 执行指定名称的动作参数: name - 动作名称('趴下', '站起', '匍匐前进', '转圈'等)
功能: 执行指定页面的动作参数: page - 页面编号(0-255)
传感器读取函数
按键读取
功能: 读取按键状态参数: button - 'A'或'B'返回值: 0(未按下)或1(按下)
IMU传感器
功能: 获取IMU姿态角度参数: euler - 'roll'(横滚), 'pitch'(俯仰), 'yaw'(偏航)返回值: 对应角度值
功能: IMU重置校准执行时间: 约5秒
电池状态
功能: 读取当前电池电量返回值: 电量百分比(0-100)
平衡控制
功能: 自平衡模式开关,机器狗自动控制四肢保持上半身处于水平状态参数: enable - 布尔值(true启用/false关闭)
辅助函数
数值映射
功能: 数值范围映射参数: 输入值和输出范围
数据转换
功能: 无符号数转有符号数参数: val - 0-255范围的数值返回值: -128到127的有符号数
三角函数
m_sin(my_angle)
功能: 正弦函数(角度制)参数: my_angle - 角度(放大100倍)
m_cos(my_angle)
功能: 余弦函数
m_tan(my_angle)
功能: 正切函数
m_arcsin(val)
功能: 反正弦函数
m_arcos(val)
功能: 反余弦函数
m_arctan(x, y)
功能: 反正切函数
