Gazebo仿真平台

  本篇关于内容主要参照冰达机器人教程学习做的笔记:https://b23.tv/qiFLhjj

理论部分

  gazebo是3D仿真平台,是ROS官方指定的。gazebo适合仿真室内场景,对环节渲染或细节要求不是很高,主要是为了完成功能的仿真演示。

  环节模型可导入(官方提供一些场景model)也可自己进行设计(自己设置围墙建筑,最后保存为world后缀文件)

  与机器人相关可以人工修改的文件包括:urtf、xacro
  urtf文件描述robot,可在rviz中有显示,urdf中的标签在Gazebo中无法显示
  xacro文件描述gazobo中的标签,在urdf的基础上做改动,使机器人可以在gazebo中做显示

  通过gazebo插件为robot增加功能(相机、IMU、激光雷达可以直接去官网找)

  urdf的生成可以用soldworks,生成特殊3D机器人模型。图像化设置,会直接生成urdf文件夹

  urdf文件夹目录下执行命令:check_urdf 文件名(用于检查urdf的编写是否正确)

实验部分

基本环节搭建
注意:环境模型网址改变:https://gitee.com/bingda-robot/gazebo_models
gazebo基本操作步骤:
  1.导入预定场景模型(下载路径.gazebo/gazebo_models)
  2.自制场景模型(编辑后保存为world文件,可放置于bingda_tutorial的world文件夹又launch文件调用)
  roslaunch bingda_tutorials gazabe_world.launch
  3.自制robot用rviz显示
  roslaunch bingda_tutorials display_robot.launch
  4.自制robot+自制场景用gazebo显示
  roslaunch bingda_tuorials gazebo_robot.launch

gazebo中键盘控制机器人在预定场景运动:
  终端一:roslaunch bingda_tutorials simulation_robot.launch
  终端二:rqt_image_view
  订阅image_raw/compressed可以试试看到小车的监控画面
  终端三:rosrun teleop_twist_keyboard teleop_twist_keyboard.py
  使用u,i,o,j,k,l,m,<,>键盘控制完成

  rviz显示:
  1. Fixed Frame换成odom
  2. 增加TF, RobotModel,LaserScan

注意:LaserScan的Topic要变成/scan
   键盘控制可看到雷达变换

gazebo中键盘控制机器人在预定场景SLAM建图(2D,激光)
  终端一:roslaunch bingda_tutorials simulation_robot.launch
  终端二:roslaunch robot_navigation gmapping.launch simulation:=true
  终端三:roslaunch robot_navigation slam_rviz.launch
  终端四:rosrun teleop_twist_keyboard teleop_twist_keyboard.py
  使用键盘控制形成地图,保存地图命令为:
  roscd robot_navigation/maps/
  roscd map_server map_server -f map

gabebo键盘控制导航实验
  终端一:roslaunch bingda_tutorials simulation_robot.launch
  终端二:roslaunch robot_navigation navigation_stack.launch simulation:=true
  终端三:roslaunch robot_navigation navigation_rviz.launch
  可以在rviz中调整初始位姿和导航目标
  注意首先在~/.bashrc中设置 export BASE_TYPE=NanoCar,可更改,更改目录为gezabo_test/src/robot_navigation/param

你可能感兴趣的:(ROS,学习,人工智能,自动驾驶)