惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - Lucky帅小武

AI学习入门,超清晰AI知识图谱整理及核心概念解析 基于SSM的在线考试系统毕业设计论文【范文】 基于SSM的仓库进销存系统毕业设计论文【范文】 基于SSM的在线外卖订餐系统毕业设计论文【范文】 基于SSM的酒店管理系统毕业设计论文【范文】 基于SSM的校园论坛网站系统毕业设计论文【范文】 ROS2笔记6--ROS2常用命令工具 ROS2笔记5--动作通讯 ROS2笔记4--服务通讯 ROS2笔记3--话题通讯 ROS2笔记2--工作空间、功能包、节点 基于SSM的网上商城系统毕业设计论文【范文】 软考笔记(1)--操作系统 软考笔记(9)--计算机组成原理4--总线系统 软考笔记(9)--计算机组成原理3--处理器 软考笔记(9)--计算机组成原理2--指令系统 软考笔记(8)--多媒体技术 软考笔记(7)--数据库关系代数 软考笔记(5)--系统安全性与保密性设计
ROS2笔记1--简介及开发环境搭建
Lucky帅小武 · 2024-04-17 · via 博客园 - Lucky帅小武

一、ROS2简介

1.1、ROS2概述

ROS2是第二代的Robot Operating System, ROS1的升级版本,解决了ROS1存在的一些问题。与ROS1相比,Linux版本与ROS2版本的选择也有关系,对应关系如下:

ROS2版本

Ubuntu版本

Foxy

Ubuntu20.04

Galactic

Ubuntu20.04

Humble

Ubuntu22.04

1.2、ROS2特性

1、ROS2全面支持三种平台:Ubuntu、MAC OS X、Windows10

2、实现了分布式架构,取消Master中央节点,实现节点的分布式发现,发布/订阅,请求/响应通讯

3、支持实时

4、使用新版本的编程语言:C++11、Python3.5+

5、使用了新的编译系统Ament,ROS为Catkin

6、ROS1可以通过rosbridge和ROS2通信

1.3、ROS2与ROS1的区别

1、语言

ROS1核心是C++03,而ROS2广泛使用C++11

ROS的Python使用Python2,ROS2使用的Python版本至少是3.5及以上,Foxy使用的Python版本是3.8

2、中间件

ROS1启动前需要开启roscore,这个master负责所有节点之间的通讯,而ROS2则没有,只有一个抽象的中间件接口,通过该接口传输数据。此接口所有实现都基于DDS标准,使得ROS2能够提供各种优质的Qos服务策略,改善不同网络的通信。

3、编译命令

ROS1的编译命令为catkin_make;ROS2的编译命令为colcon build

二、ROS2安装Foxy

2.1、设置语言环境

先检查本地语言环境是否支持UTF-8编码,语言环境可以不同,但必须支持UTF-8编码,调用如下指令检查并设置UTF-8编码

locale #检查是否支持UTF-8 
sudo apt update && sudo apt install locales 
sudo update-locale LC_ALL=en.US.UTF-8 Lang=en_US.UTF-8 export LANG=en_US.UTF-8 
locale # 验证是否设置成功

2.2、设置软件源

启动Ubuntu universe存储库

 
sudo apt install software-properties-common
sudo add-apt-repository universe

将ROS2 apt存储库添加到系统,用apt授权GPG密钥

sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

将存储库添加到源列表

echo "deb [arch=$(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.lsit > /dev/null

2.3、安装Foxy

1、首先更新apt存储库缓存

sudo apt update

2、然后升级已安装的软件,ROS2软件包建立在经常更新的Ubuntu系统上,在安装新软件包之前确保系统是最新的。

sudo apt upgrade

3、安装桌面版ROS2合适的版本

Foxy版本:

sudo apt install ros-foxy-desktop python3-argcomplete

Humble版本:

sudo apt install ros-humble-desktop

4、安装colcon构建工具

sudo apt install python3-colcon-common-extensions

2.4、配置环境

终端下,执行ROS2程序时,需要调用如下命令配置环境:

方法1:执行下面命令单次有效,每次新开终端时都得执行命令

source /opt/ros/foxy/setup.bash

方法2:将配置环境指令写入~/.bashrc文件中,那么新启动终端时不需要手动配置

echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc

2.5、卸载ROS2

执行如下命令协助ROS2:

sudo apt remove ~nros-foxy-* && sudo apt autoremove

还可以再删除ROS2对应的存储库:

sudo rm /etc/apt/sources.list.d/ros2.list 
sudo apt update 
sudo apt autoremove 
sudo apt upgrade

三、ROS2集成开发环境搭建

3.1、Ubuntu安装vscode

方法1:通过Snapcraft安装

sudo apt update 
sudo apt install snapd 
sudo snap install --classic code

方法2:通过Ubuntu Make安装

sudo apt install ubuntu-make 
umake --install code

方法3:下载官方DEB软件包安装

访问Visual Studio Code官网下载最新DEB软件包

下载完成后打开包含DEB文件的文件夹,在终端输入安装命令:

sudo dpkg -i code_*.deb

其中 code_*.deb是下载的DEB文件的具体名称

3.2、安装Git

sudo apt install git