ROS学习-cartographer安装和使用

cartographer安装和使用

1.安装RPLIDAR

建立工作空间(catkin_ws/src 是工作路径)

mkdir -p ~/#创建文件夹,catkin_ws 、src 都是文件名可以按照自己的要求更改

cd ~/catkin_ws/src #在src 文件下进行安装rplidar 工具包

cd ..#返回上级包编译

catkin_make_isolated –install –use-ninja #进行编译//网上有教程是使用catkin_make 进行编译,但是因为该命令是用于编译工作空间下所有的功能包(要求各个功能包不重复),在安装cartographer 时,有重复的文件名,这就导致了catkin_make 失效。所以我们使用catkin_make_isolated –install –use-ninja ,对各个功能包进行单独的编译

2.添加变量环境并赋予雷达连接串口权限

2.1设置环境

source install_isolated/setup.bash //运行setup 文件可以使系统使用这个工作区以及其中包含的代码。每打开一个新的终端都需要设置环境变量运行工作区的setup.bash 文件,否则终端无法找到所需运行的代码。

如果只有一个工作区,我们可以在终端输入echo “source ~/catkin_ws/ install_isolated /setup.bash” >> ~/.bashrc 这可以使终端默认工作区域在install_isolated 文件下,避免每次手动输入配置环境命令。

2.2赋予雷达连接串口权限(上面两个步骤配置完成后,后续打开雷达操作无需重复,直接此步开始)

ls -l /dev |grep ttyUSB #检查雷达连接了哪个串口。如果雷达连接成功,输入该命令后,连接雷达的串口会以红色字体显示出来。

sudo chmod a+rw /dev/ttyUSB0 #赋予串口权限。这个也行sudo chmod 666 /dev/ttyUSB0

3.运行雷达

roslaunch rplidar_ros view_rplidar.launch //运行成功会打开rviz ,显示扫描图像

补充:rplidar_ros 功能包下的launch 文件里有三种类型的launch 文件。分别是xx.launch, test_xx.launch, view_xx.launch 。后缀a3 对应a3 版本雷达,无后缀对应a1/a2 雷达。第一个是纯节点运行,第二个是在命令行窗口直接输出测量数据,第三个是利用rviz 可视化测量数据。

  1. 利用cartographer建图

以上是为了测试雷达是否正常运行。接下来进行利用cartographer对雷达扫描数据进行建图。需要修改两个文件:revo_lds.lua 和demo_revo_lds.launch 。

4.1 修改revo_lds.lua 文件

sudo gedit ~/catkin_ws/src/cartographer_ros/cartographer_ros/configuration_files/revo_lds.lua #打开revo_lds.lua 文件

复制原先的文件,新建一个my_revo_lds.lua 文件并修改:

tracking_frame = “horizontal_laser_link “, //SLAM 算法跟踪坐标系的名称

published_frame = “horizontal_laser_link ” //用作发布位姿子坐标系的名称

修改为

tracking_frame = “laser “,

published_frame = “laser “

4.2 修改demo_revo_lds.launch

sudo gedit ~/catkin_ws/src/cartographer_ros/cartographer_ros/launch/demo_revo_lds.launch #打开demo_revo_lds.launch 文件

复制原先的文件,新建为my_demo_revo_lds.launch直接把原先的文件内容改成下面这个

//因为非bag 仿真,将以下true 改为false

//使用我们的配置文件,将revo_lds.lua 改为my_revo_lds.lua

type=”cartographer_node” args=”

-configuration_directory $(find cartographer_ros)/configuration_files

-configuration_basename revo_lds.lua”

//将horizontal_laser_2d 改为我们的输出话题radar_real

//不使用bag,删去以下内容

args=”–clock $(arg bag_filename)” />

注:每次修改完配置都需要进行编译。

catkin_make_isolated –install –use-ninja #进行编译

  1. 运行cartographer框架

roslaunch cartographer_ros my_demo_revo_lds.launch

注意!!!!!

如果运行第五步骤的时候无法打开rvzi以及打开rviz后无法显示图像。可能是因为在4.3 步骤时进行的编译出错,没有覆盖掉原先的编译文件。

解决方法:手动打开

catkin_ws/install_isolated/share/catorgrapher_ros/ catorgrapher_files 重复步骤4.1

catkin_ws/install_isolated/share/catorgrapher_ros/ launch 重复步骤4.2

cartographer仿真建图

1.建图

1.export TURTLEBOT3_MODEL=burger #每开一个新的终端都要设置一下这个环境变量,除了burger 也可以是waffle 或waffle_pi

2.source install_isolated/setup.bash #每开一个新的终端都要设置一下这个环境变量

4.roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch #建图时要切换到这个终端,用键盘控制turtlebot 运动(重新打开一个终端,重复1 、2)

5.roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=cartographer #这里也可以选择其他的slam 方法(重新打开一个终端,重复1 、2)

2.保存

1.mkdir -p ~/map/fake_map

2.rosrun map_server map_saver -f ~/map/fake_map/#{name}

cartographer 仿真路径规划

1.export TURTLEBOT3_MODEL=burger #每开一个新的终端都要设置一下这个环境变量,除了burger 也可以是waffle 或waffle_pi

2.source install_isolated/setup.bash #每开一个新的终端都要设置一下这个环境变量

3 .roslaunch turtlebot3_gazebo turtlebot3_house.launch (重新打开一个终端,重复1 、2)

4.roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=/home/popvan/map/fake_map/#{name}.yaml (重新打开一个终端,重复1 、2)

Original: https://blog.csdn.net/popvan/article/details/123354259
Author: Popvan
Title: ROS学习-cartographer安装和使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/558908/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球