NAO团队任务——运动控制(1)

这篇博客详细介绍了NAO机器人的关节控制,包括头部和臂部的关节及其运动范围,以及关节控制的插值和反应式方法。同时,文章解析了几个具体的任务操作,如右臂挥动、头部转动和行走,并提到了在实现过程中遇到的almath引用问题及其解决办法。
摘要由CSDN通过智能技术生成


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.
  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
当出现"ImportError: No module named urllib3"错误时,通常是因为缺少urllib3模块。urllib3是一个Python的HTTP库,用于发送HTTP请求和处理HTTP响应。要解决这个错误,你可以尝试以下几种方法: 1. 确保urllib3已经安装:首先,你需要确保urllib3模块已经安装在你的Python环境中。你可以使用以下命令来检查urllib3是否已经安装: ```shell pip show urllib3 ``` 如果没有安装,你可以使用以下命令来安装urllib3: ```shell pip install urllib3 ``` 2. 检查Python环境:有时候,"ImportError: No module named urllib3"错误可能是因为你的Python环境没有正确配置。你可以尝试重新安装Python或者更新到最新版本的Python来解决这个问题。 3. 检查模块名称:有时候,错误信息可能是因为你在代码中错误地引用了urllib3模块。请确保你在代码中正确地引用了urllib3模块,例如: ```python import urllib3 ``` 4. 检查模块路径:如果你的代码中引用了urllib3模块,但是仍然出现"ImportError: No module named urllib3"错误,那么可能是因为Python解释器无法找到urllib3模块的路径。你可以尝试将urllib3模块所在的路径添加到Python解释器的搜索路径中,例如: ```python import sys sys.path.append('/path/to/urllib3') import urllib3 ``` 这些方法中的任何一种都可能解决"ImportError: No module named urllib3"错误。如果问题仍然存在,请提供更多的上下文信息,以便我们能够更好地帮助你解决问题。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值