7.2 动作播放部分
7.2 动作播放部分
Section titled “7.2 动作播放部分”7.2.1 整体介绍
Section titled “7.2.1 整体介绍”A2 青春款提供了基本的预设动作播放能力,机器出厂自带部分预设动作(此外还可以通过遥操作设备进行动作录制,满足更多个性化需求,相关内容请查阅遥操作相关文档),自带预设动作列表如下:
双手挥手/双手挥手右手挥手/右手挥手右手握手/右手握手右手握手_长/右手握手_长向右张望/1758103570432482028向左张望/1758103588180395683左手挥手/左手挥手左手握手/左手握手左手握手_长/左手握手_长摆拍_我是大力士/摆拍_我是大力士敬礼/敬礼环顾四周/1758103607745291736看双手/1758104272873252746看右手/1758104294863353043看右臂/1758103484383524451看左手/175810431583786588看左臂/1758103505321711264以上动作文件位于 x86 的 /agibot/data/resources/default/motion/motion_player/default 目录下,自定义录制的动作应放置于 /agibot/data/resources/default/motion/motion_player/custom 目录下。以上列表通过在对应目录下指定如下命令获得
find . -name "*.db" -type f | sed 's|^\./\([^/]*\)/\(.*\)\.db|\1/\2|' | sort具体动作效果可以使用后续章节提供的运控仿真进行查看,或直接使用真机进行查看。
机上的动作播放由 motion_player 模块进行,该模块会在 JOINT_SERVO 模式下对手臂和脖子关节进行控制,基本控制原理为读取并解算指定的动作文件,按照 100 Hz 播放动作文件,发送 /motion/control/arm_joint_command 和 /motion/control/neck_joint_command 给到运动控制模块,由运控模块进行相应动作。
7.2.2 动作播放 RPC 接口
Section titled “7.2.2 动作播放 RPC 接口”| 接口名 | pb:/aimdk.protocol.MotionCommandService/SendMotionCommand |
|---|---|
| 功能概述 | 播放指定动作文件 |
| 接口类型 | HTTP JSON RPC |
| URL | http://127.0.0.1:56444/rpc/aimdk.protocol.MotionCommandService/SendMotionCommand |
| 入参 |
|
| 出参 |
|
| 示例脚本 | examples/motion_player/send_motion_id.sh |
| 备注 | 本接口调用码为 T2,仅可在 JOINT_SERVO 后缀的运控 Action 下调用 |
7.2.3 动作播放状态查询 RPC 接口
Section titled “7.2.3 动作播放状态查询 RPC 接口”| 接口名 | pb:/aimdk.protocol.MotionCommandService/GetMotionStatus |
|---|---|
| 功能概述 | 获取动作播放状态 |
| 接口类型 | HTTP JSON RPC |
| URL | http://127.0.0.1:56444/rpc/aimdk.protocol.MotionCommandService/GetMotionStatus |
| 入参 | |
| 出参 |
|
| 示例脚本 | examples/motion_player/get_motion_status.sh |
| 备注 | 本接口调用码为 T2,仅可在 JOINT_SERVO 后缀的运控 Action 下调用 |
7.2.4 禁用、开启动作播放模块 RPC 接口
Section titled “7.2.4 禁用、开启动作播放模块 RPC 接口”动作播放模块会在 JOINT_SREVO 模式下持续给运控发送 /motion/control/arm_joint_command 和 /motion/control/neck_joint_command 的控制指令,这时二开程序也发送指令会造成冲突问题,可以调用以下接口禁用和开启动作播放模块
| 接口名 | pb:/aimdk.protocol.MotionCommandService/DisableMotionPlayer |
|---|---|
| 功能概述 | 禁用动作播放模块,进程不会退出,不发送指令给运动控制模块 |
| 接口类型 | HTTP JSON RPC |
| URL | http://127.0.0.1:56444/rpc/aimdk.protocol.MotionCommandService/DisableMotionPlayer |
| 入参 | |
| 出参 |
|
| 示例脚本 | examples/motion_player/disable_motion_player.sh |
| 备注 | 本接口无调用码限制 |
| 接口名 | pb:/aimdk.protocol.MotionCommandService/EnableMotionPlayer |
|---|---|
| 功能概述 | 开启动作播放模块,开始持续发送指令给运动控制模块 |
| 接口类型 | HTTP JSON RPC |
| URL | http://127.0.0.1:56444/rpc/aimdk.protocol.MotionCommandService/EnableMotionPlayer |
| 入参 | |
| 出参 |
|
| 示例脚本 | examples/motion_player/enable_motion_player.sh |
| 备注 | 本接口无调用码限制 |
7.2.5 禁用、开启动作播放脖子控制 RPC 接口
Section titled “7.2.5 禁用、开启动作播放脖子控制 RPC 接口”有些情况下需要单独禁用脖子的动作播放功能,从而将脖子的控制权交给二开程序进行头部跟随等,可以调用如下接口进行禁用和开启动作播放的脖子控制。
| 接口名 | pb:/aimdk.protocol.MotionCommandService/DisableNeckMotionPlayer |
|---|---|
| 功能概述 | 禁用动作播放模块控制脖子电机,进程不会退出,不发送脖子指令给运动控制模块 |
| 接口类型 | HTTP JSON RPC |
| URL | http://127.0.0.1:56444/rpc/aimdk.protocol.MotionCommandService/DisableNeckMotionPlayer |
| 入参 | |
| 出参 |
|
| 示例脚本 | examples/motion_player/disable_neck_motion_player.sh |
| 备注 | 本接口无调用码限制 |
| 接口名 | pb:/aimdk.protocol.MotionCommandService/EnableNeckMotionPlayer |
|---|---|
| 功能概述 | 开启动作播放模块控制脖子接口,开始持续发送脖子控制指令给运动控制模块 |
| 接口类型 | HTTP JSON RPC |
| URL | http://127.0.0.1:56444/rpc/aimdk.protocol.MotionCommandService/EnableNeckMotionPlayer |
| 入参 | |
| 出参 |
|
| 示例脚本 | examples/motion_player/enable_neck_motion_player.sh |
| 备注 | 本接口无调用码限制 |