您的位置:首页 > 其它

自动驾驶叉车(一)

2017-08-27 21:08 169 查看
自动驾驶叉车(一)---方案设计

好久没更新了,终于闲下来回学校了,陆续把这一年的工作总结上来。

-------------------------------------------------------------------------------------------------

本篇主要介绍方案确定和硬件架构设计

这个项目是基于之前做的定位模块,因为现在智慧仓库的火热,我们团队选择了叉车这一应用场景,进行系统性的开发。目前已完成第一版样机---基于永恒力ERC212的自动化改造,包含定位系统、运动控制系统、调度及路径规划系统、传感器检测系统的软硬件开发和调试。

1、方案确定

在对现有的同类产品进行调研后,发现市场上已有自动叉车方案都为基于激光雷达进行定位(磁导、地面二维码等不适用于叉车,重量太大、运动难控制,很容易就损坏了)。团队买了SICK公司的NAV350 定位雷达,7W8、定位频率8Hz,经过多方调研和对比,定下来基于视觉的定位方式

2、方案设计

自动驾驶叉车由两部分组成:1)叉车本体 2)调度系统 二者之间通过WIFI连接,以socket进行通信。

主控:综合功耗、主频、资源、价格等多种因素,选择Nvidia 公司 Jetson TX1作为叉车控制器。该系统是Nvidia主推的嵌入式系统,4核arm A57 + 256 Cuda核心。片上资源不少,功耗10w-15w,但是有个很大的不足---没有can总线,这一点在我们控制叉车的时候造了不少麻烦(TX2 说是有can总线,我没有用,但是看大家的反馈好像还是没有)。主控部分负责自动驾驶的核心功能:视觉定位、运动控制

辅控:辅控的功能不多,主要是控制一些外围传感器(TX1的GPIO等不太够用)。我们随便拿手头的arduino做了一下,读取避障雷达和拉线编码器等的数据,以I2C总线传给主控。

传感器:整个系统用了较多的传感器:摄像头、激光雷达(避障)、拉线编码器、超声波传感器、接近开关等。

除摄像头连接至主控,其余传感器皆由辅控控制。

3、控制策略(驱动)

我们主要控制的是叉车的前进、转向和货叉的抬升。ERC212的驱动和货叉是由Can总线控制,转向电机由手柄旋转编码器和转向电机编码器的差值控制。

由上所述,我们需要将Can总线和一个旋转编码器的模拟信号传入叉车的驱动控制器,即可完成对上述三个动作的控制。但是ERC212是基于Canopen协议的,且协议并不对我们开放,这一部分相当于是一个黑箱。我们苦恼了几天,最后使用实验法:即用can总线分析仪采集叉车不同运动状态对应的Can总线数据和Can ID,得到了控制叉车前进和货叉升降的控制命令和Can ID,我们的速度命令直接按照这个数据格式发送下去即可。(因为TX1没有Can总线,我们使用了一款USB-can转换器)。

搞定了Can的控制信号之后,还有转向电机的编码器信号模拟等着我们。这一部分为难了我一段时间,因为之前也没有接触过这类传感器。本来以为是简单的模拟量电压值,一测信号发现两个通道是成正弦变化的。找了半天没有找到规律,后来翻墙搜到了传感器的型号。。。通过传感器官方给的数据手册,推导出转角和输出的对应公式,完成转向电机的控制

下面附上硬件架构图,比较粗糙

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: