当前位置: 代码迷 >> 综合 >> VLP16+IMU+Cartographer+Ubuntu18.04+ROS Melodic使用
  详细解决方案

VLP16+IMU+Cartographer+Ubuntu18.04+ROS Melodic使用

热度:39   发布时间:2024-01-30 20:37:36.0

Cartographer配置安装

安装工具

sudo apt-get install -y python-wstool ninja-build

创建工作空间

mkdir catkin_ws
cd catkin_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t srcrosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y

编译安装

catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash

服务器无法连接

ceres-solver失败

gedit catkin_ws/src/.rosinstall

修改

最后一个git:
https://ceres-solver.googlesource.com/ceres-solver.git
改为
https://github.com/ceres-solver/ceres-solver.git

测试

下载数据包
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
测试
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag

使用VLP16-IMU

主要是3个文件VLP16-imu.launch启动文件,VLP16-imu.urdf设置坐标变换,VLP16-imu.lua配置文件

VLP16-imu.launch

<launch>  <param name="/use_sim_time" value="false"/><param name="robot_description"textfile="$(find cartographer_ros)/urdf/VLP16_imu_cxy.urdf" /><node name="robot_state_publisher" pkg="robot_state_publisher"type="robot_state_publisher" /><node name="cartographer_node" pkg="cartographer_ros"type="cartographer_node" args="-configuration_directory $(find cartographer_ros)/configuration_files-configuration_basename VLP16_imu_cxy.lua"output="screen"><remap from="/imu" to="/imu/data"/><!--<remap from="echoes" to="horizontal_laser_2d" />--></node><node name="cartographer_occupancy_grid_node" pkg="cartographer_ros"type="cartographer_occupancy_grid_node" args="-resolution 0.05" />
</launch>

VLP16-imu.urdf


<robot name="VLP16_imu_cxy"><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><link name="imu_link"><visual><origin xyz="0 0 0" /><geometry><box size="0.06 0.04 0.02" /></geometry><material name="orange" /></visual></link><link name="velodyne"><visual><origin xyz="0 0 0" /><geometry><cylinder length="0.05" radius="0.03" /></geometry><material name="gray" /></visual></link><link name="base_link" /><joint name="imu_link_joint" type="fixed"><parent link="base_link" /><child link="imu_link" /><origin xyz="0 0 0" /></joint><joint name="horizontal_laser_link_joint" type="fixed"><parent link="base_link" /><child link="velodyne" /><origin xyz="0.1007 0 0.0558" /></joint>
</robot>

VLP16-imu.lua

include "map_builder.lua"
include "trajectory_builder.lua"options = {map_builder = MAP_BUILDER,trajectory_builder = TRAJECTORY_BUILDER,map_frame = "map",tracking_frame = "imu_link",published_frame = "base_link",odom_frame = "odom",provide_odom_frame = true,publish_frame_projected_to_2d = false,use_odometry = false,use_nav_sat = false,use_landmarks = false,num_laser_scans = 1,num_multi_echo_laser_scans = 0,num_subdivisions_per_laser_scan = 1,num_point_clouds = 0,lookup_transform_timeout_sec = 0.2,submap_publish_period_sec = 0.3,pose_publish_period_sec = 5e-3,trajectory_publish_period_sec = 30e-3,rangefinder_sampling_ratio = 1.,odometry_sampling_ratio = 1.,fixed_frame_pose_sampling_ratio = 1.,imu_sampling_ratio = 1.,landmarks_sampling_ratio = 1.,
}MAP_BUILDER.use_trajectory_builder_2d = true
TRAJECTORY_BUILDER_2D.num_accumulated_range_data = 10return options

其中tracking_frame设置为imu的frame id,publilsh_frame设置为base_link(官网上是这么说的,不过有很多设置成laser_link)

num_laser_scans订阅的激光扫描的topic,msg类型为LaserScan

num_multi_echo_laser_scans订阅激光扫描的数量,msg类型为MultiEchoLaserScan

num_point_clouds订阅点云的数量。

官方说明文档https://google-cartographer-ros.readthedocs.io/en/latest/configuration.html

记住每次修改launch和lua文件都需要重新编译!!!!

  相关解决方案