【Nav2】Ubuntu18+ROS2 Eloquent跑通Navigation2仿真示例

news2024/9/25 19:21:54

【背景】

打算通过Navigation2来了解ROS2的核心两大件——LifeCircle和BehaviorTree,结果根据官网的教程一顿鼓捣,这个Turtlbot3的仿真就是跑不起来,这怎么能忍?虽然在Ubuntu20上使用Foxy版本可以非常容易就跑通demo,但是我这个人就是不信邪,我偏要在Ubuntu18上把这小乌龟跑起来!于是就开始了漫漫DEBUG路。

【干货】

系统环境

  • Ubuntu 18.04
  • ROS2 Eloquent

软件代码栈

1、手动下载 Nav2 源码包

GitHub - ros-planning/navigation2 at eloquent-develROS2 Navigation Framework and System. Contribute to ros-planning/navigation2 development by creating an account on GitHub.https://github.com/ros-planning/navigation2/tree/eloquent-devel2、手动下载 BehaviorTree 源码包

Release 3.5.6 · BehaviorTree/BehaviorTree.CPP · GitHubBehavior Trees Library in C++. Batteries included. - Release 3.5.6 · BehaviorTree/BehaviorTree.CPPhttps://github.com/BehaviorTree/BehaviorTree.CPP/releases/tag/3.5.63、将上述两个包解压到 ~/nav2_ws/src/ 目录中,运行以下命令

colcon build

4、编译过程遇到有依赖缺失,则运行以下命令(pkg-name替换为缺失的包名)

sudo apt install ros-eloquent-<pkg-name>

5、安装 Turtlebot3 仿真环境

sudo apt install ros-eloquent-turtlebot3*

【开跑】

cd ~/nav2_ws/
export TURTLEBOT3_MODEL=waffle
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/eloquent/share/turtlebot3_gazebo/models
source install/setup.bash
ros2 launch nav2_bringup nav2_tb3_simulation_launch.py

RViz打开后,点击左下角的 startup ,并给机器人一个初始位置,然后就可以给 goal ,让乌龟动了

 【问题】

  1. 如果启动Gazebo的时候,终端冒出来一行红字“Err:LibCul:xxxxx”,就执行以下操作
gedit .ignition/fuel/config.yaml

将里面内容改成下面这样:
---
# The list of servers.
servers:
  -
    name: osrf
#    url: https://api.ignitionfuel.org
    url: https://api.ignitionrobotics.org

  # -
    # name: another_server
    # url: https://myserver

# Where are the assets stored in disk.
# cache:
#   path: /tmp/ignition/fuel

 2、ROS Eloquent的源码存在一个bug,当我们长时间让 Turtlebot 处于 idle 状态时,planner_server就会报一个错

https://github.com/ros2/rclcpp/issues/1266icon-default.png?t=N2N8https://github.com/ros2/rclcpp/issues/1266

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

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

相关文章

3年外包终上岸,我只能说:但凡有点机会,千万别去外包...

我大学学的是计算机专业&#xff0c;毕业的时候&#xff0c;对于找工作比较迷茫&#xff0c;也不知道当时怎么想的&#xff0c;一头就扎进了一家外包公司的软件测试岗&#xff0c;一干就是3年。现在终于跳槽到了互联网公司了&#xff0c;我想说的是&#xff0c;但凡有点机会&am…

behaviac —— Win10下Vs2017编译“腾讯行为树“源码

简介 - 腾讯行为树 behaviac是游戏AI的开发框架组件,也是游戏原型的快速设计工具。支持全平台,适用于客户端和服务器,助力游戏快速迭代开发 。编辑器可以运行在PC上,操作方便直观可靠,支持实时和离线调试;编辑器可以导出xml,bson等多种格式,更可以导出C++、C#源码,提供…

免费1年服务器,部署个ChatGPT专属网页版

作者&#xff1a;小傅哥 博客&#xff1a;https://bugstack.cn 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01;&#x1f604; 白皮袄个免费1年服务器&#xff0c;部署个ChatGPT专属网页版&#xff01; api.openai.com port 443: Connection timed out 你是…

Spring Security --- 基于内存模型创建用户角色

授权实现方式 基于内存模型实现授权基于默认数据库模型实现授权基于自定义数据库模型实现授权 基于内存模型创建用户角色 在Spring Security4.x版本中&#xff0c;登陆的用户有一个默认的ROLE_USER角色但是在Spring Security5.x版本中&#xff0c;把这个默认的角色给去掉了需要…

推荐一个3D建模工具集

3D建模工具集, 收录一下几个工具集&#xff1a;数字孪生编辑器 基于WebGL技术&#xff0c;依托丰富的模型资产库&#xff0c;通过拖拽式的操作&#xff0c;方便用户高效便捷的搭建三维数字孪生场景&#xff0c;配合twin服务平台&#xff0c;实现孪生设备姿态控制的虚实…

2023年第十四届蓝桥杯 C++ B组参赛经历和总结

2023年第十四届蓝桥杯 C B组参赛经历和总结 目录2023年第十四届蓝桥杯 C B组参赛经历和总结前言走上算法之路备考备战之路蓝桥杯比赛过程感受总结值不值得打备赛建议前言 写这篇博客的缘故&#xff0c;因为看到好几篇记录自己蓝桥杯经历的博客&#xff0c;于是乎我也想写一篇&…

【论文精读】Arxiv 2023 - Segment Anything

【论文精读】Arxiv 2023 - 分割一切 【论文原文】&#xff1a;Segment Anything 【作者信息】&#xff1a;Kirillov, Alexander and Mintun, Eric and Ravi, Nikhila and Mao, Hanzi and Rolland, Chloe and Gustafson, Laura and Xiao, Tete and Whitehead, Spencer and Ber…

如何设计帮助中心才能真正地帮助客户解决问题?

对于当今如此智能的时代&#xff0c;大多数人都习惯性地自己解决问题&#xff0c;所以在浏览某个网站或是使用某个产品遇到问题时&#xff0c;第一反应不再是找客服&#xff0c;而是到帮助中心去寻找解决问题的办法&#xff0c;因此&#xff0c;帮助中心变得越来越重要了。 那…

c# wpf log 调试 输出窗口

需求 刚好需要新手入门开发一个WPF界面&#xff0c;所以需要一些日志输出 其实我们只是简单的入门调试&#xff0c;只需要很简单的输出 真不需要log4net, expression等等比较长期地&#xff0c;跨度比较大的日志系统 而且这些日志系统接入也比较麻烦 有没办法做一个简单的…

多线程的使用与解释

多线程 文章目录多线程什么是多线程线程特点线程的使用线程的创建线程ID获得线程终止线程等待进程分离什么是多线程 是资源调用的最小单位。一个进程内部的控制序列。线程是调度的基本单位。 线程有共享进程的数据&#xff0c;也有自己 的一部分数据 线程特点 1&#xff0c…

电脑回收站删除的文件还能找回吗 电脑回收站删除的文件怎么恢复

电脑回收站是保护电脑文件和数据的重要屏障&#xff0c;被删除的文件数据在这里会被保存很久&#xff0c;直到被用户永久删除。为了保证电脑系统的流畅运行&#xff0c;我们会对电脑回收站进行清理。在一系列的操作过后&#xff0c;我们可能会发现自己误删了重要文件。那么电脑…

Leetcode135. 分发糖果

Every day a leetcode 题目来源&#xff1a;135. 分发糖果 解法1&#xff1a;贪心 首先把所有孩子的糖果数初始化为1。 从左往右遍历一遍&#xff0c;如果右边孩子的评分比左边的高&#xff0c;则右边孩子的糖果数更新为左边孩子的糖果数加1。 再从右往左遍历一遍&#xf…

匈牙利算法学习记录

匈牙利算法主要用来解决两个问题&#xff1a;求二分图的最大匹配数和最小点覆盖数。 匈牙利算法事实上有两个算法&#xff0c;分别解决指派问题和二分图最大匹配求解问题&#xff0c;此处算法指求解指派问题的匈牙利算法。 处理流程 方法一 具体如何实现呢&#xff1f; 代码…

【数据结构】- 初识数据结构之时间复杂度(上)

文章目录前言一、什么是数据结构二、什么是算法三、算法效率3.1如何衡量一个算法的好坏3.2算法复杂度四、时间复杂度4.1时间复杂度的概念4.2大O的渐进表示法4.3常见时间复杂度计算举例总结前言 努力不是为了和别人一较高下 而是为了让生活多一种可能 别让世俗淹没生活的浪漫和…

MySQL:基本常识介绍、操作数据库、操作数据库中的表、操作表中的数据(增删改查)、MySQL 函数

文章目录Day 02&#xff1a;一、常见的 SQL 语句二、基本常识1. 数据库的列类型2. 数据库的字段属性三、操作数据库1. 操作数据库2. 操作数据库中的表&#xff08;1&#xff09;创建表&#xff1a;CREAT&#xff08;2&#xff09;修改表&#xff1a;ALTER&#xff08;3&#xf…

肖 sir_就业课__014python讲解

python讲解 一、python梳理 1、python 数据类型有哪些&#xff1f; 字符、列表、元组、字典、集合 2、列表、元组、字典、集合的区别&#xff1f; 3、python中函数&#xff1f; &#xff08;1&#xff09;自定义函数 def 函数名&#xff08;&#xff09; &#xff08;2&#…

聊聊架构方案选择

大家好&#xff0c;我是易安&#xff01; 在完成备选方案设计后&#xff0c;如何挑选最终的方案是一个很大的挑战&#xff0c;因为每个备选方案都是可行的。但是&#xff0c;没有哪个备选方案是完美的&#xff0c;因为每个方案都存在一些缺点或风险。此外&#xff0c;评价备选方…

薅!无魔法无限量GPT-4安卓App安装包;Notion AI从入门到精通;最全大模型进展汇总;雇AI给我打零工 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『大模型进展汇总 (持续更新至4月17日)』应该是最全总结了吧 ShowMeAI资料编号 No.T001 &#xff08;进入社群获取高清PDF文件&#x…

AI已经解锁自动化能力 | 颠覆商业模式和劳动力市场

AI已经解锁自动化能力&#xff0c;将颠覆商业模式和劳动力市场。目前AutoGPT的开源项目&#xff1a; BabyAGI、Auto-GPT、AgentGPT、TeenagerAGI、Jarvis。 AutoGPT原理&#xff1a; 3个GPT4协同合作&#xff0c;一个GPT4负责分解目标创建任务&#xff0c;另一个GPT4负责分配…

面试必问的CAS原理你会了吗?

目录 一、什么是CAS&#xff1f; 二、CAS 基本原理 三、CAS 在 Java 语言中的应用 四、CAS 的问题 1、典型 ABA 问题 2、自旋开销问题 3、只能保证单个变量的原子性 五、有态度的总结 在并发编程中我们都知道i操作是非线程安全的&#xff0c;这是因为 i操作不是原子操作…