对NAO的手臂控简单控制
程序员文章站
2022-07-14 22:09:35
...
对NAO的手臂控简单控制
开启/关闭走路时手臂的摆动
如何才能控制NAO的手臂呢?官方文档中给出了一段代码介绍:
这段代码中给出了如何控制NAO走路时是否摆动手臂,可以说是很简单了。难点在于怎么控制它的手臂固定在自己想要的角度呢?这就要用到另外的代码了。
设置角度
文档中有个在ALMotion库下的API叫做angleInterpolationWithSpeed可以通过传入一些参数进行控制,样式如下:
motionProxy.angleInterpolation(names, angleLists, targetAngles, maxSpeedFraction)
其中names可以是身体或关节名,targetAngles是弧度制下的一串角度,maxSpeedFraction可以通过传入小数控制动作速度。
那么问题就来了,如果我们想给手臂设置姿势,那么就需要对它传值,可这个list该怎么写呢?
从图片中我们可以看出,NAO的一个手臂上有六个关节控制,也就是说我们要传的list应该有6个值。经过我的测试,顺序如下:
Arm = [LShoudlerPitch,LShoudlerRoll,LElbowYaw,LElbowRoll,LWristYaw,LHandle]
以左臂为例,我们只要将部位名称、角度值列表、速度传入即可:
motionProxy.angleInterpolationWithSpeed("LArm",Arm, 0.1)
但是后来我又发现了另一种方法同样可以控制手臂的角度,虽然比这个函数好理解一些,但是稍微有些麻烦,即通过setAngles函数设置角度值。但是因为时间关系,我并没有去实现,希望有人可以自己实现一下。
推荐阅读