Khepera III 工具箱/示例/红外接近传感器响应
本示例演示如何通过实验测量红外传感器在接近模式下的响应。机器人从障碍物正前方开始,然后以小步后退。每一步后,都会进行一系列红外接近测量。
启动 Khepera III 机器人,并确保它已连接到您的计算机(通过 WLAN)。在下面的解释中,我们假设您正在使用机器人 203。将机器人放在障碍物前方,确保它身后至少有 50 厘米的空间。
将 motor_initialize、motor_stop 和 infrared_proximity 程序复制到机器人上。
cd Programs k3put +203 motor_initialize motor_stop infrared_proximity
登录到机器人
k3go +203
并输入
cd your_username ./motor_initialize
以初始化电机。
若要检查一切是否正常运行,请输入
./infrared_proximity
如果您的机器人碰触到它前面的障碍物,您应该会得到类似以下的结果。
$IRPROXIMITY,0,44038,41,11,405,3963,3965,827,3,61,34,3108,3010
中间的两个最高值(3963 和 3965)属于前部传感器,是我们在此实验中实际使用的值。这些值在您的设置中可能会有所不同,因为它们受障碍物颜色和纹理的影响很大。如果得到大约 3000 的值,请不要担心。
将机器人定位在障碍物正前方(使其触碰障碍物),然后启动
./run.pl
机器人现在将以小步后退,并进行 10 次红外测量,这些测量结果将存储在同一个文件夹中的名为 run_results 的文件中。完整的运行大约需要 2 分钟,之后机器人将保持在原位。
输入以下行以处理结果文件
./parse_results.pl 5 < run_results > matlab_run_results_5 ./parse_results.pl 6 < run_results > matlab_run_results_6
传感器 5 和 6 是两个前部传感器。您也可以以类似的方式使用其他传感器进行测量。
启动 Matlab 并输入
plot_results
生成的图表将显示两个传感器的曲线。每个点都是 10 个样本的平均值。
红外接近传感器值随着距离呈指数衰减。但是,根据障碍物的颜色和形状,曲线可能会发生明显偏移。对于非常深的障碍物(反射有限)或薄障碍物(反射表面有限),尤其如此。请注意,地板也会对超过 5 厘米的距离产生影响,因为部分发射的红外光会在那里反射。此外,大量的环境红外光(例如,阳光明媚的白天)也会影响结果。
在本示例的文件夹中,您将找到两个文件 ir_proximity_reponse_blackfloor.txt 和 ir_proximity_reponse_blackfloor.eps。这些是在低环境红外光的房间里,在深色(深灰色)地板(反射率低)前面的一堵白墙(反射率高)上进行的测量。