ROS机器人开发项目实战 课件 第1、2章 ROS概述、ROS架构_第1页
ROS机器人开发项目实战 课件 第1、2章 ROS概述、ROS架构_第2页
ROS机器人开发项目实战 课件 第1、2章 ROS概述、ROS架构_第3页
ROS机器人开发项目实战 课件 第1、2章 ROS概述、ROS架构_第4页
ROS机器人开发项目实战 课件 第1、2章 ROS概述、ROS架构_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章机器人操作系统(ROS)

概述·Ubuntu

系统及常用指令·ROS发展与现状·

安装ROS·认识ROS·ROS开发环境搭建Ubuntu

系统及常用指令1.

下载软件安装包(ubuntu-20.04.4)http://mirrors.aliyun.com/ubuntu-releases/20.04/2.下载U

盘系统制作软件

(UltralSO)

https://cn.ultraiso.net/3.安装方法https://www.b/video/BV1WZ4y167me?p=7注意:分区

(

Swap、Logic、Main)Log

outand

shutdowncomputerhereAccessdifferentworkspaceshereThumb

Drives,CD-ROMs,ete,show

up

hereUbuntu系统界面

Ubuntu系统安装

Ubuntu

系统使用介绍打开终端1.

点击图标进行打开2.使用按键“Ctrl+Alt+T”进行打开常用指令Is

-显示文件及文件夹cd-

修改工作目录pwd-

打印当前工作目录cp-复制文件或文件夹mv-

移动文件或文件夹rm

-删除文件或文件夹kill-

强制关闭进程mkdir-

创建目录/文件夹touch

-

创建文件gedit-创建文件(文件已存在,则打开)sudo

-执行指令ROS

发展与现状机器人开发不可或缺的工具,已经应用于各类机器人开发

ROS

发展与现状安装ROSUbuntu

installofROS

Noetic●TheROSbuildfarmbuildsDebianpackagesforseveralUbuntuplatforms,listedbelow.Thesepackagesarereadytousesoyou

don'thavetobuildfromsource.

Youcancheckthestatusofindividualpackageshere.|Note

that

there

are

also

packages

available

from

Ubuntu

upstream.Please

see

UpstreamPackagestounderstandthe

difference.If

yourelyon

thesepackages,pleasesupportOSRF.These

packages

are

built

and

hosted

on

infrastructure

maintained

and

paid

for

by

the

OpenSource

Robotics

Foundation,

a501(c)(3)non-profit

organization.If

OSRF

were

to

receive

onepennyforeach

downloaded

packageforjusttwomonths,we

could

cover

our

annual

costs

tomanage,update,and

host

all

of

our

online

services.Please

consider

●donating

to

OSRF

today.目

录1.

UbuntuinstallofROS

Noetic1.Installation1.ConfigureyourUbunturepositories..

Setupupyy

r

sko

es.list4.

installation..

i

ess

pbuilding.packages3.ROSOne-line

InstallationforetuencimentnoerpvDeEn65ysrceuuurooROS2

DocumentationThe

ROS

Wiki

is

for

ROS

1.Areyou

using

ROS2(Humble,Iron,or

Rolling)?Check

out

the

ROS2ProjectDocumentationPackagespecificdocumentationcan

befoundon

i维基DistributionsROS/InstallationROS/TutorialsRecentChangesUbuntu网

页只读网页信息附件更多操作:用

户登录ROS官网安装步骤:http://wiki.r/noetic/Installation/Ubuntu一键安装方式:/About|Support|Discussion

Forum|Index|Service

Status|ros@Robotics

Stack

ExchangeBrowse

Software

NewsDownloadROS.orgDocumentationROS安装步骤noeticl

Installation/Ubuntusetup.sh其他位置安装目录:/opt/rosROS安装步骤env.shlocal_setup.bashlocal_setup.zshlocal_setup.sh_setup_util.pysetup.bashsetup.zshincludeshareetcROS安装步骤scott@scott-NUC11TNKi5

:~$roscoreto/home/scott/.ros/Log/cfe7e548-4900-11ed-9acd-278bac5a648e/roslaunch-scott-NUC11TNKt5-8597.Logoryfor

disk

usage.This

may

take

a

while.erruptile

disk

usage.Usage

is

<1GB.server

http://scott-NUC11TNKi5:40053/15.14SU

MMARoetic5.14auto-start

ew

mastersetting/run_id

to

cfe7e548-4900-11ed-9acd-278bac5a648eprocess[rosout-1]:started

with

pid[8617]started

core

service

[/rosout]启动ros

master节点process[master

]:startedwith

pid[8607]ROS_MASTER_URI=http://scott-NUC11TNKi5:11311/启动master$roscore启动Turtlesim$rosrunturtlesimturtlesim_node启动键盘控制节点$rosrun

turtlesim

turtle_teleop_keyROS安装步骤

单选题

1分设置以下哪个指令可以查看当前工作目录(

)A

IsB

pwdcdgedit提交认识ROS

ROS

的定义与核心概念ROS-Robot

Operating

System,机器人操作系统通信机制

开发工具应用功能

生态系统ROS的定义与核心概念(2)多语言支持(5)免费并且开源(3)架构精简、集成度高(1)点对点的设计00H!WE

COULDMAKEAN

EXTRASM0OTHWHEELTHERE

AREHUNDREDS0F

POSSIBLEAND

ACoLLAPSIBLEWHEEL

MADE

FROMAHow

ABoUTA

S0PERLIGHTWEI6HT'PUMICE'(4)组件化工具包、功能包丰富提高机器人研发中的软件复用率IF

WE

USE

HIGHLY

APPLICATON

S

PTERANODONS传统模式现代模式ROS

的定义与核心概念2.软件源

(Repository):ROS

依赖于共享网络上的开源代码,不同的组织机构可以开发或者共享自己

的机器人软件。3.ROSwiki:记录ROS信息文档的主要论坛。4.邮件列表

(Mailinglist)

:

交流ROS更新的主要

渠道,同时也可以交流ROS开发的各种疑问。5.ROS

Answers:咨询ROS相关问题的网站。6.博客

(Blog):

发布ROS社区中的新闻、图片、视

频(/news)元功能包元功能包功

功能包ROS

区软件仓库软件仓库1.发行版

(Distribution)

:ROS发行版包括一系列带有版本号、可以直接安装的功能包。软件仓库ROS

社区资源的组织形式功

包节点消息服务元功能包

功能包功能包功

节点

消息软件仓库功能包

ROS通信机制介绍话题

(Topic)——异步通信机制●节点间用来传输数据的重要总线;●

使

用发布/订阅模型,数据由发布者传输到订阅者,同一个话题的订阅者或发布者可以不唯一。消息

(Message)——话题数据●具有一定的类型和数据结构,包括ROS提供的标准类型和用户自定义类型;●使用编程语言无关的.msg

文件定义,编译过程中生成对应的代码文件。Computer

on

the

RobotLaptopROS

NodeTopic:/exampleMessageType:std_msgs/StringSubscriber话题模型(发布/订阅)ProcessingSubscribePubish/image_data

MessageCameraNodeDataRegistration

RogistraionROS

MasterReqistrationROS

Node ROS通信机制介绍服务

(Service)——同步通信机制●

使

用客户端/服务器(C/S)

模型,客户端发送请求数据,服务器完成处理后返回应答数据;●使用编程语言无关的.srv文件定义请求和应答数据结构,编译过程中生成对应的代码文件。ReplyService

ClientROS

NodeData服务模型(请求/应答)Computeron

the

Robot_

ROSMasterResistraionImageProcessingNodeRegistrationCameraNodeReply

/image_dataMessageROS

NodeServiceServerRequest-requestresponse话题服务同步性异步同步通信模型发布/订阅服务器/客户端底层协议ROSTCP/ROSUDPROSTCP/ROSUDP反馈机制无有缓冲区有无实时性弱强节点关系多对多一对多(一个server)适用场景数据传输逻辑处理 ROS通信机制介绍话题与服务的区别ROS通信机制介绍参数

(Parameter)——

全局共享字典●

可通过网络访问的共享、多变量字典;●节点使用此服务器来存储和检索运行时的参数;●适合存储静态、非二进制的配置参数,不适合存储动态配置的数据。ROS

Master

Node

ANode

BParameterServer/robot_name:"my_robot"/robot_radius:0.4/robot_height:0.5Node

CNode

DROS通信机制介绍功能包

(Package)ROS软件中的基本单元,包含节点源码、配置文件、数据定义等。

功能包清单

(Packagemanifest)记录功能包的基本信息,保护作者信息、许可信息、依赖选项、编译标志等。元功能包(

MetaPackage)组织多个用于同一目的的功能包。软件仓库功能包

元功能包元功能包功m乡功能包文件系统元功能包元功能包ROS社区功能包软件仓库软件仓库软件仓库

功能包清单

消息类型服务类型代码

其他功能包ROS开发环境搭建

安装终端ROS中需要频繁使用终端,经常需要同时开启多个窗口,推荐使用Terminator。在终端中,执行如下指令,进行Terminator

的安装。$sudoapt

installterminatorscott@scott-NUC11TNKI5:~scottoscott:NUC11TNKi⁵:~101x11NUC11TNKt5:11311/4900-11ed-9acd-278bac5a648eith

pid

[8617]itor...done

processtng

monitor

completeot

@scott-NUC11TNKt5:~5□巴scott@scott-NUC11TNKi⁵:~50x11cott@scott-NUC11TNKi5

:-S终端工具Terminator使用效果scottoscottNUC11TNKi⁵:~

50x11(1)下载VS

Code。下载地址:https://code.visualstudio.com/docs?start=true(2)安装VS

Code。方式1:双击安装即可(或右击选择安装)。方式2:在所在文件夹下打开终端,输入如下命令进行安装:

安装VSCodeVS

Code的全称是Visual

Studio

Code,是微软公司研发的一款轻量级代码编辑器,

免费,但功能强大。VS

Code支持Windows

、MacOS

、Linux

等多种平台。$sudo

dpkg

-i

xxxx.deb⑧打开VS

Code后的界面Visual

Studio

Code编辑进化启动Cs

建文件。打开文件D

打开文件史。蓝接乳最

近shared

SSt1921612132

mnngsPojest

r

倍指特

Q

D⁰08LUburtu

统charedhgh

SHt

192.1611271mmtg=SH1921821271

nhome演

练开始使用V⁵Code白定文编铝源、了解基础知9#开始编码C++

开发入门翻了解基础OR田m…THANKS感谢观看第2章机器人操作系统(ROS)架构三·ROS

架构简介·ROS

文件系统·ROS

计算图ROS架构简介

ROS架构简介ROS

的架构可以分为三个层次:操作系统层、中间层和应用层,如图所示。Application应用层

Master

Node

NodeOS层

LinuxROS的架构ClientLibraryTCPROS/UDPROS

Nodelet

API中间层

ROS架构简介1.

操作系统层

(OS层)ROS并不是一个传统意义上的操作系统,而只是一个元操作系统,无法像Windows

、Linux一样直接运行在计算机硬件之上,而是需要依托真正意义的操作系统。所以在OS层,可以直接

使用ROS官方支持度最好的Ubuntu操作系统,也可以使用MacOS

、Arch

、Debian

等操作系统,

Windows也支持ROS2.0的版本。2.中间层Linux

是一个通用系统,并没有针对机器人开发提供特殊的中间件,所以ROS在中间层做了大

量的工作,其中最为重要的就是基于TCPROS/UDPROS的通信系统。ROS的通信系统基于TCP/UDP网

络,在此基础之上进行了二次封装,也就是TCPROS/UDPROS。通信系统使用发布/订阅、客户端/

服务器等模式,实现多种通信机制的数据传输。除了TCPROS/UDPROS的通信机制外,ROS还提供一种进程内的通信方法——Nodelet,它

为多进程通信提供一种更优化的数据传输方式,为数据的实时性传输提供支持。

ROS架构简介3.应用层在应用层中,ROS需要运行一个管理者——Master,负责管理整个系统的正常运行。

ROS社区

内共享了大量的机器人应用功能包,这些功能包内的模块以节点为单位运行,以ROS标准的输入

输出作为接口,开发者不需要关注模块的内部实现机制,只需要了解接口规则即可实现复用,极

大地提高了代码开发效率。作为一种“次级操作系统”,常见的ROS系统架构一般有三个部分:

ROS架构简介作为一种“次级操作系统”,常见的ROS系统架构一般有三个部分:(1)文件系统级

——描述了程序文件在硬盘上是如何组织的,

ROS的内部结构、文件结

构和核心文件都在这一层;(2)计算图级

——说明了程序的运行方式,即进程与进程,进程与系统之间的通信;(3)开源社区级——描述了开发者之间是如何共享知识,算法和代码的。文件系统程序文件是如何组织和构建的

描述程序是如何

运行的从系统实现角度来划分ROS的架构开源社区ROS

资源是如何分布式管理的计算图ROS

文件系统

ROS

文件系统ROS文件系统主要包括了功能包集、功能包、功能包清单、消息类型、服务类型和代码等。文件系统元功能包功能包功能包清单

消息类型

服务类型

代码

其他ROS文件系统示意图

ROS

文件系统1)功能包集

(Metapackage)2)功能包

(Package)功能包是ROS

系统中软件组织的主要形式,一个功能包包含了创建ROS

程序的最小结构

和最小内容,如ROS

运行的进程。3)功能包清单

(Package

Manifest)功能包清单是一个package.xml文件,它提供了功能包的相关信息。4)消息类型

(Message

type)ROS

通过消息进行信息传递,

ROS

中提供了大量的标准类型,

.msg

的文件存储在功能包

的msg

文件夹下。5)服务类型

(Serviec

type)在ROS中,扩展名为.srv的服务描述文件定义了ROS

中的请求和回应的数据结构,存储在

功能包的srv文件夹下。6

)

(Code)功能包的源程序存储在src文件夹。功能包配置文件源文件空间配图文件CMakeLstsDJCMakeLIst9D1功能包清单文件package

m功能包头文件目录inolude/spackage_name>/非标准消息定义目录msg/packago2服务突型定义目录srv/bash、python

等可执行脚本文件存放目录scripts/lsunch文件目录launoh/功能包功能包中节点对应的源文件存放目录5reROS

文件系统一、工作空间工作空间主要用于存储ROS功能包功能包packago1功能包工作空间典型结构示意图工作空间cotkn_ws功能包packsgo3必要项非必要项编译空间bulld开发空间dovel源文件空间sra

ROS

文件系统1)源文件空间(默认为src文件夹)2)编译空间(默认为build文件夹)3)开发空间(默认为devel文件夹)常用的catkin命令如下:catkin_init_workspace:把指定的工作目录初始化为ROS的工作空间。catkin_create_pkg:创建功能包。catkin_make:

编译功能包。catkin_find:

搜索工作目录。

ROS

文件系统二、功能包功能包是ROS

软件的基本组织形式,

一个功能包可以包含多个可执行文件。功能包主要

包含以下文件夹和文件:1)include:

此文件夹包含了所需库的头文件2)msg:

此文件夹存储消息文件3)srv:此文件夹存储服务文件4)src

:

此文件夹存储程序源文件5)scripts:

此文件夹存储Python可执行脚本文件6)CMakeLists.txt:规定了catkin编译的规则,如catkin的最低版本,编译时需要的依赖项和

指定生成库文件/可执行文件等7)package.xml:功能包清单,是package不可缺少的成分。主要记录了该功能包的名称、版

本号、信息描述、作者信息和许可信息。

ROS

文件系统二、功能包8)models:存放机器人或仿真场景的3D模型(.sda,.stl,.dae

等)9)urdf

:

存放机器人的模型描述文件(.urdf或.xacro)10)launch:存放launch文件(

.launch或.xml)

ROS

文件系统三、功能包集

(Metapackage)功能包集是不含源代码且只有一个package.xml文件的特定包,它用于引用其他功能特性类似的功能包。在ROS

中有各种不同用途的功能包集,如导航包navigation,机器人功能包

集turtlebot

。与功能包的CMakeLists.txt不同,功能包集的CMakeLists.txt文件加入了catkin_metapackage()

宏,用于指定本软件包为一个功能包集。同时,功能包集的

package.xml文件中也需添加标签声明是一个功能包集。ROS

里常见的MetapackageMetapackage名称描述链接navigation导航相关的功能包集https://github.com/ros-planning/navigationmoveit运动规划相关的(主要是机械臂)

功能包集https://github.com/ros-planning/moveitvision_opencvROS与OpenCV交互的功能包集https://github.com/ros-perception/vision_opencvimage_pipeline图像获取、处理相关的功能包集https://github.com/ros-perception/image_commonturtlebotTurtlebot机器人相关的功能包集https://github.com/turtlebot/turtlebot………………ROS计算图 ROS计算图计算图是由一些共同处理数据的ROS

进程形成的点对点网络,主要描述进程和系统之间

的通信。计算图涉及以下几个重要概念:节点

(Node)、

题(Topic)、消

(

Message)、

(Service)、

节点管理器

(Master)、

参数服务器

(

Parameter

Server)

和消息记录包(Bag),这些概念都以各自的方式向计算图提供数据。一

、节点节点可以通过主题、服务、参数服务器与其他节点通信,从而联结成计算图。ROS通过

使用节点简化了系统,提高了系统容错性和可维护性。同时,使用节点可以保证ROS

系统能

够在多个机器上同时运行。节点可以使用不同的库进行编写,如roscpp

和rospy;

中roscpp基于C++,rospy基于Python。1)rosrun:运行ROS节点2)rosnode:显示ROS节点的信息 ROS计算图二、消息节点通过消息实现彼此之间的通信。消息从本质上来说,是节点之间用于交换信息的数

据结构。ROS

提高了多种标准数据类型(如整型,浮点型,布尔型等),用户也可以基于标

准消息自定义某种类型的消息。ROS

提供

了rosmsg命令行工具用于显示消息信息。1)rosmsglist:

显示所有消息2)rosmsg

show:

显示消息3)rosmsg

package:显示用于指定功能包的所有消息4)rosmsg

packages:

显示使用消息的所有功能包 ROS计算图三、主题主题是用于标识消息内容的名称,消息可以通过一种发布/订阅的方式传递,而节点可以向一个指定的主题发布消息。

一个节点对特定类型的数据感兴趣就订阅相应的主题。

一个

节点可以同时订阅或者发布多个主题的消息,多个节点也发布或者订阅同一个主题的消息。发布者和订阅者彼此独立,不互相影响。实际上,主题并不关注哪些节点发布或者订阅消息,

它只关注消息的类型是否匹配。需要主要的是:主题的名字必须具有唯一性。ROS提供了rostopic

命令行工具用于对主题进行操作:1)rostopiclist:

显示当前正在发送和接收的所有主题的列表2)rostopic

echo:实时显示主题的消息内容3)rostopicfind:

显示使用指定类型的消息的主题4)rostopic

type:显示指定主题的消息类型5)ros

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论