我正在 Unity 中使用遗传算法来实验机器臂的控制,取代了关键帧动画或编写脚本的方式。
机器臂不遵循预先编写的运动路径。每个候选者代表一个不同的控制参数集,例如:
- 关节扭矩值
- 运动时间
- 稳定性设置
- 目标达成行为
每一代中,仿真将自动运行:
- 生成候选者机器臂
- 模拟其运动
- 测量其适宜性
- 保留最佳表现者
- 结合和变异参数
- 重复
适宜性函数目前奖励如下:
- 在时间限制内到达目标
- 减少抖动/不稳定
- 避免碰撞
- 使用更少的过度力或能量
经过多代后,会出现有用的运动策略,避免了手动编写每个关节的脚本。
这是一个早期实验,但 Unity 已经成为一个安全的环境,测试机器人行为之前,任何东西都不会接触到真实硬件。
我很好奇这里的其他人如何接近这个问题:
- 你们如何设计适宜性函数?
- 你们会优先考虑准确性、平滑度、能量效率还是碰撞避免?
- 有人在这里使用 Unity 进行机器人仿真或进化训练吗?
- 你们认为解决最困难的模拟到现实的差距是什么?
评论 (0)