机器人操作系统ROS教程(一) ROS简介

一、历史

随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已 有的开源机器人系统又不能很好的适应需求。2010年Willow Garage公司发布了开源机器人操作系统ROS (robot operating system),很快在机器人研究领域展开了学习和使用ROS的热潮。

ROS系统是起源于2007年斯坦福大学人工智能实验室的项目与机器人技术公司Willow Garage的个人机器人项目 (Personal Robots Program)之间的合作,2008年之后就由Willow Garage来进行推动。已经有四年多的时间 了 (视频)。随着PR2那些不可思议的表现,譬如叠衣服,插插座,做早饭,ROS也得到越来越多的关注。 Willow Garage公司也表示希望借助开源的力量使PR2变成“全能”机器人。

PR2价格高昂,2011年零 售价高达40万美元。PR2现主要用于研究。PR2有两条手臂,每条手臂七个关节,手臂末端是一个可以张合的钳 子。PR2依靠底部的四个轮子移动。在PR2的头部,胸部,肘部,钳子上安装有高分辨率摄像头,激光测距仪, 惯性测量单元,触觉传感器等丰富的传感设备。在PR2的底部有两台8核的电脑作为机器人各硬件的控制和通讯 中枢。两台电脑安装有Ubuntu和ROS。

二、设计目标

ROS是开源的,是用于机器人的一种后操 作系统,或者说次级操作系统。它提供类似操作系统所提供的功能,包含硬件抽象描述、底层驱动程序管理、 共用功能的执行、程序间的消息传递、程序发行包管理,它也提供一些工具程序和库用于获取、建立、编写和 运行多机整合的程序。

ROS的首要设计目标是在机器人研发领域提高代码复用率。ROS是一种分布式处理框架(又名Nodes)。这 使可执行文件能被单独设计,并且在运行时松散耦合。这些过程可以封装到数据包(Packages)和堆栈 (Stacks)中,以便于共享和分发。ROS还支持代码库的联合系统。使得协作亦能被分发。这种从文件系统级 别到社区一级的设计让独立地决定发展和实施工作成为可能。上述所有功能都能由ROS的基础工具实现。

时间: 2024-09-09 15:52:15

机器人操作系统ROS教程(一) ROS简介的相关文章

机器人操作系统ROS入门教程

机器人操作系统ROS教程(十四) move_base(路径规划) 机器人操作系统ROS教程(十三) 导航与定位框架 机器人操作系统ROS教程(十二) 坐标系统 机器人操作系统ROS教程(十一) 机器视觉 机器人操作系统ROS教程(十) 语音控制 机器人操作系统ROS教程(九) 操作杆控制 机器人操作系统ROS教程(八) 键盘控制 机器人操作系统ROS教程(七) smartcar源码上传 机器人操作系统ROS教程(六) 使用smartcar进行仿真 机器人操作系统ROS教程(五) 创建简单的机器人

机器人操作系统ROS教程(八) 键盘控制

如果尝试过前面的例子,有没有感觉每次让机器人移动还要在终端里输入指令,这也太麻烦了,有没有办 法通过键盘来控制机器人的移动呢?答案室当然的了.我研究了其他几个机器人键盘控制的代码,还是有所收 获的,最后移植到了smartcar上,实验成功. 一.创建控制包 首先,我们为键盘控制单独建立 一个包: roscreate-pkg smartcar_teleop rospy geometry_msgs std_msgs roscpp rosmake 如果你已经忘记了怎么建立包,请参考: http://w

机器人操作系统ROS教程(六) 使用smartcar进行仿真

之前的博客中,我们使用rviz进行了TurtleBot的仿真,而且使用urdf文件建立了自己的机器人smartcar, 本篇博客是将两者进行结合,使用smartcar机器人在rviz中进行仿真. 一.模型完善 之前我们 使用的都是urdf文件格式的模型,在很多情况下,ROS对urdf文件的支持并不是很好,使用宏定义的.xacro文 件兼容性更好,扩展性也更好.所以我们把之前的urdf文件重新整理编写成.xacro文件. .xacro文件主要 分为三部分: 1.机器人主体 <?xml versio

机器人操作系统ROS教程(三) ROS新手教程

前面我们介绍了ROS的特点和结构,接下来就要开始准备动手感受一下ROS的强大了.ROS官网的wiki上针对 新手的教程很详细,最好把所有的新手教程都搞清楚,这是后面开发最基础的东西.尽管如此,ROS对于新手 来说还是很难上手,这里,我就来总结一下我当时学习的历程,也为其他新手作为一个参考. 一.ROS 的安装 ROS的安装当然是我们开始动手的第一步了,这里我们使用的操作系统是ubuntu,因为ROS在ubuntu上的支 持是最好的. 如果是新手,我建议使用"apt-get"的方法进行安

机器人操作系统ROS教程(十) 语音控制

如今语音识别在PC机和智能手机上炒的火热,ROS走在技术的最前沿当然也不会错过这么帅的技术.ROS中 使用了CMU Sphinx和Festival开源项目中的代码,发布了独立的语音识别包,而且可以将识别出来的语音转换 成文字,然后让机器人智能处理后说话. 一.语音识别包 1.安装 安装很简单,直接使用ubuntu命令即可,首先安装依赖库: $ sudo apt-get install gstreamer0.10-pocketsphinx $ sudo apt-get install ros-fu

机器人操作系统 除了Android还有一个ROS(转)

你知道市面上的机器人都采用了哪些操作系统吗? 估计大多数人给出的答案就是 Android 了.从市面上的产品来看,基于 Android 系统开发的机器人确实是主流,但是还有一种操作系统却鲜为人知,它叫 ROS(机器人操作系统,Robot Operating System),是专门为机器人设计的一套开源操作系统,时至今日已经诞生八年时间了. ROS 究竟为何物? ROS 的前身是斯坦福人工智能实验室为了支持 STAIR(斯坦福大学人工智能机器人项目)而建立的交换庭(Switchyard)项目.要了

《机器人操作系统ROS原理与应用》——1.2 智能机器人的组成

1.2 智能机器人的组成 1.2.1 智能机器人的硬件组成 智能机器人所具备的感知.规划.动作和协同等能力确定了其硬件的组成与结构.为了感知和识别对象和环境,其需要丰富的内部传感器和外部传感器:为了作用于对象并影响周围环境,其需要多种能力的动作执行器:智能机器人的核心是一个相当发达的"大脑"--控制计算机,其用于实现机器人的实时管控和智能处理:智能机器人具有人机协同.多机器人协作等能力,因此需要配置多样化交互接口和网络通信接口.综上所述其硬件组成如图1-1所示.(1)内部传感器组完成机

ros::spin() 和 ros::spinOnce()函数的区别及详解_javascript技巧

1 函数意义 首先要知道,这俩兄弟学名叫ROS消息回调处理函数.它俩通常会出现在ROS的主循环中,程序需要不断调用ros::spin() 或 ros::spinOnce(),两者区别在于前者调用后不会再返回,也就是你的主程序到这儿就不往下执行了,而后者在调用后还可以继续执行之后的程序. 其实消息回调处理函数的原理非常简单.我们都知道,ROS存在消息发布订阅机制,什么?不知道?不知道还不快去:http://wiki.ros.org/ROS/Tutorials (ROS官方基础教程) 瞅瞅. 好,我

机器人操作系统ROS教程(十二) 坐标系统

在机器人的控制中,坐标系统是非常重要的,在ROS使用tf软件库进行坐标转换. 相关链接: http://www.ros.org/wiki/tf/Tutorials#Learning_tf 一.tf简介 我们通过一个小小的实例来介绍tf的 作用. 1.安装turtle包 $ rosdep install turtle_tf rviz $ rosmake turtle_tf rviz 2.运行demo 运行简单的demo: $ roslaunch turtle_tf turtle_tf_demo.l