首页 > 其他分享 >ROS2笔记1--简介及开发环境搭建

ROS2笔记1--简介及开发环境搭建

时间:2024-04-17 10:38:21浏览次数:24  
标签:-- 简介 sudo apt install ros ROS1 ROS2

一、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

  

 

标签:--,简介,sudo,apt,install,ros,ROS1,ROS2
From: https://www.cnblogs.com/jackion5/p/18139979

相关文章

  • vue3 + vant4 checkbox多选弹框
    实现效果代码如下多选组件DictSelect.vue<template><van-popup:show="showPicker"position="bottom":style="{height:'34vh'}"><divclass="con"><divclass="confirmBtns"&......
  • linux命令
    #磁盘测试ddbs=8kcount=4kif=/dev/vda1of=test.logconv=fdatasyncbs:每次读取或写入的大小,即一块的大小count:读写块的总数量4K次避免操作系统“写缓存”干扰测试成绩,使用sync、fsync、fdatasyncconv=fdatasync表示只把文件的“数据”写入磁盘conv=fsync表示把文件的“数......
  • wpf程序修改启动入口注意事项
    如果你在自定义的Main方法中直接使用App类并启动应用程序,但发现App.xaml中定义的资源没有被正确加载,那么问题可能在于如何正确配置App.xaml与你的App类的交互。确保App.xaml文件中的x:Class属性正确指向你的App类。这样,当你创建App类的实例并调用Run方法时,它......
  • MapReduce:简化集群上的大数据处理.18139822
    本文是论文《MapReduce:SimplifiedDataProcessingonLargeClusters》的翻译。原作者:JeffreyDeanandSanjayGhemawat@Google,Inc.为了刷MIT6.8242021,分布式系统课程,可以去B站看下,也有Lab可以刷概述MapReduce是一个针对处理大数据集的编程模型以及关联实现。用户......
  • 基于Redis实现基本抢红包算法
    简介:[key,value]的缓存数据库,Redis官方性能描述非常高,所以面对高并发场景,使用Redis来克服高并发压力是一个不错的手段,本文主要基于Redis来实现基本的抢红包系统设计.发红包模块:1:发红包模块流程图如下:  用户首先输入红包金额和红包个数,然后生成当前红......
  • 一种融合指代消解序列标注方法在中文人名识别上的应用(上)
    技术领域自然语言处理领域。应用场景:适用于自然语言处理领域,通过命名实体识别(NamedEntityRecognition,NER),准确识别实体。依托自然语言处理领域,基于人民日报数据及构造的舆情公告数据,提出一种融合指代消解的序列标注方法来改进人名识别。解决的问题:实体包括人名、地......
  • web server apache tomcat11-03-deploy 如何部署
    前言整理这个官方翻译的系列,原因是网上大部分的tomcat版本比较旧,此版本为v11最新的版本。开源项目从零手写实现tomcatminicat别称【嗅虎】心有猛虎,轻嗅蔷薇。系列文章webserverapachetomcat11-01-官方文档入门介绍webserverapachetomcat11-02-setup启动web......
  • Hive引擎底层初探
    1、什么是HiveHive是一个基于Hadoop的数据仓库工具,用于处理和分析大规模结构化数据。Hive提供了类似SQL的查询语言(HiveQL),使得熟悉SQL的用户能够查询数据。Hive将SQL查询转换为MapReduce任务,以在Hadoop集群上执行数据处理和分析。2、Hive起源回答这个问题之前,先介绍下Hadoop......
  • JS 移除对象数组中,属性值全为空的项
    constarray=[{id:1,name:'John',age:25},{id:2,name:'Alice',age:null},{id:3,name:'Bob',age:undefined},{id:4,name:'Eve',age:''},{id:5,name:'',age:......
  • 后缀数组学习笔记
    定义后缀从字符串某个位置i到字符串末尾的子串,定义s的第i个字符为第一个元素的后缀为suf(i)。后缀数组把s的每一个后缀按照字典序排序,后缀数组sa[i]表示排名为i的后缀的起始位置的下标。rk[i]数组代表起始位置为i的后缀的排名。rk[]和sa[]是一一对应关系,互为逆运算,可以相互......