ROS机器人操作系统入门 Tutorials CN版 20150726

5星(超过95%的资源)
所需积分/C币:50 2015-10-09 23:54:42 5.65MB PDF
78
收藏 收藏
举报

机器人操作系统 ROS(机器人操作系统,Robot Operating System),是专为机器人软件开发所设计出来的一套电脑操作系统架构。它是一个开源的元级操作系统(后操作系统),提供类似于操作系统的服务,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间消息传递、程序发行包管理,它也提供一些工具和库用于获取、建立、编写和执行多机融合的程序。 ROS的运行架构是一种使用ROS通信模块实现模块间P2P的松耦合的网络连接的处理架构,它执行若干种类型的通讯,包括基于服务的同步RPC(远程过程调用)通讯、基于Topic的异步数据流通讯,还有参数服务器上的数据存储。 1 发展目标 2 ROS的概念 2.1 ROS 的 Filesystem Level 2.2 ROS 的 Computation Graph Level 3 参考文献 4 外部链接 发展目标 ROS的首要设计目标是在机器人研发领域提高代码复用率。ROS是一种分布式处理框架(又名Nodes)。这使可执行文件能被单独设计,并且在运行时松散耦合。这些过程可以封装到数据包(Packages)和堆栈(Stacks)中,以便于共享和分发。ROS还支持代码库的联合系统。使得协作亦能被分发。这种从文件系统级别到社区一级的设计让独立地决定发展和实施工作成为可能。上述所有功能都能由ROS的基础工具实现。 为了实现“共享与协作”这一首要目标,人们制订了ROS架构中的其他支援性目标: “轻便”:ROS是设计得尽可能方便简易。您不必替换主框架与系统,因为ROS编写的代码可以用于其他机器人软件框架中。毫无疑问的,ROS更易于集成与其他机器人软件框架。事实上ROS已完成与OpenRAVE、Orocos和Player的整合。 ROS-agnostic库:【agnostic:不可知论】建议的开发模型是使用clear的函数接口书写ROS-agnostic库。 语言独立性:ROS框架很容易在任何编程语言中执行。我们已经能在Python和C++中顺利运行,同时添加有Lisp、Octave和Java语言库。 测试简单:ROS有一个内建的单元/组合集测试框架,称为“rostest”。这使得集成调试和分解调试很容易。 扩展性:ROS适合于大型实时系统与大型的系统开发项目。 ROS的概念 ROS有三个层次的概念:分别为Filesystem level,Computation graph level, 以及Communication level。 以下内容具体的总结了这些层次及概念。除了这三个层次的概念, ROS也定义了两种名称-- Package资源名称和Graph资源名称。同样会在以下内容中提及。 ROS 的 Filesystem Level 文件系统层概念就是你在碟片里面遇到的资源,例如: Packages:ROS的基本组织,可以包含任意格式文件。一个Package 可以包含ROS执行时处理的文件(nodes),一个ROS的依赖库,一个数据集合,配置文件或一些有用的文件在一起。 Manifests:Manifests (manifest.xml) 提供关于Package元数据,包括它的许可信息和Package之间依赖关系,以及语言特性信息像编译旗帜(编译优化参数)。 Stacks: Stacks 是Packages的集合,它提供一个完整的功能,像“navigation stack” Stack与版本号关联,同时也是如何发行ROS软件方式的关键。 Manifest Stack Manifests: Stack manifests (stack.xml) 提供关于Stack元数据,包括它的许可信息和Stack之间依赖关系。 Message (msg) types: 信息描述, 位置在路径:my_package/msg/MyMessageType.msg, 定义数据类型在ROS的 messages ROS里面。 Service (srv) types: 服务描述,位置在路径:my_package/srv/MyServiceType.srv, 定义这个请求和相应的数据结构 在ROS services 里面。 ROS 的 Computation Graph Level Computation Graph Level(计算图)就是用ROS的P2P(peer-to-peer网络传输协议)网络集中处理所有的数据。基本的Computation Graph的概念包括Node, Master, Parameter Sever,messages, services, topics, 和bags, 以上所有的这些都以不同的方式给Graph传输数据。 Nodes: Nodes(节点)是一系列运行中的程序。RO
ROS标准 ·ROS开发者指南有关代码风格和软件包布局等相关指南 标准测量单位和坐标约定 外部ROS资源 外部教程 ANU的ROS视频教程 NooRⅸ的手把手ROS教程 Jonathan Bohren的ROS教程 c| warpath Robotics的知识库 外部研讨会或课件 由位于东京的TORK提供的面向企业基础培训的研讨会 在机器人上运行ROS 创建你自己的URDF文件创建一个定制的選用机器人格式化描述文件 ros control使用RoOs的标准控制器框架来与硬件连接 在 Gazebo中使用URDF在 Gazebo机器人模拟器中添加必要的标记。 搭建 Movelt!建配置程序包( configuration package)来使用Move!运动规划框架。 其它ROS函数库教程 ● Robot model Visualization actionlib pluginlib ● nodeless navigation TE 提供ROS接口的函数库教程 Stage PCL With ROS 安装并配置R○S环境 Description:本教程详细描述了ROS的安装与环境配置 Tutorial level: beginner Next tutoria:ROS文件系统介绍 日录 1.安装ROS 2.管理环境 3.创建ROS工作空间 安装ROS 在开始学习这些教程之前请先按照ROS安装说明完成安装 注意:如果你是使用类似ap这样的软件管理器来安装ROS的,那么安装后这些软件包将不具备写入权限, 系统用户比如你自己也无法对这些软件包进行修改编辑。当你的开发涉及到ROS软件包源码层面的操作或者 创建一个新的ROS软件包时,你应该是在一个具备读写权限的目录下工作,就像在你当前系统用户的 home F 样。 管理环境 在安装ROS期间,你会看到提小说需要 Source多个 setup."sh文件中的某一个,或者甚至提小添加这条sou 令到你的启动脚本里面。这些操作是必须的,因为ROS是依赖于某种组合空间的概念,而这种概念就是通过酉 脚本环境来实现的。这可以让针对不同版本或者不同软件包集的开发更加容易。 如果你在査找和使用R○s软件包方面遇到了问题,请确保你已经正确配置了脚本环境。一个检查的好方法是石 你己绎设置了像ROS_R○OT和 ROS PACKAGE PATH这样的环境变量: s export i grep ROs 如果发现没有配置,那这个时候你就需要' source某些' setup.sh’文件了 ROS会帮你自动生成这些 setup.sh文件,通过以下方式生成并保存在不同地方: 通过类似apt的软件包管理器安装ROS软件包时会生成 setup."sh文件 在 rosbuild workspaces中通过类似 Gross的工具生成。 在编译或安装 catkin软件包时自动生成 注意:在所有教程中你将会经常看到分别针对 frosbuild和 catkin的不同操作说明,这是因为目前有两种不同 方法可以用来组织和编译ROS应用程序。一般而言, rebuild比较简单也易于使用,而 catkin使用了更加标准 CMake规则,所以比较复杂,但是也更加灵活,特别是对于那些想整合外部现有代码或者想发布自己代码的 人。关于这些如果你想了解得更全面请参阅 Catkin or rosbuild 如果你是通过 ubuntu上的apt工具来安装ROS的,那么你将会在/opt/ros/ distro>/"目录中看到 setup.sh 件,然后你可以执行下面的sour℃e命令: source /opt/ros/<distro>/setup. bash 请使用具体的ROS发行版名称代替< distro>。 比如你安装的是 ROS Hydro,则上述命令改为: s source /opt/ros/hydro/ setup. bash 在每次打开终端时你都需要先运行上面这条命令后才能运行ros相关的命令,为了避免这一繁琐过程,你可以 在. bashrc文件(初学者请注意:该文件是在当前系统用户的home目录下。)中添加这条命令,这样当你每y 录后系统凵绎帮你执行这些命令配置好环境。这样做也可以方使你在同一台计算机上安装并随时切换到不同片 的ROS(比如 Fuerte和 groovy)。 此外,你也可以在其它系统半台上相应的ROS安装目录下找到这些 setup. sh文件。 创建ROS工作空间 catkinrosbuild 这些操作方法只适用于 ROS Groovy及后期版本,对于 ROS Fuerte及早期版本请选择 Erosbuild 下面我们开始创建一个 catkin工作空间 s mkdir -o w/catkin ws/src scd~/catk⊥nws/srC 即使这个工作空间是空的(在src'目录中没有任何软件包,只有一个 CMakelists.txt链接文件),你依然可 以“ build”它: cd~/CaLk⊥nWs/ catkin make catkin make命令在 catkin工作空间中是一个非常方便的工具。如果你查看一下当前目录应该能看 到buid"和'deve"这两个文件夹。在'deve文件夹里面你可以看到几个 setup.sh文件。 source这些文件中的们 个都可以将当前工作空间设置在R○S工作环境的最顶层。关于这些想了解更多请阅读 catkin文档。接下来首 先 Source一下新生成的 setup.sh文件: s source devel/setup. bash 到此你的工作环境已经搭建完成,接下来可以继续学习ROS文件系统教程. ROS文件系统介绍 Description:本教程介绍ROS文件系统概念,包括命令行工具 rosca、 rosIs和 rospack的使用。 Tutorial Level: beginnEr Next Tutorial:创建ROS软件包 catkin rosbuild 目录 1.快速了解文件系统概念 2.文件系统工具 1.使用 rospack 2.使用 rosca 1.子目录 3. rosca lo 4.使用 rosIs 5.Tab自动完成输入 3.回顾 快速了解文件系统概念 Packages:软件包,是ROS应用程序代码的组织单元,每个软件包都可以包含程序库、可执行文件、月 或者其它手动创建的东西。 · Manifest( package.xm清单,是对于软件包'相关信息的描述,用于定义软件包相关元信息之间的依 系,这些信息包括版本、维护者和许可协议等。 Show note about stacks 文件系统工具 程序代码是分布在众多ROS软件包当中,当使用命令行工具(比如s和cd)来浏览时会非常繁琐,因此ROS 了专门的命令工具来简化这些操作 使用 rospack rospack允许你获取软件包的有关信息。在本教程中,我们只涉及到 repack中find参数选项,该选项可以返「 件包的路径信息 用法: # rospack find包名称] 示例 s rospack find rcscpp 应输出 YOUR INSTALL PATH/share/roscpp 如果你是在 Ubuntu linux操作系统上通过apt来安装ROs,你应该会准确地看到: /opt/ros/groovy/ share/roscpp 使用 rosca rosca是 rosbash命令集中的一部分,它允许你直接切换(cd)工作目录到某个软件包或者软件包集当中。 用法 # rosca[本地包名称[/子目求]] 示例 s rosca roscpp 为了验证我们已经切换到了 roscpp软件包日录下,现在我们可以使用Unⅸx命令pwd来输出当前工作日录: s pwd 你应该会看到: YOUR INSTALL PATH/share/roscpp 你可以看到 YOUR INSTALL PATH/ sharc/ roscoe和之前使用 rospack find得到的路径名称是一样的 注意,就像R○S中的其它工具一样, rosca只能切换到那些路径已经包含在R○ S PACKAGE PATH环境变量中 软件包,要查看 ROS PACKAGE PATH中包含的路径可以输入 s echo SROS PACKAGE PATH 你的R○ S PACKAGE PATH环境变量应该包含那些保存有ROS软件包的路径,并且每个路径之间用冒号分隔 来。一个典型的 ROS PACKAGE PATH环境变量如下: /opt/ros/groovy/base/install/share: /opt/rcs/groovy /base/install/stacks 跟其他路径环境变量类似,你可以在β○S_ PACKAGE PATH中添加更多其它路径,每条路径使用冒号∵:分隔。 子目录 使用 rosca也可以切换到一个软件包或软件包集的子目录中 执行: s rosca roscpp/cmake s pwd 应该会看到 YOUR INSTALI PATH /share/roscpp/cmake rosca log 使用 rosca log可以切换到ROS保存日记文件的目录下。需要注意的是,如果你没有执行过任何ROS程序, 会报借说该目录不存在。 如果你已经运行过ROS程序,那么可以尝试 s rosca log 使用 rosIs rosIs是 rosbash命令集中的一部分,它允许你直接按软件包的名称而不是绝对路径执行s命令(罗列目录)。 用法 #TOs1s[本地包名称[/子目录]] s ross roscpp tutorial 应输出 cma ke package. msrv Tab自动完成输入 当要输入一个完整的软件包名称时会变得比较繁琐。在之前的例子中 roscpp tutorials是个相当长的名称, 的是,一些R○S工具支持TAB自动完成输入的功能。 输入: rosca roscpp tut<<<现在请按TAB键>> 当按TAB键后,命令行中应该会自动补充剩余部分: s rosca roscpp tutorials/ 这应该有用,因为 roscpp tutorials是当前唯一一个名称以 roscpp tut作为开头的ROS软件包。 现在尝试输入: #roscαtur<<<现在凊按TAB键>>> 按TAB键后,命令应该会尽可能地自动补充完整: s rosca turtle 但是,在这种情况下冇多个软件包是以 turtle开头,当再次按TAB键后应该会列出所有以urte开头的ROS车 turtle actionlib/ turtlesim/ turtle tf/ 这时在命令行中你应该仍然只看到: s rosca turtle 现在在 turtle后面输入s然后按TAB键 # rosca turt1es<<<请按TAB键>>> 因为只有一个软件包的名称以 turtles开头,所以你应该会看到: s rosca turtlesim/ 回顾 你也许已经注意到了ROS命令工具的的命名方式 rospack= ros+ pack age rosca ros + cd ●ross=ros+ls 这种命名方式在许多ROS命令工具中都会用到。 到此你已经了解了ROS的文件系统结构,接下来我们开始创建一个工作空间。 创建ROS程序包 Description:本教程介绍如何使用 roscreate-pkg或 catkin创建一个新程序包,并使用 rospack查看程序包的依剌 系 Tutorial Level: beginner Next tutoria:编译ROS程序包 catkin rosbuild 日录 1.个 catkin程序包由什么组成? 2.在cakn工作空间中的程序包 3.创建一个 catkin程序包 4.程序包依赖关系 1.一级依蔌 2.间接依赖 5.白定义你的程序包 1.自定义 package.xml 1.描述标笠 2.维护者标签 3.许可标签 4.依项标签 5.最后完成的 package.xm 2.自定义 CMakeLists txt 个 catkin程序包由什么组成? 个程序包要想称为 catkin程序包必须符合以下要求 该程序包必须包含 catkin compliant package.xm文件 0这个 package.xm文件提供有关程序包的元信息 程序包必须包含一个 catkin版本的 CMakeLists. txt文件,而 Catkin metapackages中必须包含一个对 CMakeList, txt文件的引用。 每个目录下只能有一个程序包 这意味着在同一个目录下不能有嵌套的或者多个程序包存在。 最简单的程序包也许看起来就像这样: my package/ CMakelists. txt

...展开详情
试读 127P ROS机器人操作系统入门  Tutorials CN版 20150726
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
和你一起去看海 很好的资料,谢谢分享
2018-08-17
回复
成功168 太好的资料了 谢谢分享
2016-06-26
回复
def-macro 这个是对官网的翻译,挺好用,谢谢分享。 http://wiki.ros.org/ROS/Tutorials
2016-01-12
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
ROS机器人操作系统入门 Tutorials CN版 20150726 50积分/C币 立即下载
1/127
ROS机器人操作系统入门  Tutorials CN版 20150726第1页
ROS机器人操作系统入门  Tutorials CN版 20150726第2页
ROS机器人操作系统入门  Tutorials CN版 20150726第3页
ROS机器人操作系统入门  Tutorials CN版 20150726第4页
ROS机器人操作系统入门  Tutorials CN版 20150726第5页
ROS机器人操作系统入门  Tutorials CN版 20150726第6页
ROS机器人操作系统入门  Tutorials CN版 20150726第7页
ROS机器人操作系统入门  Tutorials CN版 20150726第8页
ROS机器人操作系统入门  Tutorials CN版 20150726第9页
ROS机器人操作系统入门  Tutorials CN版 20150726第10页
ROS机器人操作系统入门  Tutorials CN版 20150726第11页
ROS机器人操作系统入门  Tutorials CN版 20150726第12页
ROS机器人操作系统入门  Tutorials CN版 20150726第13页
ROS机器人操作系统入门  Tutorials CN版 20150726第14页
ROS机器人操作系统入门  Tutorials CN版 20150726第15页
ROS机器人操作系统入门  Tutorials CN版 20150726第16页
ROS机器人操作系统入门  Tutorials CN版 20150726第17页
ROS机器人操作系统入门  Tutorials CN版 20150726第18页
ROS机器人操作系统入门  Tutorials CN版 20150726第19页
ROS机器人操作系统入门  Tutorials CN版 20150726第20页

试读结束, 可继续阅读

50积分/C币 立即下载 >