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实现了一句话让手机自动操作美团点咖啡。很快商场实体店里便能看到很多品牌手机已经升级为智能体语音助手。下一步,这些智能体或许便能…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
WEB3全栈开发——面试专业技能点P7前端与链上集成
一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...
