<笔记>机器人操作系统ROS理论与实践--第一讲:认识ROS
<笔记>机器人操作系统ROS理论与实践--第一讲:认识ROS
- 前言
- 一、为什么需要ROS
- 二、ROS的总体设计
- 1、一个目标
- 2、五个特点
- 3、四位一体
- 三、ROS的系统实现--三个层次
- 1、计算图
- 2、文件系统
- 3、开源社区
- 四、ROS的安装
- 五、一些感兴趣的ROS项目
- 六、学习参考资料
2020/12/21
前言
本系列笔记为笔者学习ROS课程中记录下的东西,内容不会像课程内容那样连贯,但是会包含一些关键概念、关键问题以及个人的一些其他想法,如有问题或者对想法产生共鸣可以共同交流、学习进步。
一、为什么需要ROS
ROS出现的目的是为了提高机器人研发中的软件复用率,即 避免重复造轮子(这一点还是挺认可的,比如笔者知道的FPGA行业,很多使用者在做相关项目是,大多都是从轮子造起;凡是都有两面,不用造轮子的同时也意味着使用者可能无法了解一些底层的实现原理,只是当一个调包侠),现在ROS已经成为机器人界中的一个统一的标准,ROS的开源鼓励各个实验室、开发者协作开发机器人,目前ROS的两大领域:SLAM和机械臂;
二、ROS的总体设计
1、一个目标
提高机器人研发中的软件复用率
2、五个特点
(1)点对点设计
节点单元(节点是ROS中一个很重要的概念)、分布式网络、RPC+TCP/UDP通信系统、适合多机协同;
(2)多语言支持
支持python、C++、JAVA等编程语言,语言无关的接口定义;
(3)架构精简,集成度高
每个功能节点可以单独编译、集成众多开源项目、接口统一/提高软件复用性;
(4)组件化工具包丰富
3D可视化工具:rviz
物理仿真环境:gazebo
数据记录工具:rosbag
QT工具箱:rqt_*
(5)免费并且开源
遵循BSD开源许可,可商用(很多公司产品基于ROS做优化);软件包数量指数级增长,良好的生态系统;
3、四位一体
总体上ROS是一个四位一体的综合性机器人开发框架;ROS的核心在于通信机制,这种通信机制是基于点对点的网络通信,可以把不同的功能节点隔离开;
三、ROS的系统实现–三个层次
1、计算图
描述程序是如何运行的
关于ROS三种通信机制,我们在后面在具体分析;
2、文件系统
程序文件是如何组织和构建的
功能包清单(Package manifest)中记录了功能包的基本信息,包含作者信息、许可信息、以来选项、变异标志等
**p.s.**自己在完成相应的功能包(或元功能包)后,也可以将功能包发布到开源社区上;
3、开源社区
ROS资源是如何分布式管理的。
ROS WIKI:记录ROS信息文档的主要论坛,上面可以找到所有ROS软件功能包相关的说明;
ROS answers:咨询ROS相关问题的网站
四、ROS的安装
ROS安装有两种方法:一是直接通过软件源安装,二是利用源码编译的方式安装(适用于一些ARM架构嵌入式的硬件);
安装目录默认在/opt/ros下
文件夹作用
bin:具体可执行程序(ROS系统或功能包提供的可执行命令);
etc:ROS配置文件;
include:包含所有通过命令行终端安装的功能包的头文件;
lib:所有通过命令行终端安装的节点(可执行程序);
share:功能包接口的信息(话题、服务、action),比如cmake文件;
其他都是环境变量可执行脚本
现在也有专门支持ROS2的开发板;
五、一些感兴趣的ROS项目
1、利用ROS开发水面/水下无人机(假装自己是水下玩家);
2、基于ROS做安卓机器人(基于手机开发机器人控制器,手机下载一个app);
3、大场景下多机器人共享地图信息,(数据上传至云端之后进行分享);
六、学习参考资料
1、google: www.google.com.
2、ROS WIKI : http://wiki.ros.org/. WIKI是学习一种新知识最好的参考资料
3、ROS answers : https://answers.ros.org/.
4、古月居: https://www.guyuehome.com/.
5、《ROS机器人开发实践》–胡春旭
<笔记>机器人操作系统ROS理论与实践--第一讲:认识ROS相关推荐
- 视觉SLAM理论与实践第一讲习题
第一题 熟悉Linux 1.sudo apt-get install "需要安装的软件名" , 通常将软件安装在usr目录下 2.环境变量:环境变量是在操作系统中一个具有特定名 ...
- 《ROS理论与实践》学习笔记(九)机器人自主导航
<ROS理论与实践>学习笔记(九)机器人自主导航 课程内容 ROS中的导航框架 导航框架中的关键功能包 move_base amcl 机器人自主导航案例 导航仿真 程序接口 move_ba ...
- ROS机器人入门课程《ROS理论与实践》零基础教程(推荐课程)
ROS的入门,对于纯小白的我来说很是痛苦,尤其是听完古月老师的21讲之后,更是浇灭了学习的兴趣,当时还在考虑要不要他的买课,还是算了,反正也听不懂,,,!!! 在一番挣扎之后,发现了赵虚左老师的课程, ...
- ROS理论与实践(以移动机器人为例)连载(十)【完结】 ——机器人综合应用—“迷宫寻宝”
这讲会提供示例代码! Content 1. "迷宫寻宝" 之任务发布 2. "迷宫寻宝" 之任务分析 3. "迷宫寻宝" 之具体实现 ①机器 ...
- ROS理论与实践——二、ROS基础
ROS理论与实践--二.ROS基础 前言 一.创建工作空间 1 什么是工作空间 2 创建流程 二.创建功能包 1 创建命令 2 创建流程 三.ROS通信编程 1 话题编程 1.1 话题编程流程 1.2 ...
- 计算机控制技术(机器人方向)理论与实践补充资料和复习说明(2019版)
计算机控制技术(机器人方向)理论与实践补充资料和复习说明(2019版) 如何完成将求解课本习题----解决实际问题的转变(理论-实际),是实现学员----工程师的重要节点. 这个其实主要靠自身努力,无 ...
- ROS理论与实践——赵虚左Autolabor
ROS理论与实践 Autolabor官网:http://www.autolabor.com.cn/ 赵虚左老师课件:http://www.autolabor.com.cn/book/ROSTutori ...
- ros理论与实践网盘资源
ros理论与实践网盘资源 链接:https://pan.baidu.com/s/1a-cmpgiJ4m2dZdDJ7HTRAw 提取码:q0pt
- 在Jetson Nano上学习ROS的记录(版本Ubuntu18.04,课程来源赵虚左老师的《ROS理论与实践》)第十二章 机器人导航(仿真)
系列文章目录 第一章 ROS空间创建.helloworld的实现.开启多个节点 第二章 话题通信 第三章 服务通信 第四章 参数服务器 第五章 常用指令 第六章 通信机制实操 第七章 ROS通信机制进 ...
最新文章
- 如何使div填充剩余的水平空间?
- 深度优先搜索 和问题 简单函数递归 “加 还是不加”
- 用一个单链表L实现一个队列(算法导论第十章10.2-3)
- python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接。问题解决方案
- 吴恩达机器学习笔记-非监督学习
- centos 7下安装mysql
- java 数组中数字和_java – 查找数组中的数字总和 – 不包括数字13和它后面的数字...
- Android游戏破解练习-大圣降魔录
- pages.json tabBar[‘list‘][2][‘pagePath‘] “pages/contact/contect“ 需在 pages 数组中
- 卸载安装Ubuntu18.04双系统、ROS+装机
- VScode启动流程
- bzoj 3728 zarovik 买灯泡
- 一个站长找回域名的艰辛之路
- 数学一英语二计算机考研真题,2018年考研(英语二)真题与答案解析(网络整理完整版)...
- 遗传算法(Genetic Algorithm)过程全面解析
- HDU 4069 Squiggly Sudoku DLX
- 人力资本、人均受教育年限,受高等教育人数比重(1997-2020)
- 关于TP5静态文件加载不出来
- Python之有趣的小程序——猜数字2.0
- 封装 继承 多态理解
热门文章
- JAVA_HOME should point to a JDK not a JRE的解决办法
- PDManer支持的数据库系统
- linux中yum源在那个目录下,Linux ---各种yum源配置详解
- ubuntu中meshlab安装
- HTML期末大作业~ 明星林依晨(7页)带留言 学生网页设计作业源码(HTML+CSS+JS)
- (压缩包在本地目录或由链接请求)使用jszip解压文件或compressing解压文件到指定目录,写个node脚本
- qemu中的新版vga仿真
- Linux消息队列原理与应用
- 汽车零部件物料配送防错漏视觉检测工作站
- STM8使用SPI通信需要注意的几个问题