文章目录
老规矩先放张URDF机器人建模出的图片,养养眼smirk~
1. 机器人的定义与组成
ROS日常中最常见的机器人就是TurtleBot了叭↓
(1)定义
- 诞生
- 1920年捷克斯洛伐克作家卡雷尔·恰佩克在他的科幻小说《罗萨姆的机器人万能公司》中,根据Robota(捷克文,原意为“劳役、苦工”)和Robotnik(波兰文,原意为“工人”),创造出“机器人”这个词。
- 百度百科
- 机器人(Robot)是自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动。它的任务是协助或取代人类工作,例如生产业、建筑业,或是危险的工作。
- 美国机器人协会(RIA)
- 机器人是用以搬运材料、零件、工具的可编程序的多功能操作器或是通过可改变程序动作来完成各种作业的特殊机械装置。
(2)组成(控制的角度)
优质参考推荐
- 里程计 Odormeter https://www.cnblogs.com/21207-iHome/p/8066135.html
- 惯性测量单元IMU Inertial measurement unit https://blog.csdn.net/RoboChengzi/article/details/87720255
- 陀螺仪 Gyroscope https://www.cnblogs.com/liuzhenbo/p/10763558.html
- 加速度计 Accelerometer https://blog.csdn.net/lmonkey000/article/details/50884690
- 执行机构:人体的手和脚,直接面向工作对象的机械装置。
- 驱动系统:人体的肌肉和经络,负责驱动执行机构,将控制系统下达的命令转换成执行机构需要的信号。
- 传感系统:人体的感官和神经,主要完成信号的输入和反馈,包括内部传感系统和外部传感系统。
- 控制系统:人体的大脑,实现任务及信息的处理,输出控制命令信号。
补充:
什么是闭环? 闭环(闭环结构)也叫反馈控制系统,是将系统输出量的测量值与所期望的给定值相比较,由此产生一个偏差信号,利用此偏差信号进行调节控制,使输出值尽量接近于期望值。
常见的有对电机的闭环控制驱动板:
2. URDF建模方法
(1)什么是URDF?
- Unified Robot Description Format,统一机器人描述格式;
- ROS中一个非常重要的机器人模型描述格式;
- 可以解析URDF文件中使用XML格式描述的机器人模型;
- 包含link(近似与大臂和小臂,是不能旋转的)和joint(用于连接link)自身及相关属性的描述信息,外界的环境同样可以用URDF去描述。
示例:
<?xml version="1.0" ?>
<robot name="mbot">
<link name="base_link">
<visual>
<origin xyz=" 0 0 0 " rpy=" 0 0 0 " />
<geometry>
<cylinder length="0.16" radius="0.20" />
</geometry>
<material name="yellow">
<color rgba="1 0.4 0 1" />
</material>
</visual>
</link>
<joint name="left_wheel_joint" type="continuous">
<origin xyz="0 0.19 -0.05" rpy="0 0 0" />
<parent link="base_link" />
<child link="left_wheel_link" />
<axis xyz="0 1 0" />
</joint>
<link name="left_wheel_link">
<visual>
<origin xyz="0 0 0" rpy="1.5707 0 0" />
<geometry>
<cylinder radius="0.06" length="0.025" />
</geometry>
<material name="while">
<color rgba="1 1 1 0.9" />
</material>
</visual>
</link>
</robot>
(2)link
- 描述机器人某个刚体部分的外观和物理属性;
- 描述连杆尺寸(size)、颜色(color)、形状(shape)、惯性矩阵(inertial matrix)(刚体运动时参照的参数)、碰撞参数(collision properties)(近似于描述刚体边界,会发生物理碰撞,在图中表现为一个浅色的边框(做了简化))等;
- 每个link会成为一个坐标系(便可以使用TF坐标变换)
刚体部分外观过于复杂时,可以使用SolidWorks建模,导出.stl文件
<link name="link_4">
<visual>
<geometry>
<mesh filename="link_4.stl" />
</geometry>
<origin xyz="0 0 0" rpy="0 0 0" />
</visual>
<collision>
<geometry>
<cylinder lenth="0.5" radius="0.1" />
</geometry>
<origin xyz="0 0 -0.05" rpy="0 0 0" />
</collision>
</link>