欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

对NAO的手臂控简单控制

程序员文章站 2022-07-14 22:09:35
...

对NAO的手臂控简单控制

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

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

对NAO的手臂控简单控制

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

设置角度

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

motionProxy.angleInterpolation(names, angleLists, targetAngles, maxSpeedFraction)

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

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

对NAO的手臂控简单控制

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

Arm = [LShoudlerPitch,LShoudlerRoll,LElbowYaw,LElbowRoll,LWristYaw,LHandle]

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

motionProxy.angleInterpolationWithSpeed("LArm",Arm, 0.1)

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

相关标签: nao