【学习笔记】ROS1--1--安装,介绍与关键概念

目录

什么是ROS?

安装ROS(noetic)

        1.配置系统软件源

        2.添加ROS软件源

        3.添加密钥

        4.安装ROS

        5.初始化rosdep

        6.设置环境变量

        7.完成安装

ROS关键概念

        1.节点(node)

        2.通信机制

        3.节点管理器

        4.功能包

        5.工作空间


什么是ROS?

ROS:机器人操作系统(Robot Operating System), 是一个用于编写机器人软件的灵活框架,它集成了大量的工具、库、协议,提供了类似操作系统所提供的功能。

安装ROS(noetic)

        1.配置系统软件源

以软件源安装为例,首先需要配置Ubuntu系统允许restricted(不完全的*软件)、universal(Ubuntu官方不提供支持与补丁,全靠社区支持)、multiverse(非*软件,完全不提供支持和补丁)这三种软件源。如果没有对系统软件源做过修改,Ubuntu系统安装完毕后会默认允许以上三种软件源。

【学习笔记】ROS1--1--安装,介绍与关键概念

        2.添加ROS软件源

sources.list是Ubuntu系统保存软件源地址的文件,位于/etc/apt目录下,在这一步中,我们需要将ROS的软件源地址添加到该文件当中,确保后续安装可以正确找到ROS相关软件的下载地址。

打开终端,输入如下命令,即可添加ROS官方的软件源镜像:

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

        3.添加密钥

$ sudo apt install curl # if you haven't already installed curl
$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

        4.安装ROS

输入如下命令,更新软件源

$ sudo apt update

安装桌面完整版

$ sudo apt install ros-noetic-desktop-full

除了包含ROS的基础功能(核心功能包、构建工具和通信机制),还包含有丰富的机器人通用函数库、功能包(2D/3D感知功能、机器人地图建模、自主导航等)以及工具(rviz可视化工具、gazebo仿真环境、rqt工具箱等)。

        5.初始化rosdep

$ sudo rosdep init
$ rosdep update

rosdep是ROS中自带的工具,主要功能是为某些功能包安装系统依赖,同时也是某些ROS核心功能包必须要用到的工具。

        6.设置环境变量

现在ROS已经成功安装到电脑中了,默认在/opt路径下。由于在后续使用中,会频繁使用终端输入ROS命令,所以在使用之前,还需要对环境变量进行简单的设置。

Ubuntu默认使用的终端是bash,在bash中设置ROS环境变量的命令如下:

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

命令含义:

1)echo >> : 输出追加重定向

2)/.bashrc : 终端配置文件.bashrc

echo将“  ”内字符串追加到.bashrc文件的后面

3)source命令:在当前环境下执行脚本文件,也可以使用.替代source命令

ROS通过环境变量找到命令的所在位置。

        7.完成安装

输入命令查看是否安装成功

$ roscore

ROS关键概念

        1.节点(node)

执行运算任务的进程,一般由多个节点共同运行完成,启动程序后,用rqt_graph可清晰分辨节点

        2.通信机制

a)话题通信(TOPIC,Publish&Subscribe)

b)  服务通信(SERVICE,Client&Server)

c)参数管理(PARAM)

        3.节点管理器

作为管理者,帮助ROS节点之间相互查找、建立连接,同时还为系统提供参数服务器,管理全局参数。

        4.功能包

运行功能的基本单元集合,一般包括以下文件夹或文件(按常用程度排序):

a)  CMakeLists.txt:编译器编译功能包的规则,主要修改依赖及添加cpp程序可执行性

b)package.xml:功能包清单,包含功能包的名称,版本号,信息描述,作者信息和许可信息。

      <build_depend> </build_depend>定义编译所依赖的其他功能包

      <run_depend></run_depend>定义可执行程序运行时所依赖的其他功能包

c)launch:放置功能包中的所有的启动文件。

d)  src:放置需要编译的c++代码。

e)scripts:放置可以直接运行的Python脚本。

f)config:放置功能包中的配置文件,由用户创建,文件名可以不同。

g)include:放置功能包中需要用到的头文件。

h)msg:放置功能包自定义的消息类型。

i)srv:放置功能包自定义的服务类型。

j)action:放置功能包自定义的动作指令。

需要注意的是功能包中文件夹的类型和工作空间中的较为相像,要区分清楚

        5.工作空间

工作空间(workspace)是一个存放工程开发相关文件的文件夹。

典型的工作空间中一般包括以下四个目录空间。

a)src:代码空间(Source Space),开发过程中最常用的文件夹,用来存储所有ROS功能包的源码文件。

b)build:编译空间(Build Space),用来存储工作空间编译过程中产生的缓存信息和中间文件。

c)devel:开发空间(Development Space),用来放置编译生成的可执行文件。

d)install:安装空间(Install Space),编译成功后,可以使用make install命令将可执行文件安装到该空间中,运行该空间中的环境变量脚本,即可在终端中运行这些可执行文件。安装空间并不是必需的,很多工作空间中可能并没有该文件夹。

感谢:

古月老师《ROS机器人开发实践》

上一篇:mac下conda的安装、使用


下一篇:通过Spring boot编码获取当前程序运行的host和端口号