机器人操作系统ROS简介

机器人操作系统ROS简介一 历史随着机器人领域的快速发展和复杂化 代码的复用性和模块化的需求原来越强烈 而已有的开源机器人系统又不能很好的适应需求 2010 年 WillowGarage 公司发布了开源机器人操作系统 ROS robotoperati 很快在机器人研究领域展开了学习和使用 ROS 的热潮 ROS 系统是起源于 2007 年斯坦福大学人工智能实验室的项目与机器人技术公司 WillowGarage 的个人机器人项目 PersonalRobo 之间

一、历史

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

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

三、主要特点

       ROS的运行架构是一种使用ROS通信模块实现模块间P2P的松耦合的网络连接的处理架构,它执行若干种类型的通讯,包括基于服务的同步RPC(远程过程调用)通讯、基于Topic的异步数据流通讯,还有参数服务器上的数据存储。但是ROS本身并没有实时性。

       ROS的主要特点可以归纳为以下几条:

     (1)点对点设计

机器人操作系统ROS简介

       (2)多语言支持

       在写代码的时候,许多编程者会比较偏向某一些编程语言。这些偏好是个人在每种语言的编程时间、调试效果、语法、执行效率以及各种技术和文化的原因导致的结果。为了解决这些问题,我们将ROS设计成了语言中立性的框架结构。ROS现在支持许多种不同的语言,例如C++、Python、Octave和LISP,也包含其他语言的多种接口实现。

机器人操作系统ROS简介

机器人操作系统ROS简介

机器人操作系统ROS简介

机器人操作系统ROS简介

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220681.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:53
下一篇 2026年3月17日 下午7:53


相关推荐

  • chown和chmod命令用法_chown和chmod的作用

    chown和chmod命令用法_chown和chmod的作用1、chown用法作用:用来更改某个目录或文件的用户名和用户组的格式:chown用户名:组名文件路径(可以是就对路径也可以是相对路径)例1:chownroot:root/tmp/tmp1就是把tmp下的tmp1的用户名和用户组改成root和root(只修改了tmp1的属组).例2:chown-Rroot:root/tmp/tmp1就是把tmp下的tmp1下的所有文件的属组都改成roo…

    2022年10月20日
    4
  • php 实现工厂模式 实例

    php 实现工厂模式 实例工厂模式:由工厂类根据参数来决定创建出哪一种产品类的实例工厂类是指包含了一个专门用来创建其他对象方法的类。根据传入参数进行选择返回具体类的实例。主要作用就是对象创建的封装、简化创建对象的操作。也就是调用工厂类的一个方法(传入参数)来得到需要的类<?php//定义一个抽象类abstractclassOperation{protected$numA=0;protected$numB=0;protected$result=0;.

    2022年7月25日
    7
  • javascript遍历set

    javascript遍历setSet 的特点 Set 是唯一值的集合 每个值在 Set 中只能出现一次 一个 Set 可以容纳任何数据类型的任何值 遍历 letipArr 111 111 111 111 222 222 222 222 a 333 333 333 011 000 555 111 255 67 11 24 letipSet newSet ipArr for letkeyofipSe keys for leti 0

    2026年3月16日
    2
  • dig命令

    dig命令

    2021年10月14日
    61
  • 抖音python真的那么好吗_python看抖音用户画像,摩羯天蝎居然刷得最多?

    抖音python真的那么好吗_python看抖音用户画像,摩羯天蝎居然刷得最多?python看抖音用户画像,摩羯天蝎居然刷得最多?

    2022年6月3日
    44
  • 出现UnboundLocalError: local variable ‘a’ referenced before assignment异常的情况与解决方法

    出现UnboundLocalError: local variable ‘a’ referenced before assignment异常的情况与解决方法出现UnboundLocalError:localvariable‘a’referencedbeforeassignment异常的情况与解决方法字面意思:局部变量赋值前被引用原因:局部变量与全局变量同名例:a=1deffunc():a+=1print(a)func()解决方法:1.使局部变量与全局变量不同名a=1deffunc…

    2022年6月15日
    158

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号