“不辜负时间的馈赠!”
延用工作空间test2_ws;
功能包demo3_urdf存放代码;
urdf的代码放在demo3_urdf/urdf/urdf/urdf_rviz1.urdf中;
launch代码放在demo3_urdf/launch/urdf_rviz1.launch中;
配置urdf_rviz1.rviz存放在demo3_urdf/config/rviz/urdf_rviz1.rviz中。
介绍
- URDF:用来描述机器人模型结构的文件,包括部件以及部件之间的关系。用rviz或者gazebo可完成可视化。
- RVIZ:一种ros的三维可视化工具,可以获取传感器信息。
编写urdf文件,编写launch文件(用rviz打开urdf),设置rviz可视化的相关配置,保存配置,导入配置到launch中,下次再打开就可以不用重新配置。
基本流程
我们先来显示一个简单球形,熟悉一下基本流程。
1、文件结构
- 生成功能包,导入依赖urdf xacro
catkin_create 包名 urdf xacro
- 进入功能包分别生成以下文件夹:urdf launch config meshes
urdf :存放urdf文件
launch: 存放launch文件
config : 保存rviz的配置
meshes : 渲染,皮肤或者引入其他文件模型.stl等。
- 在urdf文件夹下在生成一个urdf文件夹 例如:包/urdf/urdf/xxx.urdf,这里才是我们存放urdf文件的地方。
- 在config下再生成rviz文件夹,这里才是我们保存rviz配置的地方。
2、编写URDF
urdf_rviz1.urdf代码:
<robot name="ball">
<link name="base_link">
<visual>
<geometry>
<sphere radius="0.3" />
</geometry>
</visual>
</link>
</robot>
3、编写launch文件(未导入配置)
urdf_rviz1.launch代码:
<launch>
<!-- 设置参数 -->
<param name="robot_description" textfile="$(find demo3_urdf)/urdf/urdf/urdf_rviz1.urdf" />
<!-- 启动 rviz -->
<node pkg="rviz" type="rviz" name="rviz" />
</launch>
4、编译运行launch文件
- 工作空间下catkin_make
- 运行
roslaunch demo3_urdf urdf_rviz1.launch
5、配置rviz并保存
经过4后,自动打开的rviz如下,可以看到什么都没有
a. 添加机器人模型
点击add,选择RobotModel,点击ok,可看到如下:
b.更改fixed frame
可以看到robotmodel报错,因为我们urdf中的link是base_link,而这里是map,更改一下就行(双击map,键入base_link),如下::不再报错:
c.保存该配置
点击shift+Ctr+s,保存到我们的工作空间test2_ws/demo3_urdf/config/rviz/下命名为:urdf_rviz1.rviz。
6、修改launch文件(导入配置)
可以看到唯一的改变就是导入我们刚才保存的.rviz文件,它的区别在于:
如果不导入配置,再次运行launch文件,我们会看到一张空地图,就需要再运行第5步中的a,b才可以
如果导入,以后运行launch文件,就是配置的最终模样,不用重新配置。
<launch>
<!-- 设置参数 -->
<param name="robot_description" textfile="$(find demo3_urdf)/urdf/urdf/urdf_rviz1.urdf" />
<!-- 启动 rviz -->
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find demo3_urdf)/config/rviz/urdf_rviz1.rviz" />
</launch>
其他
下节我们将具体记叙配合rviz的urdf文件的语法和元素。
还有24小时30分钟就1月1日了,祝大家梦想成真,西安连续5天新冠确诊新增>150,早点好起来吧。