虚拟机 + Ubuntu22.04 + ros2 (humble) colcon build turtlebot3_node失败的解决方案

news/2025/2/22 5:18:13

一、问题描述

在虚拟机Ubuntu22.04中安装了ROS2(humble),下载turtlebot3。在colcon build --symlink-install 编译的过程中turtlebot3_Fake_node一直失败,无法正常运行,影响后面的仿真测试。

在这里插入图片描述
在这里插入图片描述

二、解决方案

查阅相关资料后发现问题主要出在缺少ROS2 相关依赖&Ubuntu 版本匹配

(1)首先通过lsb_release-a查看系统版本
查到自己的系统版本后进入(emanual.robotis.com)官网,点击turtlebot3,找到左边第三个(3.Quick Start Guide)下的(PC setup)。

(2)选择自己的对应ros版本安装相关依赖

  1. open the terminal with ctrl+Alt+Tfrom Remote PC
  2. install Gazebo
$ sudo apt install ros-humble-gazebo-*
  1. install Cartographer
$ sudo apt install ros-humble-cartographer
$ sudo apt install ros-humble-cartographer-ros
  1. install Navigation2
$ sudo apt install ros-humble-navigation2
$ sudo apt install ros-humble-nav2-bringup

(3) 继续按官网进行source ~/.bashrc没通,可能是由于当时把工作空间删除的原因,后面在台式机上按照官网的说明,能顺利跑通没有任何问题。

(4)安装Turtlebot3功能包,这里提供的是智能佳官网的下载路径,当然也可以通过其他路径下载,去到智能佳官网(www.rosrobot.cn)

  1. 创建工作空间
mkdir -p ~/colcon_ws/src
  1. 安装turtlebot3功能包
cd ~/colcon_ws/src/
git clone -b hunble-devel https://github.com/ROBOTIS-GIT/DynamixelSDK.git
git clone -b humble-devel https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone -b humble-devel https://github.com/ROBOTIS-GIT/turtlebot3.git

这里有几点需要特别注意
首先如果git指令无法执行,首先根据终端提示去安装它,同理如果出现其他缺少的功能,安装它即可。虚拟机一般能够较快的连接github进行下载,但再次提示一定要根据自己的版本来装,像我的是humble,有的可能是foxy,最后就是不要直接在github网站上下载zip文件,复制到工作空间的src文件夹里,因为git clone指令和直接下载还是不一样的,后面还有进行一些功能的扩展,必要通过git clone来装。

(5) 编译

cd ..
colcon build --symlink-install

在这里插入图片描述
解决问题colcon build --symlink-install turtlebot3_node编译成功!

(6)添加环境变量

echo 'source ~/colcon_ws/install/setup.bash' >> ~/.bashrc
echo 'export ROS_DOMAIN_ID=30 #TURTLEBOT3' >> ~/.bashrc
echo 'export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/colcon_ws/src/turtlebot3/turtlebot3_simulations/turtlebot3_gazebo/models' >> ~/.bashrc
source ~/.bashrc

http://www.niftyadmin.cn/n/5016238.html

相关文章

投资理财基础知识分享(一)

大家好,我是理财智星,今天跟大家分享一下投资理财的基础知识,文章内容较多,我将分三个篇幅去讨论,下面开始第一部分: 一、投资理财的基本原则是什么? 投资理财解决的三个问题可以简单地概括为…

“高效记录收支明细,按时间轻松查找借款信息“

我们有时候要去查找借款信息,只记得住借款记录的日期,想通过日期来进行筛选出借款信息,要如何进行操作?今天就让小编来教教大家要如何操作。 第一步,我们要打开【晨曦记账本】,并登录账本。 第二步&#x…

分布式调度 Elastic-job

分布式调度 Elastic-job 1.概述 1.1什么是任务调度 我们可以思考一下下面业务场景的解决方案: 某电商平台需要每天上午10点,下午3点,晚上8点发放一批优惠券某银行系统需要在信用卡到期还款日的前三天进行短信提醒某财务系统需要在每天凌晨0:10分结算…

JAVA 从入门到起飞 面向对象 day08 P2

老师的知识点1 在JAVA中,必须先设计类,才能获得对象。 我的理解: 疑问:为什么是这样的呢? 答案: 在 JAVA 或其他面向对象的编程语言中,类是对象的蓝图或模板。这意味着在你创建对象之前&am…

XXE-Lab for PHP

环境配置 1.将靶场进行下载.... https://github.com/c0ny1/xxe-lab 2.将PHPStudy的中间件与版本信息调制为php-5.4.45Apache访问以下地址开始练习... http://127.0.0.1/xxelabs/php_xxe/ 靶场实操 1.在登录界面输入账号密码并抓取数据包.... 2.尝试读取本地文件.... <…

POJ 2100 Graveyard Design 尺取法

一、题目大意 给出一个数字num,1<num<1e14&#xff0c;找出连续的数字 ai,ai1...aj使得每一项取平方最后求和等于num&#xff0c;题目要求排列的数字&#xff0c;和排列的个数&#xff0c;输出出来 二、解题思路 因为是平方求和&#xff0c;那么我们只需要计算1e7以内…

Tomcat服务的部署及配置优化

文章目录 1. Tomcat的相关介绍1.1 Tomcat简介1.2 Tomcat的核心组件1.2.1 Web容器1.2.2 Servlet容器1.2.3 JSP容器 1.3 Tomcat的功能组件1.3.1 connector连接器1.3.2 container容器1.3.2.1 子容器及其相关功能 1.4 主要作用1.5 Tmocat处理请求的过程 2. Tomcata服务部署2.1 安装…

useGetState自定义hooks解决useState 异步回调获取不到最新值

setState 的两种传参方式 1、直接传入新值 setState(options); const [state, setState] useState(0); setState(state 1); 2、传入回调函数 setState(callBack); const [state, setState] useState(0); setState((prevState) > prevState 1); // prevState 是改变之…