栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ROS源代码分析(一):综述

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ROS源代码分析(一):综述

2021SC@SDUSC

ROS简介

ROS即Robot Operating System,虽名为操作系统,但实际是用于编写机器人程序的、具有高度灵活性的软件架构(framework),其不同的库可以用在Java、C++等不同语言进行编写,并方便地进行通信与合作,这也使得ROS能够进行高效的复用。

ROS以通信为核心,每个通信节点(rosnode)承担一定的工作,在核心节点rosmaster中注册,并通过rosmaster的中介来互相通信。节点的通信方式分为两种,一种是Topic,某一通信节点可以向rosmaster传递消息,由rosmaster广播给其他节点,而不关心是否有节点接收或回复该消息;另一种是service,某一通信节点向rosmaster提供某种服务,当其他节点需要该服务时,就与之进行通信,并即时将服务的结果传递回该节点(一问一答机制)。

ROS的功能就是通过丰富的节点来实现(类似于Java/Python中的库),提供定位、导航、地图、坐标系等关键功能的节点是ROS最重要的节点。

小组分工

我们小组所选题目为ROS-讯飞智能车,经过商议,我们计划先进行ROS重点源代码的分析,再根据进度加入对常用rosnode的分析,如定位、导航等。

其中,在ROS源代码分析阶段,我们又分为两小组,平行进行分析研究。@qzyj99 和@seaofbits 分析C++版本,@CD P R 和我分析Java版本。此外,由于@CD P R 和我是初次接触ROS,对其具体内容了解有限,因此我们计划先用一至两周的时间学习ROS网课,对系统有较为全面的了解之后,再进行源代码分析。

在对ROS源代码的重点部分分析完毕后,我们四人将再次分工,共同分析一至两个重要的rosnode,加强对ROS的认识,也为将来的使用和创新打下基础。

分析计划

按照教学计划,除去本篇综述之外,我们应当在10月4日—12月28日的13周内每周提交一次博客,记录分析结果。目前大致计划如下:

第1篇——观看古月居相关网课,根据学习内容写博文。

第2-8篇——分工合作,分析ROS源代码,写博文。

ROS_java包括以下几个package,总计约220个java文件:

我们将重点对internal、master和node进行阅读和分析。

第9-13篇——分工合作,研究分析一至两个重要的rosnode。经过小组成员商议,我们认为rosnode中的内容可能对数学功底要求较高,分析起来难度较大,因此目前还没有更详细的计划,具体内容要在ROS源代码分析接近尾声时再进行规划。

总结 

本次课程是我第一次通过阅读源代码来学习一个全新的架构,也是我第一次接触ROS这样相对完整、标准的成体系的程序。对ROS的Java代码进行大致浏览后,虽然不懂的内容还是很多,但心中也隐约有了轮廓。希望通过本次ROS源代码的学习,能够对ROS有深刻的理解,进而掌握ROS的应用、rosnode的开发与创新,并在将来的学习和赛事中不断实践,真正提高自己的能力。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/284853.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号