Activity bot - parallax - 移动带传感器的机器人 - C 编程
Activity bot - parallax - moving the robots with sensors - C Programming
这是我将 activity 机器人从起点移动到终点的代码。它检测到两侧的障碍物并转身远离它们。
我将移动顺序保存在一个数组中,这样我就可以 return 到达起点而不使用任何传感器。 **(也就是“//return”注释后的代码)
#include "simpletools.h"
#include "abdrive.h"
#include "ping.h"
int back[200];
int i = 0;
int main() {
int distance;
int irLeft = 0, irRight = 0;
low(26);
low(27);
while (1) {
if (ping_cm(8) < 5) {
break;
}
freqout(11, 1, 38000);
irLeft = input(10);
freqout(1, 1, 38000);
irRight = input(2);
if (irLeft == irRight == 1) {
drive_goto(10,10);
back[i] = 10;
++i;
back[i]= 10;
++i;
}
if (irLeft == 0) {
drive_goto(20,10);
back[i] = 20;
++i;
back[i] = 10;
++i;
}
if (irRight == 0) {
drive_goto(10,20);
back[i]= 10;
++i;
back[i]= 20;
++i;
}
}
drive_goto(51, 0); // Make a 180 degree turn
drive_goto(51, 0);
//return
while (1) {
if (i == 0) {
break;
}
drive_goto(back[i], back[--i]);
--i;
}
return 0;
}
机器人成功移动到目标点,但没有返回起点。可能是什么问题?
您似乎有一个差一错误。当您向前移动时,您会在变量 i
中跟踪移动历史数组中 下一个可用 位置的索引。当您开始返回时,您使用 i
的当前值,就好像它是记录的最后一个值的索引一样。在返回的路上,您需要在每次读取之前 i
递减 ,以反映在每次写入 after 递增它的前向路径上的行为.
这是我将 activity 机器人从起点移动到终点的代码。它检测到两侧的障碍物并转身远离它们。
我将移动顺序保存在一个数组中,这样我就可以 return 到达起点而不使用任何传感器。 **(也就是“//return”注释后的代码)
#include "simpletools.h"
#include "abdrive.h"
#include "ping.h"
int back[200];
int i = 0;
int main() {
int distance;
int irLeft = 0, irRight = 0;
low(26);
low(27);
while (1) {
if (ping_cm(8) < 5) {
break;
}
freqout(11, 1, 38000);
irLeft = input(10);
freqout(1, 1, 38000);
irRight = input(2);
if (irLeft == irRight == 1) {
drive_goto(10,10);
back[i] = 10;
++i;
back[i]= 10;
++i;
}
if (irLeft == 0) {
drive_goto(20,10);
back[i] = 20;
++i;
back[i] = 10;
++i;
}
if (irRight == 0) {
drive_goto(10,20);
back[i]= 10;
++i;
back[i]= 20;
++i;
}
}
drive_goto(51, 0); // Make a 180 degree turn
drive_goto(51, 0);
//return
while (1) {
if (i == 0) {
break;
}
drive_goto(back[i], back[--i]);
--i;
}
return 0;
}
机器人成功移动到目标点,但没有返回起点。可能是什么问题?
您似乎有一个差一错误。当您向前移动时,您会在变量 i
中跟踪移动历史数组中 下一个可用 位置的索引。当您开始返回时,您使用 i
的当前值,就好像它是记录的最后一个值的索引一样。在返回的路上,您需要在每次读取之前 i
递减 ,以反映在每次写入 after 递增它的前向路径上的行为.