自主导航小车实践(一)

本教程主要分享自己在制作自主导航小车的过程,本教程计划分为4章节来讲。第一章节分析自主导航小车的硬件结构,介绍自主导航小车的硬件系统。第二、三章介绍自主导航小车的软件框架与实际配置步骤。第四章对工作进行总结,并对后续工作进行一下规划。

0、背景

本文以先锋机器人为例(如下图所示),先锋机器人的驱动包可以参考这篇博客。我们使用的系统是Ubuntu16.04 ROS Kinectic。首先确保你所使用的机器人的驱动和ROS系统已经装好了。也就是说机器人可以通过ROS包接收 /cmd_vel topic的数据实现速度和角速度控制。我们使用的代码是在现有的开源包基础上搭建的,后续我们计划在其他的机器人实现自主导航。(如Autolabor底盘)
先锋机器人图片

1、自主导航小车硬件结构

如图1-1所示,自主导航小车硬件主要可分为电源系统、运动底盘、传感器、工控机。传感器单元与工控机通过以太网或者USB连接,传感器将环境数据传入到工控机中供SLAM算法使用,工控机通过串口与运动底盘通讯,实时控制底盘运动。路由器提供局域网环境,方便从机电脑远程连上小车的工控机上调试或者连接服务器提供其他服务(人脸识别、人体识别等)。这里我们使用mini-PC作为工控机,这是由于我们只是用了一个2D激光雷达实现导航,计算量不大,若你需要使用3D激光和视觉,推荐使用Intel的NUC作为工控或者研旭用在无人驾驶上的工控机。
在这里插入图片描述

1.1 电源系统:

自主导航小车的电源系统主要是为各传感器和工控机提供电源,通常而言电源系统需要对外提供19V、12V、5V电源接口,管理电池的充放电,电池状态显示登。工控机一般使用19V/3A电源,工业路由器一般使用12V/1A电源、传感器一般为5V或者是12V。
由于先锋机器人底盘上用的是12V的铅酸电池,电池管理系统放在底盘里面了,因此我们需要从底盘上接出一根电源线(12V),再利用DC-DC电源转换到19V、12V、5V,供传感器和工控机使用。我将购买链接放在了下方。[1] [2] [3]
注:若你的底盘是24V的电池或者48V电池,则需要选择对于的DC-DC变换电源
在这里插入图片描述
这里我将输入端全部连接到了一起:
在这里插入图片描述

1.2导航模块:

自主导航小车根据功能可添加各种传感器(单目、双目、RGB-D、2D激光、3D激光、毫米波雷达),这些传感器的作用主要是用来定位和建图的,也就是SLAM。通常IMU、相机、2D激光这类传感器是直接通过USB连接到工控机上的,而3D激光雷达通常使用以太网接口与工控机相连接。
在这里我们只使用了思岚的rplidar A3激光雷达作为定位和建图的传感器,北通的遥控手柄作为辅助控制手段,控制底盘。这里激光雷达、遥控手柄、底盘接口都是使用的USB口连接的,因此我们使用了一个USB集线器,在连接到miniPC上。SLAM建图算法可以选择Gmapping、Hector、Cartegrap作为2D地图构建算法使用。

1.3主从机通信网络

设置局域网是为了方便后续的上层应用开发,例如在自动巡检小车中,需要实现任务规划、定点巡逻、人脸识别、对话问询等功能,这些服务非常占用计算资源,因此需要将其放在服务器上运行。此外在调试机器人的时候我们也需要使用笔记本远程连上工控机调试代码,而不是给车安装一个显示屏,跟着车跑。
我们使用的是一个千兆的Tp-link的路由器,设置网段为192.168.1.1, 工控机(mini PC)的IP是192.168.1.101
在这里插入图片描述

1.4 机器人底盘制作

机器人底盘的制作涉及了更多的硬件和机械的知识,占时不自己制作底盘。对于控制来讲(以我们常用的差速底盘为例)一般有左右两个电机,我们需要接受上位机下发的速度和角速度指令,根据底盘的运动学模型将指令转化成控制电机的脉冲或者是占空比数据。这其中设计到底盘的运用学模型的问题,我们展示放在后续来添加上去。

最后再附上一张整体装配好的图:
在这里插入图片描述
欢迎做自主导航小车的小伙伴一起讨论,cenruping@vip.qq.com

下一篇: 自主导航小车实践(二)

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值