系统:ubuntu18.04
ROS:ros-melodic
0 前言
采用源码安装是因为方便自己开发代码,以及熟悉算法原理
第一种安装方式:
sudo apt install ros-melodic-navigation
1 源码安装
git clone https://mirror.ghproxy.com/https://github.com/ros-planning/navigation.git
安装完成后将该包放到xxx_ws/src文件夹下
cd xxx_ws
rosdepc install --from-paths src --ignore-src -r -y # 安装依赖
sudo apt-get install ros-melodic-sensor-msgs
sudo apt-get install ros-melodic-tf2-sensor-msgs
catkin_make # 编译
2 用Turtlebot3做Navigation模拟
2.1 开启仿真和建图
Ctrl+Alt+T
新建Terminal1
export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_gazebo turtlebot3_world.launch
Ctrl+Shift+T
新建Terminal2,默认建图算法gmapping
export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
Ctrl+Shift+T
新建Terminal3,对着这个Terminal控制Turtlebot3前后左右移动,建立一张完整的地图
export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
建好图后把地图截图保存到自定义文件夹map里,-f
表示希望输入保存的路径,保存完有两个文件map.pgm
和map.yaml
,yaml
里面调用了map.pgm
rosrun map_server map_saver -f 自定义路径/map
白色是可以去的地方,黑色是墙壁,灰色是未知区域
2.2 根据建好的地图导航
在第一个窗口启动仿真:
ource devel/setup.bash
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_gazebo turtlebot3_world.launch # 启动仿真
在第二个窗口开启导航, 并加载刚刚建好的地图:
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=自定义路径/map/map.yaml
3 源码安装
测试环境:Ubuntu 18.04 和 ROS melodic
1.安装仿真系统依赖包
sudo apt-get install ros-melodic-turtlebot3*
安装依赖
sudo apt install ros-melodic-desktop-full ros-melodic-joy ros-melodic-teleop-twist-joy ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan ros-melodic-rosserial-arduino ros-melodic-rosserial-python ros-melodic-rosserial-server ros-melodic-rosserial-client ros-melodic-rosserial-msgs ros-melodic-amcl ros-melodic-map-server ros-melodic-move-base ros-melodic-urdf ros-melodic-xacro ros-melodic-compressed-image-transport ros-melodic-rqt-image-view ros-melodic-gmapping ros-melodic-navigation ros-melodic-interactive-markers ros-melodic-turtlebot3-gazebo
2.安装turtlebot3_simulation包
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
3.安装键盘控制包
网上搜索teleop_twist_keyboard
,选择melodic版,下载该功能包
编译catkin_make
4.启动仿真环境
新终端,加载小车和Gazebo环境
$ export TURTLEBOT3_MODEL=waffle_pi
$ roslaunch turtlebot3_gazebo turtlebot3_house.launch
新终端,启动RViz
$ export TURTLEBOT3_MODEL=waffle_pi
$ roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch
新终端,启动键盘控制
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py
启动cartographer建图
roslaunch cartographer_ros backpack_2d.launch
键盘控制小车建图,保存地图
rosrun map_server map_saver -f ~/catkin_ws/map/map
加载自己创建的地图
rosrun map_server map_server ~/catkin_ws/map/map.yaml