机器人控制器开发(整体架构)

发布于:2025-09-02 ⋅ 阅读:(13) ⋅ 点赞:(0)

PS: 我计划写一个机器人控制器研发的系列博客,记录我开发控制器整个过程。

关于控制器

控制器涵盖了算法软件硬件做为一个整体。控制板则侧重指硬件主板,缺少程序代码,逻辑电路等,可编程性弱。

机器人的形态多种多样,从100元的电动玩具小车,几千元的扫地机器人和无人机,几万元的amr机器人,到路上几十万元的的无人汽车,人形机器人,大负载工业机械臂等,太空机械臂等,
机器人的控制器包括大脑小脑以及各个分布式节点单元。
人脑由大脑小脑脑干组成,机器人控制器和人脑功能一致,大脑最复杂,难度最高,完成了视觉听觉语言,逻辑规划,认知思考,情感记忆等。小脑负责

具身智能 人形机器人

… 这是分割线 …

硬件方案

我原计划直接上手做软件,但软件需要运行在硬件上,所以先把硬件也简单聊一下。

大多数机器人公司做的是整机+解决方案销售,很少单独卖控制器,比如海康、普渡、擎朗等。
据了解海康也有计划推广控制器,但是这里需要把低代码平台做好,
通常控制器稳定性和灵活可定制 是比较容易冲突的,这是目前控制器的一个痛点。海康的宗旨是稳定性,所以每当遇到定制需求时响应就会比较慢。这需要在控制器的底层软件架构设计上下功夫。清楚不同场景的通用性和差异化,做好底层模块解耦,在这个基础上做低代码平台和可视化界面。

市面上成熟的机器人控制器,比如 仙工、科尔摩根、科聪、睿芯行。支持各种组态配置和脚本开发,可以快速造车。但是这个底层是关闭源码的,无法掌控底层的算法模块。这种方案我一般推荐使用仙工的控制器。
在这里插入图片描述
上面仙工家的控制器 以前用x86+MCU的架构设计的,售价2万元,实际的硬件bom成本也不低。近几年AMR机器人卷价格,所以仙工也出了一款880和1000控制器,里面的主控芯片应该是瑞芯微rk3576或rk3568的算力级别,bom成本可以控制到1500元以内
这样就又具备了竞争力。

另外一种是用工控机去做,软件就可以自己写,但是硬件限定死了。这种方案我推荐使用稳信的工控机,有ARM架构的,也有x86架构的,各种接口拓展丰富。

在这里插入图片描述

控制器的硬件大多数都是 x86 + MCU 或者 ARM + MCU
最近今年瑞芯微发展迅猛,很多机器人创业公司自己拿瑞芯微的核心板加自己设计的PCB底板去做机器人的大小脑。
因为瑞芯微的多核能力较强,对于AMR等室内移动机器人而言,实时行要求不那么高,可以把MCU给去掉,用瑞芯微片上的外设去提供各种外围接口,如 CAN、串口、IO、PWM等。

我最终的方案也是计划用一块瑞芯微的主板来实现整个机器人控制器的小脑。

… 这是分割线 …

软件方案

聊完硬件料一下软件的方案
(我们这里暂时只讨论 AMR移动底盘,不考虑上面的顶升、滚筒、识别对接或者更复杂的机械臂、双臂等。)

AMR机器人控制器 的相关软件,包括 嵌入式软件、定位软件、导航控制软件、感知识别软件、上层接口软件、上位机软件、人机交互软件(可选)。

嵌入式软件主要是实现底层的外设驱动、接入机器人的执行单元(电机、灯带、显示屏、喇叭)和传感单元(雷达、IMU、防撞条、按钮、麦克风、相机)等。

定位软件 负责 采集 雷达、相机、IMU、电机编码器等数据,实现多传感器融合定位。

导航控制软件负责 根据机器人的运动模型和上层接口获取的目的地址,结合定位信息和感知的障碍以及地图信息,实时规划一条最优的轨迹,并控制机器人安全到达。

感知识别软件 负责识别料架、识别栈板、识别障碍物等信息

上层接口软件 用于将底层和上层的调度系统或人机交互以及上位机进行隔离,提供封装好的API接口,通过HTTP、TCP、websocket等协议进行交互。(我不推荐udp,譬如某聪的控制器用过udp协议)。

上位机软件 一般用于 扫图、传感器配置、低代码脚本开发、工作流执行等功能,大多数公司会用Qt或者C#开发桌面版exe软件给用户使用,近年来随着web技术的兴起以及算力的提升,也有公司把上位机做成了web服务,跑在控制器内部。

人机交互软件, 很多机器人会有一个屏幕,比如普渡或者擎朗的这种商用场景机器人,通常用安卓一体屏来跑交互界面,开发一个APP就可以完成。安卓一体屏我推荐使用迈冲科技的。也有使用串口屏来实现的,成本会更低。如果想在屏幕上做扫图和地图编辑以及复杂的配置操作,建议用安卓实现。为了卷成本,降低开发工作量,就用串口屏。

综上所述,我的方案是 做一个单机版的控制器,那么操作系统用linux ubuntu + ROS2,嵌入式软件、定位软件、导航控制软件、感知识别软件、上层接口软件、上位机软件全部都运行在linux中,人机交互使用安卓一体屏。


网站公告

今日签到

点亮在社区的每一天
去签到