slam算法的智能搬运车(源码)
本文以低成本和易操作为目标设计了一款基于SLAM导航算法的机器人车平台,研究了基于ROS系统的开源机器人平台。该机器人在软件和硬件上采用模块化设计,硬件采用低成本的成熟的工业化产品,软件框架运行在开源的Linux系统中。目前,该机器人可以作为一款教学用途展示相关技术的平台,在更换相应模块,添加相应功能后也可将具有一定的商业应用价值。文章首先对小车机器人各方面需求进行分析,然后从硬件和软件设计实现两方面进行了详细说明,对实现过程中遇到的问题给出解决方案,最后对该系统提出了一些改进建议。关键词 ROS,机器人,SLAM,树莓派
目录
1 引言 1
1.1 课题的选题背景 1
1.2 课题的选题目的和意义 1
1.3 课题研究现状 2
2 系统需求分析 4
2.1 可行性分析 4
2.2 系统功能需求分析 6
2.3 系统性能需求分析 7
3 系统硬件设计与实现 8
3.1 选用硬件的介绍 8
3.2 车体结构的实现 11
3.3 车体运动模型的建立 12
4 系统软件设计与实现 12
4.1 开发环境的搭建 13
4.2 系统运行框架简介 13
4.3 IMU信息获取与处理 15
4.4 底盘里程计数据获取与命令发布 16
4.5 地图的创建与定位(SLAM) 19
4.6 基于地图的导航(AMCL) 20
5 系统综合测试 21
5.1 系统环境和开发技术 21
5.2 测试目的 22
5.3 测试内容 22
结论 26
致谢 28
参考文献 29
引言
课题的选题背景
目前,工业机器人应用较为普遍,尤其在许多制造行业的脉动生产线上,机器人有着普通工人无法比拟的精确性。然而一直以来,机器人的研发门槛都是相对较高的,一方面是因为硬件的价格居高不下,购买不便利;另一方面,传统的机器人开发需要精通从材料到控制,从电子电气到工程学的各类知识。机器人要从实验室走入 *好棒文|www.hbsrm.com +Q: ^351916072*
寻常百姓家,仍然面临着诸多制约因素,仅仅是专家和企业参与进来是远远不够的,更要吸引从学生到广大爱好者共同参与进来,这就需要在降低开发难度的情况下同时降低开发成本。而目前,各类开源机器人开发平台发展迅速,逐渐将实体的硬件设计虚拟抽象化到软件层面;同时,制造业水平发展快速上升,淘宝和EBay这样的购物平台也显著降低了对于各种元器件的购买难度和成本,机器人技术的学习和开发对于普通爱好者也变得友好起来。
课题的选题目的和意义
随着机器人教育的迅速发展,院校,企业等机构对于机器人开发平台的需求也在日渐增长,简单的Arduino和乐高平台已逐渐不能满足对于较为复杂功能的机器人进行开发。目前国内外的机器人开发和教育行业十分火热,国内每年都会举办多场机器人创新比赛。其中最有影响力的就是中国工程机器人大赛暨国际公开赛。2018中国工程机器人大赛包含机器人工程创新设计、人工智能、机器人搬运、机器人竞速、机器人竞技等18大项比赛,有29个省市自治区、355个单位的1858支代表队报名参赛,其中参赛教师2591人、参赛学生5186人。共评出一等奖279个,二等奖372个,三等奖465个。比赛项目、参赛学校、队伍数量及参赛师生总数又创历史新高[1]。但这个比赛仍有一定局限,重点偏向于固定套路的竞技而非创新型项目并推进研究成果的商业化。
而目前市场上所销售的ROS机器人又都有着较为昂贵的通病,普通开发者和初学者会有较大的购买压力,个人开发者面临一个较高的门槛。
本次毕业设计即是以低成本为目标开发一个能运行SLAM算法并具有较好扩展性的智能搬运车平台,可以满足普通开发者对于低成本ROS开发平台的需要,也可以满足学校对于机器人教学的实践需求。
课题研究现状
目前世界上主流的机器人开发平台主要有OpenRTM(日本工业技术综合研究所AIST)、OROCOS(欧洲 )、OPRoS(韩国 ETRI, KIST, KITECH,江原大学 )、NAOqi OS(日本软银和法国阿尔德巴兰Aldebaran)、ROS(美国 Open Robotics)。
在这些平台中,对于普通开发者而言,最为友好的就是ROS。ROS并不是一个全新的OS,而是基于Linux开发,所以在开发时也无需学习新的编程语言,C,Python,Java都可以完成对ROS的开发,尤其是考虑到ROS社区用户活跃度很高,丰富的库,极佳的扩展性以及开发便利性,使得ROS成为机器人开发的首选平台。
除固定在生产线上的工业机器人外,大多数移动机器人都需要导航。对于在开放空域工作的飞行器或开放水域工作的航行器(注:非潜航器),采用GPS导航即可获得非常不错的导航效果。而对于在复杂环境中工作的机器人,就有必要采用新的方法了。为了解决这个问题,SLAM算法被提出。SLAM算法,同步定位与地图构建(SLAM或Simultaneous localization and mapping)是一种概念:希望机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的地图特征(比如,墙角,柱子等)定位自身位置和姿态,再根据自身位置增量式的构建地图,从而达到同时定位和地图构建的目的[2]。
目前国内外的主流ROS机器人开发平台为TurtleBot,严格意义上Turtlebot不能算一个单一的机器人,而是遵循一个统一标准的一类机器人的集合。以最新的的TurtleBot3为例,其中价格最低的Waffle的售价也超过了3千元人民币。目前较为常见的TurtleBot为2代,主要部分为一个移动底座和一台笔记本,该产品的移动底座通常具有一块STM32单片机作为主控芯片,用于控制差速驱动系统,底座通过USB串口与笔记本电脑进行连接,并提供几种常见电压的供电接口。TurtleBot家族组成如下图所示:
图1.1 TurtleBot Family
截至2018年五月TurtleBot已经推出了三代产品,受到了广大开发者的青睐。即便是价格略显昂贵的价格也无法阻止TurtleBot系列风靡全球,在中国也是如此[3]。
最近几年,随着电商企业的规模迅速扩张,传统的物流仓储系统已经无法满足爆炸式增长的快递。仓储机器人公司随之蓬勃发展起来。国内除了海康威视,新松机器人这样的传统机器人巨头企业,还有很多家小型仓储机器人公司蓬勃发展。
目录
1 引言 1
1.1 课题的选题背景 1
1.2 课题的选题目的和意义 1
1.3 课题研究现状 2
2 系统需求分析 4
2.1 可行性分析 4
2.2 系统功能需求分析 6
2.3 系统性能需求分析 7
3 系统硬件设计与实现 8
3.1 选用硬件的介绍 8
3.2 车体结构的实现 11
3.3 车体运动模型的建立 12
4 系统软件设计与实现 12
4.1 开发环境的搭建 13
4.2 系统运行框架简介 13
4.3 IMU信息获取与处理 15
4.4 底盘里程计数据获取与命令发布 16
4.5 地图的创建与定位(SLAM) 19
4.6 基于地图的导航(AMCL) 20
5 系统综合测试 21
5.1 系统环境和开发技术 21
5.2 测试目的 22
5.3 测试内容 22
结论 26
致谢 28
参考文献 29
引言
课题的选题背景
目前,工业机器人应用较为普遍,尤其在许多制造行业的脉动生产线上,机器人有着普通工人无法比拟的精确性。然而一直以来,机器人的研发门槛都是相对较高的,一方面是因为硬件的价格居高不下,购买不便利;另一方面,传统的机器人开发需要精通从材料到控制,从电子电气到工程学的各类知识。机器人要从实验室走入 *好棒文|www.hbsrm.com +Q: ^351916072*
寻常百姓家,仍然面临着诸多制约因素,仅仅是专家和企业参与进来是远远不够的,更要吸引从学生到广大爱好者共同参与进来,这就需要在降低开发难度的情况下同时降低开发成本。而目前,各类开源机器人开发平台发展迅速,逐渐将实体的硬件设计虚拟抽象化到软件层面;同时,制造业水平发展快速上升,淘宝和EBay这样的购物平台也显著降低了对于各种元器件的购买难度和成本,机器人技术的学习和开发对于普通爱好者也变得友好起来。
课题的选题目的和意义
随着机器人教育的迅速发展,院校,企业等机构对于机器人开发平台的需求也在日渐增长,简单的Arduino和乐高平台已逐渐不能满足对于较为复杂功能的机器人进行开发。目前国内外的机器人开发和教育行业十分火热,国内每年都会举办多场机器人创新比赛。其中最有影响力的就是中国工程机器人大赛暨国际公开赛。2018中国工程机器人大赛包含机器人工程创新设计、人工智能、机器人搬运、机器人竞速、机器人竞技等18大项比赛,有29个省市自治区、355个单位的1858支代表队报名参赛,其中参赛教师2591人、参赛学生5186人。共评出一等奖279个,二等奖372个,三等奖465个。比赛项目、参赛学校、队伍数量及参赛师生总数又创历史新高[1]。但这个比赛仍有一定局限,重点偏向于固定套路的竞技而非创新型项目并推进研究成果的商业化。
而目前市场上所销售的ROS机器人又都有着较为昂贵的通病,普通开发者和初学者会有较大的购买压力,个人开发者面临一个较高的门槛。
本次毕业设计即是以低成本为目标开发一个能运行SLAM算法并具有较好扩展性的智能搬运车平台,可以满足普通开发者对于低成本ROS开发平台的需要,也可以满足学校对于机器人教学的实践需求。
课题研究现状
目前世界上主流的机器人开发平台主要有OpenRTM(日本工业技术综合研究所AIST)、OROCOS(欧洲 )、OPRoS(韩国 ETRI, KIST, KITECH,江原大学 )、NAOqi OS(日本软银和法国阿尔德巴兰Aldebaran)、ROS(美国 Open Robotics)。
在这些平台中,对于普通开发者而言,最为友好的就是ROS。ROS并不是一个全新的OS,而是基于Linux开发,所以在开发时也无需学习新的编程语言,C,Python,Java都可以完成对ROS的开发,尤其是考虑到ROS社区用户活跃度很高,丰富的库,极佳的扩展性以及开发便利性,使得ROS成为机器人开发的首选平台。
除固定在生产线上的工业机器人外,大多数移动机器人都需要导航。对于在开放空域工作的飞行器或开放水域工作的航行器(注:非潜航器),采用GPS导航即可获得非常不错的导航效果。而对于在复杂环境中工作的机器人,就有必要采用新的方法了。为了解决这个问题,SLAM算法被提出。SLAM算法,同步定位与地图构建(SLAM或Simultaneous localization and mapping)是一种概念:希望机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的地图特征(比如,墙角,柱子等)定位自身位置和姿态,再根据自身位置增量式的构建地图,从而达到同时定位和地图构建的目的[2]。
目前国内外的主流ROS机器人开发平台为TurtleBot,严格意义上Turtlebot不能算一个单一的机器人,而是遵循一个统一标准的一类机器人的集合。以最新的的TurtleBot3为例,其中价格最低的Waffle的售价也超过了3千元人民币。目前较为常见的TurtleBot为2代,主要部分为一个移动底座和一台笔记本,该产品的移动底座通常具有一块STM32单片机作为主控芯片,用于控制差速驱动系统,底座通过USB串口与笔记本电脑进行连接,并提供几种常见电压的供电接口。TurtleBot家族组成如下图所示:
图1.1 TurtleBot Family
截至2018年五月TurtleBot已经推出了三代产品,受到了广大开发者的青睐。即便是价格略显昂贵的价格也无法阻止TurtleBot系列风靡全球,在中国也是如此[3]。
最近几年,随着电商企业的规模迅速扩张,传统的物流仓储系统已经无法满足爆炸式增长的快递。仓储机器人公司随之蓬勃发展起来。国内除了海康威视,新松机器人这样的传统机器人巨头企业,还有很多家小型仓储机器人公司蓬勃发展。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/1185.html