杭州有专业做网站的吗,如何做淘客推广网站,莱芜做网站的公司,网址导航的优缺点前言 在上篇中我们搭建了一个机器人模型(其由各个关节#xff08;joint#xff09;和连杆#xff08;link#xff09;组成)#xff0c;此篇我们会通过设置关节类型来实现机器人的活动。 在ROS中#xff0c;关节一般有无限旋转#xff08;continuous#xff09;,有限旋转…前言 在上篇中我们搭建了一个机器人模型(其由各个关节joint和连杆link组成)此篇我们会通过设置关节类型来实现机器人的活动。 在ROS中关节一般有无限旋转continuous,有限旋转revolute和滑动prismatic三种类型除了上述三种关节类型外ROS还支持其他类型的关节如planar平面关节允许在平面正交方向上平移或旋转和floating浮动关节允许进行平移和旋转运动等。这些关节类型提供了更复杂的运动学模型以支持更广泛的机器人设计和应用。
动动手 同样是在urdf文件中实现。[原文件06-flexible.urdf]
运行 按下面命令看看这个可活动的机器人效果如何。
$ros2 launch urdf_tutorial display.launch.py model:urdf/06-flexible.urdf 可以发现除了Rviz机器人模型出现外还有另外一个小窗口也弹了出来上一篇中也有只不过内容很少上面罗列了好几个关节joint的控制条我们可以尝试拖动这些滑动条看看机器人如何活动。
关节
头
joint namehead_swivel typecontinuousparent linkbase_link/child linkhead/axis xyz0 0 1/origin xyz0 0 0.3/
/joint 这里描述了头部关节的相关属性该关节连接了机器人身体base_link和头部head类型为continuous意味着可以无限制旋转(所有方向所有角度)受限于实际的物理限制往往不能做到全方位全角度旋转几个轮子关节的类型也是同样如此。需要注意的是我们从上面的代码中可以看到axis属性这指定了旋转轴x, y, z- (0, 0, 1)该头部节点只能绕着z轴转动。
抓手
joint nameleft_gripper_joint typerevoluteaxis xyz0 0 1/limit effort1000.0 lower0.0 upper0.548 velocity0.5/origin rpy0 0 0 xyz0.2 0.01 0/parent linkgripper_pole/child linkleft_gripper/
/joint 机器人的左右两只抓手关节类型都为revolute有限制角度的旋转通过limit属性我们指定了力矩effort单位Nm、最小最大角度lower/upper单位弧度、速度velocity实际过程中的值可能会与目标值不一致。 对于旋转关节revoluteeffort 通常表示的是力矩torque单位可能是牛顿·米Nm或磅·英尺lb-ft而不是牛顿N。牛顿N是力的单位而力矩是力和力臂的乘积用来描述力对物体绕某点旋转的效果。 对于滑动关节prismaticeffort 通常表示的是力force单位可能是牛顿N或磅lb。 抓臂
joint namegripper_extension typeprismaticparent linkbase_link/child linkgripper_pole/limit effort1000.0 lower-0.38 upper0 velocity0.5/origin rpy0 0 0 xyz0.19 0 0.2/
/joint 抓臂关节的类型设置成了prismatic滑动能起到让手臂伸缩的作用。对于滑动关节的属性lower和upper单位不再是弧度而是米。
其他 除了前面提到的关节类型还有两种关节能够在空间中移动。其中滑动关节prismatic joint只能沿一个维度移动而平面关节planar joint则可以在一个平面或者说两个维度上移动。此外浮动关节floating joint是不受约束的可以在三个维度中的任意一个维度上移动。这些关节不能仅用一个数值来指定因此在本教程中不包括它们。
姿态控制原理Rviz 在我们拖动滑动条时Rviz中的机器人关节也随着活动并带动与其连接的其他组件运动这是怎么实现的呢
GUI控制窗口解析urdf文件并确定各个活动关节及其限制GUI读取滑动条数值并发布sensor_msgs/msg/JointState消息节点robot_state_publisher利用这些消息数据计算不同模块之间的位姿转换Rviz最终通过转换树的信息数据进行显示转换后的机器人位姿。 后续的章节我们会添加一些物理属性到urdf中并利用xacroxml格式的宏来精简我们的代码。
本篇完。