基于ROS的智能移动机器人的设计

 2022-11-28 10:11

论文总字数:21166字

摘 要

本课题基于当下十分流行的 ROS 机器人操作系统,以四轮小车搭载NVIDIA Jetson Nano为实验平台,利用其提供的一系列框架,并结合Google推出的Cartographer功能包以及Navigation功能包完成了整个智能移动机器人的系统设计工作。针对 ROS 系统自带的定位算法存在一定的缺陷,转而使用ACML算法替代原先的算法进行了设计,使定位更加精确。使用Navigation功能包,整合自定位和导航两个功能,使移动机器人能够在一个室内环境下,使用通过Cartographer建立好的全局地图,让移动机器人移动到指定位置。经过验证,本系统可以很好的在室内环境下完成自主导航功能。

关键词:ROS;机器人;定位;导航

The Design of Intelligent Mobile Robot Based on ROS

Abstract

Based on the popular ROS robot operating system, the four-wheeled car is equipped with NVIDIA Jetson Nano as an experimental platform, using the series of frameworks it provides, and combined with Google's Auto feature pack and The Navigation feature pack to complete the system design of the entire intelligent mobile robot. There are some defects in the positioning algorithm that comes with ROS system, and the ACML algorithm is used instead of the original algorithm to make the positioning more accurate. Using the Navigation feature pack, the self-positioning and navigation functions are integrated, enabling the mobile robot to move to a specified location in an indoor environment using a global map established through Cartographer. After verification, the system can be very good in the indoor environment to complete the autonomous navigation function.

Keywords: ROSRobotPositioningNavigation

目 录

摘 要 I

Abstract II

第一章 引 言 1

1.1研究背景 1

1.2相关领域的国内外研究现状 1

1.2.1 自主移动机器人国内外研究现状 1

1.2.2定位导航国内外研究现状 2

1.3研究目标及内容 3

第二章 系统方案与硬件选取 4

2.1 系统总体方案概述 4

2.2硬件规格及选取 4

2.2.1 主控件的选取 4

2.2.2 传感器选择 5

2.2.3 上位机选择 6

第三章 硬件设计 8

3.1 小车机械结构 8

3.2 小车控制设计 9

3.2.1 电机驱动模块 9

3.2.2 PID控制算法与实现 9

3.3小车通信设计 10

3.3.1 通信模块 10

3.3.2 上位机与通信模块的通信 10

第四章 软件设计 12

4.1 算法选择及系统流程图 12

4.2 Cartographer SLAM算法 13

4.2.1代码框架 13

4.2.2 mapping_2d代码逻辑 14

4.2.3 Cartographer在ROS下运行情况 15

4.3 ACML算法 15

4.3.1 ACML节点ROS参数配置 15

第五章 系统调试 18

5.1系统软硬件调试 18

5.2构建地图 19

5.3定位导航 21

第六章 结束语 24

致 谢 25

参考文献(References) 26

附 录 27

第一章 引 言

1.1研究背景

伴随着时代飞速发展这一大背景前提下,机器人产业也是得到了飞速的发展。世界众多国家在各个不同的领域都慢慢采用了相关的机器人来代替传统人工生产,为了在使用中更加方便与智能,各国也已经开始机器人及其相关产业智能化的发展。无论是工业上使用的工业机器人还是生活中使用的服务型机器人全部都表现出机器人的智能化的大势所趋[1]。在这一时代浪潮的推动下自主移动机器已经成为了机器人及其相关产业研究中最为火爆的部分,相对于传统的工业机器人来讲,自主移动机器人拥有更加广泛的应用空间,在未来可以替代传统人力来工作。

进入了二十一世纪之后,来自美国的威楼加拉吉正式推出了一款机器人操作系统ROS。这款操作系统不仅仅是开源系统而且能够进行分布式开发,到如今已经成为了机器人相关产业的主流操作系统[2]。ROS这款操作系统的推出明显降低了相关开发工作中的代码复用率,从而从一定程度上避免了“重复造轮子”的情况发生。

2012 年是 ROS 发展的一个重要转折点, ROS的研发者们正式从威楼加拉吉离开,至此ROS开启了一段飞速发展的时期[3]。历经这些年以来的不断发展完善,ROS 从最初的一个无人听闻的机器人操作系统,发展到现在机器人领域不管是个人开发者还是大公司的首选操作系统。现如今有很多的大型公司比如谷歌、百度、大疆等公司使用 ROS 系统,结合专业团队进行研发和定制先进的智能机器人项目。从ROS的原理上进行分析,它和 Android 同样是采用Linux 内核的深度定制,为相关开发者节省了在底层硬件实现上的时间[4],并且对上层通信之间提供了非常多的接口。ROS更具人性化的一点是不同于Android,仅仅支持JAVA一种开发语言进行编程开发,它还支持了像时下比较流行的Python以及C 等等不同 语言,以后还会兼容各式各样的开发语言。

1.2相关领域的国内外研究现状

1.2.1 自主移动机器人国内外研究现状

不管是在学术还是实际工程领域,国外在自主移动机器人上的相关研究时长已经超过半个多世纪,并且新的想法与技术不断被发现并使用,其使用范围早已从一开始的用于国防航天领域,到现如今渗透到生活的方方面面。

1969年,来自Stanford国际研究所的尼尔森等人研发了一款机器人并将其命名为Shakey[5]。该款机器人具有一部分的智能功能,它能够对周遭环境的进行一定程度的探知并且能够进行根据探知到信息进行环境建模然后制定出具体的行动计划并去执行行动计划。该款机器人身上搭载了那个时候各种最先进的设备,然后使用无线连接的方式让远方的两台计算机对它发布指令。但是由于当时时代科技发展的限制,那时的计算机并不像今天的计算机一样能够便携,它们往往体积巨大,而且运算能力很弱,致使Shakey需要使用好几个小时去分析周遭环境的具体情况然后制定出计划。即使skakey有着众多缺点与不足但Shakey作为人类历史上第一台自主移动机器人必将被人类永久载入机器人发展史册。

剩余内容已隐藏,请支付后下载全文,论文总字数:21166字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;