一篇文章读懂大象机器人myAGV如何实现建图导航!

myAGV 大象首款移动机器人,采用竞赛级麦克纳姆轮,全包裹金属车架;ROS开发平台内置两种slam算法,满足建图、导航方向的学习;提供丰富的扩展接口,可搭载my系列机械臂,实现移动抓取,完成更多应用。

45450cf2fdc4272e7c216cbabca44969.jpeg

1、工业级高品质外观

1.1麦克纳姆轮:

麦克纳姆轮的搭载,能够让myAGV进行全向运动,可以实现横向运动,做到原地转圈运动,向目的地前进的时候能够省去很多不必要的路径。

1.2可拆卸

带有金属框架的全包裹式设计使 myAGV 更加紧凑和坚固。内置树莓派4B和分体式结构,能够自主拆卸,能在外形/主板上自行设计创作出属于自己独一无二的小车

2、强大建图导航功能

2.1实时建图

目前myAGV使用中需要进行SLAM建图,因为移动机器人想要实现自主行走,核心在于实现自主定位导航,在自主定位技术导航中会涉及到定位、建图、路径规划等问题,而地图构建的好坏将直接影响myAGV的行走路径。

myAGV想要到达某个目的地,需要和人类绘制地图一样,描述环境、认识环境的过程主要就是依靠地图。下面对myAGV小车使用的两种建图算法进行介绍。

dbfa79ff45d11dba0b68192b412a98a0.jpeg

2.1.1 gmapping算法

GMapping是一种高效的粒子滤波器,是一个基于2D激光雷达使用RBPF(Rao-Blackwellized Particle Filters)算法完成二维栅格地图构建的SLAM算法。Gmapping可以实时构建室内地图,在构建小场景地图所需的计算量较小且精度较高。

操作:

先将小车放置在需要建图环境中的一个合适起始点位上,因为开启launch文件将会开启小车的IMU传感器及odom里程计,人为的移动小车将造成小车建图失真。

先打开SLAM扫描文件

运行命令:

cd myagv_ros

source ./devel/setup.bash

roslaunch myagv_odometry myagv_active.launch

a7222d4996b5d02932495cb41853b6b5.jpeg

然后打开gmapping建图文件,操控小车在所需要的空间里行走一圈

运行命令

roslaunch myagv_navigation myagv_slam_laser.launch

ec94a763170c5fbb0e8b59f9b48b8fe4.jpeg

看到图像中建立出所需要的空间的时候就可以保存地图了

运行命令保存建出的地图:

rosrun map_server map_saver

2.1.2cartographer算法

cartographer是一套基于图优化的SLAM算法。

cartographer算法主要运用了Submap这一概念,每当或得一次laser scan的数据后,便与当前最近建立的Submap去进行匹配,使这一帧的laser scan数据插入到Submap上最优的位置。在不断插入新数据帧的同时该Submap也得到了更新。

一定量的数据组合成为一个Submap,当不再有新的scan插入到Submap时,就认为这个submap已经创建完成,接着会去创建下一个submap,具体过程如下图。

44efd5b4e882038269b1ed7d6cd430a1.jpeg

图来自csdn

所有创建完成的submap以及当前的laser scan都会用作回环检测的scan matching。如果当前的scan和所有已创建完成的submap在距离上足够近,则进行回环检测。完成回环检测后完成建图。

(Submap :子图,将一小块区域雷达扫描的范围(scan)形成一张子图)

cartographer算法建图的过程跟gmapping算法建图的过程一样,先是打开雷达,再开启cartographer算法文件,去操控小车在所要建立的区域中行走,完成建图。

f6564f5778ee867ecc65b953f1ae8e2a.jpeg

很多人可能都会有疑惑,建图明明一种算法就好了,为什么要介绍两种建图的算法呢?

我们来比较一下两种算法就能解决这个疑惑了。

Gmapping可以实时构建室内地图,在构建小场景地图所需的计算量较小且精度较高。 而相比Cartographer在构建小场景地图时,Gmapping不需要太多的粒子并且没有回环检测,因此计算量小于Cartographer,而精度并没有差太多。

在构建小场景地图的时候,gmapping和cartographer相比,前者不仅速度快也能够建造高精度的地图,而在地图的扩大gmapping需要的粒子数量多了容易把内存撑爆。而后者恰好可以解决地图扩大的问题,建图的效果还能够非常好(上图处在同一地形的建图)。

8d398a7810102a0c3716e9bfd577dacb.jpeg

2.2地图导航

上一步在我们建好的地图中,我们可以让小车在地图里自动导航到某一个目的地。这都源于ROS的navigation功能包。

navigation中的move_base:

4953a6a72f42b07c715728e4c690b70b.jpeg
图来自csdn

global planner:

根据给定的目标位置进行总体路径的规划.

在ROS的导航中,首先会通过全局路径规划,计算出机器人到目标位置的全局路线。这一功能是navfn这个包实现的。navfn通过Dijkstra最优路径的算法,计算costmap上的最小花费路径,作为机器人的全局路线。

local planner:

据附近的障碍物进行躲避路线规划。

本地的实时规划是利用base_local_planner包实现的。该包使用Trajectory Rollout 和Dynamic Window approaches算法计算机器人每个周期内应该行驶的速度和角度(dx,dy,dtheta velocities)。

base_local_planner这个包通过地图数据,通过算法搜索到达目标的多条路经,利用一些评价标准(是否会撞击障碍物,所需要的时间等等)选取最优的路径,并且计算所需要的实时速度和角度。

接下来介绍一下我们复现的过程:

一开始我们得确定myagv的位置,用到了ros中的acml去定位。(在地图中确定myagv所在的位置)

b51a1044b6f87e65ca8c74582ee2e870.jpeg

( 白色:myAGV ;红色点点:小车现在位置扫描出的激光点云蓝色:是激光雷达局部地图膨胀生成的膨胀地图 ;绿色:是姿态数组 手动定位的时候绿色会进行收敛 直至团状 )

原地转几圈完成定位后就可以开始进行自动导航了。

3dd94c0d5aea89187ba5f58c2bfb1538.jpeg

当我们点击“2D Nav Goal”,再点击地图上我们想要到达的点位,小车便会向着目标点位出发,同时还可以在rviz中看到起点到目标点位间有一条小车的规划路径,小车会沿着路线运动到目标点位。

32a2d7bfb57365690701421774159b04.jpeg

2.3 PS2手柄控制

作为一个移动机器人怎能没有手柄控制呢!

我们开发了ps2手柄控制myAGV,这样myAGV就可以自由的运动,实现更多的可能。

下面是我们手柄控制的时序图提供一点思路给大家,能够手柄上做更多的开发。

38a50f19b1a1fe511744c18c7bcb27e8.jpeg

最后,如果你拥有这样一辆小车你会做些什么?在它分体式结构可拆卸的小车,你能够给它改装成什么样子的AGV,是给他的车上加上一些武器去作为一辆战斗车,还是改装成搭载各种各样的机器充满未来感?

感谢你们的观看,如果有什么好的意见请留言!

上面就是我们对小车的初步介绍,后续会介绍myAGV搭载我们my系列的机械臂。

<think>好的,我现在要帮用户介绍大象机器人树莓派。首先,我需要明确用户的问题到底是什么。用户提到的是“大象机器人树莓派”,这可能指的是大象机器人公司(Elephant Robotics)推出的基于树莓派的机器人产品或解决方案。树莓派作为一款小型计算机,广泛应用于教育和DIY项目,结合机器人技术应该是一个教育或开发平台。 接下来,我需要收集关于大象机器人公司的信息,确认他们是否有与树莓派相关的产品。根据我的知识库,大象机器人确实有涉及教育机器人领域,可能使用树莓派作为控制核心。例如,他们的myCobot系列协作机械可能有树莓派版本,或者他们有针对树莓派开发的机器人套件。 然后,我需要考虑用户的需求。用户可能想知道这个产品的功能、应用场景、技术特点以及如何入门使用。可能需要分点介绍:产品概述、硬件配置、软件支持、应用场景、学习资源等。 需要确保回答结构清晰,逐步展开。比如先解释什么是大象机器人树莓派,然后详细说明各部分的特点,接着讲它能做什么,适合哪些人使用,最后提供学习或购买的议。 同时,注意用户可能对技术细节不太熟悉,所以要用通俗易懂的语言,避免过多专业术语。但也要确保准确性,比如提到具体的硬件型号如树莓派4B,或者软件如ROS、Python支持等。 还要检查是否符合用户给出的系统级指令,比如数学公式的正确使用。不过在这个问题中可能涉及数学较少,但如果有提到算法或传感器原理,可能需要用LaTeX格式,例如电机控制中的PID算法参数,但暂时看来不需要。 最后,需要确认信息的真实性,可能需要参考官方网站或可靠资料,但根据现有知识库,可能无法访问最新数据,所以需要注明信息基于公开资料,议用户查看官网获取最新信息。 总结回答结构:产品定义、硬件组成、软件生态、应用场景、学习资源、总结。这样用户能逐步了解,并知道如何进一步行动。</think>大象机器人(Elephant Robotics)推出的树莓派(Raspberry Pi)相关产品,是基于树莓派单板计算机开发的机器人解决方案。它结合树莓派的灵活性与机器人技术,主要面向教育、科研和DIY爱好者领域。以下是分步解析: --- ### 一、产品定义 **核心概念**: 将树莓派作为机器人主控单元,通过扩展硬件(如电机驱动、传感器、机械等)和开源软件框架,构低成本、易开发的机器人平台。 --- ### 二、硬件组成 1. **树莓派核心** - 常用型号:树莓派4B/CM4,提供强大的计算能力(ARM CPU + GPU)和丰富的接口(USB/HDMI/GPIO)。 - 功能:运行操作系统(如Raspbian/Ubuntu)、处理传感器数据、控制执行机构。 2. **扩展模块** - 电机驱动板:通过GPIO或I²C控制直流电机/步进电机。 - 传感器套件:如摄像头(用于视觉处理)、超声波/红外测距、IMU(姿态检测)。 - 机械组件:例如myCobot系列轻量级协作机械,支持树莓派直接控制。 --- ### 三、软件生态 1. **操作系统** - 基于Linux系统(如Raspberry Pi OS),支持Python/C++等编程语言。 2. **开发框架** - **ROS集成**:支持ROS1/ROS2,便于实现SLAM、路径规划等复杂功能。 - **开源库**:如OpenCV(视觉处理)、TensorFlow Lite(边缘AI推理)。 3. **控制接口** - 提供Python API或ROS驱动包,简化对电机、传感器和机械的控制逻辑。 --- ### 四、典型应用场景 1. **教育领域** - 机器人入门教学:通过Python编程实现避障、抓取等基础功能。 - STEM课程:结合机械与视觉模块完成互动项目(如颜色分拣)。 2. **科研与原型开发** - 快速验证算法(如运动控制、计算机视觉)。 - 低成本搭实验平台(如室内导航机器人)。 3. **DIY创意项目** - 智能家居控制中枢、自动巡检小车等。 --- ### 五、学习与开发资源 1. **官方文档** - 大象机器人官网提供硬件手册、API文档和示例代码(如GitHub仓库)。 2. **社区支持** - 树莓派论坛、ROS社区和Elephant Robotics用户群提供技术交流。 3. **入门议** - 从基础项目开始:例如用GPIO控制LED,逐步过渡到电机驱动和传感器融合。 - 学习ROS基础:掌握节点通信、话题订阅等核心概念。 --- ### 六、总结 **优势**: - 高性价比:树莓派成本低,扩展性强。 - 开放生态:软硬件均支持自定义开发。 **适用人群**: - 学生、教育工作者、机器人爱好者及需要快速原型的开发者。 如需进一步了解,议访问大象机器人官网或查阅其树莓派套件的详细规格文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值