首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(一)ROS入门介绍

(一)ROS入门介绍

作者头像
Must
发布2021-02-04 11:28:58
1.4K0
发布2021-02-04 11:28:58
举报
文章被收录于专栏:机器视觉工坊机器视觉工坊
1、ROS基础介绍
(1)ROS是什么
ROS系统起源于2007年,斯坦福大学人工智能实验室与机器人技术公司Willow Garage针对其个人机器人项目(Personal Robots Program)开发了ROS的雏形。2008年后,由Willow Garage公司推动了ROS的进一步发展。2012年后,ROS团队从WillowGarage公司独立出来,成为非盈利组织the Open Source Robotics Foundation(OSRF),负责维护和更新ROS,并为机器人社区提供相应的支持和开源工具。
严格来讲ROS并非是一种操作系统,它只是一种通信框架,一种基于消息传递通信的分布式多进程框架。ROS是一个运行在Linux上的次级操作系统,真正底层的任务调度、编译、寻址等任务还是由Linux操作系统完成。

(2)基本概念

Nodes:节点,一个节点即为一个可执行文件,它可以通过ROS与其它节点进行通信。
Messages:消息,消息是一种ROS数据类型,用于订阅或发布到一个主题。
Topics:主题,节点可以发布消息到主题,也可以订阅主题以接收消息。
Master:节点管理器,ROS名称服务。
rosout: ROS中相当于stdout/stderr。
roscore: 主机+ rosout + 参数服务器。
rospy = Python 客户端库。
roscpp = C++ 客户端库。

(3)常用开发工具

Gazebo:机器人仿真工具,模拟器,也是一个独立的开源机器人仿真平台。Gazebo实现的是仿真,提供一个虚拟的世界。

RViz:调试和开发都离不开这个工具——RViz(the Robit Visualization tool)机器人可视化工具。在命令行打开新的终端直接输入$ rviz,打开工具。RViz实现的是可视化,呈现接收到的信息数据。

rqt:一个基于qt开发的可视化工具,拥有扩展性好、灵活易用、跨平台等特点,主要作用和RViz一致都是可视化,但是和RViz相比,rqt要高级一个层次。

rosbag:用于记录和回放ROS主题的工具。

rosbridge:一个用在ROS系统和其他系统之间的一个功能包,就像是它的名字一样,起到一个"桥梁"的作用,使得ros系统和其他系统能够进行交互.Rosbridge为非ROS程序提供了一个JSON API。如ROS提供了cv_bridge,可以将OpenCV的图片与ROS的图片格式相互转换。

moveit!:它融合了研究者在运动规划、操纵、3D感知、运动学、控制和导航方面的最新进展,为操作者提供了一个易于使用的平台,使用它可以开发先进的机器人应用,也被广泛应用于工业,商业,研发和其他领域。成为在机器人上最广泛使用的开源操作软件。通过为用户提供接口来调用它,包括C++、Python、GUI三种接口。ROS中的move_group节点充当整合器,整合多个独立组件,提供ROS风格的Action和service。move_group通过ROS topic和action与机器人通讯,获取机器人的位置、节点等状态,获取数据再传递给机器人的控制器。控制器的接口会去处理这些信息,比如进行坐标转换、规划场景、3D感知。
2、ROS总体架构介绍
(1)ROS总体框架

ROS框架图

ROS系统代码主要有两大部分:
(1)main:核心部分,它提供了一些分布式计算的基本工具以及整个ROS的核心部分的程序。
(2)universe:全球范围的代码,有不同国家的ROS社区组织开发和维护。
   libs:一种库的代码,如OpenCV、PCL等。
   framework function:库的上一层,从功能逻辑算法角度提供的代码,如图像激光等处理检测识别算法,他们     调用下层的OpenCV、PCL库。
   application层:最上层的代码是应用级的代码,让机器人完成某一确定的功能。

(2)ROS主要分为三个级别:计算图级、文件系统级、社区级

计算图:是ROS处理数据的一种点对点的网络形式,主要包括:节点(node)、消息(message)、主题(topic)、服务(service)、节点控制器(ROS Master)。
文件系统级:指的是在硬盘上面查看的ROS源代码的组织形式,包括:包(package)、堆(stack)。
1、ROS的软件以包的方式组织起来。包含节点、ROS依赖库、数据套、配置文件、第三方软件、或者任何其他逻辑构成。
2、堆是包的集合,它提供一个完整的功能,像“navigation stack”。
社区级:ROS网络上进行代码发布的一种表现形式。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器视觉工坊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、ROS基础介绍
    • (1)ROS是什么
    • 2、ROS总体架构介绍
      • (1)ROS总体框架
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档