【Nao V6】其他——SpecialAction

前言

~

正文

添加SpecialAction
  • 在 \Src\Representations\MotionControl\SpecialActionRequest.h 中名为SpecialActionID的ENUM对象中添加一个新的action
  • 在 \Config\mof 目录下添加一个空文件,命名为 ${actionName}.mof
  • 在 \Config\mof 下的extern.mof添加一个action入口
  • 在 \Config\Scenaios\Default下的specialActions.cfg中声明,格式如下:
mof 语法

1.每个mof文件必须声明此action的名字,mof文件的第一行添加motion_id = {actionName}
2.文件中的空行随意,以 英文双引号" 开头表示注释掉此行
3.在mof文件中必须有一个label start, 通常以 label+{name} 表示标签,作为mof文件之间的跳转节点
4.节点转换: transition,通常为 transition {mof1} {mof2} {label}。有一个可表示任意mof的allMotions。例如 transition standup standup start, 表示程序到此处时,若正在执行名为standup的mof时,跳转到standup的mof中名为start的label。而transiton allMotions standup start, 表示程序到此处时,直接跳转到standup的start。
5.关节角度设置,一行有28个值,分别用空格隔开,前26个为不同的关节的角度(单位为度),接着的一个表示是否采用插值(用0表示不使用插值,1表示采用插值),最后一个表示此动作经历的时间(ms)。其中前26个关节角度除了数字之外,还有两种方式 -和*(其中 - 表示‘关闭此关节’,* 表示关节动作和刚执行的一步的角度相同)。当倒数第二位为0(不采用插值)时,关节运动瞬间到预设值然后延时直到此步动作执行完(超过最后一位设置的ms)。若倒数第二位为1(采用插值),关节运动会较为平滑,隔一段时间运动一个角度,在动作结束时刚好到达预设值。
6.刚度设置, 一行以stiffness开头,后面接了27个值,前26个表示关节,最后一个表示插值和时间(为0时表示不插值,为其他数字时表示采用插值的ms时间,相当于将上面的两个值合并为一个)。前面的26个数的取值范围为0~100,若为*时,表示刚度为默认值。数值越大,关节越"硬"。当刚度设置为采用插值且同一动作需要不同的刚度时,若第一个刚度时间结束且刚度还没有到达预设值时,则会跳转到下一个刚度描述语句,以前面的语句结束时的刚度为初始值,重新插值,而不是等前面一个执行完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值