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

推荐订阅源

SecWiki News
SecWiki News
Vercel News
Vercel News
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
N
News and Events Feed by Topic
Application and Cybersecurity Blog
Application and Cybersecurity Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 【当耐特】
WordPress大学
WordPress大学
Google Online Security Blog
Google Online Security Blog
博客园 - Franky
Attack and Defense Labs
Attack and Defense Labs
Help Net Security
Help Net Security
V
Visual Studio Blog
Jina AI
Jina AI
H
Heimdal Security Blog
小众软件
小众软件
O
OpenAI News
腾讯CDC
The Last Watchdog
The Last Watchdog
雷峰网
雷峰网
Cloudbric
Cloudbric
量子位
博客园_首页
The GitHub Blog
The GitHub Blog
L
LangChain Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
T
The Blog of Author Tim Ferriss
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Last Week in AI
Last Week in AI
V2EX - 技术
V2EX - 技术
Security Archives - TechRepublic
Security Archives - TechRepublic
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 司徒正美
M
MIT News - Artificial intelligence
大猫的无限游戏
大猫的无限游戏
T
Tor Project blog
C
CERT Recently Published Vulnerability Notes
W
WeLiveSecurity
B
Blog
C
Check Point Blog
TaoSecurity Blog
TaoSecurity Blog
T
Threatpost
Hugging Face - Blog
Hugging Face - Blog
Recent Announcements
Recent Announcements
Project Zero
Project Zero
Hacker News: Ask HN
Hacker News: Ask HN
U
Unit 42
Simon Willison's Weblog
Simon Willison's Weblog

博客园 - 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