Epuck2嵌入式开发教程-1.避障功能
避障功能
代码行数:main.c 第493行
代码:
prox_values_temp[0] = get_calibrated_prox(0); prox_values_temp[1] = get_calibrated_prox(1); prox_values_temp[2] = get_calibrated_prox(2); prox_values_temp[5] = get_calibrated_prox(5); prox_values_temp[6] = get_calibrated_prox(6); prox_values_temp[7] = get_calibrated_prox(7); leftSpeed = MOTOR_SPEED_LIMIT/2 - prox_values_temp[0]*8 - prox_values_temp[1]*4 - prox_values_temp[2]*2; rightSpeed = MOTOR_SPEED_LIMIT/2 - prox_values_temp[7]*8 - prox_values_temp[6]*4 - prox_values_temp[5]*2; right_motor_set_speed(rightSpeed); left_motor_set_speed(leftSpeed);
简单讲解:
获取周围8个(当前只获取前方和侧方6个)红外传感器数据,机器人根据这些数据进行躲避障碍物行走。
避障传感器的位置不同,所带来避障的影响权重不同。
以基础速度为准,减去红外测量数据,
左方电机减去的右侧红外数据
右方电机减去的左侧红外数据
障碍物检测数据越大,机器人该方向电机越快(快速躲开,防止撞上)。
最后赋值给左右电机rightSpeed和leftSpeed
测试:
机器人档位选择到B档位,重启机器人,机器人开始移动后,用手遮住机器人前方的几个红外传感器进行测试。
<< 上一篇
下一篇 >>