NAO机器人由头、躯干、臂、手、腿、足等部件组成,连接两个部件的是 关节。大多数相连部件之间可以在两个甚至三个方向上做 相对运动,每个方向上的运动都是通过电机驱动机械结构完成的。
关节介绍
NAO使用旋转集合横滚(roll)、俯仰(pitch)和偏转(yaw)表示运动姿态,分别对应绕x、y和z轴方向上的旋转。每个关节名称由部件名称+姿态名称组成。
在描述关节的运动范围时,沿旋转轴顺时针方向转动为负,逆时针转动为正,单位为度或弧度。
头部关节
①HeadPitch:执行低头、仰头动作(绕x轴),其中低头最大幅度为29.5°,仰头最大幅度为-38.5°。
②HeadYaw:执行转头动作(绕z轴),其中头部左转的最大幅度为119.5°,头部右转的最大幅度为-119.5°。
以弧度表示运动范围时,HeadPitch的范围是[-0.6720,0.5149],HeadYaw的范围是[-2.0857,2.0857]。
臂部关节
臂部肢体通过肩部与躯干相连,包括肩关节,肘关节,腕关节和手,臂部所有关节都是左右对称的。做绕x轴旋转的相同关节动作时,左右两侧旋转角度互反。
肩关节动作:
①ShaulderRoll:执行左右臂侧上举动作(绕x轴),包括LShoulderRoll、RShoulderRoll,动作幅度范围左臂为[-180,76],右臂为[180.-76°],弧度范围为[-0.3142 ,1.3265]和[0.3142.-1.3265]。
受机械结构限制,双臂侧上举时达不到平举程度。
②ShoulderPitch:执行左右臂经体前前摆或后摆动作(绕y轴),包括LShoulderPitch,RShoulderPitch,左右臂动作幅度范围为[-119.5,119.50],弧度范围为[-2.0857,2.0857]。
肘关节动作:
①ElbowRoll:执行左右臂弯肘动作(绕x轴),包括LElbowRoll、RElbo.wRoll,动作幅度范围左肘为[-88.5°,-20],右肘为[2°,88.5°],弧度范围为[-1.5446,-0.0349]和[0.0349,1.5446]。
②ElbowYaw:执行左右肘转小臂动作(绕z轴),包括LElbowYaw、RElbowYaw,动作幅度范围为[-119.50,119.5°],弧度范围为[-2.0857,2.0857]。
腕关节动作:
①WristYaw:执行左右腕旋转动作(绕z轴),包括LWristYaw、RristYaw,动作幅度范围为[-104.50,104.5°],弧度范围为[-1.8238,1.8238]。
关节控制的主要方法
插值方法
该方法为阻塞调用,类似于动画,在起始位置和终止位置间定时插入若干中间值
方法名 | 说明 |
---|---|
angleInterpolation (names, angleLists, timeLists, isAbsolute) | 插值运动。names 是关节名称;angleLists是角度、角度列表或二维角度列表,单位为弧度;timeLists是为达到目标角度的时间、时间列表或二维时间列表;isAbsolute为True,代表绝对角度,为False,代表相对角度,默认是。 |
angleInterpolationWithSpeed(names, targetAngles, maxSpeedFraction) | 插值运动(带速度限制)。names是关节名称;targetAngles为弧度表示的角度或角度列表,maxSpeedFraction为最大速度百分比 |
举例:
#头部以绝对角度左转30°,执行时长1s,
motion.angleInterpolation('HeadYaw', 30*almath.