gazebo构建仿真场景并制作机器人模型
仿真软件介绍与制作sdf模型文件:https://blog.csdn.net/kevin_chan04/article/details/78467218
构建仿真场景:https://blog.csdn.net/qq_36355662/article/details/80030372
编写xacro仿真模型文件和rvizlaunch文件:https://zhuanlan.zhihu.com/p/67741739
gazebo中构建一个仿真的地图非常的简单,因为他提供了很多的地图模型,可以直接拖到界面中使用,但是首先需要下载相关的模型:
1.模型下载1、直接从终端下载,执行以下命令
cd~/.gazebo/
mkdir-pmodels cd~/.gazebo/models/ wgethttp://file.ncnynl.com/ros/gazebo_models.txt wget-igazebo_models.txt lsmodel.tar.g*|xargs-n1tarxzvf
2.利用百度网盘和国内官网下载
全部模型有大约200多M,但在线下载速度非常慢,晚上离开实验室早上来了就下完了。不过现在小伙伴已经将其共享至网盘,可直接下载,然后将其解压至~/.gazebo/models里。
链接:http://pan.baidu.com/s/1pKaeg0F密码:cmxc(来自rosclub.cn)
百度网盘和国内官网并没有及时保持和官网同步更新,推荐大家还是通过官网下载,实在是慢的话可以通过百度网盘和ExBotROS专区下载。
下载后把文件放在.gazebo下的models
1.1制作简单的场景地图制作简单的矩形场地可以直接进入Edit-->BuildingEditor,然后选择墙壁拖拽即可,如图所示,编辑完成之后选择File-->saveas-->选择目录,编辑名字,即可保存一个文件夹,里面有两个文件后缀名分别为.config和.sdf格式。再次点击File-->exit,点击确认之后退出,再次点击File->SaveWorldAs选择目录即可保存地图,地图格式为xxx.world。
2.制作机器人模型2.1定义机器人主体部分
为了在gazebo中导入机器人模型,你需要先完成URDF模型。在这里我们将使用.xacro文件,虽然这可能更复杂,但是对于代码开发来说其功能非常强大。
我们首先将机器人的经常用到的值,使用变量进行定义,主要包括常用常数以及机器人属性:
接下来进行颜色定义:
通过宏定义机器人的轮子,方便代码复用:
定义机器人的支撑轮:
定义机器人主体:
中内容为在rviz 中显示相应的模型,collision中的内容为gazebo中的物理模型。
并为该关节设置物理惯性设置机器人主体与地图的关联,地图为parent,主体味child,相对关系有originxyz确定
完整代码如下:
Gazebo/Graytransmission_interface/SimpleTransmissionhardware_interface/VelocityJointInterfacehardware_interface/VelocityJointInterface1Gazebo/BlackfalseGazebo/YellowDebugtrue1truetrue100.0trueleft_wheel_jointright_wheel_joint${wheel_joint_y*2}${2*wheel_radius}1301.8cmd_velodomodombase_footprint2.2编写激光雷达模型文件lidar_gazebo.xacro文件
Gazebo/Black000000false5.53601-330.106.00.01gaussian0.00.01scanlaser_link2.3编写主文件mbot_with_laser_gazebo.xacro
3.rvizlaunch文件编写这里我们首先验证,其是否可以在rviz中进行显示,编写rviz的launch文件。
joint_state_publisher、robot_state_publisher、rviz是进行机器人仿真的必备节点。
同时运行我们刚刚设定好的xacro文件以及关节控制插件:
rvizlaunch文件完整内容:mbot_laser_gazebo.launch文件,并加载自己构建的地图rectangle2.world