关于此实验
编写一个小程序,并在三维棋盘上进行测试。机器人会严格按照每条指令行动,因此受阻的移动或错误的转向都会清晰可见。比较预期路线与实际执行轨迹,然后修改程序并重试。
学习目标
- 将路线转换为按顺序排列的精确指令。
- 检查每一步之后的位置和朝向,以调试程序。
- 说明在不改变指令的情况下,改变障碍物如何影响程序结果。
使用方法
- 1运行初始程序,并找出与预期路线不符的第一条指令。
- 2倒回程序,然后使用“单步”和“后退”检查每条指令执行后的位置。
- 3加载“路线示例”,预测终点,然后运行程序到达目标。
- 4向上拖动一个棋盘格,创建障碍物。使用命令按钮修正路线,然后记录程序及其结果。
模型
假设
- 棋盘有六行六列。机器人从左下角出发,面朝右侧;目标在右上角。
- 前进指令会移动一格。左转和右转会旋转90度,但不移动。发生碰撞或到达目标时,执行结束。
- 机器人是一个指令解释器,并非刚体物理模拟。视觉插值不会改变离散的格子位置。
在课堂上试试这个实验
- Q1为什么同一组指令在一个棋盘上有效,移动墙壁后却会失败?
- Q2如果可以使用重复指令,怎样才能编写更短的程序?
常见问题
机器人会自己找路吗?
不会。它会严格按照给定的指令序列执行。寻找并修正路线就是这项实验的目的。
撞到墙时会发生什么?
机器人会停留在最后一个有效格子,标记该步受阻,并停止程序。