5.1.2 走跑控制

走跑控制接口提供了机器人走跑速度控制的核心功能。

控制功能

  • 支持基于横向速度、纵向速度、偏航角速度(YawRate)的走跑控制

  • 支持对多个控制输入源的动态管理、优先级仲裁

走跑控制话题

话题名称

数据类型

描述

QoS

频率

/aima/mc/locomotion/velocity

McLocomotionVelocity

走跑控制

-

-

  • McLocomotionVelocity ros2-msg @ mc/motion/McLocomotionVelocity.msg

    # 走跑控制
    # 话题名称: /aima/mc/locomotion/velocity
    
    MessageHeader header             # 消息头
    string source                    # 输入源名称,二开自定义, 注意不要和其他模块使用同一名称, 见下方说明
    float64 forward_velocity         # 前进/后退速度 (m/s), 前进为正
    float64 lateral_velocity         # 左右侧移速度 (m/s), 左为正
    float64 angular_velocity         # 偏航角速度 (rad/s), 逆时针为正
    

    注意此处开发者为走跑控制消息的发布者, 和原生系统内其他模块发出的走跑控制信号(如遥控等)存在竞争冲突的可能。

    运控体系提供了针对多输入源的管理机制, 通过优先级实时仲裁控制冲突。

    开发者需注册自定义的输入源并用于走跑控制指令的source

    详见下节MC控制信号设置

    走跑控制启动门限制说明:

    当机器人静止时, 初始迈步需要开发者下发的目标速度值高于一定门限, 其后保持运动阶段才可以使用更小的目标速度值。目标速度值由forward_velocity, lateral_velocity, angular_velocity计算合成, 使用单一控制量时的门限参考值见下表

    目标速度类型

    启动门限

    其他说明

    forward_velocity

    0.09

    前向后退

    lateral_velocity

    0.17

    绝对值, 左右移均可

    angular_velocity

    0.03

    绝对值, 左右旋均可

编程示例

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

安全注意事项

警告

运动控制限制

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

  • 行走控制前需要先注册输入源

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

备注

最佳实践

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

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

  • 注意速度控制的平滑性和连续性