cartographer大场景录制bag包建图

cartographer大场景录制bag包建图

由于电脑处理ROS大场景建图的性能不足,可以通过录制bag包建图。(Ubuntu16.04+kinetic版本)
在已经配置好cartographer的情况下
1、首先启动自己底层和激光雷达(这里我使用的是velodyne16线雷达)

roslaunch sinebot_bringup middlebot_bringup.launch

然后使用rosrun rqt_tf_tree rqt_tf_tree 查看自己的树
在这里插入图片描述
2、输入rostopic list查看话题信息,检查最重要的 /odom /scan /tf话题
3、录制话题:(没有imu可以全部imu的都不录制),找一个路径打开终端用于保存bag包。

rosbag record /imu/anglez /imu/data_raw /imu/mag /odom  /scan /tf -o 包名.bag

4、启动键盘控制命令(线速度0.5左右,角速度0.2左右)尽量跑直线,转弯转90°。最好跑够两圈,回环并消除障碍。跑完ctrl+c退出终端,找到录制bag。
5、启动建图,电脑性能差最好去除RVIZ,单独写一个launch文件来打开

roslaunch cartographer_ros demo_velodyne_2d.launch

代码如下:

<launch>
  <param name="/use_sim_time" value="flase" />
  <node name="cartographer_node" pkg="cartographer_ros"
      type="cartographer_node" args="
          -configuration_directory $(find cartographer_ros)/configuration_files
          -configuration_basename velodyne.lua"
      output="screen">
    <remap from="scan" to="scan" />
    <remap from="odom" to="/odom"/>
  </node>
  <!--node pkg="tf" type="static_transform_publisher" name="base_footprint_to_velodyne" 
    args="0.0 0.0 0.0 0.0 0.0 0.0 /base_footprint /velodyne 200" /-->
  <node name="cartographer_occupancy_grid_node" pkg="cartographer_ros"
      type="cartographer_occupancy_grid_node" args="-resolution 0.05" />
</launch>

lua文件代码:

include "map_builder.lua"
include "trajectory_builder.lua"
options = {
  map_builder = MAP_BUILDER,
  trajectory_builder = TRAJECTORY_BUILDER,
  map_frame = "map",
  tracking_frame = "base_footprint",
  published_frame = "odom",
  odom_frame = "odom",
  provide_odom_frame = false,
  publish_frame_projected_to_2d = true,
  use_odometry = true,
  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.submaps.num_range_data = 35
TRAJECTORY_BUILDER_2D.min_range = 0.3
TRAJECTORY_BUILDER_2D.max_range = 80.
TRAJECTORY_BUILDER_2D.missing_data_ray_length = 1.
TRAJECTORY_BUILDER_2D.use_imu_data = false
TRAJECTORY_BUILDER_2D.use_online_correlative_scan_matching = true
TRAJECTORY_BUILDER_2D.real_time_correlative_scan_matcher.linear_search_window = 0.1
TRAJECTORY_BUILDER_2D.real_time_correlative_scan_matcher.translation_delta_cost_weight = 10.
TRAJECTORY_BUILDER_2D.real_time_correlative_scan_matcher.rotation_delta_cost_weight = 1e-1
POSE_GRAPH.optimization_problem.huber_scale = 1e2
POSE_GRAPH.optimize_every_n_nodes = 35
POSE_GRAPH.constraint_builder.min_score = 0.65
return options

6、播放包,然后使用rosrun rqt_tf_tree rqt_tf_tree 查看自己的树

rosbag play 包名.bag

在这里插入图片描述
7、可打开rviz查看建图情况roslaunch cartographer_ros yao.launch (自己单独写的),建图效果没问题就最好关掉。
8、播放完包,保存地图的方法(名字路径按照自己的修改即可)

rosservice call /finish_trajectory 0  #停止建图
rosservice call /write_state /home/xx/picture/map_process/gmapping_xx_test.pbstream   #保存
rosrun cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=/home/xx/picture/map_process/gmapping_xx_test -pbstream_filename=/home/xx/picture/map_process/gmapping_xx_test.pbstream -resolution=0.05    #转换

9、对于调试可用rosbag play -r 8 包名.bag 8倍速播放自己的包查看odom是否歪的太多,然后查看下面篇博客图形化观察,https://editor.csdn.net/md/?articleId=116355343
还有注意自己的tree连接情况,以及cartogrpher配置等。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值