“🎆🎆🎆这是一场盛大的开始!🎆🎆🎆”
本文章是基于赵虚左老师的ROS教程的学习总结,属于作者的学习笔记。如有错误不足,请不吝指点,十分感谢!😊😊😊
urdf-rviz
项目中的文件夹及其功能
1.launch:编写launch文件
2.urdf:编写urdf文件
3.meshes:渲染的皮肤贴纸
4.config:储存配置项添加对rviz的优化
在rviz中将需要保存的配置选择保存至该功能包下的
config
文件中,并在launch
文件中传入参数,例如我在学习的案例中的使用格式,即将args="-d $(find 包名)/config/show_mycar.rviz"
URDF语法理解
Visual
link标签
使用简单的模型以及例程来实现对于基本标签的理解
joint标签
urdf 中的 joint 标签用于描述机器人关节的运动学和动力学属性,还可以指定关节运动的安全极限,机器人的两个部件(分别称之为 parent link 与 child link)以“关节”的形式相连接,不同的关节有不同的运动形式:旋转、滑动、固定、旋转速度、旋转角度限制……
但是限制了中文注释,需要注意在使用中去除其中需要注意的是关于不同link之间的joint坐标计算
- joint偏移量都是计算的两个link之间的物理中心,距离单位:m。
- 所有计算都是相对于
parent link
的轴距离计算- 坐标系参考右手坐标系
- 在所有的link中一般偏移量都是默认的,需要不同link的空间偏移的话在
joint
中计算使用
在
launch
文件中修改<launch> <!--1.在参数服务器中载入urdf文件--> <!--textfile : 直接指向urdf 将整个urdf转入到参数服务器中--> <param name="robot_description" textfile="$(find urdf01_rviz)/urdf/urdf/demo03_joint.urdf"/> <!-- 2.启动 rviz --> <node pkg="rviz" type="rviz" name="rviz" args="-d $(find urdf01_rviz)/config/show_mycar.rviz"/> <!-- 机器人以及关节发布节点 需要着重注意 --> <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" /> <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" /> <!-- 添加控制关节运动节点 --> <!-- <node pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" >name="joint_state_publisher_gui" /> --> </launch>
最终效果如下:
添加base_footprint link来实现对于模型的优化------解决模型下沉的问题(base_footprint & link2footprint)
<!-- set a link to solve the problem of the base_link sink --> <link name="base_footprint"> <visual> <geometry> <box size="0.001 0.001 0.001" /> </geometry> <origin xyz="0 0 0" rpy="0 0 0" /> <material name="car_color"> <color rgba="0.6 1 1 0.5" /> </material> </visual> </link>
<!-- base_footprint & base_link --> <joint name="link2footprint" type="fixed"> <parent link="base_footprint" /> <child link="base_link" /> <origin xyz="0 0 0.05" rpy="0 0 0" /> </joint>
事实上在实际实现中,为了避免高度重复的设置以及人工计算错误问题,我们需要下一步优化改进。引入了xacro,编写更加安全,方便的代码实现!在此还有两个标签因为没有使用上便不进行介绍了。
Collision(碰撞属性)
Inertial(惯性矩阵)