基于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出错_阿巴乾的博客-优快云博客_ceres库make失败  https://blog.youkuaiyun.com/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" />

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值