【论文】ROS系统的无人小车自动跟随方案研究-程序员宅基地

技术标签: 程序员读论文  深度学习  人工智能  自然语言处理  

这个专栏是专注于入了职场之后,对写论文能力要求和技巧经验的一些总结。

在职场不同于在学习等科研院所,更多要求的是发出论文,而不是发高水平论文。

文章列表:

【程序员读论文】为什么要读论文?

【程序员读论文】题外篇:怎么读论文

【程序员读论文】推荐一款OCR软件,识别PDF论文上的文字

简简单单的科研秘籍

论文专利博客写作总结

如何写一篇科研论文

英文学术论文写作有哪些经验心得?

一个博士生接受怎样的训练是完整、全面的科研训练?

科研大牛们怎么读文献?

作为审稿人,你什么情况下会选择拒稿?

哪些思维方式是你刻意训练过的?

首次申上青年基金的一些感悟(综合多位基金评审专家意见)【投稿作品展】

传统学科怎么和深度学习领域结合

【程序员读论文】LeCun, Y., Bengio, Y. & Hinton, G. Deep learning. Nature 521, 436–444 (2015).

【论文】论文阅读记录

今天要阅读的论文是:《ROS系统的无人小车自动跟随方案研究》

摘要

摘要:介绍了一种无人小车自动跟随方案,该小车以树莓派3B为控制板,搭载ROS操作系统,在ROS系统环境下编写Python脚本文件,通过话题的订阅和发布进行对距离信息的数据处理和运动参数的控制实现,采用激光雷达进行距离测量,得出被跟随目标的距离和方位,不需要无线定位导航实现周围任何角度的机器人跟随功能。本方案成本较低,硬件限制小,设计简洁,便于升级、维护和移植。试验结果表明,小车运动精确,具有良好的跟随效果。

摘要是一篇论文的点睛之笔,是一个mini paper。

摘要的句式模板一般是 背景介绍(主要是有啥没解决的问题)+ 研究方法介绍(用了啥方法或技术)+ 主要结论(获得了什么效果)。

引言

引言
无人移动小车在诸多生产生活领域发挥着越来越重要的作用,特别是在航空航天、工业、灾难救援等方面目前对小车跟随方式的研究主要包括:以单片机为控制核心,通过超声波传感器或者红外感应确定日标方位,并传达运动控制指令实现小车的跟随功能31;基于超宽带(UWB)的智能跟随车导航定位,车的上方安置两个固定基站,经计算得出标签到两个基站中点的距离和偏移角度,通过PID控制算法调节PWM值,控制电机的转速和转向从而实现小车自动跟随等
但是上述方法存在不足,超声波、红外传感器的测距角度有限,当测距日标稍微偏离其正对角度误差时就会迅速增大甚至无法探测到,且传感器全部安装在前端,当跟随目标出现在车体两侧或后侧时就完全失去方向检测功能;一旦小车驶出超宽带基站覆盖范围则无法继续进行定位,从而丧失跟随功能等。

针对以上问题,本文基于ROS操作系统,使用激光雷达作为跟随测距装置,通过主机控制一台小车领导运动、一台小车跟随运动的方式,提出了一种跟随平台的研究和验证方案。

引言的作用就是系统性地向读者介绍该篇论文的研究背景、创新点、采用理论及方法等,核心是吸引读者阅读,通常是对于全文内容的高度概括!

几乎所有教你如何写Introduction的,都告诉你有一种叫做“漏斗式”的方法,我理解的漏斗式写作方法就是依次写好这5个部分,已达到逐层聚焦的作用:

①大背景大帽子:例如汽车保有量逐年提高,排放问题日益凸显。

②文献综述:通常有三方向导向(结果导向、方法导向和理论导向),技巧是把引用文献的摘要换个说法表述,如果引用文献较多,建议把类似的放在一起说,也可以列个表格。

③提出未知/存在问题:比如已有研究结果不一致、理论计算公式不准确、模型参数设置不合理、研究内容覆盖度不够,又出现了新问题等等,总之就是“挑前人的刺儿”!

④提出本研究的主要关注点及研究目的

⑤高度概括本文研究内容及方法,即材料与方法部分精炼

材料与方法

总体架构

搭建本文选择的ROS通信机制为基于发布/订阅的话题通信。总体构造思路为:以树莓派3B作为主机,用于开发功能包,并在工作时运行ROS节点管理器,控制本地节点以及远程从机节点的启动;移动小车为从机,从机处理器同样采用树莓派3B,其中0号从机作为跟随者,1号从机作为领导者,领导者按照预定的路径运动,跟随者监控领导者的位置,并跟随领导者运动。主机与从机均安装Ubuntu16.04操作系统,通过无线网络连接。系统总体架构如图1所示。

方案实现配置

节点设置

消息规划

ROS系统工作空间和功能包生成

网络设置和VNC自启动

运动软件设计

**材料与方法(Materials and Methods)部分其实是最容易被忽略的一个部分,但是其实这一部分是非常关键的,是整篇论文的根基!**第一,这一章是审稿人看的最仔细的,直接会影响到审稿人对这篇文章相关结论可信度的判断,如果试验设计上有缺陷,那得出的结论的结论即使再好,那也是没有任何意义的,应该会直接被拒稿!第二,这一章是文献阅读者最关心的一章,也就是按照你的方法他可以复现你的研究,而“可重复性”是科研工作中最重要的一环。

所以这一章必须要高度重视,一定要写的通俗易懂,直接了当,以便让审稿人和读者第一时间掌握你的整套试验流程,一方面可以提高你的文献录用率,另一方面可以提高你文献的引用率!

通常情况下SCI论文可以分为试验类研究还是模拟仿真类类研究两大类,以我个人的经验,通常材料与方法部分采用三段式结构

**试验类研究:**①试验对象/所用设备的描述(车辆的基本参数、排放设备、油耗设备的具体型号及参数等);②试验工况设定/试验流程描述(采用控制变量法,固定哪些参数?变化哪些参数?一共选择多少个工况点?测试循环是什么?);③试验结果处理方法(试验误差的处理)。

**仿真模拟类研究:**①模型介绍及验证(网格划分,子模型选择,参数设定,所使用的公式、模型精度等)②仿真工况设定(采用控制变量法,固定哪些参数?变化哪些参数?一共选择多少个工况点?测试循环是什么?)③结果分析方法

为方便说明,除文字外建议添加示意图以及表格辅助说明,例如:试验设备照片,试验材料照片,试验流程图,工况设定表等。

需要强调的是:工况设定和试验流程部分一定要给出足够的细节,详细再详细,越是掖着藏着越会引起审稿人的怀疑,适得其反!另外,工况设定一定要有原因,为什么要选这几个工况进行研究,在我的SCI投稿经历中,80%的审稿人会问这个工况为什么要这么设定,所以必须要给出足够的说明工况设定的依据,而核心无外乎两点:一是之前的研究者都是这么设定的,二是这个工况与实际情况最为相符!

论文中的图

结果与讨论

试验验证

编译并运行脚本,其操作步骤如下:①在主机上运行ROS核,在主机输入roscore;②在0号从机运行跟随者节点,在VNC(192.168.43.98)输入roslaunchturbot3_multi robot.launchrobot_name:="tb3_0”;③在1号从机运行领导者节点,在VNC(192.168.43.132)输入roslaunch turbot3_multi robot. launch robot_name:=tb3_1”:④运行领导者运动路径脚本,在主机输入rosrunbasictb3_1-square.py;运行跟随者脚本,在主机输入rosrunbasic follow.pyo
运行可视化工具rqt_graph可以查看其计算图,计算图便于直观观察系统运行情况,搞清楚节点、话题、消息详情以及相互间的关系。计算图如图4所示。

讨论部分的核心是对造成试验结果变化的的深层次原因进行分析,**这一部分的核心技巧是是建立逻辑链条!**对于新手学弟学妹来说整理出一条条的逻辑链条是写SCI论文的最大难点!我自己亲测有效的方法就是在别人的论文里找逻辑链条,然后综合多篇文章的逻辑链条,找出自己的逻辑链条,然后再结合我自己归纳的“跷跷板”理论,基本可以应付90%的SCI写作!

结论

结语

本文基于ROS操作系统介绍了一种运动与跟随系统的设计及实现,该跟随系统包括以激光雷达进行全方位角度的距离测量,使用Python语言编写脚本,通过编写激光雷达话题的订阅以及运动话题的发布,完成对目标的运动控制以及对被跟随目标的感知和产生跟随相应的动作。

本系统中无论被跟随目标位于跟随机器人的任何方位,均能实现机器人的跟随,无需额外的基站、标签等定位设施,可以减少整个跟随系统成本。基于ROS系统使开发简单快速,适用范围广,具有良好的可移植性和通用性。

结论部分是SCI论文中最好写的一个部分,说白了就是我们小学时候就学过的“缩写”!缩写什么?缩写的就是结果与讨论部分(Results & Discussion)每一个小标题下的内容,通常的结构是先来一个“小帽子”,再把主要结论逐一列出,具体如下:

**小帽子:**对研究背景、研究内容和研究方法的进行一个概述,相当于对材料与方法部分的缩写。最后来一句:The main findings are as follows或者Main conlusions can be drawn from this work, as follows,逐条引出结论

**结论分条列出(3-5条):**每条100字以内为宜,简单说是对于结果与讨论部分每个子标题内容的一个缩写。

**全文总结或展望:**有的SCI论文还会在分条列出主要结论后,再用1-2句做一个全文总结,有的也会对未来的研究进行展望,该部分是可选项。


更进一步,论文十问

论文十问是可以快速理解论文主旨的一套框架。

Q1 论文试图解决什么问题?

Q2 这是否是一个新的问题?

Q3 这篇文章要验证一个什么科学假设?

Q4 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?

Q5 论文中提到的解决方案之关键是什么?

Q6 论文中的实验是如何设计的?

Q7 用于定量评估的数据集是什么?代码有没有开源?

Q8 论文中的实验及结果有没有很好地支持需要验证的科学假设?

Q9 这篇论文到底有什么贡献?

Q10 下一步呢?有什么工作可以继续深入?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41854911/article/details/127235912

智能推荐

Python基础教程:strip 函数踩坑_python的rstrip为什么没用-程序员宅基地

文章浏览阅读430次。S.strip(chars=None)strip 函数用于去除字符串首尾的空格,当 chars 不为 None 时,则删除字符串首尾的 chars 中的字符。当 chars=None 时,去除首尾空格,没啥好说的,我们来看 chars 不为 None 时的情况。str = 'abc123abc'print(str.strip('a')) # bc123abcprint(str.strip('abc')) # 123结果跟预期的一样,我们再看下面的例子:'''Pyth_python的rstrip为什么没用

Kotlin 解压缩_kotlin 对上传的压缩包进行分析-程序员宅基地

文章浏览阅读638次。fun unZip(zipFile: String, context: Context) { var outputStream: OutputStream? = null var inputStream: InputStream? = null try { val zf = ZipFile(zipFile) val entries = zf.entries() while (en..._kotlin 对上传的压缩包进行分析

64K方法数限制解决办法_java函数大于64k编译失败-程序员宅基地

文章浏览阅读1.9k次。随着业务逻辑越来越多,业务模块也越来越大,不可避免会遇到64K方法数的限制。最直观的表现就是编译报错:较早版本的编译系统中,错误内容如下:Conversion to Dalvik format failed:Unable to execute dex: method ID not in [0, 0xffff]: 65536较新版本的编译系统中,错误内容如下:trouble writing outp_java函数大于64k编译失败

案例分享——低压电力线载波通信模组(借助电源线实现远距离数据传输、宽压输入、波特率范围广、应用场景多样化)_电力载波模块csdn-程序员宅基地

文章浏览阅读2k次,点赞7次,收藏10次。物联网领域,有很多数据通信场景,因为原设备整体系统结构、运行环境等方面的限制,需求在不增加通信数据线缆的情况下实现数据的远程传输,因为特殊应用场景下考虑到环境的限制,还不能使用常规的无线通信手段,所以借助电源线缆进行传输的电力线载波技术应运而生,本次博文给大家分享的就是博主完全自主研发的低压电力线载波通信模组。_电力载波模块csdn

密码学基础_密码体制的五个要素-程序员宅基地

文章浏览阅读7.4k次。密码学基本概念 密码学(Cryptology)是结合数学、计算机科学、电子与通信等学科于一体的交叉学科,研究信息系统安全的科学。起源于保密通信技术。具体来讲,研究信息系统安全保密和认证的一门科学。 密码编码学,通过变换消息(对信息编码)使其保密的科学和艺术 密码分析学,在未知密钥的情况下从密文推_密码体制的五个要素

python支持中文路径_基于python 处理中文路径的终极解决方法-程序员宅基地

文章浏览阅读1.9k次。1 、据说python3就没有这个问题了2 、u'字符串' 代表是unicode格式的数据,路径最好写成这个格式,别直接跟字符串'字符串'这类数据相加,相加之后type就是str,这样就会存在解码失误的问题。别直接跟字符串'字符串'这类数据相加别直接跟字符串'字符串'这类数据相加别直接跟字符串'字符串'这类数据相加unicode类型别直接跟字符串'字符串'这类数据相加说四遍3 、有些读取的方式偏偏..._python 路径 中文

随便推点

BDC报错信息查看-程序员宅基地

文章浏览阅读150次。3.在事务代码se91中输入对应消息类和消息编号。1.在事务代码st22的报错信息中下载本地文件。4.查看报错信息,根据报错信息取解决问题。2.打开本地文件查看报错信息。

AS 3.1.3连续依赖多个Module,导致访问不到Module中的类_为什么as在一个包下建了多个module,缺无法打开了-程序员宅基地

文章浏览阅读1.1k次。我好苦啊,半夜还在打代码。还出bug,狗日的。问题是这样的:我在新建的项目里,建了两个Module: fiora-ec和fiora-core。项目的依赖顺序是这样的,App依赖fiora-ec,fiora-ec又依赖于fiora-core,因为这种依赖关系,所有可以在app和fiora-ec中删除一些不必要的引入,比如这个玩意儿:com.android.support:appcompat-v7:..._为什么as在一个包下建了多个module,缺无法打开了

Magento 常用插件二-程序员宅基地

文章浏览阅读1.4k次。1. SMTP 插件 URL:http://www.magentocommerce.com/magento-connect/TurboSMTP/extension/4415/aschroder_turbosmtp KEY:magento-community/Aschroder_TurboSmtp 2. Email Template Adapter..._magento extension pour ricardo.ch

【连载】【FPGA黑金开发板】Verilog HDL那些事儿--低级建模的资源(六)-程序员宅基地

文章浏览阅读161次。声明:本文为原创作品,版权归akuei2及黑金动力社区共同所有,如需转载,请注明出处http://www.cnblogs.com/kingst/ 2.5 低级建模的资源 低级建模有讲求资源的分配,目的是使用“图形”来提高建模的解读性。 图上是低级建模最基本的建模框图,估计大家在实验一和实验二已经眼熟过。功能模块(低级功能模块)是一个水平的长方形,而控制模块(低级控制模块)是矩形。组..._cyclone ep2c8q208c黑金开发板

R语言实用案例分析-1_r语言案例分析-程序员宅基地

文章浏览阅读2.2w次,点赞10次,收藏63次。在日常生活和实际应用当中,我们经常会用到统计方面的知识,比如求最大值,求平均值等等。R语言是一门统计学语言,他可以方便的完成统计相关的计算,下面我们就来看一个相关案例。1. 背景最近西安交大大数据专业二班,开设了Java和大数据技术课程,班级人数共100人。2. 需求通过R语言完成该100位同学学号的生成,同时使用R语言模拟生成Java和大数据技术成绩,成绩满分为100,需要满足正_r语言案例分析

Java知识体系总结(2024版),这一次带你搞懂Spring代理创建过程-程序员宅基地

文章浏览阅读639次,点赞11次,收藏26次。虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。一个人可以走的很快,但一群人才能走的更远。

推荐文章

热门文章

相关标签