四、Cargrapher单激光雷达建图(通用)

这篇具有很好参考价值的文章主要介绍了四、Cargrapher单激光雷达建图(通用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、雷达ROS-SRC包使用(以思岚为例)

        1.1 首先从官网/Github/Ros-wiki 中找到自己雷达所对应的SRC

        1.2 下载后

        1.3 编译与使用

2、cartographer结合lidar建图

2.1 lidar修改及需要确定的信息

2.2 cartographer需要修改的信息

2.3 结果


1、雷达ROS-SRC包使用(以思岚为例)

        Tips:2D激光雷达的SRC大同小异,你需要确认和你雷达对应和Ubuntu上能够使用它

        1.1 首先从官网/Github/Ros-wiki 中找到自己雷达所对应的SRC

        思岚官网:思岚科技(SLAMTEC)资源下载中心及技术支持联系方式

        Github:Slamtec/rplidar_ros (github.com)

        ROS-wiki:Sensors - ROS Wiki (需要自己找对应的Sensors Src)

        1.2 下载后

        对应的雷达SRC 基本遵循 ROS Workspace 的目录结构:

四、Cargrapher单激光雷达建图(通用)

        1.3 编译与使用

        在编译和使用前,建议你首先仔细阅读 README.md 文件,一般的 SRC 中都提供了 README.md 用来对此 ROS Workspace 进行了详细的介绍和使用说明四、Cargrapher单激光雷达建图(通用)

         这里就很明显了,你需要读懂两个东西:        

// 1-cd 到 当前的 workspace 运行以下命令完成编译
catkin_make
// 2-启动当前雷达所对应的 SRC 
// 我所用的是 A2 即 (for RPLIDAR A1/A2) 的launch
roslaunch rplidar_ros rplidar.launch 

        如果catkin中出现了not found package什么什么的,请移步查看 

十一、SLAM常用小功能-第二点

        编译完成后不能直接启动 launch,否则你会遇到一个 ERROR ,not found data 或者其他,这是因为雷达所接的USB口并没有串口权限,此时进行赋权才可以读取,即:

//ttyUSB几需要自行判断,直接TAB补全也会出来
//如果接入设备除了雷达还有IMU等其他设备的话就不太适用了
sudo chmod 777 /dev/ttyUSB*

        赋权完成后直接启动既可以看到雷达 rviz 显示的数据了

四、Cargrapher单激光雷达建图(通用)


2、cartographer结合lidar建图

2.1 lidar修改及需要确定的信息

        打开 lidar-src 找到 launch文件夹,找到对应的启动 launch 打开

四、Cargrapher单激光雷达建图(通用)

         首先查看launch文件如下,需要明确的几个地方有,frame_id,topic:

<launch>
  <node name="rplidarNode"          pkg="rplidar_ros"  type="rplidarNode" output="screen">
  <param name="serial_port"         type="string" value="/dev/ttyUSB0"/>
  <param name="serial_baudrate"     type="int"    value="115200"/><!--A1/A2 -->
  <!--param name="serial_baudrate"     type="int"    value="256000"--><!--A3 -->
  <param name="frame_id"            type="string" value="laser"/>
  <param name="inverted"            type="bool"   value="false"/>
  <param name="angle_compensate"    type="bool"   value="true"/>
  </node>
</launch>

         其中我们可以直接看出此雷达:

         (1)frame_id 已经被配置为laser

         (2)端口映射为 /dev/ttyUSB0 即 1.3 中赋权端口名就是这个

         (3)查看雷达购买的型号,找到雷达的最小最大探测距离(此项自行寻找)

         下一个需要确定的就是lidar 的 topic,打开终端,运行雷达launch,运行完成后新开终端,运行以下命令

rostopic list

        此时列出来的是所有的正在运行的 topic 列表,在此列表中你可以找到自己的 lidar topic

        即 /scan

        总结一下:lidar_framed_id=laser          lidar_topic:/scan      lidar_min_range=0.2  

        lidar_max_range=12

2.2 cartographer需要修改的信息

        打开  Carto_ws/cartographer_ros/launch/demo_revo_lds.launch 按以下内容修改

<launch>
<!--实际建图 time 不需要生成-->
  <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 revo_lds.lua"
      output="screen">
<!--映射lidar 中 topic 到 carto 中的 scan -->
<!--时间比较久不太记得了,如果出现error可以把后面的“/”去掉改为“scan”-->
    <remap from="scan" to="/scan" />
  </node>

  <node name="cartographer_occupancy_grid_node" pkg="cartographer_ros"
      type="cartographer_occupancy_grid_node" args="-resolution 0.05" />

  <node name="rviz" pkg="rviz" type="rviz" required="true"
      args="-d $(find cartographer_ros)/configuration_files/demo_2d.rviz" />
<!--删除rosbag,由于添加注释会收到里面的两个横行干扰 干脆直接删除-->
</launch>

        修改完成后保存,看到这一段,打开revo_lds.lua文件,按以下内容修改

(Carto_ws/cartographer_ros/configuration_files/revo_lds.lua)

include "map_builder.lua"
include "trajectory_builder.lua"

options = {
  map_builder = MAP_BUILDER,
  trajectory_builder = TRAJECTORY_BUILDER,
  map_frame = "map",
  tracking_frame = "laser",           --修改为 lidar_framde_id
  published_frame = "laser",          --修改为 lidar_framde_id
  odom_frame = "odom",
  provide_odom_frame = true,
  publish_frame_projected_to_2d = false,
  use_pose_extrapolator = true,       --此项为姿态外推器,建议为true,flase也可以
  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.submaps.num_range_data = 35
TRAJECTORY_BUILDER_2D.min_range = 0.2           --修改为lidar_min_range
TRAJECTORY_BUILDER_2D.max_range = 12.           --修改为lidar_max_range
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

        修改完成后,重新编译,再依次启动 lidar的launch carto 的 launch 就可以了,遇到ERROR看是不是我提到过的问题及对应关系没有写对。

==================编译工作空间=======================
catkin_make_isolated --install --use-ninja

==================开发串口权限=======================
sudo chmod 777 /dev/ttyUSB*

==================运行雷达节点=======================
roslaunch rplidar_ros rplidar.launch 

==============运行cartographer建图===================
roslaunch cartographer_ros demo_revo_lds.launch 

2.3 结果

        懒得拿着到处跑了,移动起来即可完成建图

四、Cargrapher单激光雷达建图(通用)

 


        不积跬步无以至千里,不积小流无以成江河  -------------------------------1:59文章来源地址https://www.toymoban.com/news/detail-416198.html

到了这里,关于四、Cargrapher单激光雷达建图(通用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Cartographer算法2D激光雷达与IMU融合建图 首先先说一下我的硬件设备:

     上一篇文章讲了cartographer算法手持雷达建图的参数调试,这篇进一步讲如何融合2D雷达与IMU采用cartographer算法进行slam建图。 cartographer算法手持二维激光雷达建图(不使用里程计及IMU) https://blog.csdn.net/wangchuchua/article/details/127268037?spm=1001.2014.3001.5502 思岚s1激光雷达、Tobotics

    2023年04月10日
    浏览(31)
  • 自动驾驶感知——激光雷达基本概念|激光雷达点云|激光雷达的标定

    激光探测及测距系统(Light Detection and Ranging,LiDAR) 激光雷达是一种通过发射激光束探测目标的位置、速度等特征量 的雷达系统 激光波段位于0.5μm-10μm,以光电探测器为接收器件,以光学望远镜为天线。 特点 • 角分辨率、距离分辨率高 • 抗干扰能力强 • 三维坐标、反射率

    2024年02月02日
    浏览(33)
  • 3d激光slam建图与定位(2)_aloam代码阅读

    1.常用的几种loam算法 aloam 纯激光 lego_loam 纯激光 去除了地面 lio_sam imu+激光紧耦合 lvi_sam 激光+视觉 2.代码思路 2.1.特征点提取scanRegistration.cpp,这个文件的目的是为了根据曲率提取4种特征点和对当前点云进行预处理 输入是雷达点云话题 输出是 4种特征点点云和预处理后的当前

    2024年02月11日
    浏览(24)
  • ROS小车——雷达的使用与SLAM建图(4)

    启动激光雷达并查看数据,建图并避障导航 roslaunch robot_navigation lidar.launch在终端输入启动雷达,雷达开始旋转, 并打印scan话题,rostopic echo/scan,在虚拟机中 roslaunch robot_navigation lidar_rviz.launch 查看图形化的雷达数据。 roslaunch robot_navigation robot_slam_lidar.launch在终端输入启动sl

    2023年04月21日
    浏览(35)
  • 3d激光slam建图与定位(1)_基于ndt算法定位

    节点图 匹配精度 帧率做到100ms左右,纯ndt在2-3cm的位置误差 ,角度误差在0.2度左右 一.代码实现流程 二.ndt算法原理 一.该算法定位有三个进程文件 1.map_loader.cpp用于点云地图的读取,从文件中读取点云后对这个点云地图进行旋转平移后发布点云地图到ros 2.points_downsampler.cpp对雷

    2024年02月14日
    浏览(32)
  • 4D毫米波雷达和3D雷达、激光雷达全面对比

              众所周知,传统3D毫米波雷达存在如下性能缺陷:         1)静止目标和地物杂波混在一起,难以区分;         2) 横穿车辆和行人多普勒为零或很低,难以检测;         3) 高处物体和地面目标不能区分,容易造成误刹,影响安全性;        

    2024年02月05日
    浏览(41)
  • 激光雷达技术路线及产业链梳理:OPA+FMCW或成为未来激光雷达终极解决方案

    前言:本文对激光雷达产业进行梳理,从上游器件、中下游终端厂商等几个部分来剖析激光雷达产业链。 激光雷达:自动驾驶的核心传感器 激光雷达是通过发射激光束作为来探测目标位置、速度、结构等特征的雷达系统。与其他雷达系统的原理类似,激光雷达是向目标发射

    2024年02月07日
    浏览(25)
  • 首发丨全球首款用于激光雷达的商用光控超表面芯片发布!激光雷达降本再添可选项

    《激光雷达老炮儿》最新获悉,美国光学半导体创业公司Lumotive于上周五宣布正式对外推出其首款极具开创性、基于 光控超表面  (LCM)技术的 完整产品LM10 ,该产品也是世界上首款商用数字光束控制解决方案。 与机械系统相比,Lumotive的数字光束控制技术凭借其卓越的成本

    2024年02月09日
    浏览(24)
  • 激光雷达基本原理

    激光雷达工作原理 激光雷达根据测量原理可以分为 三角法激光雷达、脉冲法激光雷达、相干法 激光雷达。最常用的是脉冲激光雷达。基于脉冲法的激光雷达利用光速测距。激光发射器发射激光脉冲,计时器记录发射时间;脉冲经物体反射后由接收器接收,计时器记录接收时

    2023年04月15日
    浏览(30)
  • 激光雷达和相机联合标定

    所有内容仅供个人学习记录 相机内参是相机坐标系转换到图像像素坐标系 相机内参是世界坐标系转换到相机坐标系 相机的成像过程涉及到四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。 四个坐标系: 1) 世界坐标系(world coordinate system) 现实世界的三维坐

    2024年01月18日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包