赞
踩
2021年10月份开始,设计现在车载版的农机系统架构。
之前演示项目基于 ROS 开发,毋庸置疑,ROS系统是较为流行的机器人设计架构,其分布式架构设计在满足稳定性上也可方便扩展,并且其提供的丰富的功能库也是极大的方便了研发进度。其提供的仿真环境也为算法设计提供了直观的调试环境。
作为演示和学习使用,ROS是非常合适的选择。但是作为产品化开发,ROS也是有其无法忽视的缺点:
1. 缺乏构建多机器人系统的标准方法;
2. 在Windows、MacOS、RTOS等系统上无法应用或者功能有限;
3. 缺少实时性方面的设计;
4. 需要良好的网络环境保证数据的完整性,而且网络没有数据加密、安全防护等功能;
5. ROS 1的稳定性欠佳,研究开发与上市产品之间的过渡艰难;
6. 产品定制化开发困难
出于以上等因素考虑,重新开发一套无人化系统框架,满足我们自己产品的需求。
精度误差在10cm范围内
系统启动后会检查GPS信号接受情况,并在主界面中有指示灯提示(红色表示GPS接受失败)
在作业过程中,当丢失GPS信号5s ,车辆会暂停作业
在无GPS信号时,车辆不会自动驾驶
使用Can总线控制
系统启动后会检查CAN中线连接情况和通信情况(主界面有指示灯提示)
通过CAN总线接受车辆状态信息并把控制指令发给农机
提供作业路径规划功能
丰富的算法设计
LQR + PID 控制算法
目前只有前毫米波检测,当检测到障碍时自动停车并鸣笛,障碍物离开后继续前行
检测距离:20米
检测到5s后有碰撞的可能,便停车
当前程序共有:待机、导航、作业 三个主要流程
通过行为树控制整个作业流程
提供行为树编辑器,设计人员可以通过编辑器设计作业流程,并生成自动化控制脚本
不同的作业模式或是农机农具,只要选择对应的脚本就可执行
后续作业需求,可以不需要开发人员编码,只需要设计人员设计出流程图即可
与平台交互通过MQTT协议连接
同物理机上通过 命名管道实现进程间通信
通过HTTP协议与算法服务器连接并得到路径规划的数据
在植保作业中,无人系统需要与同机执行的植保软件通信,在收到停车信号时停车,可以接受植保程序的控制信号
该技术通过命名管道来实现进程间的通信
因此需要两程序运行在同一台物理机上
(1)服务器功能拆分:
主逻辑控制服务器,算法服务器,数据库服务器,网关服务器
主逻辑服务器:负责平台相关和控制相关的逻辑处理,比如作业控制。以后的集群控制也会在逻辑服务器中处理
算法服务器:提供算法服务,路径规划算法,地图服务,导航路径算法等都在此类服务器中完成
数据库服务器:顾名思义,较难设计的部分。因为是分布式架构设计,数据库可能是独立部署,如何设计缓存结构,并确保多节点之间的数据同步,想想都头疼
网关服务器:负责外部连接通信的服务器,其主要是桥梁作用,所有的用户或农机都与网关服务器直接连接,从而避免与逻辑服务直接通信。同时负载均衡策略也在网关服务器中实现
(2)采用分布式架构设计
解决同步问题
采用何种分布式设计跟集群设计
将遥控器功能在移动端实现,通过平板电脑或手机终端控制农机
实现一对一控制, 和一对多绑定
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。