ROS - 基础知识

1.基本概念

1.1 ROS(Robot Operating System)是什么?

ROS的名字为“机器人操作系统”,不要被名字忽悠了,它其实不是真正的操作系统(没有内存管理、进程管理、网络管理、设备管理的基本功能),它是一个运行于Ubuntu操作系统(如:Ubuntu 16.04 LTS(Long Term Support))上的模块(即ROS是一个一堆软件库和工具的集合,可用于创建机器人应用。它包含了各种驱动、先进的算法、好用的开发工具,总之它有你需要的一切资源),且可以提供类似于操作系统的一些服务,比如底层通讯(进程间同步、异步通信), 分布式控制。对于机器人的相关功能,不使用ROS也能实现,但ROS使得机器人软件开发和运行的工作更方便,效率更高。它本质上不是什么高深的操作系统,而是一个普通的平台工具(如大家有常用的Python),因为用的人多,贡献者多,所以其功能强大。

1.2 ROS提供了什么?

  • ROS因为用的人多,应用领域广,所以形成了一个成熟的生态系统,即要什么就有什么。此生态包含以下松散的开源软件包集合:
  • 核心库
    1)核心库(ros_comm): 通讯中间件, 基础命令行交互工具
    2)构建工具链(catkin): 标准message message-generation
  • 基础库
    1)TF (Transform Library)
    2)URDF (Unified Robot Description Format)
    3)Action Lib
    4)Plugin Lib
    5)与OpenCV 的cv_bridge
    6)与PCL 的 pcl_conversions
  • 功能包
    1)navigation
    2)moveit!
  • 依赖关系
    1)ROS核心库随着ubuntu 升级而升级, 基础依赖库—- g++, boost, opencv, opengl,openni等
    2)ROS基础库随着核心库改动而升级

1.3 ROS 程序

  • ROS程序叫做节点(Node),即一个程序为一个节点,每个节点就是Linux中的一个进程,只不过它取了另外一个名字,而把Linux的本质给藏起来。
  • ROS的编程语言主要是C++ 和 Python。
  • 节点间的通信通过Pipe(管道),而它取一个好听的名字Topic,发送方叫做发布者Publisher,而接收方叫做订阅者Subscriber,有时间一定要看看它的源码,看看是否比Android基于Kernel共享内存的Binder效果好。
  • 编译Node采用大家常用的cmake

1.4 ROS 常用Packages

  • Rviz
    • ROS中的3D可视化工具,可用于调试、仿真,查看Cameras, Lasers等实时数据
    • 可用它来查看移动机器人所看到的世界
  • MoveIt!

    • MoveIt!是最先进的移动操纵软件(Mobile Manipulation);
    • 融合了运动规划(Motion Planning),操纵(Manipulation),3D感知(3D Perception),运动学(Kinematics),控制(Control)和导航(Navigation)方面的最新进展;
    • 它提供了一个易于使用的平台,用于开发高级机器人应用程序,评估新机器人设计、或为工业,商业,研发及其他领域创建集成的机器人产品。
  • gmapping package

    • 是一个基于Laser的SLAM(Simultaneous Localization and Mapping),其ROS 节点名为:slam_gmapping
    • 使用slam_gmapping,可以根据从移动机器人(mobile robot)获取的laser和pose data来创建一个2-D占用网格地图(2D occupancy grid map (OGM))
    • 它产生的Map通过Topic called /map发布,则Rviz则可订阅此Topic,并进行显示
    • gmapping 实现了 FastSLAM 2.0,FastSLAM2.0是一个高效的、收敛性好的粒子滤波算法(particle filtering algorithm),同样环境下,基于卡尔曼滤波算法(Kalman filter-based algorithms )所需要的时间是粒子滤波算法所需要时间的二次方。
  • map_server节点
    • map_server节点用于保存地图
    • 其地图文件格式可以为:map.pgm 和 map.yaml
  • a
  • a

2. ROS资源

猜你喜欢

转载自blog.csdn.net/myarrow/article/details/80288893
今日推荐