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

你可能感兴趣的:(嵌入式,ros)