ROS2入门到精通—— 2-11 ROS2实战:实现基于voronoi_planner的全局规划(一)!!!保姆级教程

实现基于voronoi_planner的全局规划将分为两篇博文进行讲解
本文参考该大佬代码:

  • https://github.com/nkuwenjian/voronoi_planner.git
  • https://github.com/nkuwenjian/voronoi_layer.git

将上面的ROS1代码移植到ROS2,移植不易,中间遇到很多坑

0 前言

针对一些狭窄区域,可能你不需要像A*、Dijstra一样去寻找最短路径,而是找一条安全,离障碍物远的路线给局部控制器去跟踪
在这里插入图片描述
voronoi_planner使用 dynamicvoronoi包来制作广义的Voronoi图,该图由成本图上障碍物周围的区域组成

1 编写新的二维代价地图插件

首先参考一下官方的Nav2文档
在这里插入图片描述

下面这个例子将创建代价地图costmap插件,然后放置重复代价梯度到costmap中。有注解代码可以找到本教程在 navigation2_tutorials 库的nav2_gradient_costmap_plugin ROS 2d的包。当你自己想要创建2D代价地图插件时请参考它

插件类 nav2_gradi

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

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

相关文章

【机器学习】梯度下降的基本概念和如何使用梯度下降自动化优化w和b

引言 梯度下降是一种用于寻找函数最小值的优化算法,它在机器学习中广泛用于训练模型,如线性回归、神经网络等 一、梯度下降的基本概念 1.1 目标函数 在机器学习中,这通常是损失函数(如均方误差、交叉熵等)&#xff0…

深度学习趋同性的量化探索:以多模态学习与联合嵌入为例

深度学习趋同性的量化探索:以多模态学习与联合嵌入为例 参考文献 据说是2024年最好的人工智能论文,是否有划时代的意义? [2405.07987] The Platonic Representation Hypothesis (arxiv.org) ​arxiv.org/abs/2405.07987 趋同性的量化表达 …

Pytorch使用教学7-张量的广播

PyTorch中的张量具有和NumPy相同的广播特性,允许不同形状的张量之间进行计算。 广播的实质特性,其实是低维向量映射到高维之后,相同位置再进行相加。我们重点要学会的就是低维向量如何向高维向量进行映射。 相同形状的张量计算 虽然我们觉…

JavaScript性能优化与调试

JavaScript性能优化与调试 如何通过优化Javascript代码来提高性能 减少页面的重绘(Repaint)和重排(Reflow) 减少页面的重绘(Repaint)和重排(Reflow)是优化网页性能的重要方面。以…

JAW:一款针对客户端JavaScript的图形化安全分析框架

关于JAW JAW是一款针对客户端JavaScript的图形化安全分析框架,该工具基于esprima解析器和EsTree SpiderMonkey Spec实现其功能,广大研究人员可以使用该工具分析Web应用程序和基于JavaScript的客户端程序的安全性。 工具特性 1、动态可扩展的框架&#x…

模拟ADG主库归档文件丢失,备库出现gap(增量备份解决)

文章目录 一、说明二、环境信息2.1.主备库环境信息2.2.检查主备是否同步正常 三、模拟日志断档3.1.模拟主库归档文件丢失3.2 查看主库状态出现GAP 四、RMAN增量备份恢复备库同步4.1 RMAN增量恢复备库4.2 开启备库redo同步4.3 主备库验证同步 一、说明 模拟Oracle主库归档文件丢…

Git基本原理讲解、常见命令、Git版本回退、Git抛弃本地分支拉取仓库最新分支

借此机会写篇博客汇总一下自己去公司实习之后遇到的一些常见关于Git的操作。 Git基本认识 Git把数据看作是对小型文件系统的一组快照,每次提交更新,或在Git中保存项目状态时,Git主要对当时的全部文件制作一个快照并保存这个快照的索引。同时…

【C++】选择结构案例-三只小猪称体重

案例问题 假设有三只小猪A、B、C,在输入三者体重后希望能输出他们各自的体重并测出谁最重 思路 先让A与B相比较,如果A重,则让A和C相比较,如果A重则输出A最重,否则输出C最重 在最开始的条件(AB相比较&am…

浅谈Devops

1.什么是Devops DevopsDev(Development)Ops(Operation) DevOps(Development和Operations的混合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”…

通过限制访问,实现纯私有Docker镜像

怎么会不过审呢?没有敏感信息呀。 For obvious reasons,Many Docker image repositories are inaccessible,The official warehouse has also been filtered by the firewall,So write about how to build a self use Docker image using CloudFlares Workers and Pages. …

oracle使用backup as copy方式迁移数据文件

oracle使用backup as copy方式迁移数据文件 1 基础环境 --确认数据文件路径 set line 200 col name for a75 select file#,name from v$datafileFILE# NAME ---------- ---------------------------------------------------------------------------1 /u01/app/oracle/orada…

C++20之设计模式(19):空对象

空对象 空对象场景 空对象共享指针不是空对象改进设计隐式空对象总结 空对象 我们并不能总能选择自己想使用的接口。例如,我宁愿让我的车自己开车送我去目的地,而不必把100%的注意力放在道路和开车在我旁边的危险疯子身上。软件也是如此:有时你并不是真…

WPF MVVM使用遇见问题

一、遇见问题 1.使用Dictionary绑定ListBox的ItsSource问题 过程: 需要再界面动态显示字典,在循环中添加两条数据时,绑定的字典断点查看有两条,界面上只显示一条,后面再其他数量的都动态不显示,鼠标滚动后…

BUUCTF [安洵杯 2019]easy_serialize_php

这道题题目说easy但是对我来说极其不友好!看了很多wp讲的模棱两可,我尽量来说清楚点 代码解析: 这里$function $_GET[f],是我们通过get方式传递的,因为注释提示有东西先传fphpinfo看看 找到了一个东西,很…

每日任务:HTTP状态码详解及强缓存与协商缓存的区别

1.HTTP中常见的状态码有哪些? HTTP常见的状态码主要有以下几大类: 1XX:提示信息,协议处理的中间状态 2XX:请求成功 3XX:请求重定向 4XX:请求错误,一般是指发送请求的机器出现了问题 5XX:服务器错误,一般是指接受…

SQL性能优化:提升数据查询效率的秘诀

随着数据库规模的日益增大,SQL查询的性能问题逐渐成为开发者关注的焦点。一个低效的查询可能会导致系统响应缓慢,甚至崩溃。因此,掌握SQL性能优化的技巧对于提升系统整体性能至关重要。本文将介绍几种常用的SQL性能优化方法,帮助你…

IPD推行成功的核心要素(十五)项目管理提升IPD相关项目交付效率和用户体验

研发项目往往包含很多复杂的流程和具体的细节。因此,一套完整且标准的研发项目管理制度和流程对项目的推进至关重要。研发项目管理是成功推动创新和技术发展的关键因素。然而在实际管理中,研发项目管理常常面临着需求不确定、技术风险、人员素质、成本和…

STM32-寄存器DMA配置指南

配置步骤 在STM32F0xx中文参考手册中的DMA部分在开头给出了配置步骤 每个通道都可以在外设寄存器固定地址和存储器地址之间执行 DMA 传输。DMA 传输的数据 量是可编程的,最大达到 65535。每次传输之后相应的计数寄存器都做一次递减操作,直到 计数为&am…

电脑屏幕录制软件,分享4款(2024最新)

在今天,我们的电脑屏幕成为了一个多彩多姿的窗口。通过它我们可以浏览网页、观看视频、处理文档、进行游戏……有时,我们想要记录下这些精彩瞬间,与朋友分享,或者作为教程留存,这时,电脑屏幕录制就显得尤为…

HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 答案纯享版

这篇文章是高级题库答案纯享版,只有需要选择的选项。如果需要查看所有选项,可以点击下方链接跳转。此文章准确率60%~70%,不敢保证能过,仅提供参考。以考代学,还是推荐点击下方链接,查看完整的题库&#xff…