ROS 概念
ROS(Robot Operating System) 是一个元操作系统(Meta-Operating System)。
元操作系统不是一个明确定义的术语,而是一个利用应用程序和分布式计算资源之间的虚拟化层来运用分布式计算资源来执行调度、加载、监视、错误处理等任务的系统。
ROS的目标是“建立一个在全球范围内协作开发机器人软件的环境!”
ROS 发展
- 2007 年诞生于斯坦福大学 STAIR (S Tandford AI Robot)项目 Morgan Quigley
- 2008 Willow Garage (柳树车库)接手
- 2010 发布 ROS 1.0
- 2011 发布 TurtleBot
- 2012 第一届 ROScon
- 2013 OSRF(Open Source Robotics Foundation) 接管 ROS 项目
- 2014 ROS Indigo 发布
- 2016 ROS Kinetic 发布
- 2017 ROS 2.0 Ardent 发布
- 2018 ROS Melodic 发布
- 2020 ROS Noetic 发布
ROS 设计目标 & 特点
-
提高软件复用率
-
分布式
-
点对点的设计
-
多语言支持
-
架构精简、集成度高
-
易于测试
-
大型应用
-
丰富的组件化工具包
-
免费且开源
ROS = 通讯机制 + 开发工具 + 应用功能 + 生态系统
ROS 系统组成
- 节点(Node) —— 软件模块
- 节点管理器(ROS Master) —— 控制中心,提供参数管理
- 话题(Topic) —— 异步通信机制,传输消息(Message)
- 服务(Service) —— 同步通信机制,传输请求/应答数据
ROS 安装 & 初始配置
安装步骤
- 设置安装源
- 设置 key
- 安装(推荐 Desktop-Full)
- 配置环境变量(便于在任意终端界面使用 ROS 命令)
ROS 官网安装指引
ROS 官网—Ubuntu 16.04 安装 ROS Kinetic
rosdep
ROS 使用许多工具之前,需要初始化,使用 rosdep 命令安装依赖
rosdep 使用前需要初始化,命令如下
$ sudo rosdep init
这一步就是将https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list 这个文件下载到 /etc/ros/rosdep/sources.list.d/ 这个目录下,如果安装失败大概率是 Github 被墙。
$ rosdep update
验证:ROS 小海龟仿真
$ roscore 启用 ROS Master
$ rosrun turtlesim turtlesim_node 启用海龟仿真器
$ rosrun turtlesim turtle_teleop_key 启用海龟控制节点
可以使用 $ rqt_plot 调出参数可视化分析界面