视频链接:ROS机器人
chapter 1 ROS概述与环境搭建
学习步骤:
1.了解该模块的相关概念
是什么,为什么学,前世今生,发展前景
2.安装官方软件包
具备基本的开发环境,简陋notepad++
3.搭建集成开发环境(IDE,Integrated Development Environment)
生成提示,自动补齐,纠错,提高开发效率
用到的工具:
vscode
了解ROS的概念,设计目标,发展历程
- 独立安装并运行ROS
- 能够使用C++或Python实现ROS版本的HelloWorld
- 能够搭建ROS的集成开发环境
- 了解ROS架构设计
了解ROS架构设计
1.1 ROS简介
ROS背景
- 硬件+软件(组成复杂)
工业体系的集大成者
上层软件设计–>大脑(采集外界信息,处理,运算,下达)–>(ROS)
嵌入式软件设计–>小脑–>Arduino/stm32
大脑将信息传达给小脑再控制硬件
- 一种更合适的策略:(分工实现复用)
专注于自己擅长的领域,其他模块用其他团队的。“不重复发明轮子”
分工–>提高效率
复用性和模块开发
- 背景(ROS)
2007年,柳树车库(Willow Garage)的机器人公司发布了ROS(机器人操作系统),
通用软件框架,提升功能模块的复用性,迭代、完善。
机器人领域的事实标准。
ROS概念
ROS(Robot Operating System)机器人操作系统
- 开源(源码开放,不要钱),元操作系统
- 集成工具、库、协议,类似OS的功能,简化对机器人的控制
- 在多台计算机上(分布式),获取、构建、编写和运行代码的工具和库,“机器人框架”
控制器、处理器(树莓派)、感知外界数据,树莓派继续汇总,远程传递给PC,PC数据汇总运算产生结果,线速度和角速度,控制机器人运动。 - ROS = Plumbing/管道/ + Tools + Capabilities/性能/ + Ecosystem
即,通讯机制,工具软件包,机器人高层技能以及机器人生态系统的集合体。
用仿真工具,自动导航,避障,识别汽车、人等等
调参,最大速度,最小速度,角速度(调参,体力劳动)
开源:大家一起实现,制定规则,掌握话语权,钱
1.1.2 ROS设计目标
代码复用:
- 代码复用:重用
- 分布式:ROS是进程(Nodes节点)的分布式框架,ROS中的进程可以分布于不同主机,不同主机协同工作,分散计算机压力。
- 松耦合:输入输出标准化,实现过程可以自定义。可插拔的设计。
- 精简:可以和其他机器人软件框架一起使用。(OpenRAVE,Orocos,Player)
- 语言独立性:多语言实现,如Java,C++,Python,允许消息接口嵌套使用
- 易于测试:ROS具有称为rostest的内置单元/集成测试框架,轻松安装和拆卸测试工具。
- 大型应用:大型运行时系统和大型开发流程
- 丰富的组件化工具包:RVIZ(3D可视化工具)
- 免费且开源:开发者多,功能包多