基于Cartographer的建图与导航

一、 RoboSense 16线雷达驱动安装 2

二、 Cartographer的安装 2

三、 配置文件结构说明 4

四、 配置文件详解 4

2D lua文件的配置 5

2D launch文件的配置 6

2D pure location lua文件的配置 7

2D pure location launch文件的配置 7

3D lua文件的配置 8

3D launch文件的配置 9

3D pure location lua文件的配置 10

3D pure location launch文件的配置 10

Assets writer 3D lua文件的配置 11

Assets writer 3D launch文件的配置 12

五、 建图命令 12

六、 纯定位命令 13

七、 导航文件配置 13

launch文件的配置 13

move_base_params.yaml文件参数 15

costmap_common_params.yaml文件参数 16

local_costmap_params.yaml  文件参数 17

global_costmap_params.yaml文件参数 18

dwa_local_planner_params.yaml文件参数 18

navfn_global_planner_params.yaml文件参数 19

八、 导航命令 20

九、 发送目标点的导航路线规划 20

十、 导航探索SLAM 20

十一、 其余功能包说明 21

1. imu_pub 21

2. odom_pub(未用到) 21

3. cmd_vel_to_stm 21

4. pointcloud_to_laserscan 21

参数设置请参照wiki.ros.org/pointcloud_to_laserscan 21

十二、 相关博客推荐 21

Ros版本:ROS-Kinect

工作目录:~/carto_ws

  • RoboSense 16线雷达驱动安装

安装依赖项

$>>  sudo apt-get install libpcap-dev

下载源码到工作目录的src/文件夹下

$>>  cd ~/carto_ws/src

$>>  git clone https://github.com/RoboSense-LiDAR/ros_rslidar

修改文件权限

$>>  cd ~/carto_ws/src/ros_rslidar/rslidar_drvier

$>>  chmod 777 cfg/*

$>>  cd ~/carto_ws/src/ros_rslidar/rslidar_pointcloud

$>>  chmod 777 cfg/*

源码编译

$>>  cd ~/carto_ws

$>>  catkin_make

设置电脑的静态ip地址

$>>  sudo gedit /etc/networsk/interfaces

设置eth0(有些是eth1,或者eno0等,根据自己的网口修改),修改或增加内容如下:

# interfaces eth0 for  rslidar connect

auto eth0

iface eth0 inet static

address 192.168.1.102

netmask 255.255.255.0

gateway 192.168.1.1

连接雷达电源和网线,重启电脑。

$>>  cd carto_ws

$>>  source devel/setup.bash

$>>  roslaunch rslidar_pointcloud rs_lidar_16.launch

可以在RVIZ中看到点云,注意要设置全局坐标系为rslidar。

  • Cartographer的安装

cartographer的安装主要是ceres、prtobuf和cartographer的安装,cartographer_ros是ROS的功能包,调用cartographer算法。

安装依赖:

$>>  sudo apt-get update

$>>  sudo apt-get install -y python-wstool python-rosdep ninja-build

安装Ceres solver

$>>  cd  ~/carto_ws/document

$>>  git clone GitHub - ceres-solver/ceres-solver: A large scale non-linear optimization library

$>>  cd ceres-solver

$>>  mkdir build

$>>  cd build

$>>  cmake ..

$>>  make -j

$>>  sudo make install

ceres:可能存在报错,

先查看gcc版本:ubuntu16.04安装ceres时make出错_阿巴乾的博客-CSDN博客_ceres库make失败  https://blog.csdn.net/weixin_44235615/article/details/122651628

如果版本正确,编译ceres时,需要更改eigen3 到 3.3 版本以上。3.4测试有效。

安装Prtobuf 3.0

$>>  cd  ~/carto_ws/document

$>>  git clone https://github.com/google/protobuf.git

$>>  cd protobuf

$>>  git checkout v3.6.1

$>>  mkdir build

$>>  cd build

$>>  cmake  \

  -DCMAKE_POSITION_INDEPENDENT_CODE=ON \

  -DCMAKE_BUILD_TYPE=Release \

  -Dprotobuf_BUILD_TESTS=OFF \

  ../cmake

$>>  make -j 2

$>>  sudo make install

安装Cartographer

$>>  cd  ~/carto_ws/document

$>>  git clone https://github.com/BlueWhaleRobot/cartographer.git

$>>  cd cartographer

$>>  mkdir build

$>>  cd build

$>>  cmake ..

$>>  make -j

$>>  sudo make install

安装cartographer_ros

$>>  cd ~/carto_ws/src   #请修改路径到自己的ROS catkin工作空间

$>>  git clone https://github.com/BlueWhaleRobot/cartographer_ros.git

$>>  cd ..

$>>  catkin_make_isolated --install --use-ninja

测试

下载文件:https://www.bwbot.org/s/vQ2D9Z

然后运行。根据个人平台计算能力不同,完整运行时间一般为半个小时到1个小时之间

$>>  source devel_ioslated/setup.bash

$>>  roslaunch cartographer_ros offline_backpack_2d.launch bag_filenames:=${HOME}/Desktop/cartographer_paper_deutsches_museum.bag

##修改到自己保存的路径

提取建立的地图,结束测试

上面步骤会生成一个pbstream文件,用cartographer_ assets_writer可以转换成ROS使用的栅格地图。

$>>  roslaunch cartographer_ros assets_writer_ros_map.launch bag_filenames:=${HOME}/Desktop/cartographer_paper_deutsche

  • 配置文件结构说明

工作目录为carto_ws,src同级目录除了编译产生的,其余都是安装依赖留下的文件夹。

Cartographer配置文件主要存在src/cartographer_ros/cartographer_ros下的urdf文件夹的myself_robot.urdf、configuration文件夹下的myself_rslidar_2(3)d.lua,myself_backpack_2(3)d_localization.lua以及rslidar_2(3)d.rviz、demo_2d.rviz配置文件、launch文件夹下的myself_rslidar_2(3)d.launch、myself_backpack_2(3)d_localization.launch。这里定位由于和后面导航rviz显示冲突,注释了rviz,纯定位时需要取消注释,显示调用rviz。

在3D建图还需要后面进行离线处理,需要assets_writer_myself_3d.launch,其中相关的配置文件为 assets_writer_myself_3d.lua。

利用bag包进行离线3D SLAM建图可以使用offline_myself_rslidar_3d.launch

  • 配置文件详解

URDF文件的配置(这里2D和3D都是使用的同一个urdf):

<robot name="my_robot">

<!--设置颜色-->

  <material name="orange">

    <color rgba="1.0 0.5 0.2 1" />

  </material>

  <material name="gray">

    <color rgba="0.2 0.2 0.2 1" />

  </material>

 <!--设置imu link,长方体,长宽高为0.06 0.04 0.02,这里的单位为米m-->

  <link name="imu">

    <visual>

      <origin xyz="0.0 0.0 0.0" />

      <geometry>

        <box size="0.06 0.04 0.02" />

      </geometry>

      <material name="orange" />

    </visual>

  </link>

  <!--设置lidar link,圆柱,半径0.05,高为0.07,这里的单位为米m-->

  <link name="laser">

    <visual>

      <origin xyz="0.0 0.0 0.0" />

      <geometry>

        <cylinder length="0.07" radius="0.05" />

      </geometry>

      <material name="gray" />

要在ROS中使用Cartographer导航,首先需要安装CartographerCartographer ROS。Cartographer是用来执行SLAM(Simultaneous Localization and Mapping)任务的算法库,而Cartographer ROS是一个ROS功能包,用于调用Cartographer算法。 首先,确保已经安装了Ceres Solver和Protobuf。这两个库是Cartographer的依赖项。 然后,使用以下命令安装CartographerCartographer ROS: ``` sudo apt-get install ros-$ROS_DISTRO-cartographer sudo apt-get install ros-$ROS_DISTRO-cartographer-ros ``` 安装完成后,可以在ROS中使用Cartographer导航。首先,需要启动Cartographer SLAM节点,使用以下命令: ``` roslaunch cartographer_ros cartographer.launch ``` 这将启动Cartographer SLAM节点,开始执行SLAM任务,并发布地图。 接下来,可以启动Cartographer Occupancy Grid节点,使用以下命令: ``` roslaunch cartographer_ros cartographer_occupancy_grid.launch ``` 这将订阅来自Cartographer SLAM节点的地图信息,并将其发布为占据栅格地图。 现在,你可以使用导航功能包(如move_base)来进行导航。设置导航目标,并使用相应的导航命令,机器人将会根据Cartographer生成的地图进行导航。 总结来说,要在ROS中使用Cartographer导航,首先要安装CartographerCartographer ROS,然后启动Cartographer SLAM节点和Cartographer Occupancy Grid节点,最后使用导航功能包进行导航。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [基于Cartographer建图导航](https://blog.csdn.net/qq_34935373/article/details/111991920)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值