Skip to content

5.1.1 运动模式切换

模式切换与走跑控制接口提供了机器人运动模式切换和走跑控制等核心功能。

核心功能

支持基础运动模式切换进入:

模式取值说明使用场景
零力矩模式PASSIVE_DEFAULT机器人关节零力矩, 自由状态系统启动、维护, 软急停
阻尼模式DAMPING_DEFAULT关节有阻尼感安全移动
位控站立JOINT_DEFAULT位置控制站立精确关节位置控制
稳定站立STAND_DEFAULT主动发力确保站立动态平衡控制,行走/动作就绪状态
走跑模式LOCOMOTION_DEFAULT正常走跑日常移动

注意: v0.8.0+ 稳定站立与走跑模式采用一体化设计, 会根据运动控制情况内部自动切换

查询运动模式服务

服务名称数据类型描述
/aimdk_5Fmsgs/srv/GetMcActionGetMcAction查询运动模式
  • GetMcAction ros2-srv @ mc/action/srv/GetMcAction.srv
# 获取运动模式
# 服务名称: /aimdk_5Fmsgs/srv/GetMcAction

# 请求
CommonRequest request            # 通用请求

---

# 响应
ResponseHeader response          # 响应头
McActionInfo info          # 当前运动模式信息
* `McActionInfo` ros2-msg @ mc/action/McActionInfo.msg
# 运动模式信息
McAction current_action  # 当前运动模式(v0.8.2开始不再使用)
string action_desc  # 描述
McActionStatus status  # 运动模式的状态
  * `McActionStatus` ros2-msg @ mc/action/McActionStatus.msg
int32 value  # Action状态 (100:运行中, 200: 切换中)

设置运动模式服务

服务名称数据类型描述
/aimdk_5Fmsgs/srv/SetMcActionSetMcAction设置运动模式
  • SetMcAction ros2-srv @ mc/motion/srv/SetMcAction.srv
# 设置运动模式
# 服务名称: /aimdk_5Fmsgs/srv/SetMcAction

# 请求
RequestHeader header             # 请求头
string source                    # 输入源
McActionCommand command          # 运动命令

---

# 响应
CommonResponse response          # 通用响应, response.status.value为1表成功
* `McActionCommand` ros2-msg @ mc/motion/McActionCommand.msg
# McActionCommand
McAction action  # v0.8.2开始不再使用
string action_desc  # 模式描述

编程示例

详细的编程示例和代码说明请参考:

安全注意事项

警告

  • 请勿使用本节未提及的运动模式和模式描述设置

  • 模式切换需要确保机器人处于安全状态

  • 建议在仿真环境中先测试运动控制代码

  • 运控计算单元(PC1, 10.0.1.40)上切勿部署二开程序 , 以免影响运控等高实时要求的任务

小心

ROS的服务(service)机制在跨板通信时存在一些待优化问题, 二次开发时请参考例程添加异常处理、快速重试等保护机制

备注

最佳实践

  • 实现运动状态监控和异常处理

  • 建议实现运动控制的安全检查

📡 Gitee 私有仓库 | 📖 Cloudflare Pages | 基于 AGIBOT X2 平台构建