ubuntu+ros新手笔记(二):古月·ROS2入门21讲学习笔记
系统ubuntu22.04
ros2 humble
按照如下视频教程学习的:【古月居】古月·ROS2入门21讲 | 带你认识一个全新的机器人操作系统
此处仅记录我报错的地方,以及相应的解决方案,没有出错的略过!
对应的古月居ROS2入门21讲源码下载地址:
Gitee:https://gitee.com/guyuehome/ros2_21_tutorials
Github:https://github.com/guyuehome/ros2_21_tutorials
1. 第3讲:3. ROS2安装(我没有问题 ^_^)
视频教程:安装过程参照【古月居】古月·ROS2入门21讲 | 带你认识一个全新的机器人操作系统
或者一键安装:古月居的ROS安利 | ROS一键安装脚本 或者小鱼工具【ROS2】Ubuntu22.04安装ROS humble都可以。
我在这一步没有问题 ^_^
2. 第6讲:6.工作空间与功能包,开发过程的大本营
我在6.工作空间与功能包,开发过程的大本营这一步出错:
2.1 rosdepc install报错:Cannot locate rosdep definition for [rospy]
rosdepc install -i --from-path src --rosdistro humble -y
运行上面的指令时,报错:
xj@xj:~/dev_ws$ rosdep install -i --from-path src --rosdistro humble -y
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
learning_service: Cannot locate rosdep definition for [rospy]
learning_topic: Cannot locate rosdep definition for [rospy]
learning_parameter: Cannot locate rosdep definition for [rospy]
learning_launch: Cannot locate rosdep definition for [catkin]
learning_tf: Cannot locate rosdep definition for [tf]
xj@xj:~/dev_ws$
直接安装缺失的包,我按照下面的指令安装后就可以colcon build了
sudo apt-get install python3-rospy
确实缺挺多包的:
xj@xj:~/dev_ws$ sudo apt-get install python3-rospy
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:python3-catkin python3-genmsg python3-genpy python3-roscpp-msg python3-rosgraphpython3-rosgraph-msgs python3-roslib python3-rospkg python3-std-msgs
The following NEW packages will be installed:python3-catkin python3-genmsg python3-genpy python3-roscpp-msg python3-rosgraphpython3-rosgraph-msgs python3-roslib python3-rospkg python3-rospy python3-std-msgs
0 upgraded, 10 newly installed, 0 to remove and 5 not upgraded.
Need to get 248 kB of archives.
After this operation, 1,585 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://mirrors.xjtu.edu.cn/ubuntu jammy/universe amd64 python3-catkin all 0.8.10-7 [22.8 kB]
Get:2 https://mirrors.xjtu.edu.cn/ubuntu jammy/universe amd64 python3-genmsg all 0.5.16-5 [23.7 kB]
Get:3 https://mirrors.xjtu.edu.cn/ubuntu jammy/universe amd64 python3-genpy all 0.6.16-1 [31.4 kB]
Get:4 https://mirrors.xjtu.edu.cn/ubuntu jammy/universe amd64 python3-roscpp-msg all 1.15.14+ds-2build2 [6,782 B]
Get:5 https://mirrors.xjtu.edu.cn/ubuntu jammy/universe amd64 python3-rosgraph all 1.15.14+ds-2build2 [30.9 kB]
Get:6 https://mirrors.xjtu.edu.cn/ubuntu jammy/universe amd64 python3-std-msgs all 0.5.13-2 [10.7 kB]
Get:7 https://mirrors.xjtu.edu.cn/ubuntu jammy/universe amd64 python3-rosgraph-msgs all 1.11.3-2 [7,272 B]
Get:8 https://mirrors.xjtu.edu.cn/ubuntu jammy/universe amd64 python3-roslib all 1.15.8-3 [36.8 kB]
Get:9 https://mirrors.xjtu.edu.cn/ubuntu jammy/universe amd64 python3-rospy all 1.15.14+ds-2build2 [75.5 kB]
Get:10 http://packages.ros.org/ros2/ubuntu jammy/main amd64 python3-rospkg all 1.5.1-100 [2,524 B]
Fetched 248 kB in 2s (146 kB/s)
Selecting previously unselected package python3-catkin.
(Reading database ... 300924 files and directories currently installed.)
Preparing to unpack .../0-python3-catkin_0.8.10-7_all.deb ...
Unpacking python3-catkin (0.8.10-7) ...
Selecting previously unselected package python3-genmsg.
Preparing to unpack .../1-python3-genmsg_0.5.16-5_all.deb ...
Unpacking python3-genmsg (0.5.16-5) ...
Selecting previously unselected package python3-genpy.
Preparing to unpack .../2-python3-genpy_0.6.16-1_all.deb ...
Unpacking python3-genpy (0.6.16-1) ...
Selecting previously unselected package python3-roscpp-msg.
Preparing to unpack .../3-python3-roscpp-msg_1.15.14+ds-2build2_all.deb ...
Unpacking python3-roscpp-msg (1.15.14+ds-2build2) ...
Selecting previously unselected package python3-rospkg.
Preparing to unpack .../4-python3-rospkg_1.5.1-100_all.deb ...
Unpacking python3-rospkg (1.5.1-100) ...
Selecting previously unselected package python3-rosgraph.
Preparing to unpack .../5-python3-rosgraph_1.15.14+ds-2build2_all.deb ...
Unpacking python3-rosgraph (1.15.14+ds-2build2) ...
Selecting previously unselected package python3-std-msgs.
Preparing to unpack .../6-python3-std-msgs_0.5.13-2_all.deb ...
Unpacking python3-std-msgs (0.5.13-2) ...
Selecting previously unselected package python3-rosgraph-msgs.
Preparing to unpack .../7-python3-rosgraph-msgs_1.11.3-2_all.deb ...
Unpacking python3-rosgraph-msgs (1.11.3-2) ...
Selecting previously unselected package python3-roslib.
Preparing to unpack .../8-python3-roslib_1.15.8-3_all.deb ...
Unpacking python3-roslib (1.15.8-3) ...
Selecting previously unselected package python3-rospy.
Preparing to unpack .../9-python3-rospy_1.15.14+ds-2build2_all.deb ...
Unpacking python3-rospy (1.15.14+ds-2build2) ...
Setting up python3-genmsg (0.5.16-5) ...
Setting up python3-rospkg (1.5.1-100) ...
Setting up python3-rosgraph (1.15.14+ds-2build2) ...
Setting up python3-genpy (0.6.16-1) ...
Setting up python3-std-msgs (0.5.13-2) ...
Setting up python3-catkin (0.8.10-7) ...
Setting up python3-roscpp-msg (1.15.14+ds-2build2) ...
Setting up python3-rosgraph-msgs (1.11.3-2) ...
Setting up python3-roslib (1.15.8-3) ...
Setting up python3-rospy (1.15.14+ds-2build2) ...
xj@xj:~/dev_ws$
2.2 colcon build报错
含泪教训:古月居ROS2入门21讲源码下载错了,我原来下载的是ros1的教程源码,但是在ros2系统里编译,而catkin是ros1的编译命令,所以在ros2里就报错了~

下载ros2的教程源码就可以了!
再次
colcon build
源码编译成功!!

2.3 验证
上面都没有问题的话,再次运行指令:
rosdepc install -i --from-path src --rosdistro humble -y
不再报错了!!

终端打印全文
xj@xj:~/dev_ws$ rosdepc install -i --from-path src --rosdistro humble -y
您已经成功安装rosdepc,下面提示的用法中,请将rosdep替换为rosdepc使用~
欢迎使用国内版rosdep之rosdepc,我是作者小鱼!
学习机器人,就关注《鱼香ROS》(公众号|B站|CSDN)!
小鱼rosdepc正式为您服务
executing command [sudo -H apt-get install -y ros-humble-joint-state-publisher-gui]
[sudo] password for xj:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:ros-humble-joint-state-publisher
The following NEW packages will be installed:ros-humble-joint-state-publisher ros-humble-joint-state-publisher-gui
0 upgraded, 2 newly installed, 0 to remove and 5 not upgraded.
Need to get 31.6 kB of archives.
After this operation, 136 kB of additional disk space will be used.
Get:1 http://packages.ros.org/ros2/ubuntu jammy/main amd64 ros-humble-joint-state-publisher amd64 2.4.0-1jammy.20241128.030805 [16.1 kB]
Get:2 http://packages.ros.org/ros2/ubuntu jammy/main amd64 ros-humble-joint-state-publisher-gui amd64 2.4.0-1jammy.20241128.033111 [15.5 kB]
Fetched 31.6 kB in 2s (19.9 kB/s)
Selecting previously unselected package ros-humble-joint-state-publisher.
(Reading database ... 303527 files and directories currently installed.)
Preparing to unpack .../ros-humble-joint-state-publisher_2.4.0-1jammy.20241128.030805_amd64.deb ...
Unpacking ros-humble-joint-state-publisher (2.4.0-1jammy.20241128.030805) ...
Selecting previously unselected package ros-humble-joint-state-publisher-gui.
Preparing to unpack .../ros-humble-joint-state-publisher-gui_2.4.0-1jammy.20241128.033111_amd64.deb ...
Unpacking ros-humble-joint-state-publisher-gui (2.4.0-1jammy.20241128.033111) ...
Setting up ros-humble-joint-state-publisher (2.4.0-1jammy.20241128.030805) ...
Setting up ros-humble-joint-state-publisher-gui (2.4.0-1jammy.20241128.033111) ...
executing command [sudo -H apt-get install -y ros-humble-xacro]
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:ros-humble-xacro
0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded.
Need to get 36.8 kB of archives.
After this operation, 154 kB of additional disk space will be used.
Get:1 http://packages.ros.org/ros2/ubuntu jammy/main amd64 ros-humble-xacro amd64 2.0.8-1jammy.20241125.233221 [36.8 kB]
Fetched 36.8 kB in 1s (30.2 kB/s)
Selecting previously unselected package ros-humble-xacro.
(Reading database ... 303571 files and directories currently installed.)
Preparing to unpack .../ros-humble-xacro_2.0.8-1jammy.20241125.233221_amd64.deb ...
Unpacking ros-humble-xacro (2.0.8-1jammy.20241125.233221) ...
Setting up ros-humble-xacro (2.0.8-1jammy.20241125.233221) ...
#All required rosdeps installed successfully
---------------------------------------------------------------------------
---------------------------------------------------------------------------
小鱼科普:rosdep干什么用的?可以跳过吗?https://fishros.org.cn/forum/topic/2124
如果再使用过程中遇到任何问题,欢迎通过fishros.org.cn反馈,或者加入QQ交流群(139707339)
xj@xj:~/dev_ws$
3. 第18讲. Gazebo:三维物理仿真平台
22点07分开始运行gazebo,22点34分还没加载出来gazebo的橘色页面。。。
注:已经按照教程从这个网址https://github.com/osrf/gazebo_models下载文件夹后,重命名为models文件夹,并保存到了~/.gazebo/models路径下了

3.1. 尝试重启–没用
重启没用。。。
3.2. 问chatgpt–解决
以下操作解决我的问题啦!!chatgpt详细回复见这个网页
为 Gazebo 和 ROS 2 进行环境变量设置:
编辑 ~/.bashrc 文件
添加以下内容:
# Gazebo 环境变量
export GAZEBO_MODEL_PATH=/usr/share/gazebo-${GAZEBO_VERSION}/models
export GAZEBO_PLUGIN_PATH=/usr/lib/gazebo-${GAZEBO_VERSION}/plugins
source /usr/share/gazebo/setup.sh
# ROS 2 环境变量
source /opt/ros/humble/setup.bash
将 ${GAZEBO_VERSION} 替换为 fortress。(我没替换也可以的)
执行以下命令使其生效:
source ~/.bashrc
我按照第2步操作就解决辣!!

相关文章:
ubuntu+ros新手笔记(二):古月·ROS2入门21讲学习笔记
系统ubuntu22.04 ros2 humble 按照如下视频教程学习的:【古月居】古月ROS2入门21讲 | 带你认识一个全新的机器人操作系统 此处仅记录我报错的地方,以及相应的解决方案,没有出错的略过! 对应的古月居ROS2入门21讲源码下载地址&a…...
Harmonyos之深浅模式适配
Harmonyos之换肤功能 概述实现原理颜色适配颜色资源配置工具类编写界面代码编写适配效果 概述 深色模式(Dark Mode)又称之为暗色模式,是与日常应用使用过程中的浅色模式(Light Mode)相对应的一种UI主题。 换肤功能应…...
牛客网 SQL2查询多列
SQL2查询多列 select device_id,gender,age,university //查询哪些字段 from user_profile //从哪个表中查找 每日问题 C 中面向对象编程如何处理异常? 在C中,面向对象编程(OOP)处理异常主要通过异常处理机制来实现。C 提供了…...
Angular由一个bug说起之十二:网页页面持续占用CPU过高
随着网络日益发达,网页的内容也更加丰富,形式也更加多样化。而随之而来的性能问题也不容小觑。这篇文章我会根据我在实践中遇到的一个问题来总结,我在面对性能问题的一些解决步骤,希望能对大家有所启发。 查找问题原因 我接触的…...
【从零开始入门unity游戏开发之——C#篇05】转义字符、@处理多行文本或者不使用转义字符、随机数
文章目录 一、转义字符1、什么是转义字符?2、常见的转义字符3、总结 二、使用处理多行文本或者不使用转义字符1、多行字符串2、不使用转义字符 三、随机数1、Random.Next()生成随机整数示例:生成一个随机整数生成指定范围内的随机整数 2、Random.NextSin…...
我们来对接蓝凌OA --报文格式
题记 数智化办公专家、国家高新技术企业、知识管理国家标准制定者、信创供应商10强…等等,这些和咱们有关系吗!!不好意思,走错片场了,刚和项目经理在甲方那边吹牛B想想刚刚的大饼,看看支付宝余额ÿ…...
旅游系统旅游小程序PHP+Uniapp
旅游门票预订系统,支持景点门票、导游产品便捷预订、美食打卡、景点分享、旅游笔记分享等综合系统 更新日志 V1.3.0 1、修复富文本标签 2、新增景点入驻【高级版本】3、新增门票核销【高级版】4、新增门票端口【高级版】...
Pytest-Bdd-Playwright 系列教程(15):背景(Background)
Pytest-Bdd-Playwright 系列教程(15):背景(Background) 前言一、什么是背景(Background)二、特性文件三、测试脚本四、运行测试总结 前言 在测试的过程中,我们往往会遇到这样的问题&…...
ionic V6 安装ios所需
npm install capacitor/ios添加ios平台 ruby要求3.0以上 rvm use ruby-3.1.0 --default npx cap add ios打开xcode看看创建的项目 npx cap open ios没有capacitor指定的位置, 估计之前pod(cocoapods)安装搞得Ruby环境很乱了......cocoapods整的我麻了... App/App/capacitor…...
3d模型展示-初探
由于工作原因,近一年没怎么写代码,有朋友问你做过3D模型展示吗,之前都是做以vue为框架做定制业务,这次抽时间试试3d模型展示。 软件功能 使用ThreeJS框架实现加载GLB模型,并添加动画效果,实现3d展示模型。…...
OpenLinkSaas 2025年1月开发计划
先来看看OpenLinkSaas的大目标 在OpenLinkSaas的产品目标中,让开发人员更加方便的使用云资源是目标之一。通过各大云厂商的API,来可视化云上基础设施的数据是远远不够的。我们准备在2025年1月份增加方便管理和运营研发场景下服务器的能力。 这部分的功能…...
C# 用封装dll 调用c++ dll 使用winapi
这里用c net 封装winapi函数 pch.h // pch.h: 这是预编译标头文件。 // 下方列出的文件仅编译一次,提高了将来生成的生成性能。 // 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。 // 但是,如果此处列出的文件中的任何一个…...
XML基础学习
参考文章链接: XML基础学习 在w3school看到了XML的教程,想到以前工作学习中也接触到了XML,但只是简单搜索了解了下,没有认真去学习XML的基础,所以现在认真看下其基础部分,并写篇博客作为笔记记录下。 XML 简介 XML 被设计用来传输和存储数据。 什么是 XML? XML 指可…...
Jmeter直连数据库,jar包下载
运行报错信息:jmeter连接mysql异常:Cannot load JDBC driver class ‘com.mysql.jdbc.Driver‘ 1、下载地址: https://mvnrepository.com/artifact/mysql/mysql-connector-java/ 2、将下载好的jar包 (我的是:mysql-con…...
Unity读取、新建Excel表格
把dll资源解压后,全部导入到unity中的Plugins文件下面 资源放在标题下方,可以自行下载 使用教程 引入命名空间 using SimpleExcel;。这个命名空间下主要有两个类:WorkBook和Sheet。WorkBook用于对整个excel文件的操作,如创建、打开…...
智能高效的IDE GoLand v2024.3全新发布——支持最新Go语言
GoLand 使 Go 代码的阅读、编写和更改变得非常容易。即时错误检测和修复建议,通过一步撤消快速安全重构,智能代码完成,死代码检测和文档提示帮助所有 Go 开发人员,从新手到经验丰富的专业人士,创建快速、高效、和可靠的…...
OpenCV相机标定与3D重建(21)投影矩阵分解函数decomposeProjectionMatrix()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将投影矩阵分解为旋转矩阵和相机内参矩阵。 cv::decomposeProjectionMatrix 是 OpenCV 库中的一个函数,用于将投影矩阵(…...
Flink State面试题和参考答案-(下)
如何监控 Flink 作业的状态大小? 监控 Flink 作业的状态大小是确保作业性能和稳定性的重要方面。以下是一些监控状态大小的方法: 使用 Flink Web UI: Flink 提供了一个 Web 用户界面,可以展示作业的当前状态大小,包括每个操作符…...
111.【C语言】数据结构之二叉树的销毁函数
目录 1.知识回顾 2.分析 3.代码 后序遍历销毁(最简洁) 前序遍历销毁(不推荐) 中序遍历销毁(不推荐) 4.将函数嵌入main函数中执行 1.知识回顾 106.【C语言】数据结构之二叉树的三种递归遍历方式 2.分析 销毁二叉树需要按照一定的顺序去销毁,例如:先销毁根还是先销毁根…...
[论文阅读] |智能体长期记忆与反思
写在前面:10月份的时候,联发科天玑9400发布,搭载这款旗舰 5G 智能体 AI 芯片的荣耀MagicOS9.0实现了一句话让手机自动操作美团点咖啡。很快商场实体店里便能看到很多品牌手机已经升级为智能体语音助手。下一步,这些智能体或许便能…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
