紧急求助

AGV小车控制系统源代码一般是怎么个写法,有现成的能参考下不

小杨
小杨
2026/05/19 10:37

最近在搞一个仓储项目,要上几台AGV,调度系统加车体控制这一套想自己搭,预算卡得紧不想买现成平台。干了十几年机器人调试,PLC和上位机都熟,但AGV这块之前接触的都是成品,自己从头写代码还真是头一回。

想问问各位,车体控制那部分(驱动、导航、避障、跟调度上位机通信)一般是用什么语言写的?C++还是C#?有没有开源的项目或者框架可以参考下结构?我不是要直接抄,主要想看看人家怎么分模块、怎么管多车通信的,省得自己瞎琢磨走弯路。最好是有仓库里实际跑过的,不是那种论文级别的demo。

25 4

全部回复 (4)

和气生财
和气生财#1

我这边去年给一个汽配仓库做的8台AGV项目,车体控制用的C++,跑在嵌入式板子上(瑞芯微的),ROS里只用了通信和消息封装那部分,没全用ROS的导航栈。调度上位机用C#写的WPF,跟车走的是TCP+自定协议,每包32字节,包含车号、坐标、状态、电量这些字段。多车通信走的是调度中心中转,不是车跟车直接聊,这样逻辑简单点,出问题也好定位。

开源可以看看freight_ros和OpenTCS,前者是车体控制框架,后者是调度系统,Java写的。我们当时主要参考了它的任务队列和交通管制那块设计,自己用C#重写的。C++部分建议你重点看SLAM导航和多传感器融合(激光+IMU+里程计),光靠一种传感器在仓库里跑不稳,地标反光板还是要保留作为兜底。

另外提醒一下,调度和车体之间的通信一定要做心跳和超时重连,仓库里WiFi不稳是常态,丢包不处理车就会原地转圈或者跑飞。

2026/05/19 12:18
薄利多销
薄利多销#2

直接说点不一样的——自己从零写这事我劝你再想想。你算算账,一个能稳定跑起来的调度系统,光交通管制(防死锁、避让、路径重规划)就要烧掉一两个人大半年,仓库里场景一变(货架挪位置、通道宽度变)还要改。我们公司之前自己搞过一轮,三个月下去了连基本的优先级调度都没整利索,最后还是买的现成。所以我的建议是调度买现成的开源或者商业版,自己只写车体控制和应用层对接,能省一半时间。

2026/05/19 14:11
童叟无欺
童叟无欺#3

你仓库多大面积?多少台车?货架高度多少?通道宽度多少?这些不说清楚没法给具体建议。AGV方案差别很大,潜伏式、叉车式、料箱式的控制逻辑完全不一样,写代码的思路也不一样。

2026/05/19 20:29
小陈
小陈#4

我们厂里现在跑着12台料箱AGV,车控是C#写的(.NET 6 + 控制台程序),不是C++,因为调试方便,远程改代码不用交叉编译。导航用的二维码+激光,SLAM那套太娇气,仓库里光线一变化就得重新建图,二维码便宜省心。多车通信走的是5G专网,每台车单独连调度服务器,MQTT协议,QoS设的1,丢了就重传。从19年到现在没出过大的通信问题,硬件倒是换过两批驱动轮了。

所以你看,方案没有标准答案,得看你现场条件。代码结构方面我有个习惯,每个AGV进程单独跑一个容器,调度崩了不影响车体,车体崩了调度可以接管,这个在生产线上救过我们好几次命。

2026/05/20 23:51