Khepera III 工具箱/示例/测量实际速度
本示例演示如何使用地面传感器实验测量机器人的实际速度。将一张纸放在地板上,机器人以要测量的速度穿过纸张。机器人使用地面传感器检测何时进入和离开纸张,并记录两个时间。由于纸张的长度是已知的,因此可以计算出实际速度。
启动 Khepera III 机器人并确保它连接到您的计算机通过 WLAN。在以下说明中,我们假设您正在使用机器人 203。将一张白纸粘贴在深色地板上,并将机器人放置在纸张前面。
将 motor_initialize、motor_stop 和 infrared_proximity 程序复制到机器人上
cd Programs k3put +203 motor_initialize motor_stop infrared_proximity
然后,将 measure_real_speed 程序从示例文件夹复制到机器人上
cd ../Examples/measure_real_speed k3put +203 measure_real_speed
登录机器人
k3go +203
并输入
cd your_username ./motor_initialize
以初始化电机。
在进行速度测量之前,我们需要配置进入和离开纸张时的地面阈值,以及纸张的大小。
要找出地面阈值,请输入
./infrared_proximity
一次是机器人放在白纸上,另一次是机器人放在深色地板上。您将获得如下结果
# On the dark floor
$IRPROXIMITY,0,12496,44,9,8,15,6,43,3,69,48,3195,3021
# On the white sheet of paper
$IRPROXIMITY,0,21438,97,29,28,52,56,127,20,120,99,3977,3973
其中每次测量中的最后两个数字属于地面传感器。进入纸张时使用的阈值 (--floor-threshold-on) 应该略低于在白纸上测量的值,在本例中为 3900。离开纸张时使用的阈值 (--floor-threshold-off) 应该略高于在深色地板上的测量值,在本例中为 3200。
要测试阈值是否有效,将机器人放置在纸张前面约 5 厘米处,并启动
./measure_real_speed --speed 10000 --floor-threshold-on 3900 --floor-threshold-off 3200
机器人应该报告它何时进入和离开纸张,并在纸张后约 5 厘米处停止。如果结果不令人满意,请调整阈值并再次测试。motor_stop 程序可能有助于在 measure_real_speed 程序未检测到纸张边缘的情况下停止机器人。
使用文本编辑器打开 run.pl 并调整地面阈值。如果您没有使用 A4 纸张(纵向),请调整纸张大小。
将机器人放置在纸张前面,并启动
./run.pl
机器人现在将以不同的速度多次在正向和反向方向穿过纸张,结果存储在同一文件夹中的名为 run_results 的文件中。
输入以下命令以处理结果文件
./parse_results.pl < run_results > matlab_run_results
启动 Matlab 并输入
plot_results
除了绘制不同速度设定点的实际速度外,这还将计算并绘制速度系数,即实际速度与速度设定点的比率。
结果速度系数约为 7.1e-6 m/(s * unit),这意味着速度设定点为 10000 对应于 7.1 cm/s。