FAQ

来自MDCS wiki
Yuhang讨论 | 贡献2024年4月1日 (一) 17:07的版本
跳到导航 跳到搜索

调试原理性问题

  • Q: Simple下任务后,Clumsy的表现和预期不一致,或者做完任务后Simple还报错了,如何调试?
    • A: Simple首先通过对车进行路径搜索(SegmentPlan.FindRoute)搜索到路径,然后通过Compile调用车体类挂载的Coder生成代码,最后通过车体类继承的actualSendScript进行脚本下发。对于Clumsy而言,下发的脚本会保存于debug目录下。首先检查脚本是否正确,然后调试Clumsy插件中继承SimpleAGVInterface的类(一般为AGV类),是否其函数按照正常的方法实现了(见通用约定)。
  • Q: Simple不给锁,怎么看原因?
    • A: 点开小车的状态面板,看TcStat交管信息。这个字段里显示了为什么不下发锁的原因。
  • Q: Simple似乎死锁了?
    • A: Simple非常非常难遇到真的死锁。可以看BlockedBy字段来判断到底是真的死锁了,还是因为路线图设计问题导致的关键等待。可能所有的车都在等一个关键车下发路线。
  • Q: Simple包络似乎错了,两个车包络明明冲突但相撞了。
    • A: 检查经过的路径的layerName,在不同layerName上的包络互相不冲突。比如layerName
  • Q:使用激光+地纹导航时,出现车辆位置来回拉扯的情况,是怎么回事?
    • A:首先检查detour.json中uscTC是否设置为true。然后还需要判断两个里程计的时序问题,在有独立显卡的工控机上,地纹延迟低,雷达延迟高,需要将单线雷达的time_bias_ms设置为-30至-50(具体根据雷达延迟),若使用核显跑地纹,地纹延迟会上升,此时将雷达和相机的tims_bias_ms都设置为0