ros-noetic搭建turtlebot3测试
准备
先要搭建好ros环境,并用roscore验证,cmake --version查看版本不能低于3.2
turtlebot3 安装
创建目录
mkdir -p catkin_turtlebot3/src
cd catkin_turtlebot3/src
克隆最新的 turtlebot3 包
git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
如果你发现turtlebot3_msgs没有克隆下来,说没有该分支,那就直接安装:
sudo apt install ros-noetic-turtlebot3-msgs
若是github连接不上,用国内的:
git clone https://gitee.com/tianqingxia/turtlebot3_msgs.git
git clone https://gitee.com/tianqingxia/turtlebot3.git
git clone https://gitee.com/tianqingxia/turtlebot3_simulations.git
接着编译:
cd ..
catkin_make
写入bashrc
#echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc
echo "export TURTLEBOT3_MODEL=waffle" >> ~/.bashrc
echo "source ~/catkin_turtlebot3/devel/setup.bash" >> ~/.bashrc
export "DISABLE_ROS1_EOL_WARNINGS=1">> ~/.bashrc
source ~/.bashrc
重新打开一个终端,安装依赖包
sudo apt install ros-noetic-gazebo-ros-pkgs ros-noetic-gazebo-ros-control
sudo apt install ros-noetic-turtlebot-*
sudo apt install ros-noetic-gmapping
sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc ros-noetic-rgbd-launch ros-noetic-depthimage-to-laserscan ros-noetic-rosserial-arduino ros-noetic-rosserial-python ros-noetic-rosserial-server ros-noetic-rosserial-client ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro ros-noetic-compressed-image-transport ros-noetic-rqt-image-view ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers rviz
安装Cartographer
sudo apt-get update
sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow
初始化工作空间和安装cartographer、cartographer_ros,ceres-solver
mkdir cartographer_ros
cd cartographer_ros
wstool init src
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
如果在第四行报错,是因为是国外的网站,自己创建一个文件即可。
这里第四行的意图是把cartographer_ros.rosinstall中的内容追加到src目录下的.rosinstall文件中,我们来手动操作,解决上面的问题。我们手动的将cartographer_ros.rosinstall中的内容复制到src目录下的.rosinstall文件中,默认此文件会被隐藏,可以勾选显示选项显示此文件,内容如下:
- git: {local-name: cartographer, uri: 'https://github.com/cartographer-project/cartographer.git', version: 'master'}
- git: {local-name: cartographer_ros, uri: 'https://github.com/cartographer-project/cartographer_ros.git', version: 'master'}
- git: {local-name: ceres-solver, uri: 'https://github.com/ceres-solver/ceres-solver.git', version: 'master'}
修改完成.rosinstall完成后,执行第五行
为了防止安装依赖报错
打开cartographer/package.xml将第46行 libabsl-dev 进行注释
安装依赖
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
安装abseil-cpp 库
src/cartographer/scripts/install_abseil.sh
#由于版本冲突,您可能需要卸载ROS abseil-cpp
sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp
说没找到,那就不会造成混乱,那就不管了可以直接编译
编译
catkin_make_isolated --install --use-ninja
测试:
首先下载别人已经录制好的bag包:
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
第二步就是运行cartographer来创建地图:
在终端中使用命令:
source ~/cartographer_ws/install_isolated/setup.bash
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
参考
https://blog.csdn.net/2403_88644417/article/details/147255575
https://blog.csdn.net/qq_44850383/article/details/127106048