无人驾驶小课堂 - auto_pilot(2) donkeycar驴车测试及训练

1. 电脑链接 Donkeycar 开始开车

确保电脑 wifi 链接上 树莓派链接的网段。

使用电脑链接上树莓派上的小车,使用 Mac/Linux 电脑上的终端 terminal 或者 Windows 上命令行 Command Line。

ssh pi@

输入密码之后,就通过你的电脑来访问你的小车了。

在小车里面安装应用。

donkey createcar ~/mycar --template donkey2

运行小车。

cd ~/mycar

python manage.py drive

这样你就可以直接打开浏览器看到操作界面了,输入:8887,比如 name.local:8887。打开后,见到如下界面:

无人驾驶小课堂 - auto_pilot(2) donkeycar驴车测试及训练_第1张图片
浏览器看到的donkeycar操作界面

操作建议:

在最上方的 Control Mode 里面有:

- Joystick:

无人驾驶小课堂 - auto_pilot(2) donkeycar驴车测试及训练_第2张图片
Joystick选项中的细节

- Gamepad

这是使用游戏手柄来控制的部分,我们可以参阅链接来进行手柄的设置。

- Device Tilt

这是使用手机本身的平衡仪来控制小车,类似与方向盘的感觉,

前倾是前进、后倾是后退、左倾是左转、右倾是右转。

2. 小车操控的矫正

小车 donkeycar 本身由于是组装的,因此他的左右控制及油门控制多是需要校准的。就像一台自行车,你需要校准一下方向盘是不是歪,以及座位的高低是否合适等等。

我们对小车 donkeycar 的矫正也是左右方向盘的转向 steel 还有油门 throttle 的大小。

STEEL 矫正

1. 打开 config.py 文件。前提是你需要 ssh 在你的电脑上打开 donkeycar 的文档。

nano ~/mycar/config.py

2. 找到汽车上的控制电线,看看它插入PCA板的通道。它应该是 1 或 0 。

3. 运行donkey calibrate --channel 应该是 1 或 0 。

4. 输入360,您应该会看到汽车上的车轮略微移动。如果不输入400或300。这个数字,指代你需要开始控制 steel 的校正了。

5. 确定略微移动了以后,接下来,从这个数字座位起始值,开始输入值+/- 10,找到PWM设置,使您的车一直向左转(选一个你任何的数字,这将是最大左转的数值),返回起始值之后换右转(如果之前是不断减少,那么这次不断增加)。

6. 在 config.py 脚本中输入你选中的最大左转数值及最大右转数值作为STEERING_RIGHT_PWM和STEERING_LEFT_PWM。

THROTTLE 矫正

1. 找到油门端的电缆,看看它进入PCA板的通道。这是你的油门通道。

2. 运行donkey calibrate --channel

3. 提示输入PWM值时输入370。—— 这就是你的零值。

4. 你应该听到你的ESC蜂鸣声,表明它已经准备开始校准。

5. 输入400,您应该看到您的汽车车轮开始前进。如果没有,可能是反向(电路线插反了),尝试输入330,但是不是前进。

6. 继续尝试不同的值,不断+/-10,直到找到合理的最大速度并记住此PWM值。

反转RC汽车有点棘手,因为ESC必须接收反向脉冲,零脉冲,反向脉冲才能开始倒退。要校准反向PWM设置......

1. 使用与上述相同的技术将PWM设置设置为零油门,输入 370。

2. 输入反向值,然后输入零油门值,然后再输入反向值。

3. 输入反向值的+/- 10值以找到合理的反向速度。记住这个反向PWM值。

现在打开 config.py 脚本并输入您汽车的PWM值到throttle_controller部分:

THROTTLE_FORWARD_PWM =全油门前进的PWM值

THROTTLE_STOPPED_PWM =零油门的PWM值

THROTTLE_REVERSE_PWM =全反向油门时的PWM值

3. 小车的数据收集

最好一次性收集10圈没有错误的赛道。

赛道示意图

如果你跑得不好,请立即停止停车以停止录制。一些不好的数据不会影响您的自动驾驶仪。

在收集了10-20圈的良好数据(5-20​​k图像)后,您可以在汽车的ssh会话中使用Ctrl-c停止您的汽车。

收集的数据位于最近的tub文件夹的数据文件夹中。由于Raspberry Pi不是很强大,我们需要将数据传输到PC计算机进行训练。在主机PC上的新终端会话中,使用rsync从raspberry pi复制你的无人驾驶小车文件夹。

rsync -r pi@:~/mycar/data/ ~/mycar/data/


4. 小车的无人驾驶模型训练

在同一个终端中,您现在可以通过将路径传递给该 tub 作为参数,在最新的 tub 上运行训练脚本。你可以选择传递路径掩码,例如 ./data/* 或 ./data/tub_?_17-08-28 来收集多个tub。例如:

python ~/mycar/manage.py train --tub --model ./models/mypilot

你也可以不为训练模型传递任何参数,然后所有 tub 都被用于默认数据目录。

python ~/mycar/manage.py train --model ~/mycar/models/mypilot

现在,你可以再次使用 rsync 将你的 model 移回你的小车。

rsync -r ~/mycar/models/ pi@:~/mycar/models/

5. 实现小车的无人驾驶!

在小车使用模型进行无人驾驶!

python manage.py drive --model~ / mycar / models / mypilot

6. 常见问题

1. 一定要确保你电脑安装的donkeycar版本和 raspberry pi 上的一样,不然在训练时会遇到很多问题。

2.

 问:Requirement.parse('imageio<2.5,>=2.0'), {'moviepy'})

建议:可以将 moviepy 卸载后降级。

3. 

问:ValueError: `validation_steps=None` is only valid for a generator based on the `keras.utils.Sequence` class. Please specify `validation_steps` or use the `keras.utils.Sequence` class.

建议:将keras降级,确保donkeycar版本和电脑版本一致。

4. 再确保了其他问题都被排除之后,可以重新采集数据再试一下 :)

㊗️玩乐愉快~

你可能感兴趣的:(无人驾驶小课堂 - auto_pilot(2) donkeycar驴车测试及训练)