Ubuntu22.04.5安装ROS2教程(使用鱼香ROS工具)

1.ROS2安装(使用鱼香ROS工具)

1.1.准备

建议准备一个干净、换好源的 ubuntu 20.04 以上的虚拟机(建议清华源),我的是 Ubuntu 22.04 ,本教程也适用其他 ROS2 版本。
查看ubuntu 版本

lsb_release -a 
在这里插入图片描述

根据自己的 ubuntu 的版本选择 ROS2 版本 (我的是 ubuntu 22.04 所以对应ROS2版本为 humble)
要使用小鱼的一键安装系列,需要下载一个鱼香大佬写的脚本,然后执行这个脚本,进行ROS的安装与环境的配置
下载脚本并执行脚本

wget http://fishros.com/install -O fishros && . fishros

然后就会看见选择安装界面,我们看界面可以看到小鱼的脚本还可以支持很多工具安装,这里我们选择 1 ROS安装

在这里插入图片描述

让你选择是否按照他提供的源进行安装,因为我己经换了源了这里 选择 2,如果没换源可以选 1。根据自己的实际情况选择即可

在这里插入图片描述

到这里就是选择ROS版本 ,这里我选择 1 humble(ROS2)

在这里插入图片描述

Desktop 版 (推荐)包含: ROS, RViz, demos, tutorials。base版仅包含:Communication libraries, message packages, command line tools.。不包含 GUI tools。(新手直接选桌面版) 这里选 1,后面就进行安装了(大概几分钟)

在这里插入图片描述

显示这个表示ROS2安装完成

在这里插入图片描述

1.2.配置rosdep(可选)

在使用许多 ROS 工具之前,需要初始化 rosdep,有些功能包源码编译需要rosdep 来安装这些系统依赖项,不配置也不影响 ROS 使用,所以后面需要时再来配置也可以。
下载脚本并执行脚本 (因为每次执行这个脚本后,都会自动删除脚本,所以需要重新执行)

wget http://fishros.com/install -O fishros && . fishros

这里我们选择 3 配置rosdep

在这里插入图片描述

安装好后显示如下

在这里插入图片描述

在终端输入rosdepc update进行配置,显示这个表示配置成功
(注:使用小鱼ROS一键安装rosdep,在后续使用时请将rosdep替换为rosdepc使用)

在这里插入图片描述

1.3.测试

在一个终端中,输入命令:

ros2 run demo_nodes_cpp talker 

在另一个终端中,输入命令:

ros2 run demo_nodes_py listener 
在这里插入图片描述

1.4.运行海龟测试

首先打开小海龟页面,运行下面命令

ros2 run turtlesim turtlesim_node 
在这里插入图片描述

再运行键盘控制器命令,就可以通过上下左右键来控制小海龟移动

ros2 run turtlesim turtle_teleop_key 
在这里插入图片描述

Read more

【一天一个计算机知识】—— 【 C/C++ 内存管理与分布】

【一天一个计算机知识】—— 【 C/C++ 内存管理与分布】

⚡ CYBER_PROFILE ⚡ /// SYSTEM READY /// [WARNING]: DETECTING HIGH ENERGY 🌊 🌉 🌊 心手合一 · 水到渠成 >>> ACCESS TERMINAL <<<[ 🦾 作者主页 ][ 🔥 C语言核心 ][ 💾 编程百度 ][ 📡 代码仓库 ] --------------------------------------- Running Process: 100% | Latency: 0ms 索引与导读 * 🚩一、C/C++ 内存分布 * 🚩二、C语言的动态内存管理 * 💪C动态内存管理的面试考点 * 1)realloc的工作机制 * 2)malloc/calloc/realloc的区别是什么? * 🚩三、C++ 动态内存管理 * 1)操作内置类型 * 1.1)单个变量的分配和释放

By Ne0inhk
C++ 中CAS原子操作详解

C++ 中CAS原子操作详解

在 C++ 中,CAS 操作主要通过 <atomic> 头文件中的 std::atomic 类模板提供的成员函数 compare_exchange_weak和 compare_exchange_strong来实现。 1. CAS 的核心逻辑 CAS 操作包含三个操作数: 内存值 (V):要更新的变量的值。预期原值 (E, Expected):线程认为该变量当前应该有的值(通常是之前读取的快照)。新值 (N, New):线程想要写入的新值。 原子操作流程如下,核心是比较、交换、重复: 比较:检查内存位置 V 的当前值是否等于预期值 E。交换(如果相等):如果相等 (V == E),说明在读取后没有其他线程修改过该变量,

By Ne0inhk
【C++算法刷题营地】—— 【string类面试题】Cyber顶级骇客带你速刷 C++ string类 中的常见算法题

【C++算法刷题营地】—— 【string类面试题】Cyber顶级骇客带你速刷 C++ string类 中的常见算法题

⚡ CYBER_PROFILE ⚡ /// SYSTEM READY /// [WARNING]: DETECTING HIGH ENERGY 🌊 🌉 🌊 心手合一 · 水到渠成 >>> ACCESS TERMINAL <<<[ 🦾 作者主页 ][ 🔥 C语言核心 ][ 💾 编程百度 ][ 📡 代码仓库 ] --------------------------------------- Running Process: 100% | Latency: 0ms 索引与导读 * 一、字符串转换 * 1)字符串转换整数 * 关键点拨 * 完整代码 * 最直接的替代接口:stoi * 小试牛刀:整数转字符串 * 2)字符串相加 * 关键点拨 * 完整代码 * 3)仅仅反转字母 * 关键点拨 * 完整代码 * 4)反转字符串 * 4.

By Ne0inhk
【C++:异常】C++ 异常处理完全指南:从理论到实践,深入理解栈展开与最佳实践

【C++:异常】C++ 异常处理完全指南:从理论到实践,深入理解栈展开与最佳实践

🎬 个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录》 《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》 ⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平 🎬 艾莉丝的简介: 🎬 艾莉丝的C++专栏简介: 文章目录 * C++学习阶段的三个参考文档 * 1 ~> 异常的概念 * 2 ~> 异常的使用层 * 2.1 异常的抛出和捕获 * 2.2 栈展开 * 2.2.1 理论 * 2.2.2 最佳实践 * 2.3 查找匹配的处理代码 * 2.3.

By Ne0inhk