当前位置:   article > 正文

机器人Gazebo仿真应用_gazebo怎么导入模型

gazebo怎么导入模型

  Gazebo是一个优秀的功能强大开源物理环境仿真平台,具备强大的物理引擎,高质量的图形渲染等优异优点,可在机器人和周围环境加入多种物理属性,对机器人传感器信息通过插件形式加入仿真,并以可视化的方式进行显示。通过终端命令“roscore”启动ROS,重新打开一个终端,“rosrun gazebo_ros gazebo”启动Gazebo界面。

3e67ddb3094f4804b421bfecb0c44bcf.png5.1构建仿真环境,仿真环境的构建有两种方法:

  <1>.直接插入模型,通过下载GitHub网站共享模型文件将其放置到.gazebo/models路径下,终端输入命令“git clong https:github.com/osrf/gazebo_models.git”进行模型远程下载,模型较多,保持网络流畅,建议连接手机热点进行下载,耐心等待,下载完成后在主目录下生成gazebo_models文件,在usr/include/gazebo-9/gazebo目录下打开终端输入命令“sudo mkdir -p models”在gazebo目录下生成models文件夹,Ctrl+alt+t重新打开终端,命令“sudo mv gazebo_models/ /usr/include/gazebo-9/gazebo/models”将下载的模型文件拷贝到.gazebo/models路径下,启动Gazebo,在左侧模型列表中,在insert选项下选择“Add Path”选项,选中.gazebo/models目录下的gazebo_models模型文件夹,点击对话框右上角“open”,返回Gazebo界面在右侧模型列表下产生一系列仿真环境模型,选择适用模型放置在主显示区中。

c089e50d3f9c4f97a029c14fd1cac926.png

85b3a01e6bc1460fb08ad51fa4791c84.png 

a685815f074b4dadba7addf94a05e3c8.png

d5efc4a9969d474ba6d78e471117fb76.png9d6154ac281949a29e9b3d02448502aa.png 

  <2>.Building Editor,使用Gazebo提供的Building Editor工具手动绘制地图,在Gazebo左侧选项栏中选择“Edit”→“Building Editor”,可以打开如图界面,选择左侧绘制选项在上侧窗口鼠标绘制,下侧窗口实时显示仿真环境。

596b4215e20a4347abad7b54ead04c1d.png

67666be810a5422da20d4c33b7a03f18.png5.2在Gazebo中机器人模型的导入

  模型导入之前要为机器人模型添加Gazebo属性,分别包括<1>.为link添加<gazebo>标签,仅包含material参数设置外观颜色,默认模型灰白色。<2>.添加传动装置,通过加入驱动机器人运动的动力源调节两轮驱动速度比例,进而完成一系列动作,需要在模型中加入<transmission>元素使用ROS控制器驱动机器人,将传动装置与joint绑定。<3>.为使机器人完成在Gazebo中的运动仿真,需要使用Gazebo控制器插件,帮助模型绑定ROS信息,完成传感器的仿真输出以及对电机的控制,Gazebo已经提供了一个用于差速控制的插件libgazebo_ros_diff_drive.so,将其应用到现有机器人模型上需要添加插件声明。(添加Gazebo属性的模型文件放置在源码ros_exploring/robot_mrobot/mrobot_gazebo功能包文件夹下)ee8a26a1edea496682224835a3e0aad2.pngb4a57c3363da4daebf1af5bf48409378.pngba217388711646c4b8a928a67f96ddb7.png  为机器人添加完成一系列Gazebo属性后,终端输入命令“roslaunch mrobot_gazebo view_mrobot_gazebo.launch”通过launch启动文件运行Gazebo加载机器人模型,一切正常,外观蓝色的机器人模型成功加载到仿真环境中。0624f33c999c44fa90ea8dd2597c6678.pngfadbb1bdb72b46f28d113197da751a97.png5.3控制机器人在Gazebo中运动

  机器人模型中已经加入libgazebo_ros_diff_drive.so插件,在catkin_ws目录下设置环境变量后终端输入“rosrun teleop_twist_keyboard teleop_twist_keyboard.py”启动键盘控制节点控制机器人在Gazebo中运动,键盘按键同Rviz仿真,运动过程中对于小型障碍物机器人可进行推动,对于大型障碍物机器人将难以运动。58f106ee83d14a4c810480aa145e5f0e.png 902a6fe6e2864cc1ac28ced8bb20e6f9.png

5.4传感器仿真

  在rviz+ArbotiX仿真环境中,机器人装配的传感器模型并无法获取任何环境数据,Gazebo提供了一系列传感器插件获取仿真环境传感信息,以摄像头模型为例,为摄像头模型添加Gazebo插件,类似于机器人模型中的差速控制器插件,传感器插件也需要在URDF文件中配置,复制mrobot_description中的传感器模型到mrobot_gazebo包中,在摄像头模型文件中添加两个<gazebo>相关标签,第一个<gazebo>设置摄像头模型material外观,在第二个<gazebo>标签中,<sensor>标签包含传感器各种属性,<camera>标签具体描述摄像头参数,最后使用<plugin>标签加载摄像头插件libgazebo_ros_camera.so,同时设置插件参数。(摄像头插件配置完成的机器人模型文件mrobot_with_camera.urdf.xacro)1c51a0c1a9024c35bdf21658a961c5be.pngd656633ed26d4a9da4664db1211f1fa0.png    摄像头插件配置完成后,终端“roslaunch mrobot_gazebo view_mrobot_with_camera_gazebo.launch”在Gazebo加载配置了摄像头的机器人模型,终端输入命令“rqt_image_view”,在对话框中选择仿真摄像头发布的图像话题/camera/image_raw,即可显示摄像头观测到的图像信息,同时配合键盘控制节点控制机器人运动,可实现运动过程中实时显示摄像头捕捉到的环境信息。5cf7a22b41db4a2d9cee6bc7cb8b3a74.png934778dcb06c49ebb94a4f9a63675f00.png  5.5SLAM建图

  由于机器人在Gazebo中使用激光雷达进行SLAM仿真效果更好,最终建立的地图几乎和仿真环境一致,为方便后期仿真工作,因此此处也针对于激光雷达传感器进行操作。同样采取类似于摄像头传感器的操作方式,在自定义完成激光雷达模型后添加激光雷达插件,其中<gazebo>标签中在<ray>标签中设置雷达参数,使用<plugin>标签中加载激光雷达插件libgazebo_ros_laser.so,使模型在Gazebo环境中具有雷达的仿真功能。(激光雷达插件配置完成的机器人模型文件mrobot_with_rplidar.urdf.xacro)d8845e37f3bc4e54b7b6a89fad5c348a.png    激光雷达插件配置完成后,终端“roslaunch mrobot_gazebo view_mrobot_with_laser_gazebo.launch”在Gazebo加载配置了激光雷达的机器人模型,终端打开Rviz查看激光雷达数据,在rviz中设置“Fixed Frame”为“base_footprint”,在“add”中添加一个LaserScan类型的插件,修改插件订阅话题为“/scan”,便可在Rviz界面中显示激光雷达数据。ed0d16ff2d914b12b369af60df59fae7.png533e35c433a24f019c9766397cd98a22.png6ff3b0a07c9e45379f270e34a7298e38.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号