尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
2、ROS2开发工具与集成开发环境
现在已经配置好了一个虚拟机或者是双系统下载好了Ubuntu24.04这篇笔记中将介绍ros2的开发环境以及开发的工具。一、超级终端terminator不同与平常所使用的Windows系统我们有大量的桌面快捷方式在Ubuntu中我们需要大量的用到终端中的命令行如果对终端和命令行没有任何概念的话可以参考Linux 命令大全 | 菜鸟教程https://www.runoob.com/linux/linux-command-manual.html这里边有很多命令行不需要全部掌握只需要对基本的命令有一些概念就可以可以在之后的学习中去了解掌握一些常见的命令行而不是在这里进行。如果我们要分别运行多个内容的时候就需要创建多个终端这无疑是费力的terminator超级终端可以在一个大的终端窗口中分出好几个小的这样你就可以打开一个超级终端在里边运行多个内容。安装方式打开终端输入 sudo apt install terminator 这样你就下载好了terminator常用操作类别操作快捷键窗口与标签新建标签页Ctrl Shift T关闭当前标签页/面板Ctrl Shift W切换到下一个/上一个标签页Ctrl PageDown/Ctrl PageUp新建窗口Ctrl Shift N切换全屏F11分屏与布局垂直分割窗口Ctrl Shift E水平分割窗口Ctrl Shift O在各分屏终端间切换焦点Ctrl Shift Tab放大当前分屏至全屏Ctrl Shift X从放大状态恢复多窗格视图Ctrl Shift Z移动到上/下/左/右的终端Alt ↑/↓/←/→基础操作复制选中的文本Ctrl Shift C粘贴文本Ctrl Shift V打开查找功能Ctrl Shift F二、编程工具VScodeVisual Studio Code简称 VS Code是微软推出的一款免费、开源、跨平台的现代化代码编辑器支持 Windows、macOS 和 Linux 系统。它并非庞大的 IDE而是一个轻量级但功能强大的编辑器核心特点包括智能代码补全依托 IntelliSense 技术提供语法高亮、自动补全、函数签名提示等。内置调试工具直接在编辑器中设置断点、查看变量、单步调试无需离开界面。集成 Git 控制可视化执行提交、拉取、推送等 Git 操作并直观显示代码更改。丰富扩展生态通过安装扩展可轻松支持 Python、C、Java、Go 等几乎所有主流语言及框架还能获得主题、图标、代码格式化、云端协作等增强功能。集成终端编辑器内即可打开命令行运行脚本、编译程序无缝衔接开发流程。高度可定制快捷键、设置、布局、代码片段均可按个人习惯配置且支持工作区与用户两级设置。凭借快速启动、流畅操作和强大的个性化能力VS Code 已成为当今最受欢迎的代码编辑器之一广泛应用于前端、后端、云原生、数据科学等各类开发场景。在Ubuntu系统中下载VScode只需要一行命令 sudo snap install code --classic下载好了之后需要在VScode的扩展面板里下载一些扩展件在很多教程上让安装的扩展是这个但是很显然这里画上了叉号显示这个扩展件是已经停止维护的所以我们需要安装另一个ros扩展件安装完这个之后我们就安装好了很多其他需要用到的插件例如C/C插件还有Python插件ros2代码可以用C来写也可以用Python来写下载完这个插件还需要下载一个Cmake插件也就是这个下载好这些你就在VScode里下载好了需要用到的插件关于VScode的基础配置就已经完成了。三、Geditgedit是GNOME桌面环境下的官方文本编辑器也是一款以简洁易用为主要目标的通用文本编辑器。语法高亮支持包括PHP、HTML、Python、Shell等多种编程语言和标记语言的彩色语法高亮对开发者友好。多标签页编辑允许在同一个窗口中打开和编辑多个文件方便切换和管理。远程文件编辑通过GNOME VFS库可以直接编辑远程服务器上的文件。完整的编辑功能支持无限的撤销与重做、查找与替换等功能。拼写检查内置多语言拼写检查功能。辅助功能提供行号显示、括号匹配、自动缩进、当前行高亮、自动文件备份等特性。良好的中文支持支持UTF-8、GB2312、GBK等多种字符编码。如果没有安装过这个的话需要在终端里输入sudo apt install gedit这样很简单的文件就可以通过gedit来进行编写四、安装ROS2安装 ROS 2 Jazzy 到 Ubuntu 24.04打开一个终端窗口输入以下命令来更新你的软件包列表(命令sudo apt update)安装所需的工具和软件仓库(命令sudo apt install software-properties-common)(命令sudo add-apt-repository universe)(命令sudo apt update sudo apt install curl -y)添加 ROS 2 的 GPG 密钥以确保安装的软件包来自受信任的源(命令sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg)将 ROS 2 Jazzy 的软件源添加到你的系统中(命令echo deb [arch(dpkg−−print−architecture)signed−by/usr/share/keyrings/ros−archive−keyring.gpg]http://packages.ros.org/ros2/ubuntu(dpkg−−print−architecture)signed−by/usr/share/keyrings/ros−archive−keyring.gpg]http://packages.ros.org/ros2/ubuntu(. /etc/os-release echo $UBUNTU_CODENAME) main | sudo tee /etc/apt/sources.list.d/ros2.list /dev/null)再次更新你的软件包列表(命令sudo apt update)安装 ROS 2 Jazzy 桌面版完整版(命令sudo apt install ros-jazzy-desktop)设置环境变量以便使用 ROS 2 命令(命令echo source /opt/ros/jazzy/setup.bash ~/.bashrc)(命令source ~/.bashrc)通过检查 ROS 2 版本号来验证安装是否成功(命令printenv ROS_DISTRO)可选如果需要可以安装额外的工具比如 Gazebo 或 Python 包(命令sudo apt-get install python3 python3-pip -y)(命令sudo apt-get install ros-${ROS_DISTRO}-ros-gz -y)通过运行一个示例程序来测试你的 ROS 2 安装是否正常打开一个终端运行(命令ros2 run demo_nodes_cpp talker)再打开另一个终端运行(命令ros2 run demo_nodes_py listener)如果这两个程序能够成功通信说明你的安装就完成了。以上的方法很可能因为网络问题下载不下来可以换源和密钥如果实在是下载不下来的话可以去使用鱼香ros的一键安装来进行。打开终端下载并执行安装脚本wget http://fishros.com/install -O fishros . fishro这是希望你这么做的但是很多时候因为网络原因是下载不下来的我们可以用up主鱼香ros的一键安装进行也可以用国内的一些源那为什么不直接给出没有问题的呢任何问题都要走一遍不对吗。如果我们现在直接进行ros2的工作是不能进行的所以需要source一下/opt/ros/{ros版本名称}/setup.bash,这是ros2才能够工作但是每次打开终端进行source是很麻烦的所以就需要在.bashrc中进行添加这一句sourceecho source /opt/ros/jazzy/setup.bash ~/.bashrc或者用gedit打开.bashrc手动添加这一行注意如果你的ros版本并不是jazzy你需要进行修改将jazzy改为你的ros版本。现在已经配置好了ros所需要运行的环境然后就可以尝试进行运行ros包了第一个就是最经典的小海龟了打开超级终端将终端分为两个第一个运行ros2 run turtlesim turtlesim_node第二个运行ros2 run teleop_twist_keyboard teleop_twist_keyboard cmd_vel:/turtle1/cmd_vel这样你就可以用键盘控制小海龟了画出你想画的图案第二个可以尝试运行的就是发布和接收者包第一个终端运行ros2 run demo_nodes_cpp talker第二个终端运行ros2 run demo_nodes_cpp listener你就会得到类似于一个发送一个接收的状态这也是ros中最重要的一个相关概念ros中最重要的通讯机制就是发送者和接收者像在一个群聊中聊天一个发送者发送相关的数据接收者去接收这也是我们之后会介绍到的。五、创建工作空间工作空间只是一个文件夹它听起来有很高深的名称但是往往这些高深的名称背后只是很简单的道理就像我们将要创建的工作空间我们只是在主目录下创建一个ros2的文件夹之后我们写的一些文件都写在这个文件夹下这个文件夹就叫做工作空间为什么要创建这个工作空间呢学习ROS2时要创建工作空间这并非一个可有可无的步骤而是为了组织代码、管理依赖、隔离项目以及标准化构建流程。你可以把它看作一个专属的“机器人软件开发实验室”。具体来说创建工作空间有以下几个核心目的提供标准的项目结构ROS2工作空间拥有一个标准化的目录结构这能帮助你清晰地管理项目中所有不同的文件。一个典型的工作空间包含以下几个关键目录src/(代码空间)这是你唯一需要手动创建和管理的目录所有功能包Package的源代码都存放在这里。build/(编译空间)存放编译过程中产生的中间文件。install/(安装空间)存放编译完成后生成的可执行文件、库和脚本。ROS2系统实际运行的就是这里的文件。log/(日志空间)存放编译和运行过程中产生的日志信息方便调试。作为功能包Package的“容器”工作空间是功能包的容器。一个功能包是ROS2中一个独立的功能单元而一个工作空间可以包含多个功能包。这样你可以在一个统一的环境下组织、编译和测试多个相互关联的功能包非常便于管理复杂的机器人项目。支持统一的构建和依赖管理统一构建在工作空间根目录下运行colcon build命令系统就会自动找到src目录下的所有功能包并依次编译。你也可以选择只编译其中特定的某个包。依赖管理通过rosdep工具工作空间可以自动解析并安装所有功能包依赖的系统库。实现环境隔离Overlay机制这是ROS2工作空间最强大的特性之一。ROS2通过“底层Underlay”和“覆盖层Overlay”的概念来组合不同的工作空间。底层Underlay通常指你安装的核心ROS2系统它提供了一个基础环境。覆盖层Overlay指你自己创建的工作空间它被叠加在底层之上。这样做的好处是隔离开发你可以在覆盖层中添加或修改自己的包而不会影响底层的ROS2系统。多版本共存你可以在一台电脑上安装多个ROS2版本如Humble和Foxy并通过激活不同的底层来实现切换。层次化叠加一个工作空间也可以作为另一个工作空间的底层形成多层结构非常灵活。简单来说创建工作空间是ROS2标准化的开发流程。它不仅帮你把代码、配置和依赖等所有项目文件组织得井井有条更重要的是它通过“底层/覆盖层”机制为你提供了一个隔离、灵活且可扩展的开发环境。如果不创建工作空间你就无法有效地组织代码、管理复杂的依赖关系也无法利用ROS2强大的环境隔离特性。创建工作空间的方法1、创建工作空间首先要保证你在根目录下如果不确定的话你可以在终端中输入 cd就会进入主目录下了。2、创建一个文件夹 mkdir ros2_ws理论上来说文件夹的名称可以是你喜欢的任意形式但是一般情况下是ros2_ws。3、进入ros2_ws文件夹下然后创建src文件mkdir src之后我们所写的文件都在这个文件夹下。4、使用colcon build命令进行编译如果你不能使用这个命令就先安装ros-dev-tools输入sudo apt install ros-dev-tools。这时候你会发现我们的工作空间下多了好几个文件夹这些都是colcon build命令执行产生的。
RELATED

相关推荐

《从省奖到国奖的最后5分:2026数学建模国赛论文答辩与展示的加分细节》

《从省奖到国奖的最后5分:2026数学建模国赛论文答辩与展示的加分细节》

国赛期间专栏内发布ABCDE题相关内容,开赛后恢复原价158. 如果你已经走到了数学建模国赛的答辩环节,恭喜你——你的论文至少在省奖级别以上了。但每年都有大量队伍在省一等奖的边缘徘徊,最终与国奖失之交臂。评审专家在答辩现场常说的一句话是:“这篇论文写得不错,但展示得…

📅 2026/10/6 4:29:05
《假如今年考“智能优化”与“物理机理”:2026国赛备赛的专项打击训练》

《假如今年考“智能优化”与“物理机理”:2026国赛备赛的专项打击训练》

国赛期间专栏内发布ABCDE题相关内容,开赛后恢复原价158. 一、为什么你要同时盯住“智能优化”和“物理机理” 如果你只刷了过去三年的国赛真题,你可能会觉得:2026 年的题目大概率还是“大数据+评价模型+规划求解”的老三样。但如果你仔细看过 2024—2025 年各大高校的命题…

📅 2026/10/7 19:42:25
IGBT开关波形测量:电压探头选型与实战避坑指南

IGBT开关波形测量:电压探头选型与实战避坑指南

1. 从一次失败的测试说起:为什么你的IGBT开关波形“不准”? 几年前,我还在做一款大功率光伏逆变器的研发。当时,主功率回路上的IGBT模块在满载测试时,开关波形总是出现难以解释的振荡和过冲,损耗也比仿真结…

📅 2026/10/8 9:40:56
MORE NEWS

更多资讯

📰

2026年AI工具实测:10款降AI率利器提升47%效率

1. 项目概述2026年AI工具市场将迎来爆发式增长,但随之而来的是信息过载问题。作为一名长期跟踪AI技术发展的从业者,我花了三个月时间实测了市面上87款声称能"降AI率"的工具,最终筛选出10款真正能提升工作效率的利器。这些工具覆盖了…

📰

OpenMontage:配置驱动的自动化视频剪辑与批量合成实战

视频剪辑这个领域,专业软件功能重、上手慢,命令行工具又太琐碎。我第一次看到 OpenMontage 这个名字时,心里先是冒出一个念头:这不就是把“蒙太奇”开源化了吗?后来我用它跑通了几条视频的自动合成,发现它确…

📰

多模态大模型技术解析与工程实践指南

1. 多模态大模型技术全景解析在2023年全球三大AI团队包揽IMO数学竞赛满分的背景下,多模态大模型已成为AI领域最炙手可热的研究方向。不同于传统单模态模型,这类模型能同时处理文本、图像、音频等多种数据形式,其核心突破在于实现了跨模态的语…

📰

工业4.0时代高可靠性数据采集系统架构与实践

1. 项目概述在工业4.0和智能制造的大背景下,机械设备企业的数据采集系统已经从简单的生产监控工具,逐步演变为企业数字化转型的核心基础设施。作为在工业自动化领域深耕多年的从业者,我参与过数十家机械制造企业的数据采集系统建设&#xff0…

📰

Delphi直连MySQL原生方案:mysql.dll封装实战与避坑指南

简介:本资源是面向Delphi中高级开发者的技术实践包,聚焦于绕过OLE DB、直接调用MySQL原生客户端库(mysql.dll)实现数据库连接与操作的核心方案。适用于需提升数据库访问性能、规避Windows平台中间层依赖、或适配特定部署环境的桌面…

📰

三维装箱算法实战:启发式、物理约束与装载率优化

简介:面向物流仓储、制造业排产及算法学习者的三维装箱(3D-Bin-Packing)Java 实现资料,聚焦在有限体积标准箱约束下最大化空间利用率的组合优化问题。资源以 BestFit 动态分配策略为主线,先按物体占用空间排序&#xf…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬