5.1 ROS是什么?

ROS(Robot Operating System机器人操作系统)是面向机器人的开源的元操作系统(meta-operating system)。它能够提供类似传统操作系统的诸多功能,如硬件抽象、底层设备控制、常用功能实现、进程间消息传递和程序包管理等。此外,它还提供相关工具和库,用于获取、编译、编辑代码以及在多个计算机之间运行程序完成分布式计算。

来源:《机器人操作系统浅析》P1-4

抛开它的名字,ROS并不是一个真正的操作系统。相反,它是一个框架和服务的集合,这些框架和服务提供了类似操作系统的功能,运行在由机器人硬件支撑的异构计算机集群之上。ROS服务包括硬件抽象、底层设备控制、进程间消息传递和包管理。

ROS并不是目前唯一可用的“机器人框架”。可供选择的框架包括Player、YARP、Orocos、CARMEN等。ROS的与众不同之处在于,它的设计以丰富的机器人平台为中心,使用驱动传感(倾斜激光器、pan/tilt传感器头、附在手臂上的传感器),其目标是利用自然分布的计算环境。另外,ROS的目标是成为一个几乎与语言无关的薄层,以便在其他机器人平台上轻松运行基于ROS的代码。ROS可以使用Python、C++和Lisp等语言实现。

ROS的主要目标是在机器人研究和开发中支持代码重用。ROS是一个分布式的进程框架(又名Nodes),它使可执行程序能够单独设计并在运行时保持松耦合。这些进程可以分组为Packages和Stacks,实现轻松共享和分发。

来源:http://m.elecfans.com/article/796865.html

5.2 ROS的安装

(1)配置Ubuntu软件仓库

点击左下角“显示应用程序”按钮,选择“软件和更新”。打开“软件和更新”对话框。

选择“Canonical支持的免费和开源软件(main),社区维护的免费和开源软件(universe),设备的专有驱动(restricted),有版权和合法性问题的软件(multiverse)”四项,点击“关闭”。

(2)设置软件源

使用apt install来安装。由于默认软件仓库里面没有ROS安装包,因此安装时,需要设置软件源。

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

说明:

1)sh -c命令:将sudo的影响扩展到整条命令,让整条命令都获得系统管理员权限。

2). /etc/lsb-release:运行/etc/lsb-release文件。lsb-release文件的内容如下。

DISTRIB_ID=Ubuntu

DISTRIB_RELEASE=18.04

DISTRIB_CODENAME=bionic

DISTRIB_DESCRIPTION="Ubuntu 18.04.6 LTS"

从文件内容可知系统的版本、代号、版本等信息。

3)lsb_release -cs 命令:获取系统的发行版代号。如果在终端单独运行此命令:终端命令行会显示:bionic。

4)ROS清华大学开源软件镜像站:

http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/

5)此段命令的含义是:在/etc/apt/sources.list.d/目录下,建立文件ros-latest.list,并将

“deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ bionic main”字段,放到ros-latest.list文件内。使apt在安装软件时可以在ROS清华大学开源软件镜像站搜索bionic版本,main目录下的相关文件,并下载。

(3)设置密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key  C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

(4)安装

sudo apt update

说明:设置软件源后,需要运行这个命令以令改动生效。同时也要定期运行该命令,以确保你的源列表是最新的。

sudo apt install ros-melodic-desktop-full

说明:安装ros melodic桌面完成版(推荐)。完成版包含ROS、rqt、rviz、机器人通用库、2D/3D模拟器、导航以及2D/3D感知包。

注:如有提示有软件包无法下载,可再运行一遍。

(5)安装依赖

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

说明:安装python-rosinstall、python-rosinstall-generator、python-wstool、build-essential依赖。Ros需要这些软件包安装后才可以正常运行。

(6)设置环境变量

source /opt/ros/melodic/setup.bash

环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数比如临时文件夹位置和系统文件夹位置等。环境变量相当于给系统或用户应用程序设置的一些参数, 具体起什么作用这当然和具体的环境变量相关。比如path, 是告诉系统, 当要求系统运行一个程序而没有告诉它程序所在的完整路径时, 系统除了在当前目录下面寻找此程序外, 还应到哪些目录下去寻找。

来源:https://baike.so.com/doc/5580891-5793769.html

如果没有设置环境变量,将会找不到命令文件。

为了避免每次都要运行设置环境变量,可以将source /opt/ros/melodic/setup.bash 放到.bashrc最后一行来执行。方法如下:

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

~/.bashrc: 是对应当前登录用户的bash初始化文件,当用户每次打开shell时,系统都会执行此文件一次。

source ~/.bashrc使环境变量立即生效。也可以不适用此行指令,重新打开终端亦可。

来源:http://wiki.ros.org/cn/melodic/Installation/Ubuntu

(7)验证是否安装成功

打开终端:

roscore   运行主节点

打开新的终端

运行turtlesim功能包的turtlesim_node节点 。

rosrun turtlesim turtlesim_node

打开新的终端:

运行turtlesim功能包的turtle_teleop_key节点

rosrun turtlesim turtle_teleop_key  

该命令可以在该终端窗口上,用键盘上的方向键控制乌龟运动。

5.3 ROS目录结构

ROS安装在/opt目录下。ROS中个目录的说明如下表所述。

目录

说明

/

根目录。

/opt/ros/melodic/bin

ROS中的二进制 (binary) 可执行的应用程序。

/opt/ros/melodic/etc

与ROS和catkin相关的配置文件。

/opt/ros/melodic/include

系统头文件。

/opt/ros/melodic/lib

库文件,节点在这个文件夹内。

/opt/ros/melodic/share

ROS所包含的功能包。

5.4 ros命令简介

(1) roscore

roscore命令会运行节点管理器,主节点管理节点之间的消息通信中的连接信息。主节点是使用ROS时必须首先被运行的必要元素。

(2)rosrun

语法:rosrun [功能包名称] [节点名称]

作用:执行指定的功能包中的一个节点的命令。

(3)roslaunch

语法:roslaunch [功能包名称] [launch文件名]

作用:运行指定功能包中的一个或多个节点或设置执行选项的命令。

(4)rostopic:Ros话题

rostopic list  列出活动话题

rostopic echo [话题名称]  实时显示指定话题的消息内容

rostopic pub [话题名称] [消息类型] [参数]  用指定的话题名称发布消息

来源:《ROS机器人编程》

5.5 创建工作空间

本节介绍如何使用catkin_make工具来构建一个catkin工作空间。

(1)什么是catkin

catkin是ROS的一个官方的编译构建系统。ROS来源于Willow Garage(柳树车库)这个公司,他们希望借助开源的力量,使ROS发扬光大。在英语中,willow的意思是柳树,因此为这个软件命名为catkin,柳絮的意思。catkin_make是一个catkin的一个工具,使用它可以很容易的构建一个catkin工作空间。

(2)创建步骤

1)进入/home/用户名(自己的用户名)文件夹。

2)在文件夹内击右键à新建文件夹à输入文件夹名kdbot_ws(名字可以更改)。

3)进入文件夹kdbot_ws新建src(名字不可更改)文件夹。

4)退到/kdbot_ws目录,运行catkin_make,此时文件夹内,生成了“build”和“devel”两个文件夹。

(3)工作空间中各目录作用

/src源文件空间:放置用户功能包和用于这些功能包的CMake配置文件CMakeList.txt。

/build编译空间:放置CMake和catkin编译功能包时产生的缓存、配置、中间文件等。

/devel开发空间:放置编译好的,可直接运行的可执行程序。

来源:https://blog.csdn.net/sinat_16643223/article/details/109215519

5 ROS的安装与常用操作简介相关推荐

  1. Git 安装及常用操作配置

    (一)Windows下Git的安装方法 (二)Git管理工具TortoiseGit的安装方法 (三)Git初始使用常用配置命令 C:\Users\Administrator\.gitconfig (一 ...

  2. STL map常用操作简介

    1.目录 map简介 map的功能 使用map 在map中插入元素 查找并获取map中的元素 从map中删除元素 2.map简介 map是一类关联式容器.它的特点是增加和删除节点对迭代器的影响很小,除 ...

  3. SVN下载,安装,配置,常用操作 svn教程

    首先在百度搜索并下载 TortoiseSVN 推荐从官网下载,软件分为32位和64位版本,下载时请根据自己的系统位数进行下载: 安装过程: 1.下载软件后,双击程序进行安装,点击"Next& ...

  4. 【mongoDB基础篇①】安装与常用操作语句

    简述 mongoDB与redis同为noSql数据库,但是redis为kv数据库(key/value),而mongoDB为文档型数据库存储的是文档(Bson->json的二进制化).内部执行引擎 ...

  5. 开源测试框架-UI自动化测试工具Selenium的安装与常用操作-Java语言

    为什么选择Selenium作为测试工具: 开源免费 容易与单元测试框架结合 代码可自主掌握,对于搭建框架,平台等有不可替代的优势 ​ Selenium也是一个用于Web应用程序测试的工具,支持多平台, ...

  6. Slurm安装和常用操作

    源码安装 下载最新的slurm源码包 munge安装 #安装rpm-build软件,以提供rpmbuild命令 yum install rpm-build -y # 安装时提示缺一堆软件包,一一安装就 ...

  7. composer安装和常用操作

    composer安装 @[TOC](composer安装) 前言 一.composer 是什么? 二.使用步骤 1.window安装 2.Linux 安装 3.Mac OS 系统 三.composer ...

  8. 交换机/路由器常用操作简介

    创建vlan 将端口划入vlan 查看vlan 删除vlan 配置vlan的网关.子网掩码.和DHCP中继 使用ssh连接交换机管理网口后: 1.创建vlan: #进入配置状态<S100> ...

  9. ROS入门与实践--1(ROS简介与ROS的安装)

    ROS入门与实践--1 1 ROS简介 1.1 什么是ROS? 1.2 ROS设计目标 1.3 ROS发行版本列表 2 ROS的安装 2.1 虚拟机及操作系统安装 2.1.1 虚拟机VMware下载 ...

最新文章

  1. 一个分析“文件夹”选择框实现方法的过程
  2. 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | DexFile 构造函数及相关调用函数 | Android 源码中查找 native 函数 )
  3. Linux常用命令下,以及再CentOS7下搭建apache网站服务,以及同一服务器上搭建第二个网站
  4. 透视变换–鸟瞰图_单例设计模式–鸟瞰
  5. php序列化和反序列化
  6. 聊聊.net 程序设计——命名规范(上)
  7. 记风雨兼程的2020年,2021年,我来了!
  8. 自己编译操作系统,安装systemtap
  9. 电脑小问题四:知网CAJ格式转下载PDF格式
  10. roboware studio教程_Roboware Studio 简单使用与调试(ROS kinetic)
  11. 打印机可以打印不能扫描怎么弄_惠普打印机可以复印不能扫描怎么操作
  12. “碳壁垒”悄然而起,碳足迹如何算清楚、减明白?|双碳科普
  13. Python:正则表达式 re.sub()替换功能
  14. oracle11g 测试io,IO性能测试 1:Oracle ORION
  15. LIKE视频网站无法登录服务器,解析视频地址失败,更换服务器也不行
  16. JavaScript:实现GnomeSort侏儒排序算法(附完整源码)
  17. java数组常见异常:下标越界、空指针异常
  18. 23个经过时间考验的应用程序,可以管理您的远程软件开发团队
  19. html语音输入功能讯飞,win10系统利用讯飞语音输入法实现电脑语音输入的方案介绍...
  20. 今天,在瑞丽开了开眼界!

热门文章

  1. 凸透镜成像规律的证明
  2. Rose2003执行出现 -2147417848 (80010108)#39;:Automation 错误
  3. 免费网站部署和免费数据库Serverless云存储资源汇总整理
  4. Linux Maven 安装教程
  5. 什么是事件循环(eventloop)?
  6. 批处理命令 bat文件
  7. Greenplum数据迁移工具——gpcopy
  8. 《大脑幸福密码:脑科学新知带给我们平静、自信、满足》
  9. c语言right,C++ left和right操作符用法详解
  10. 改变输出的文字的字体格式