首先需要进行Cartographer安装以及雷达驱动安装等准备工作, 直至我们能够在雷达运行时找到发布LaserScan的Topic并获取数据, 以开始下一步的建图.

基本信息获取

启动雷达或gazebo, 在终端使用以下语句查看雷达输出的Topic:
rostopic list;

此处本天河雷达的输出topic为 /radar_real
使用以下语句打印当前雷达输出:
rostopic echo /radar_real;

在打印信息中找到坐标系名字frame_id: “base_laser”,此处坐标系名字为 base_laser

lua文件修改

在(cartographer工作空间)/src/cartographer_ros/cartographer_ros/configuration_files中找到revo_lds.lua 文件, 复制一份, 改名为my_revo_lds.lua.
打开my_revo_lds.lua, 修改以下两行为我们自己的坐标系名字:

//两行"horizontal_laser_link"均改为我们当前的"base_laser"
tracking_frame = "horizontal_laser_link",
published_frame = "horizontal_laser_link",

launch文件修改

在(cartographer工作空间)/src/cartographer_ros/cartographer_ros/launch中找到demo_revo_lds.launch, 复制一份, 改名为my_demo_revo_lds.launch
修改以下内容:

//因为非bag仿真,将以下true改为false
<param name="/use_sim_time" value="true" />//使用我们的配置文件,将revo_lds.lua改为my_revo_lds.lua
<node name="cartographer_node" pkg="cartographer_ros"type="cartographer_node" args="-configuration_directory $(find cartographer_ros)/configuration_files-configuration_basename revo_lds.lua"//将horizontal_laser_2d改为我们的输出话题radar_real
<remap from="scan" to="horizontal_laser_2d" />//不使用bag,删去以下内容
<node name="playbag" pkg="rosbag" type="play"args="--clock $(arg bag_filename)" />

运行与建图

对修改后的工作空间, 在终端执行以下语句以重编译:

//编译cartographer工作空间
catkin_make_isolated --install --use-ninja

//刷新环境
source devel_isolated/setup.bash

运行时, 先运行雷达的相关topic, 保证雷达已有有效数据通过topic输出后, 运行我们的新launch文件:
roslaunch cartographer_ros my_demo_revo_lds.launch

即可开始建图.

地图保存

打开另一个终端, 输入以下语句:

//结束第一条轨迹,之后的数据不再添加.
rosservice call /finish_trajectory 0

//cartographer序列化当前状态,形成pbstream文件
rosservice call /write_state "{filename: '${HOME}/Downloads/mymap.pbstream'}"

//transform pbstream to pgm and yaml

rosrun cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=/home/kai/Downloads/mymap -pbstream_filename=/home/kai/Downloads/mymap.pbstream -resolution=0.05

地址和文件名根据实际进行修改.

运行结果

纯雷达建图.

  • 天河
    在天河10Hz 2880点的雷达上, 建图极易漂移, 无法完成建图. 期间频繁报 "Dropped 2770 earlier points."的警告, 该warning来自于:
    range_data_collator.cc:76 LOG(WARNING) << “Dropped " << std::distance(ranges.begin(), overlap_begin) << " earlier points.”;
    丢点数值常在2700左右变动, 接近于一帧.

  • 倍加福
    在倍加福20Hz 3600点的雷达上, 无警告提示, 建图顺滑, 匹配准确, 旋转鲁棒性好, 建图质量佳, 仅在特征不明显的长走廊出现建图尺度失真的共性问题.

  • 思岚rplidar a2
    在思岚科技RPLIDAR-a2(10Hz 800点)上, 建图顺滑, 但限于雷达硬件, 旋转速度不宜过快, 建图过程应当尽量保持雷达速度平稳. [Topic Name: /scan; Frame Name: laser]
    (a2驱动安装传送门: 只需关注其中rplida相关步骤)(链接教程勘误: echo source时删去那对双引号)

  • gazebo仿真
    因为依然不是bag仿真, 上述设置/use_sim_time依然应该是false.

用自己的雷达进行Cartographer建图或仿真相关推荐

  1. 差速小车的Cartographer建图

    目录 在之前的一些文章中,我们创建了DiffCart的仿真模型并能通过键盘控制它. 还为之提供了里程计和IMU用于估计机器人的位姿. 现在我们来给DiffCart装上激光雷达,并使用Cartograp ...

  2. 机器人学习--Turtelbot3学习--如何使用cartographer建图

    问题描述: 按照创客智造官网的教程:https://www.ncnynl.com/category/turtlebot3-tutorial/ 安装好turtlebot3的配套软件后,默认是使用 gma ...

  3. odomimu融合用于Cartographer建图

    任务动机:使用odom&imu融合用于Cartographer建图,提高Cartographer建图时的匹配精度,同时降低运算消耗. 任务描述:使用odom&imu融合用于Cartog ...

  4. Cartographer建图和纯定位

    (一)cartographer在ros下安装参考: 要求: 64-bit, modern CPU (e.g. 3rd generation i7) 16 GB RAM Ubuntu 18.04 (Bi ...

  5. 用自己的机器人实现cartographer建图测试与地图保存应该这样做

    用自己的机器人实现cartographer建图测试与地图保存应该这样做 1.安装 2.测试 3.保存地图 亲测可行.(该教程使用github的代码地址,速度相对慢了一点,极速安装,请看这里: 极速安装 ...

  6. cartographer建图,重定位及发布消息结构为nav_msgs::Odometry的odom话题

    完整功能包(包含carto建图,重定位以及odom话题发布)上传至https://download.csdn.net/download/zhaohaowu/33647981 众所周知,cartogra ...

  7. ros2 -foxy安装cartographer建图定位-- 源码安装 使用

    foxy 的cartographer_ros 和dashing 的兼容 cd  ~/xx__ws/src 安装源码 git clone https://ghproxy.com/https://gith ...

  8. 从0.3开始搭建LeGO-LOAM+VLP雷达+小车实时建图(保姆级教程,小白踩坑日记)

    背景:SLAM小白,因为项目需要花了两天时间编译代码+连接雷达实现了交互. 踩了很多坑,简单记录一下,让后面感兴趣的朋友少走点弯路~ 肯定有很多不专业的.错误的地方,还请大家不吝赐教(噗通) 也可以见 ...

  9. 【1】Cartographer建图后的原始图像处理(Rviz插件修图)

    修图软件:kolourpaint sudo apt install kolourpaint Cartographer建的地图往往是不能直接用的,需要自己修图清除噪声点和干扰点.除此之外,还需要限定一些 ...

最新文章

  1. TeeChart for .NET常用属性总结
  2. Java黑皮书课后题第6章:*6.14(估算π)π可以使用下面的数列进行计算。编写一个方法,对于给定的i返回m(i),并编写一个测试程序,显示如下表格
  3. 【高并发解决方案】6、数据库水平切分的实现原理解析
  4. linux调用php项目,在Centos/Linux系统下使用Phalcon开发PHP项目
  5. CAAnimation KeyPath学习总结
  6. [多线程系列]多线程之java线程池架构分析
  7. Unity Excel转json且自动生成C#脚本
  8. 软件集合:人人刚需的神器,已解锁使用
  9. jbpm5.4 mysql_5.BDF2-JBPM4
  10. 送给佳佳同学的礼物:测试流程及并行测试介绍
  11. 键盘对应的ASCⅡ码
  12. C语言--指向指针的指针
  13. 下载文件同时添加水印文字
  14. 【Unity】旋转Vector3和Quaternion
  15. 报错:Use /* eslint-disable */ to ignore all warnings in a file.
  16. DL基本知识(五)神经网络经典模型
  17. 一个新的App该如何推广?
  18. 新代系统编程教学_人之初线上教学——三轴智能点胶机控制系统,带你轻轻松松学编程!...
  19. 桌面创建html文件路径,html本地图片路径
  20. Basic Activity Diagram with Decisions

热门文章

  1. 求助!matlab软件下SVM(支持向量机)做回归预测,软件版本为2016b看,老是报错看,不知道怎么解决这个问题。
  2. word文档多级列表设置
  3. 越是见过世面的人,欲望越少
  4. 【淘宝SEO技巧】淘宝SEO优化|淘宝搜索排名规律|淘宝宝贝标题优化
  5. 使用Cookie记住多个登录账号!
  6. 十分钟一起学会Inception网络
  7. GMT格式的时间处理 Thu Jan 01 00:00:00 +0000 2009成时间戳
  8. npm install error code EINTEGRITY sha1
  9. 方维互动直播系统(美女、游戏、会议、在线教育、体育、赛事直播系统)
  10. word2003流程图变成图片_转:Word2003  绘制流程图(2)