您好,
会员登录 快速注册
退出 ( 条未读消息)
关于本站 意见反馈 首页

公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!
全部文章分类
  • 人工智能 >

  • 编程语言 >

  • WPF系列 >

  • ASP.NET系列 >

  • Linux >

  • 数据库 >

  • 嵌入式 >

  • WEB技术 >

  • PLC系列 >

  • 微服务与框架 >

  • 小宅DIY >

  • 学习资料 >

OpenCv基础 ANN车牌识别 yolov5车牌识别 指针式仪表识别 ROS系列 YOLO Halcon Detectron2 昇腾AI ChatGPT在线体验 英伟达JETSON ChatGLM ChatTTS FunASR 地平线 ByteTrack 魔搭社区 LangChain
C C# C++ Python Java Go
WPF
ASP.NET小功能 GPS定位系统-MVC GPS定位系统-VUE ASP.NET WebRTC
Linux Linux内核 Shell MakeFile
MySql SqlServer Oracle
STM8 STM32 51单片机
VUE入门 HTML JavaScript CSS layui镜像网站 ElementUi中文官网 element-plus 图标
三菱 欧姆龙 西门子 施耐德 松下 台达
IOTSharp IOTGateway ABP FRAMEWORK Docker
亚克力音响 编程仙途:智驭万法
面试题与技巧 Python入门技能树 微软C#教程
首页 编程之美 工具下载 全国就业 流量地图 文心一言
ROS系列
ROS - 介绍 ROS1-常规安装方法 ROS1-Linux下的ROS环境搭建 ROS1-ROS话题:发布者 ROS1-发布者与订阅者通讯 ROS1-服务器与客户端节点通讯 ROS1-动作服务器与客户端通讯 ROS1-发布imu和gps消息 ROS2-新建Ubuntu环境 ROS2-创建一个简单节点 ROS2-Python之消息的发布与订阅 ROS2-C++之消息的发布与订阅 ROS2-调用USB免驱摄像头 ROS2-地瓜机器人笔记 ROS2 控制小车进行矩形运动 ROS2 设置节点开机自启 ROS2 添加自定义msg ROS2 URDF建模 ROS2 Gazebo 仿真环境搭建 ROS2 XACRO建模 ROS2 在Gazebo加载机器人模型 ROS2 Carttographer安装 ROS2 配置cartographer进行建图 ROS2 Nav2导航仿真-新建工程 ROS2 Nav2导航仿真 ROS2 Nav2 API导航
ROS2 在Gazebo加载机器人模型
ROS2 配置cartographer进行建图
激萌の小宅 小宅博客 ROS系列

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

ROS2 Carttographer安装

参考博客:Carto介绍及安装


安装carotgrapher

sudo apt install ros-humble-cartographer


需要注意我们不是直接使用cartographer,而是通过cartographer-ros功能包进行相关操作,所以我们还需要安装下cartographer-ros

sudo apt install ros-humble-cartographer-ros


测试是否安装成功

如果是源码编译请先source下工作空间后再使用下面指令查看是否安装成功

ros2 pkg list | grep cartographer


能看到下面的结果即可

微信截图_20250529174208.jpg


可能你会好奇为什么没有cartographer,因为cartographer包的编译类型原因造成的,不过没关系,cartographer_ros依赖于cartographer,所以有cartographer_ros一定有cartographer。


Cartographer参数配置

作为一个优秀的开源库,Cartographer提供了很多可以配置的参数,虽然灵活性提高了,但同时也提高了使用难度(需要对参数进行调节配置),所以有必要在正式使用前对参数进行基本的介绍。

因为我们主要使用其进行2D的建图定位,所以我们只需要关注2D相关的参数。

Cartographer参数是使用lua文件来描述的,不会lua也没关系,我们只是改改参数而已。


提示:lua中的注释采用 -- 开头

前端参数

文件路径:

./opt/ros/humble/share/cartographer/configuration_files/trajectory_builder_2d.lua


请你打开这个文件自行浏览,下面对初次建图配置的参数进行介绍。

-- 是否使用IMU数据

use_imu_data = true, 

-- 深度数据最小范围

min_range = 0.,

-- 深度数据最大范围

max_range = 30.,

-- 传感器数据超出有效范围最大值时,按此值来处理

missing_data_ray_length = 5.,

-- 是否使用实时回环检测来进行前端的扫描匹配

use_online_correlative_scan_matching = true

-- 运动过滤,检测运动变化,避免机器人静止时插入数据

motion_filter.max_angle_radians


后端参数

文件路径:

./opt/ros/humble/share/cartographer/configuration_files/pose_graph.lua


该文件主要和地图构建相关

--Fast csm的最低分数,高于此分数才进行优化。

constraint_builder.min_score = 0.65

--全局定位最小分数,低于此分数则认为目前全局定位不准确

constraint_builder.global_localization_min_score = 0.7


Carotgrapher_ROS参数配置

该部分参数主要是用于和ROS2进行通信和数据收发的配置,比如配置从哪个话题读取里程记数据,从哪个话题来获取深度信息(雷达)。

文件路径:

./opt/ros/humble/share/cartographer_ros/configuration_files/backpack_2d.lua

include "map_builder.lua"

include "trajectory_builder.lua"


options = {

  map_builder = MAP_BUILDER,

  trajectory_builder = TRAJECTORY_BUILDER,

  -- 用来发布子地图的ROS坐标系ID,位姿的父坐标系,通常是map。

  map_frame = "map",

  -- SLAM算法跟随的坐标系ID

  tracking_frame = "base_link",

  -- 将发布map到published_frame之间的tf

  published_frame = "base_link",

  -- 位于“published_frame ”和“map_frame”之间,用来发布本地SLAM结果(非闭环),通常是“odom”

  odom_frame = "odom",

  -- 是否提供里程计

  provide_odom_frame = true,

  -- 只发布二维位姿态(不包含俯仰角)

  publish_frame_projected_to_2d = false,

  -- 是否使用里程计数据

  use_odometry = false,

  -- 是否使用GPS定位

  use_nav_sat = false,

  -- 是否使用路标

  use_landmarks = false,

  -- 订阅的laser scan topics的个数

  num_laser_scans = 0,

  -- 订阅多回波技术laser scan topics的个数

  num_multi_echo_laser_scans = 1,

  -- 分割雷达数据的个数

  num_subdivisions_per_laser_scan = 10,

  -- 订阅的点云topics的个数

  num_point_clouds = 0,

  -- 使用tf2查找变换的超时秒数

  lookup_transform_timeout_sec = 0.2,

  -- 发布submap的周期间隔

  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.,

  -- 固定的frame位姿采样率

  fixed_frame_pose_sampling_ratio = 1.,

  -- IMU数据采样率

  imu_sampling_ratio = 1.,

  -- 路标采样率

  landmarks_sampling_ratio = 1.,

}



ROS2 在Gazebo加载机器人模型
ROS2 配置cartographer进行建图

友情链接: CSDN激萌の小宅 95知识库 自考题库 罗分明个人网络博客 精益编程leanboot

小宅博客  www.bilibili996.com All Rights Reserved. 备案号: 闽ICP备2024034575号

网站经营许可证  福建省福州市 Copyright©2021-2025 版权所有

小宅博客
首页 智能家居 地图定位
公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

ROS2 Carttographer安装

参考博客:Carto介绍及安装


安装carotgrapher

sudo apt install ros-humble-cartographer


需要注意我们不是直接使用cartographer,而是通过cartographer-ros功能包进行相关操作,所以我们还需要安装下cartographer-ros

sudo apt install ros-humble-cartographer-ros


测试是否安装成功

如果是源码编译请先source下工作空间后再使用下面指令查看是否安装成功

ros2 pkg list | grep cartographer


能看到下面的结果即可

微信截图_20250529174208.jpg


可能你会好奇为什么没有cartographer,因为cartographer包的编译类型原因造成的,不过没关系,cartographer_ros依赖于cartographer,所以有cartographer_ros一定有cartographer。


Cartographer参数配置

作为一个优秀的开源库,Cartographer提供了很多可以配置的参数,虽然灵活性提高了,但同时也提高了使用难度(需要对参数进行调节配置),所以有必要在正式使用前对参数进行基本的介绍。

因为我们主要使用其进行2D的建图定位,所以我们只需要关注2D相关的参数。

Cartographer参数是使用lua文件来描述的,不会lua也没关系,我们只是改改参数而已。


提示:lua中的注释采用 -- 开头

前端参数

文件路径:

./opt/ros/humble/share/cartographer/configuration_files/trajectory_builder_2d.lua


请你打开这个文件自行浏览,下面对初次建图配置的参数进行介绍。

-- 是否使用IMU数据

use_imu_data = true, 

-- 深度数据最小范围

min_range = 0.,

-- 深度数据最大范围

max_range = 30.,

-- 传感器数据超出有效范围最大值时,按此值来处理

missing_data_ray_length = 5.,

-- 是否使用实时回环检测来进行前端的扫描匹配

use_online_correlative_scan_matching = true

-- 运动过滤,检测运动变化,避免机器人静止时插入数据

motion_filter.max_angle_radians


后端参数

文件路径:

./opt/ros/humble/share/cartographer/configuration_files/pose_graph.lua


该文件主要和地图构建相关

--Fast csm的最低分数,高于此分数才进行优化。

constraint_builder.min_score = 0.65

--全局定位最小分数,低于此分数则认为目前全局定位不准确

constraint_builder.global_localization_min_score = 0.7


Carotgrapher_ROS参数配置

该部分参数主要是用于和ROS2进行通信和数据收发的配置,比如配置从哪个话题读取里程记数据,从哪个话题来获取深度信息(雷达)。

文件路径:

./opt/ros/humble/share/cartographer_ros/configuration_files/backpack_2d.lua

include "map_builder.lua"

include "trajectory_builder.lua"


options = {

  map_builder = MAP_BUILDER,

  trajectory_builder = TRAJECTORY_BUILDER,

  -- 用来发布子地图的ROS坐标系ID,位姿的父坐标系,通常是map。

  map_frame = "map",

  -- SLAM算法跟随的坐标系ID

  tracking_frame = "base_link",

  -- 将发布map到published_frame之间的tf

  published_frame = "base_link",

  -- 位于“published_frame ”和“map_frame”之间,用来发布本地SLAM结果(非闭环),通常是“odom”

  odom_frame = "odom",

  -- 是否提供里程计

  provide_odom_frame = true,

  -- 只发布二维位姿态(不包含俯仰角)

  publish_frame_projected_to_2d = false,

  -- 是否使用里程计数据

  use_odometry = false,

  -- 是否使用GPS定位

  use_nav_sat = false,

  -- 是否使用路标

  use_landmarks = false,

  -- 订阅的laser scan topics的个数

  num_laser_scans = 0,

  -- 订阅多回波技术laser scan topics的个数

  num_multi_echo_laser_scans = 1,

  -- 分割雷达数据的个数

  num_subdivisions_per_laser_scan = 10,

  -- 订阅的点云topics的个数

  num_point_clouds = 0,

  -- 使用tf2查找变换的超时秒数

  lookup_transform_timeout_sec = 0.2,

  -- 发布submap的周期间隔

  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.,

  -- 固定的frame位姿采样率

  fixed_frame_pose_sampling_ratio = 1.,

  -- IMU数据采样率

  imu_sampling_ratio = 1.,

  -- 路标采样率

  landmarks_sampling_ratio = 1.,

}