在ros2 jazzy和gazebo harmonic下的建图导航(cartographer和navigation)实现(基本)

我的github分支!!!
你可以在这里找到相对应的源码。
DWDROME的MOGI分支
来源于!!
MOGI-ROS/Week-3-4-Gazebo-basics

学习分支整理日志

分支概述

这是一个用于个人学习的新分支,目的是扩展基本模型并添加更多组件,以适应实际开发需求。


进展日志
  • 2025-01-03
    • 完善了源库中的重要部分,为后续开发打下了基础。
    • 调整了基础模型,提高了其在仿真环境中的稳定性。
  • 2025-01-04
    • Cartographer 部分
      • 集成了 Cartographer 激光雷达 SLAM 功能。
      • 完成 cartographer.launch.py 配置,支持在 Gazebo 中实时生成地图。
      • 添加了 fishbot_2d.lua 配置文件,优化了激光雷达参数。
    • Nav2 部分
      • 增加了 Nav2 功能包,实现路径规划和导航功能。
      • 添加 bme_nav2.launch.py 启动文件,支持加载保存的地图。
      • 配置了 bme_nav2.yaml 参数文件,优化局部和全局规划器。

下一步计划
  1. 扩展模型
    • 为机器人添加更多传感器(如深度摄像头、激光雷达等)。
    • 增加机械臂组件以支持复杂操作。
  2. 完善导航功能
    • 集成目标检测和避障算法,提升导航的智能性。
    • 调整地图更新频率和导航行为,优化性能。
  3. 学习与实践
    • 学习更多 ROS 2 与 Gazebo 的集成技巧。
    • 通过自定义插件,提升 Gazebo 模拟环境的功能。

总结

这个分支已经具备了基本 SLAM 和导航功能,为进一步学习和实验提供了良好的基础。接下来,将继续扩展和完善,以支持更多场景的需求! 🚀

分布树

├── bme_cartographer
│   ├── CMakeLists.txt
│   ├── config
│   │   └── fishbot_2d.lua
│   ├── include
│   ├── launch
│   │   └── cartographer.launch.py
│   ├── LICENSE
│   ├── package.xml
│   ├── rviz
│   │   └── cartographer.rviz
│   └── src
│       └── map
│           ├── bme_map.pgm
│           └── bme_map.yaml
├── bme_gazebo_basics
│   ├── CMakeLists.txt
│   ├── config
│   │   └── ros_gz_bridge.yaml
│   ├── launch
│   │   ├── check_urdf.launch.py
│   │   ├── spawn_robot.launch.py
│   │   └── world.launch.py
│   ├── meshes
│   ├── package.xml
│   ├── rviz
│   │   ├── rviz.rviz
│   │   └── urdf.rviz
│   ├── urdf
│   │   ├── materials.xacro
│   │   ├── mogi_bot.gazebo
│   │   ├── mogi_bot_old.gazebo
│   │   └── mogi_bot.urdf
│   └── worlds
│       ├── empty.sdf
│       └── world.sdf
├── bme_navigation2
│   ├── CMakeLists.txt
│   ├── include
│   │   └── bme_navigation2
│   ├── launch
│   │   └── bme_nav2.launch.py
│   ├── LICENSE
│   ├── maps
│   │   ├── bme_map.pgm
│   │   └── bme_map.yaml
│   ├── package.xml
│   ├── param
│   │   └── bme_nav2.yaml
│   └── src
│       └── nav2.py
└── mogi_trajectory_server├── LICENSE├── mogi_trajectory_server│   ├── __init__.py│   └── trajectory.py├── package.xml├── README.md├── resource│   └── mogi_trajectory_server├── setup.cfg└── setup.py

使用方法指南

以下是项目中每个功能包的详细说明和使用方法,帮你快速上手!😄


1. bme_cartographer

功能:激光雷达 SLAM,用来生成地图,支持在 RViz 中实时查看。

  • 怎么用:

    1. 启动 Cartographer SLAM:

      ros2 launch bme_cartographer cartographer.launch.py
      

      默认配置文件是 config/fishbot_2d.lua

    2. 查看地图:

      • 在 RViz 中加载配置文件:

        rviz2 -d install/bme_cartographer/share/bme_cartographer/rviz/cartographer.rviz
        

2. bme_gazebo_basics

功能:用于 Gazebo 仿真,主要负责加载机器人模型和启动仿真环境。

  • 怎么用:

    1. 检查机器人模型 (URDF):

      ros2 launch bme_gazebo_basics check_urdf.launch.py
      
    2. 将机器人加载到 Gazebo 中:

      ros2 launch bme_gazebo_basics spawn_robot.launch.py
      
    3. 运行仿真世界:

      ros2 launch bme_gazebo_basics world.launch.py
      

3. bme_navigation2

功能:负责导航功能,用 SLAM 生成的地图进行路径规划和运动控制。

  • 怎么用:

    1. 启动导航系统:

      ros2 launch bme_navigation2 bme_nav2.launch.py
      
    2. 修改参数:

      • 导航的参数文件是 param/bme_nav2.yaml,可以根据需求调整代价地图、控制器等参数。
    3. 加载地图:

      • 确保 maps/bme_map.pgmmaps/bme_map.yaml 已经保存并正确配置。

4. mogi_trajectory_server

功能:负责轨迹服务,提供轨迹生成和跟踪功能。

  • 怎么用:

    1. 安装依赖:

      pip install -e .
      
    2. 运行轨迹服务(以集成在spawn中):

      ros2 run mogi_trajectory_server trajectory.py
      

整体流程

  1. 运行 Gazebo 仿真环境

    ros2 launch bme_gazebo_basics world.launch.py
    
  2. 启动 Cartographer SLAM

    ros2 launch bme_cartographer cartographer.launch.py
    
  3. 保存地图

    ros2 run nav2_map_server map_saver_cli -f maps/bme_map
    
  4. 启动导航功能

    ros2 launch bme_navigation2 bme_nav2.launch.py
    
  5. 运行轨迹服务

    ros2 run mogi_trajectory_server trajectory.py
    

小贴士

  • 所有功能包依赖安装好了吗?一定要检查哦~

  • 启动之前记得 source 环境:

    source install/setup.zsh
    
  • 如果有啥问题,随时调整配置文件,或者来问我!💡

希望这些说明能帮到你,祝你玩得开心!🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/66144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 实现分布式锁

文章目录 引言一、Redis的两种原子操作1.1 Redis 的原子性1.2 单命令1.3 Lua 脚本1.4 对比单命令与 Lua 脚本 二、Redis 实现分布式锁2.1 分布式锁的概念与需求2.1.1 什么是分布式锁?2.1.2 分布式锁的常见应用场景 2.2 基于 Redis 的分布式锁实现2.2.1 锁的获取与释…

SAP MM物料管理模块常见BAPI函数清单

【SAP系统研究】 #SAP #MM #物料管理 #函数 #BAPI 1、物料主数据 BAPI_MATERIAL_SAVEDATA 创建/更改物料主数据 BAPI_MATERIAL_SAVEREPLICA 物料主数据视图扩充 BAPI_MATERIAL_EXISTENCECHECK 检查物料主数据是否存在 BAPI_MATERIAL_GETLIST 显示物料主数据明细 BAPI_MATERIALG…

104周六复盘 (188)UI

1、早上继续看二手书的一个章节,程序开发流程、引擎、AI等内容, 内容很浅,基本上没啥用,算是复习。 最大感触就是N年前看同类书的里程碑、AI相关章节时,会感觉跟自己没啥关系, 而如今则密切相关&#xf…

(leetcode算法题)382. 链表随机节点

如果给你一个 智能记录 k行内容的小笔记本,从一本你也不知道有多少行的 C Primer 中进行摘抄,你应该怎么做才能让抄写的时候能让书中的每一行都等概率的出现在小笔记本中? 答:准备好一个公平的轮盘和一个巨大的摇奖机&#xff0c…

腾讯云智能结构化 OCR:驱动多行业数字化转型的核心引擎

在当今数字化时代的汹涌浪潮中,数据已跃升为企业发展的关键要素,其高效、精准的处理成为企业在激烈市场竞争中脱颖而出的核心竞争力。腾讯云智能结构化 OCR 技术凭借其前沿的科技架构与卓越的功能特性,宛如一颗璀璨的明星,在交通、…

2025-01-04 Unity插件 YodaSheet2 —— 基础用法

文章目录 环境配置1 创建 YadeSheetData2 读取方式2.1 表格读取2.2 列表读取 3 自定义设置3.1 修改代码生成位置3.2 添加列表支持3.2.1 修改 DataTypeMapper.cs3.2.2 修改 SheetDataExtensions.cs3.2.3 修改 CodeGeneratorEditor.cs3.2.4 测试 ​ 官方文档: Unity …

matlab时频分析库

time frequency gallery

『 Linux 』高级IO (三) - Epoll模型的封装与EpollEchoServer服务器

文章目录 前情提要Epoll 的封装Epoll封装完整代码(供参考) Epoll Echo ServerEpoll Echo Server 测试及完整代码 前情提要 在上一篇博客『 Linux 』高级IO (二) - 多路转接介绍并完成了两种多路转接方案的介绍以及对应多路转接方案代码的编写,分别为SelectServer服务器与PollSe…

PDF预览插件

PDF预览插件 可用于当前页面弹窗形式查看,可增加一些自定义功能 pdf预览插件 代码块: pdfobject.js <div class="pdfwrap"><div class="item"><h3>笑场</h3><div class="tags"><p>李诞</p><i&…

【Java项目】基于SpringBoot的【新生宿舍管理系统】

【Java项目】基于SpringBoot的【新生宿舍管理系统】 技术简介&#xff1a;本系统使用采用B/S架构、Spring Boot框架、MYSQL数据库进行开发设计。 系统简介&#xff1a;管理员登录进入新生宿舍管理系统可以查看首页、个人中心、公告信息管理、院系管理、班级管理、学生管理、宿舍…

Huginn - 构建代理、执行自动化任务

文章目录 一、关于 Huginn什么是Huginn&#xff1f;Huginn 功能加入Huginn展示 二、安装1、Docker2、本地安装3、开发 三、使用Huginn代理gems四、部署1、Heroku2、OpenShiftOpenShift 在线 3、在任何服务器上手动安装4、可选设置4.1 私人开发设置4.2 启用WeatherAgent4.3 禁用…

电子应用设计方案86:智能 AI背景墙系统设计

智能 AI 背景墙系统设计 一、引言 智能 AI 背景墙系统旨在为用户创造一个动态、个性化且具有交互性的空间装饰体验&#xff0c;通过融合先进的技术和创意设计&#xff0c;提升室内环境的美观度和功能性。 二、系统概述 1. 系统目标 - 提供多种主题和风格的背景墙显示效果&…

基于Spring Boot的IT技术交流和分享平台的设计与实现源码

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的IT技术交流和分享平台的设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于S…

单元测试3.0+ @RunWith(JMockit.class)+mock+injectable+Expectations

Jmockit使用笔记_基本功能使用Tested_Injectable_Mocked_Expectations_jmockit.class-CSDN博客 静态变量直接赋值就好&#xff0c;没必要mock了 测试框架Jmockit集合junit使用 RunWith(JMockit.class) 写在测试案例类上的注解 Tested 在测试案例中,写在我们要测试的类上…

PADS Logic原理图中有很多页原理图,如何(怎样)删除其中一页或者多页

我们在进行PADS Logic进行原理图设计的时候&#xff0c;有时候可能遇到一次性设计了很多页的原理图&#xff0c;比如说十几页的原理图。那么我们在进行PADS Layout的时候&#xff0c;可能将这些原理图绘制两块板或者多块PCB板&#xff0c;那么这时候我们需要将其中的一张原理图…

Elasticsearch 创建索引 Mapping映射属性 索引库操作 增删改查

Mapping Type映射属性 mapping是对索引库中文档的约束&#xff0c;有以下类型。 text&#xff1a;用于分析和全文搜索&#xff0c;通常适用于长文本字段。keyword&#xff1a;用于精确匹配&#xff0c;不会进行分析&#xff0c;适用于标签、ID 等精确匹配场景。integer、long…

《GICv3_Software_Overview_Official_Release_B》学习笔记

1.不同版本的 GIC 架构及其主要功能如下图所示&#xff1a; 2.GICv2m&#xff08;Generic Interrupt Controller Virtualization Model&#xff09;是针对ARM架构的GIC&#xff08;通用中断控制器&#xff09;的一种扩展&#xff0c; GICv2m扩展为虚拟化环境中的中断管理提供了…

【QT】找不到qwt_plot.h

系统环境&#xff1a; linux 20.04 qt 6.7.2 cmake 3.22 原因&#xff1a; Qwt没有正式的FindQwt.cmake&#xff0c;Qwt也没有提供QwtConfig.cmake。而且cmake不支持qmake的配置特性&#xff0c;也不支持读取mkspecs (.prf)文件。也就是说cmake构建的qt项目不可用qwt。 解决步…

杰发科技——使用ATCLinkTool解除读保护

0. 原因 在jlink供电电压不稳定的情况下&#xff0c;概率性出现读保护问题&#xff0c;量产时候可以通过离线烧录工具避免。代码中开了读保护&#xff0c;但是没有通过can/uart/lin/gpio控制等方式进行关闭&#xff0c;导致无法关闭读保护。杰发所有芯片都可以用本方式解除读保…

Sublime Text4 4189 安装激活【 2025年1月3日 亲测可用】

-----------------测试时间2025年1月3日------------------- 下载地址 官方网址&#xff1a;https://www.sublimetext.com 更新日志&#xff1a;https://www.sublimetext.com/download V4189 64位&#xff1a;https://www.sublimetext.com/download_thanks?targetwin-x64 ....…