# 常州理想-士腾控制器 **Repository Path**: theyn/stm32f407_shiteng ## Basic Information - **Project Name**: 常州理想-士腾控制器 - **Description**: 常州理想-士腾控制器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: test - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-11-15 - **Last Updated**: 2025-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 更新记录 2024.01.14 顶升转速优化&开机初始化延时 1. 顶升转速从600改为1200,对应时间从4s改为2s,来加快节拍。 2. 开机初始化延时模糊时间,等moxa稳定,防止重启后调度连接不上小车。 2024.01.11 开机后网络连接不上&小车灵敏度优化&TCP断连报警优化 1. 料架纠偏模拟GP速度改成200 2. 空载时车体旋转速度改为0.8rad/s 3. 在TCP初始化之前添加了5s延时,等待moxa起来 4. 修改TCP断连判断通道为1即TCS通道 2024.01.09 版本提示 1. 修改程序版本为20250109。 2024.01.08 优化了TCP任务初始化 1. 注释掉了TCP初始化之前的延时循环函数。(为解决开机时,触摸屏不亮的问题,但是现场还没反馈) 2024.01.07 RV速度选择条件优化 1. 在扫描到料架二维码的条件基础上,再加上顶升在最高点的条件(扫到料架二维码的时候顶升可能没举起来)。 2024.01.06 TCP起始优化&CF复位优化&RV速度优化 1. 等初始化完成标志位置位时,TCP才启用。 2. 复位按钮按下时在原先将动作状态置3的基础上,加上防撞区域赋值。 3. 加快了空载且不相对静止时车体旋转速度为0.65 rad/s 。 2024.12.31 RV避障优化 1. RV避障关闭由maui指令中屏蔽改为在雷达原始信号处理时屏蔽。 2. RV起步时转盘等避障信号statusScannfield.frontFree消失后再启动(避免转盘先转车后转导致不同步)。 2024.12.31 初始化时语音提示 1. 取消APP程序上电延时(现在延时主要在电机初始化部分)。 2. 新增语音“小车初始化中,请等待 ”。(便于知道初始化完成然后控制小车)。 2024.12.30 保护触发优化&二维码解析方式完善&避障优化&CAN初始化时间优化 1. AGV保护触发原因排查,打印触发具体原因(因为保护触发但不知是哪个原因导致的)。 2. 没有扫到二维码触发保护阈值由2.5m改为3m(里程计比实际偏大,容忍连续两个间隔1m的二维码没扫到)。 3. 手动模式控制AGV行走不会触发运行一段路程没有扫到二维码保护(手动模式odom_without_qrcode清零)。 4. 偶尔会发生没有料架时会直接执行HL(原因是顶升高度值db_Periphery.LiftTable.posData.actualPos有时会被赋值成编码值)(赋值LIFT_MAX、LIFT_MIN判断区间由100改为300)。 5. 屏蔽雷达由maui指令中屏蔽改为在雷达原始信号处理时屏蔽(HL料架精定位模拟执行GP时,虽然在maui中已屏蔽雷达,但是障碍物变化时会被重新打开)。 6. 二维码坐标解析兼容将X、Y坐标值直接写入tag值(flag_qrcode_encode根据TAGNUM大小判断解码方式)。 7. 按下复位按钮时,SP指令是状态1则切换为2,CF指令是状态2则切换为3。防止手推导致指令完成不了。 8. CAN初始化完成flag_can_ready按下手柄才有效(未初始化完成手柄控制有时会导致CAN初始化失败)。 9. 修改上电等待延时时间及CAN电机初始化延时。 2024.12.28 保护解除条件&HL、RV、CF优化 1. 触发保护时播报语音“小车已保护,请按复位按钮”(便于知道AGV停止原因)。 2. 保护解除条件更改(由切手动再切自动改为按复位按钮清flag_protection)(便于现场人员操作)。 3. 解除RV执行时与语音的耦合(解决了RV时相对静止一会有效一会无效)。 4. 修复顶升下降到位后,一直在等待转盘回正,但转盘不动的bug。 5. CF避障区域切换由停车切换改为边走边切。(加快节拍)。 2024.12.27 HL指令完善 1. 料架精定位后,AGV默认转回原来角度(根据agv_angleT)。 2. 调度HL指令参数2-1为1时才执行精定位(狭窄工位内不便于进行料架纠偏)。 3. HL指令处于“料架偏差过大”提示时,收到ST指令将flag_HL_ready标志位复位,否则正常运行时语音一直播报“料架偏差过大……”。 4. HL下降到位后模拟RA,使转盘回正。(有bug,模拟RA无动作一直完成不了)。 5. (放下料架后,一直等待转盘归位,重复使用了rotator_angleT,在RA执行中被修改)。 2024.12.26 料架精定位完善 1. 更改X方向和Y方向行走倒退判断的角度区间。(根据当前车头方向判断是前进还是倒退) 2. 料架精定位模拟GP判断以X轴还是Y轴走(料架X轴偏差较小时则沿Y轴走)。 3. 料架精定位最小角旋转及前进倒退判断(加快节拍,保证精定位时旋转角度小于90°)。 4. 角度到位判断,先规范到(-180°-180°),再进行判断是否小于1.5°。 5. 料架X、Y误差范围<1cm不进行精定位,直接执行HL。 6. 举升时扫不到料架,语音播报“ 料架偏差过大,请人工处理! ”。 7. 料架偏差过大,人工调整好后,需按复位键,然后继续执行HL。 2024.12.25 增加语音&解决冲过头&解决卡SP 1. 增加小车旋转、托盘旋转、举升升降时播放音乐。(客户新增要求) 2. GP距离小于0.3m加速度由0.3改为0.1。(解决短距离GP冲过头) 3. 精定位速度范围由0.601改为0.301。(加快节拍) 4. 将SP容忍度和GP容忍度区分开,新定义SP容忍度范围。(解决SP卡指令,一段GP对应多个SP) 5. 更改SP指令case1进入case2的判断条件(SP卡住,判断值在0.28,容忍度由0.25改为0.35)。 2024.12.24 料架精定位测试优化 1. 料架精定位先计算好旋转角度及行进距离,保存下来。 2. 角度计算函数由atan改为atan2f。 3. 料架相机X、Y坐标修正。 4. 料架精定位模拟执行GP时屏蔽雷达。 (之前逻辑bug) 1. 精定位运行中偶尔检测不到料架,导致立即触发HL。 2. x2,y2在模拟GP时没有更新,导致模拟GP不会停止。 2024.12.23 缩短闪光警告指令等待时间 1. warningTime值从1000ms改成0 2. x2和y2改为float 2024.12.20 第二次优化三个问题 1. 加了音乐在自动巡线播放延时,类似于喂狗的形式初步解决了指令切换时音乐不连续播放问题。 2. 优化了AGV爬行速度与爬行距离。 3. 在料架纠偏程序中添加了模拟调度SP。 2024.12.19 优化三个问题 1. 料架精定位方案优化(x和y方向偏差和agv旋转角度重新计算) 2. 优化agv停车爬行速度,将减小的速度改为和目标距离成比例关系下降 3. 重新添加SP立即完成,修改SP执行完成后GP没速度的bug。 2024.12.18 修改三个问题 1. 将tmp_ParaRamp.acc的值从0.5改为1 2. 将voiceNumber赋值为0xf0关闭改成0x01播放运行音乐 。 3. 注释SP立即完成语句。 2024.12.18 新增料架精定位三步骤 1. RV,GP(沿X轴),RV 2024.12.17 修改模拟GP目标X、Y坐标值 1. 单位统一为mm 2. X方向行驶,Y目标保持不变;Y方向行驶,X目标保持不变; 2024.12.16 HL顶升前,AGV需先精确运行到料架正下方(初稿) 2024.12.07 二维码数据的置信度降低 1. 相机读到的二维码角度和里程计角度相差10°时,忽略二维码数据。 2. 抱闸按钮按下时和第一次上电时,AGV角度以读到的二维码数据为准。 2024.12.06 解决电池报文解析导致死机问题 1. GP执行时纠偏角大于10°时,线速度降低为0.1m/s,AGV回正后再恢复线速度。 2. 2m没扫到码保护改为2.5m,提高运行稳定性,防止漏掉一个码也进入保护。 3. 国轩电池通信协议由3改为2,电池总电压直接获取(原来为累加电芯容量会进入for死循环)。 4. 增加二维码tag值校验(GP长距离运行一天在同一个二维码脱轨两次,发现此二维码使用了反光较强的透明胶带,其它二维码是哑光胶带) 5. 增加相机角度异常突变处理,与里程计相差突变时以里程计角度为准。 2024.12.05 脱轨自动恢复机制 1. SP指令赋值后直接完成,避免卡在SP指令。(GP已发送未回复而SP在执行中,ST指令无法打断。) 2. 电量保护阈值25%改到21%。(容量校准机制,电池20%容量时虚标,很快会降到5%。) 3. GP执行时纠偏角大于18°时,线速度降低为0.1m/s,大于30°时,AGV停止运动。(轮子轻微打滑、角轮别到时、电机短暂失能时导致的脱轨可以自动恢复,二维码坐标错误等导致的严重脱轨需人工恢复。) 2024.12.04 核对及整理常想士腾代码 1. 核对fc_AGVMain.c 2. 核对010_Vehicle.c(车辆参数、状态、运动方向、初始化,里程计,声光控制)。 3. 核对011_VehicleSpecific.c(运动学控制,运动正解和逆解)。 4. 核对fb_BasicsFunctions.c(打包调用 运动状态、声光控制、能源管理)。 5. 核对fb_Components.c(对两个相机的数据解析,里程计更新调用)。 6. 删除fc_VehicleMain.c.h和fc_ToSafetyVehicle.c.h,合并到fc_AGVMain.c.h。 7. 删除fc_CycleBeginCall.c.h和fc_CycleEndCall.c.h,合并到fc_AGVMain.c.h。 8. 核对fb_ControlFunctions.c(驾驶许可、数据融合、纠偏控制,速度曲线控制)。 9. 删除400_CAN.c.h(空函数)。 10. 核对020_Interfaces.c(触摸屏控制与数据同步显示)(删除MAUI数据及其它冗余数据)。 11. 核对030_MessageSystem.c(消息等级,错误、警告、信息)。 12. 核对fb_MappingCommands.c(MAUI指令参数映射到实际执行参数)。 13. 核对MappingIO.c。 14. 核对30_Periphery.c(转盘、顶升、充电机构控制)。 15. 核对50_Safety.c,删除fbs_MainGroupSafety.c及.h。 16. 删除fb_Periphery.c.h和fc_PeripheryMain.c.h,合并到30_Periphery.c.h 17. 核对maui.c(四大部分:指令处理、指令变化检测、执行状态更新、指令列表刷新) 18. 核对070_Sensoric.c(PGV相机字节处理、TAG码读取转化有效值) 19. 删除075_Actoric.c及075_Actoric.h。 20. 核对080_EnergyManagement.c(电池数据解析、充电检测、待机关机逻辑、电量保护)。 21. 核对090_Operation.c(操作模式选择、手柄操作、触摸屏操作、手动操作加减速设置)。 22. 核对100_BasicFunctions.c(上报PC上位机、调度报文解析)。 23. 核对110_MathematicalFunctions.c(取模、取符号、斜率计算、三角函数)。 24. 核对120_TimeFunctions.c(时间戳、程序循环时间、脉冲发生器)。 25. 核对200_Motion.c(电机控制字、电量使能保护、下发速度和位置的转换因子) 26. 核对BaseFunctions.c(接通关断延时、上升下降沿检测、时间脉冲)、SSpeed.c。 27. 核对InertialNavigation.c。 28. 核对IMU.c。 29. 解开:在二维码上纠偏 30. 横向纵向距离超出20cm保护,与纠偏角大于15°、2m扫不到码共用一个保护函数。 31. 电量保护阈值由10%改为25%(低电量停止电机使能)。 32. 电机禁止时间和事件时间分别为10ms、100ms(字典对象值均为0x64)。 2024.12.03 晚上 重构main.c和userTask.c 1. 将电池任务合并到LED指示灯任务。 2. 删除free Can任务,是之前车型用于CAN扩展IO模块,现在已不用。 3. TCP任务栈大小改为1024。 4. 将userTask.c中多余注释及空函数删除,任务代码按顺序排列,提高易读性及查找便捷性。 5. 删除定义未使用变量,优化代码编译警告函数。 2024.12.03 ST优化及进程名打印控制 1. 打印进程名通过标志位控制,上位机可控制开启关闭,防止影响查询录入二维码。 2. 控制器内部软件版本号查询,便与分析问题时确认软件版本(上位机0x8004指令查询)。 3. 收到ST指令后如果在执行GP,则到达下一个二维码停止,改为扫到二维码即停止。 4. 收到ST指令后如果在执行GP,且GP无法完成(有障碍物等),可以按复位按钮完成ST 2024.12.02 ST与SL指令测试优化 1. 判断有无指令在执行,由判断db_RecvDataFromTCS.RecBE改为db_Befehl.Befeh。 2. 线速度小于0.05时,停止纠偏。 3. 在每个任务中打印任务名称到上位机,便于死机时判断具体的某个任务有没有卡死。 4. RV执行中切手动,控制车体转转盘也会转,改为手动模式车体转时转盘不转。 5. SL执行后进行加锁,防止SL执行后有新的RV等指令进来。 6. SL睡眠之后不能立即唤醒,SL执行完成后延时10s再上报调度已完成。 7. WK唤醒之后先等电机等上电初始化完成,约20s后再上报调度已完成,然后接收新指令。 2024.12.01 ST与SL指令执行逻辑完善 1. 收到ST指令后,有GP指令,等待到达下一个二维码再停止,其它指令等待完成后再停止; 2. 收到SL指令后,等待当前在执行中指令都完成后再执行睡眠指令。 2024.11.30 休眠和唤醒指令逻辑完善 1. 判断休眠和唤醒指令是否完成时不需要判断车辆是否静止(非静止时触发休眠会导致休眠指令无法完成,会一直进入) 2. 增加cm_ backtrace追踪错误机制,死机时打印导致死机的堆栈等信息。 2024.11.29 下午 料架纠偏&启动时需在二维码上 1. 有料架时,收到调度RA指令,最终角度以料架为准; 2. 无料架及顶升在低位时(东阳提供思路),收到调度RA指令,最终角度以转盘为准。 3. AGV只有在二维码上时,手动切换为自动模式的按钮才生效。 4. 在二维码上停止纠偏,防止GP即将结束时线速度关闭纠偏角速度还在导致车歪。 5. 优化数据打包发送函数(取消动态分配内存) 6. 增加料架纠偏代码后,RAM空间不足(0x20000),更换士腾底层库文件,优化内存空间。 7. 偶发一次显示屏显示读到了tag码,Y坐标却为***,将float中间值注销,EE读到的Y坐标直接赋值。 2024.11.29 1. 暂时注释:二维码位置跳变,保护逻辑,会导致里程计一直变化 2. 解开注释:GP行驶一段距离(2m)没有扫到二维码,停止运行,测试OK 3. 解开注释:纠偏角速度范围限制(15°),测试OK 2024.11.27 RV执行时更新转盘角度 1. 转盘角度本身在0°,此时执行相对静止RV指令,AGV转动到一定角度,再下发RA到0°,RA会立即显示完成 RV执行时没有更新转盘角度导致 2. 二维码位置跳变,保护逻辑,会导致里程计一直变化,暂时注释 3. 暂时注释:GP行驶一段时间或一段距离没有扫到二维码,停止运行 4. 暂时注释:纠偏角速度范围限制(15°) 2024.11.26 晚上 二维码位置跳变,保护逻辑 1. 二维码位置跳变,保护逻辑 2. GP行驶一段时间或一段距离没有扫到二维码,停止运行 3. 纠偏角速度范围限制(15°) 2024.11.26 解决短距离行进越界问题 1. 解决短距离行进越界问题 2. 补偿角类型double改为float,EE存储4个字节(避免被其它存储覆盖) 2024.11.25 修复休眠唤醒死机 1. 休眠唤醒时重复触发CANRESET函数,导致死机,屏蔽此函数 2. RA执行时清零判断标志位,同时判断角度在原点附近,防止补偿大于90°。 2024.11.24 RV相对静止+RA循环测试 2024.11.22 RV问题优化 1. RV如果车体未动,转盘也要不动 2. 清零后导致RV目标位置计算错误? 0计算为180?(偶尔发生) 3. 老车下入新程序,上电后转盘会一直转(EE第一次读取为nan) 4. RV执行时切换为手动操作,Rotate_clockwise_flag标志位还在,无法进入杭迪程序 触摸屏或手柄控制转盘时增加当前手自动模式判断 Global_IO.Input.i_xMaintenanceChannel = INPUT_PIN11();手自动电平,手动为1 2024.11.21 RV旋转,转盘相对静止 1. 将电机保护帧发送放到LED任务里(防止部分死机电机没有停止) 2. 增加上位机重新使能行走电机功能(debug打断点后,行走电机保护帧停止) 3. 删除部分冗余注释代码 4. 转盘与AGV同步转(RV指令,参数5设为1为相对静止) 5. RV重写后,触摸屏或手柄控制仍用原来杭迪的算法(三个共用一个入口) 6. 转盘电机编码值清零时会导致行走电机保护(重新使能) 7. 485上视相机RTOS任务为空,可以保留初始化函数,删除任务。 2024.11.20 RA测试 1、调度测试程序(验证转盘溢出问题是否解决成功) 2、杭迪程序最小角在第一个周期不起作用,修复bug,RR中注释判断条件。 2024.11.20 1、编码器清零及清零后运行逻辑完善 2、测试验证补偿值 3、通过上位机重新标定转盘原点 4、EE保存及读取角度补偿值 2024.11.19 转盘编码值超出阈值进行清零 2024.11.18 1、测试发现转盘左右来回转问题出现在电机编码值从0x7FFF FFFF到 0x8000 0000穿越时出现 2、5005为程序通过上位机升级端口,5006为调试上位机日志打印端口 2022.12.14 1.更换了TCP通讯功能正常的空工程,并且把原本的上层程序逻辑移植进去。 2.把main.c文件中的Main_Task任务栈大小从1536改成了1024,原因是防止TCP函数申请不到空间。 3.把main.c文件中的BSP_Init()函数中的Delay_init()挪到了AT24CXX_Init()之前,原因是IIC初始化 是用定时器做的,要先初始化好定时器才能初始化IIC。 4.更改了HSE_VALUE为8000000U。 2022.12.15 1.更改UserTask.c文件中的IO_Mapping()中的故障灯输出脚映射,将OUTPUT_PIN0改成了OUTPUT_PIN4。 2.更改UserTask.c文件中的IO_Mapping()中的三色灯输出脚映射,将红色OUTPUT_PIN1改成了OUTPUT_PIN7, 将蓝色OUTPUT_PIN2改成了OUTPUT_PIN5,将绿色OUTPUT_PIN3改成了OUTPUT_PIN6。 4.更改UserTask.c文件中的IO_Mapping()中的扫描仪输出脚映射,将粉色OUTPUT_PIN4改成了OUTPUT_PIN13, 将橘色OUTPUT_PIN5改成了OUTPUT_PIN12,将白色OUTPUT_PIN6改成了OUTPUT_PIN11,将黑色OUTPUT_PIN7改成了OUTPUT_PIN10。 注:以上脚位更改原因为原先OUTPUT_PINx(0~3)在新板子上为10A特殊输出脚,电流超出了器件的额定电流,为防止器件损坏,故重新排列。 2022.12.16 1.在main.c文件中包含了ADS1110.h头文件。 2.在main.c文件中的BSP_Init()中的最后增加了ADC_CH1~4初始化SoftWare_IIC_Init(ADC_CHx)。 3.更新了IIC文件,IIC文件中有ADC_CHx(x:1~4)的枚举定义 4.改变了ADC取值的来源,原先是取数组ADC_ConvertedValue[x](x:0~4),现在是取函数返回的值 ADC_data[x]=ADS1110_AveData(ADC_CHx)(x:0~4)。 2022.12.17 1.更改UserTask.c文件中的IO_Mapping()中的Global_IO.Input.i_wJoystickNValue(N:x、y、z)初始值为20223 2.更改了模拟信号转换函数fc_ConvJoystickSignal()中的手柄最低位置标准值为16639。 注:由于新板子ADC精度的改变,从12位变成了16位,所以相应的手柄位置标准值也要相应的发生改变,以上手柄位置标准值皆为实测。 2023.1.13 1.更改UserTask.c文件中的IO_Mapping()中的扫描仪输出脚映射,将黑色OUTPUT_PIN10改成了OUTPUT_PIN14,原因是单片机上 OUTPUT_PIN10硬件损坏。 2023.3.24 1.更改了开始位置标定,将db_ReferenceDefinitions.codeTapes[0].startPosCode = 33.0改为db_ReferenceDefinitions.codeTapes[0].startPosCode = (int)db_Components.trackGuidanceSensors[3].measured.X 2.更改了实际开始位置标定,将db_ReferenceDefinitions.codeTapes[0].startPosReally = 1改为了db_ReferenceDefinitions.codeTapes[0].startPosReally = (int)db_Components.trackGuidanceSensors[3].measured.X 2023.3.27 1.在主程序开头添加延时函数Delay(0x3FFFFFF),为了等待外设稳定,并解决了小车重启后无法标定的bug。 2023.4.24 1.修改了士腾底层库,使free485能够改变通讯配置(波特率等),并且使其接收队列长度增加到150。 2.在Free485_Task中增加了发送bms&相机的请求报文的功能块。 3.在usertask文件中新增BMS_Mapping(),并在Vehilce_Code()中调用。 4.在fb_BasicsFunctions函数中能源管理那边新增fb_BmsEvaluation函数。 5.在fb_EnergyMgnBcBat函数中增加了标准化模拟值与按百分比缩放电压功能块。 6.在bms&相机共用485时,在bms那一路485中串联了240欧的电阻。 2023.06.01 1.修改了惯导二维码标定数组db_ReferenceDefinitions.tags序号。 2.在fb_ControlFunctions中的2D PosData X Y YAW程序块中增加了惯导模式下差速轮车体X/Y位置插补。 3.在fb_ControlFunctions中的2D 2D Arc程序块中新增了fb_AGVPlanAngle函数。 4.在fb_ControlFunctions中的fb_TrackGuidance函数下面新增了fb_RotateYAW函数。 5.在fb_ControlFunctions中的SSPeed_func函数下面新增了掉头速度插补。 6.在LSimoveC_MauiAdapter中修改了GP与RV的能否执行以及执行完成的判定条件与执行结果。 7.在fb_TrackGuidance函数中新增差速轮版惯导纠偏,仿照fb_RotateYAW函数编写。 8.修改了LSimoveC_MauiAdapter输入参数中的x方向实际位置db_WorldMsg.World.actualPos.X * 1000、 y方向实际位置db_WorldMsg.World.actualPos.Y * 1000、AGV世界姿态角(db_Data.posData.actualPos.YAW * RAD_DEG) * 10。 2023.07.03 1.修改了纠偏执行,即修改为差速轮版惯导纠偏程序块中的tmp_TargetVeloTrackCntl.YAW赋值公式,以及在上面新增了沿x负轴方向角度处理。 2.修改了fb_ControlFunctions中的2D 2D Arc程序块中fb_AGVPlanAngle函数应用方式,之前是起点和终点的航向角,修改为起点和中点之间的 轨迹追踪点与所经过的当前二维码之间的航向角,以及新增了追踪点更新程序块,agv当前位置到追踪点的距离计算。 3.将SSPeed_func函数中的i_Para.jerk赋值为0. 4.修改了在fb_ControlFunctions中的速度赋值公式,改为tmp_FusionPosX_i_Velo = ( last_velo.X + tmp_FusionPosX_i_Velo ) / 2 、 tmp_FusionPosY_i_Velo = ( last_velo.Y + tmp_FusionPosY_i_Velo ) / 2 ; 5.重新定义了一个Mapping_Task,将主程序中的IO_Mapping、PGV_Mapping、BMS_Mapping转移到该任务中,把主程序的循环时间从50ms 降低到10ms。 6.在fb_ControlFunctions中的2D 2D Arc程序块中以及fb_Component新增了错误Tag过滤if( tmp_tagnumber <= 200 && tmp_tagnumber > 0 ),防止单片机死机。 7.在差速轮版惯导纠偏程序块中新增限制条件与纠偏振荡处理,增加直线运动纠偏时的柔顺度。 8.在LSimoveC_MauiAdapter中新增了跑圈测试指令映射以及修改指令执行为一条接一条执行且中间相隔300ms。 9.在fc_ModbusHMIDecode中新增了跑圈测试世界坐标点标定。 2023.08.05 1.新增手柄控制功能,即在IO_Mapping函数中加了手柄引脚映射、更改了fc_MappingVehicleInputs中的动作功能映射、 fb_JoystickFunctions函数中新增了button Joystick功能函数块。 2023.9.19 1.更新了手柄控制函数的输出作为速度曲线输出,解决了猛启动和松开按钮却往前溜的问题。 2023.9.20 1.在interface.c添加了HMI原点标定的按钮全局变量映射。 2023.9.21 1.修改了modbus任务的延时时间,从20ms改到1000ms。 2023.9.22 1.根据新的BMS协议,更改了Free485_BMS_Task、BMS_Mapping、fb_BmsEvaluation。 2.移植了转盘与顶升控制程序。 2023.10.14 1.为调度接口新建了一个除物料相机之外的TCP通道。 2.修改了调度指令执行逻辑,改顺序执行为10条指令同时浏览,并分同步异步执行,GP、RV、HL异步运行,SP同步运行。 2023.10.15 1.添加了调度控制举升行程内4s升降。 2023.11.27 1.添加了触摸屏显示里程计、充电次数、顶升升降次数、顶升最低点电流功能。 2.对接完了调度指令(GP、SP、RV、TM、ST、HL),并方宽了HL执行条件。 3.放宽了顶升高低位高度赋值条件。 2024.1.12 1.上电自动设置惯导模式,以及Tag数量为1500 2024.02.19 1.修改了语音内容。 2.新增物料编码识别功能,并上传调度。 3.手柄自传时,转盘相对地面也静止。 2024.02.22 1.去除了手柄自转时转盘相对地面静止功能。 2.用直行速度曲线做RV指令下车体的旋转。 3.调整了速度曲线参数与爬行参数,杜绝了旋转过程中停顿的问题。 2024.03.20 1.完成了转盘按键复位与上电自动复位 2.完成了唤醒后电机重新配置功能 2024.04.07 1.静止时转盘锁死 2.二维码一键录入 2024.04.10 1.找到二维码录制问题根源在于写EEPROM占用时间180ms超过100ms,设置300ms发一次二维码信息解决问题 2.做好了二维码查询功能,并可以用excel表格对比 2024.04.16 1.做好了RA功能 2.解决了来回定位的问题 3.增加了转盘停止减速机制 4.转盘锁死 2024.04.17 1. 增加了工站精定位微纠偏机制 2024.04.18 1. 解决了相对静止时转盘定位失效的问题 2024.04.19 1. 解决了RA最小角旋转时定位不准问题 2. 解决了RV之后跟上ra会扭过一个角度的问题 2024.04.25 1. 修改了目标点超过更新机制。 2. 把malloc函数替换成固定变量。 3. 更新了避障区域。 2024.04.28 1. 新增了避障区域。 2024.05.06 1. 更改了相对静止时目标判定,使其最小角旋转 2. 新增避障区域 2024.05.07 1.更改了TCP反馈报文中断问题 2.新增避障区域 3.缩小了脱轨防护区域 2024.05.08 1.新增避障区域 2.充电精定位 2024.05.09 1.更新了只有在手动模式下才能用手柄或触摸屏控制转盘与顶升。 2.修改了只有在使用HMI控制agv时modbus任务调用时间为10ms,其余为1s。 2024.05.10 1.新增避障区域。 2.修改了TAG码查询限制为7800。 3.复原为原来的RM处理 2024.05.11 1.新增避障区域。 2.修改转盘复位为铭牌朝后。 2024.05.21 1.修改TCP反馈报文时间为300ms 2024.05.22 1.新增防脱轨机制,发现纠偏角度过大时,停下,把车转向规划航向角后再前进 2.修改了会出现有些不能最小角转盘旋转的情况 3.提高了转盘相对地面静止精度 2024.05.23 1.优化了指令未执行却已完成的问题。 2.优化了指令参数设置正确却反馈异常的问题。 2024.05.31 1.修改了防护区域 2.添加了转换因子为0.918作为备用,解决相对静止后本不该执行的RA却执行的问题。 2024.06.04 1.新增了差速惯导安全防护(轮子打滑防护),待测试 2.修改了惯导跑圈测试范围指令12 2024.06.05 1.新增避障区域 2024.06.13 1.新增避障区域 2024.06.15 1.新增避障区域 2024.06.17 1.新增避障区域 2.修改前瞻距离,增加导航柔顺性 2024/6/18 1. 修改了车体旋转不到位的情况。 2024/6/20 1. 为避免转盘驱动器编码值溢出而出现晃动的问题, 做了在TM等待指令或CH指令下转盘自动复位并 编码值清零功能(暂未测试) 2024/6/29 1. 新增手自动状态显示。 2024/7/9 1. 通过增加路径拐弯处模糊定位,以及增大起步加速度、停止减速度、原地旋转速度, 改善了拐弯处动作的时间花费,加快了拐弯处的节拍 2024/7/11 1. 将防撞触边语音报警优先级放到了 正式发行版程序注意修改: 1、上电延时(需等待路由器、驱动器等供电稳定) //2、调度端对接端口由5003临时改为上位机调试端口5004 //3、上电转盘复位入口被注释了,需要恢复 4、转盘编码值超出阈值改为30圈 待优化点: 1、旋转时没有避障 3、RV指令同步旋转时,雷达触发避障,转盘先转,AGV稍后转