本篇关于内容主要参照冰达机器人教程学习做的笔记:
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