小白一枚,毕设突发奇想加入了ROS的内容,不知道自己还能不能毕业。以下均为通过看视频,翻博客等整理而成的笔记,并非我的原创。可能会出现一些报错的修改或者简单的代码是我自己做的。哈哈。
一些小白知识:
1.学习ros,实体机器人是必须的吗?NO.
2.什么是Gazebo?在gazebo中可以添加桌椅板凳,甚至创建道路。
3.需要什么?机器人建模:URDF。搭建仿真环境:gazebo。感知环境:rviz。
(一)URDF集成rviz
1.新建功能包,导入相关依赖。
新建工作空间DEMO05_WS
在工作空间的src文件夹下打开终端进行以下操作:
catkin_create_pkg urdf01_rviz urdf xacro
在urdir01_rviz文件夹下打开终端新建名为launch、urdf和meshes的三个文件夹,用于存储launch文件和urdf文件、meshes给机器人贴皮肤、config用于存储配置文件:
cd urdf01_rviz
mkdir launch
mkdir urdf
mkdir meshes
mkdir config
当然,以上也可以通过右键新建文件夹实现,今天我忘了带鼠标出来,用触摸板太虐心,只能通过命令实现了
2.编写urdf文件
在urdf文件夹下,新建两个文件夹,urdf和xacro,前者用于储存简单文件,后者储存升级文件
在urdf文件夹中,添加01.urdf文件,复制以下代码
<robot name = "mycar">
<link name = "base_link">
<visual>
<geometry>
<box size = "0.5 0.2 0.1" />
</geometry>
</visual>
</link>
</robot>
以上代码可以创建盒状机器人
3.launch文件
launch目录下新建文件01.launch
<launch>
<param name = "robot_description" textfile="$(find urdf01_rviz)/urdf/urdf/01.urdf" />
<node pkg = "rviz" type="rviz" name = "rviz" />
</launch>
第2行是在参数服务器载入urdf文件,第三行是启动rviz
完成后,回到DEMO01_WS目录,在终端执行以下操作:
source ./devel/setup.bash
roslaunch urdf01_rviz 01.launch
此时,rviz应当启动,如果没有则需要检查上述步骤是不是有错误。
配置:add-robotmodel-ok
Fixed Frame改为 base_link (图里忘了打下划线)
(二)优化
现在的问题是,当你下一次启动rviz时,还要进行上一步的诸多操作才能显示机器人模型,现在我们进行优化,省去上述操作。
点击File-Save Config As-保存在DEMO05_WS/src/urdf01_rviz/Config目录下,命名为show_mycar
现在要在01.launch中修改代码,使得每次运行时能够读取我们刚刚创建的配置文件
<launch>
<param name = "robot_description" textfile="$(find urdf01_rviz)/urdf/urdf/01.urdf" />
<node pkg = "rviz" type="rviz" name = "rviz" args="-d $(find urdf01_rviz)/config/show_mycar.rviz"/>
</launch>
优化完成。
(三)建立机器人模型
参考这位兄弟的文章: