1 Star 0 Fork 0

Theyn/常州理想-士腾控制器

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
readme.txt 14.06 KB
一键复制 编辑 原始数据 按行查看 历史
更新记录
2024.11.29 晚上 料架纠偏&启动时需在二维码上
1. 有料架时,收到调度RA指令,最终角度以料架为准;
2. 无料架及顶升在低位时(东阳提供思路),收到调度RA指令,最终角度以转盘为准。
3. AGV只有在二维码上时,手动切换为自动模式的按钮才生效。
4. 在二维码上停止纠偏,防止GP即将结束时线速度关闭纠偏角速度还在导致车歪。
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稍后转
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/theyn/stm32f407_shiteng.git
git@gitee.com:theyn/stm32f407_shiteng.git
theyn
stm32f407_shiteng
常州理想-士腾控制器
test

搜索帮助