对NAO的手臂控简单控制

2019-12-17 17:44:37 浏览数 (1)

对NAO的手臂控简单控制

开启/关闭走路时手臂的摆动

如何才能控制NAO的手臂呢?官方文档中给出了一段代码介绍:

这段代码中给出了如何控制NAO走路时是否摆动手臂,可以说是很简单了。难点在于怎么控制它的手臂固定在自己想要的角度呢?这就要用到另外的代码了。

设置角度

文档中有个在ALMotion库下的API叫做angleInterpolationWithSpeed可以通过传入一些参数进行控制,样式如下:

代码语言:javascript复制
motionProxy.angleInterpolation(names, angleLists, targetAngles, maxSpeedFraction)

其中names可以是身体或关节名,targetAngles是弧度制下的一串角度,maxSpeedFraction可以通过传入小数控制动作速度。

那么问题就来了,如果我们想给手臂设置姿势,那么就需要对它传值,可这个list该怎么写呢?

从图片中我们可以看出,NAO的一个手臂上有六个关节控制,也就是说我们要传的list应该有6个值。经过我的测试,顺序如下:

代码语言:javascript复制
Arm = [LShoudlerPitch,LShoudlerRoll,LElbowYaw,LElbowRoll,LWristYaw,LHandle]

以左臂为例,我们只要将部位名称、角度值列表、速度传入即可:

代码语言:javascript复制
motionProxy.angleInterpolationWithSpeed("LArm",Arm, 0.1)

但是后来我又发现了另一种方法同样可以控制手臂的角度,虽然比这个函数好理解一些,但是稍微有些麻烦,即通过setAngles函数设置角度值。但是因为时间关系,我并没有去实现,希望有人可以自己实现一下。

0 人点赞