自动驾驶叉车(一)
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的控制信号之后,还有转向电机的编码器信号模拟等着我们。这一部分为难了我一段时间,因为之前也没有接触过这类传感器。本来以为是简单的模拟量电压值,一测信号发现两个通道是成正弦变化的。找了半天没有找到规律,后来翻墙搜到了传感器的型号。。。通过传感器官方给的数据手册,推导出转角和输出的对应公式,完成转向电机的控制
下面附上硬件架构图,比较粗糙
好久没更新了,终于闲下来回学校了,陆续把这一年的工作总结上来。
-------------------------------------------------------------------------------------------------
本篇主要介绍方案确定和硬件架构设计
这个项目是基于之前做的定位模块,因为现在智慧仓库的火热,我们团队选择了叉车这一应用场景,进行系统性的开发。目前已完成第一版样机---基于永恒力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的控制信号之后,还有转向电机的编码器信号模拟等着我们。这一部分为难了我一段时间,因为之前也没有接触过这类传感器。本来以为是简单的模拟量电压值,一测信号发现两个通道是成正弦变化的。找了半天没有找到规律,后来翻墙搜到了传感器的型号。。。通过传感器官方给的数据手册,推导出转角和输出的对应公式,完成转向电机的控制
下面附上硬件架构图,比较粗糙
相关文章推荐
- 自动驾驶汽车懂得伦理道德吗?
- 【无人驾驶量产得靠128线廉价激光雷达,中国将是最大市场】专访Velodyne自动驾驶VP
- 谷歌Waymo自动驾驶续航里程达800万公里 遥遥领先但远远不够
- 长途货运4大痛,Uber新上的「自动驾驶卡车」如何改善?
- Uber被起诉:收购自动驾驶公司未清楚审查
- 关于自动驾驶汽车
- 保障未来移动出行的安全:应对自动驾驶汽车内外的网络安全风险(附下载)
- Scale推出传感器融合标注API,为自动驾驶技术更快注入数据燃料
- 黄仁勋:不只英伟达 所有自动驾驶路测都应该暂停
- 自动驾驶 (资料)
- 笔记:自动驾驶改变世界?图森想先拿自动驾驶货车赚到钱
- NVIDIA在自动驾驶领域的伙伴不断增加,Intel怕了么?
- 2030年,自动驾驶汽车将让128种工作消失
- 一组图表说清自动驾驶汽车的前世今生与未来【转】
- 新车、新芯片、新平台:一文看尽CES自动驾驶新品 | CES
- 干货|自动驾驶 vs 机器人定位技术
- 【智能驾驶】人工智能如何推动自动驾驶?这五种方法你必须知道
- 深度学习、机器学习图像/人脸/字幕/自动驾驶数据集(Dataset)汇总
- SqueezeDet:一种应用于自动驾驶实时目标检测中的标准、小型、低功耗的全卷积神经网络(一)
- 简析ARM面向自动驾驶市场推出全新处理器Cortex-R52