2D pure location launch文件的配置 7
3D pure location launch文件的配置 10
Assets writer 3D launch文件的配置 12
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
参数设置请参照wiki.ros.org/pointcloud_to_laserscan 21
Ros版本:ROS-Kinect
工作目录:~/carto_ws
安装依赖项
$>> 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的安装主要是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" />