# Turtlebot2_cartographer **Repository Path**: niceryes/Turtlebot2_cartographer ## Basic Information - **Project Name**: Turtlebot2_cartographer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2021-12-16 - **Last Updated**: 2021-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Turtlebot2 部署cartographer日志 ## 日志 ``` # 添加ros源 sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list' # 添加公钥 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654 # 更新源 sudo apt update # 安装ros melodic sudo apt install ros-melodic-desktop-full # 刷新ros环境变量 echo 'source /opt/ros/melodic/setup.bash' > ~/.bashrc source ~/.bashrc # 启动roscore,测试安装成功 roscore # 安装ros工具 sudo apt-get install -y python-wstool python-rosdep ninja-build # 创建工作空间 mkdir cartographer_ws cd cartographer_ws/ wstool init src # 下载cartographer源码 wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_turtlebot/master/cartographer_turtlebot.rosinstall wstool update -t src # 安装cartographer src/cartographer/scripts/install_proto3.sh # 安装git sudo apt install git # 安装文件管理工具,可省略 sudo apt install nautilus # 修改hosts,翻墙 sudo vim /etc/hosts # 配置.bashrc,添加主从配置和工作空间devel/setup.bash vim ~/.bashrc # 创建工作空间 # mkdir catkin_ws mkdir cartographer_ws cd cartographer_ws # rosdep初始化 sudo rosdep init rosdep update cd cartographer_ws cd src cd cartographer_ros cd cartographer_rviz cd cartographer_ws # 安装依赖 rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y # 下载源码 wstool update -t src # 安装依赖 rosdep install --from-paths src --ignore-src --rosdistro=melodic -y -i -r # 编译 catkin_make_isolated --install --use-ninja -j1 # 安装apt-file查找缺失的.so依赖 sudo apt install apt-file apt-file search /usr/lib/aarch64-linux-gnu/libGL.so # 安装libglvnd-dev sudo apt install libglvnd-dev # 重新编译 catkin_make_isolated --install --use-ninja -j1 # 刷新工作空间环境变量 source install_isolated/setup.bash # 修改.bashrc,添加工作空间.bashrc vim ~/.bashrc source ~/.bashrc # 测试cartographer运行bag包 roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag # 安装性能测试工具 pip install psrecord sudo apt install python3-pip pip3 install psrecord pip3 install python-matplotlib python-tk sudo apt-get install python-matplotlib python-tk # for plotting; or via pip sudo apt install python-pip pip install psrecord # 测试 psrecord $(pgrep chromium-browse) --interval 1 --plot plot1.png psrecord 1330 --plot plot.png # 安装pytest pip install pytest pytest psrecord sudo apt install python-psrecord # 启动turtlebot roslaunch turtlebot_bringup minimal.launch ls /dev/ | grep -i "usb" # 编译laser cd laser_ws/ catkin_make source devel/setup.bash # 启动键盘控制 roslaunch turtlebot_teleop keyboard_teleop.launch # 修改minimal.launch vim minimal.launch # 修改backpack_2d.launch roscd cartographer_ros/launch/ cp backpack_2d.launch backpack_2d.launch.bak vim demo_backpack_2d.launch vim backpack_2d.launch rostopic echo --noarr /scan # 启动 rviz rosrun rviz rviz # 刷新laser环境变量 cd laser_ws/ catkin_make source devel/setup.bash # 启动laser roslaunch LS01B ls01b_v2.launch # 修改usb设备权限 sudo chmod 777 /dev/ttyUSB0 cd laser_ws/ source devel/setup.bash roslaunch ls01b_v2 ls01b_v2.launch # 启动my_robot.launch roslaunch cartographer_ros my_robot.launch # 修改配置文件 cd configuration_files vim my_robot.lua # 启动my_robot.launch roslaunch cartographer_ros my_robot.launch # 查看rqt_tf_tree rosrun rqt_tf_tree rqt_tf_tree ``` 关闭桌面 ```bash sudo systemctl disable lightdm.service ``` 启动桌面 ``` sudo systemctl start lightdm.service ``` 测试步骤 1. 启动机器人 2. 启动雷达 3. 启动cartographer 问题二进制安装的ros和~/laser_ws/工作空间有冲突 ```bash #! /bin/bash rosnode kill -a source ~/.bashrc nohup roslaunch turtlebot_bringup minimal.launch & sleep 5 #source ~/laser_ws/devel/setup.bash #nohup roslaunch ls01b_v2 ls01b_v2.launch & source ~/laser_ws/devel/setup.bash ``` 5. 启动rviz 6. 控制小车移动 7. 转换地图 ```bash #!/bin/bash Path=$(pwd) rosservice call /finish_trajectory 0 rosservice call /write_state "{filename: '${Path}/map.pbstream'}" rosrun cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=${Path}/map -pbstream_filename=${Path}/map.pbstream -resolution=0.05 ```