本帖最后由 Yuan 于 2020-12-11 15:37 编辑
02 Roban关节运动模型
1 机器人坐标系
机器人做各种动作时需要驱动机器人各关节的电机动作。为描述机器人各种动作的 实现过程,使用如下图(图 1.4 Roban 机器人坐标系示意图)所示的笛卡儿坐标系。其中 x 轴指向机器人身体前方,y 轴为机器人由右向左方向,z 轴为垂直向上方向。
2 关节运动分类
对于连接机器人两个身体部件的关节来说,驱动电机实现关节运动时,固定在躯干 上的部件是固定的,远离躯干的部件将围绕关节轴旋转。沿 Z 轴方向的旋转称为偏转(Yaw),沿 Y 轴方向的旋转称为俯仰(Pitch),沿 X 轴方向的旋转称为横滚(Roll)。沿关节轴逆时针转动角度为正,顺时针转动角度为负。
3 关节命名规则
关节按照先脚后手的ID 顺序进行命名,为了实现一些动作可能需要不同关节相互配合才可以实现,其中Roban 机器人的各关节的ID 数值下图(图 1.5 Roban 机器人关节 ID 分布)中所示:
4 Roban的自由度
机器人可以独立运动的关节称为机器人的运动自由度,简称为自由度(Degree of Free- dom, DOF),Roban 机器人的头部有两个关节,可以进行偏转和俯仰运动,因此头部的自由度为 2。Roban 机器人除了具有运动自由度之外,每个手还可以张开或闭合,各具有一个自由度,因此Roban 共具有 22 个自由度。
03 Roban控制框架
基于 ROS 操作系统,Roban 机器人构建了底层和中间层的用于操作机器人的 API, 通过这些 API 可以方便地对机器人运动、语音、视频等方面进行操作,满足机器人的使用需求。在应用层的开发中可以使用任意一种 ROS 所支持的语言对于应用层程序进行开发,都可以达到正确的控制机器人行为的目的。通过对于这些相关 API 的调用,可以在不了解执行器具体原理的情况下方便开发出机器人的应用程序。
尽管Roban 的各个不同模块相互之间差异很大,但在使用的过程中使用 ROS 的MSG 和Service 机制,采用标准的 ROS 消息机制来表示信息,而且各个模块的权限管理机制也是相似的,这种方式使得在调用不同的 API 时具有相似的编程模式,这样降低了 Roban 程序设计的复杂性。
在机器人上的开发可以使用C++、Python 或者其他ROS 支持的编程语言,但是不管使用哪种编程语言,实际的编程方法都是相似的,为了便于使用者调试,建议用户在开 发应用的过程中使用python 语言进行行为层的控制,而对时间和效率敏感的控制代码用C++ 实现,以提高运行率。
|