博客地址:https://www.cnblogs.com/zylyehuo/
gazebo小车模型创建及仿真详见之前博客
gazebo小车模型(附带仿真环境) – zylyehuo – 博客园
gazebo+rviz 仿真 – zylyehuo – 博客园
参考链接
Autolabor-ROS机器人入门课程《ROS理论与实践》
成果图
step1: 准备工作
安装必要工具包+创建工作包
- 安装 gmapping 包(用于构建地图):
sudo apt install ros-melodic-gmapping
- 安装地图服务包(用于保存与读取地图):
sudo apt install ros-melodic-map-server
- 安装 navigation 包(用于定位以及路径规划):
sudo apt install ros-melodic-navigation
创建文件夹及文件
按下图结构在 nav_demo 下依次创建
文件夹: config(也可按照步骤之后创建)、map(也可按照步骤之后创建)、launch
文件:nav01_slam.launch、nav02_map_save.launch、nav03_map_server.launch
/home/yehuo/mycar_ws/src/nav_demo/launch/nav01_slam.launch
step2: 仿真环境运行 + SLAM建图
(1)编译+启动 gazebo 仿真环境
source ./devel/setup.bash
roslaunch mycar environment.launch
(2)启动 rviz
source ./devel/setup.bash
roslaunch nav_demo nav01_slam.launch
(3)启动键盘控制节点
rosrun teleop_twist_keyboard teleop_twist_keyboard.py _speed:=0.3 _turn:=0.5
(4)在 rviz 中显示仿真环境
(5)保存 rviz 设置
(6)通过键盘控制机器人运动
每隔 5s 更新一次地图
step3: 保存地图(在step2基础上,不要关闭之前程序)
/home/yehuo/mycar_ws/src/nav_demo/launch/nav02_map_save.launch
在 nav_demo 下新建文件夹 map
新建终端,保存地图
source ./devel/setup.bash
roslaunch nav_demo nav02_map_save.launch
/home/yehuo/mycar_ws/src/nav_demo/map/nav.yaml 文件解释
# 1、声明地图图片资源的路径
image: /home/yehuo/mycar_ws/src/nav_demo/map/nav.pgm
# 2、地图刻度尺单位是 米/像素
resolution: 0.050000
# 3、地图的位姿(按照右手坐标系,地图右下角相对于 rviz 中原点的位姿)
# 值1:x方向上的偏移量
# 值2:y方向上的偏移量
# 值3:地图的偏航角度(单位:弧度)
origin: [-50.000000, -50.000000, 0.000000]
# 地图中的障碍物判断:
# 最终显示结果:白色是可通行区域,黑色是障碍物,蓝灰是未知区域
# 判断规则:
# 1、地图中的每个像素都有取值 [0,255] 255:白色 0:黑色
# 2、根据像素值计算一个比例: p = (255 - 像素值)/ 255 ==> 0:白色 1:黑色
# 3、判断是否是障碍物, p > occupied_thresh 就是障碍物
# p
step4: 读取地图
/home/yehuo/mycar_ws/src/nav_demo/launch/nav03_map_server.launch
读取地图
source ./devel/setup.bash
roslaunch nav_demo nav03_map_server.launch
显示读取的地图
打开一个新的终端,启动 rviz
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net