稚晖君实现自动驾驶自行车为例:
机器人是一个复杂的系统,科学的方法是首先对机器人进行理论上的分析,也就是运动学和动力学的建模,数学模型会告诉我们哪些事情是相对容易的,哪些是复杂的。
举例来说,车子的控制代码中,有超过50个重要参数,控制周期、反馈矩阵、PID增益、滤波器截至频率等等,这些魔法数字要得到合理的设置,才能使系统进入稳定运行且快速收敛的状态。而一些物理参数的设置,比如说,电机功率应该选多大的?飞轮质量应该选多少?重心的分布怎么设置比较合理等等,也都需要有准确的数学模型来进行指导。
在得到模型之后,为了验证模型的准确性,一般我们会先在计算机中进行仿真,我使用了一个游戏引擎Unity进行仿真,在游戏中构建一个虚拟的物理环境,赋给小车真实的质量和重力,然后将控制算法的计算结果可视化显示出来,验证完成之后还有一个sim2real的过程,因为真实世界的不可控性,这是一个非常不确定的过程。