1. 电脑链接 Donkeycar 开始开车
确保电脑 wifi 链接上 树莓派链接的网段。
使用电脑链接上树莓派上的小车,使用 Mac/Linux 电脑上的终端 terminal 或者 Windows 上命令行 Command Line。
ssh pi@<your_pi_ip_address>
输入密码之后,就通过你的电脑来访问你的小车了。
在小车里面安装应用。
donkey createcar ~/mycar --template donkey2
运行小车。
cd ~/mycar
python manage.py drive
这样你就可以直接打开浏览器看到操作界面了,输入<your_pi_ip_address>:8887,比如 name.local:8887。打开后,见到如下界面:
浏览器看到的donkeycar操作界面操作建议:
在最上方的 Control Mode 里面有:
- Joystick:
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 <your_steering_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 <your_throttle_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-20k图像)后,您可以在汽车的ssh会话中使用Ctrl-c停止您的汽车。
收集的数据位于最近的tub文件夹的数据文件夹中。由于Raspberry Pi不是很强大,我们需要将数据传输到PC计算机进行训练。在主机PC上的新终端会话中,使用rsync从raspberry pi复制你的无人驾驶小车文件夹。
rsync -r pi@<your_pi_ip_address>:~/mycar/data/ ~/mycar/data/
4. 小车的无人驾驶模型训练
在同一个终端中,您现在可以通过将路径传递给该 tub 作为参数,在最新的 tub 上运行训练脚本。你可以选择传递路径掩码,例如 ./data/* 或 ./data/tub_?_17-08-28 来收集多个tub。例如:
python ~/mycar/manage.py train --tub <tub folder names comma separated> --model ./models/mypilot
你也可以不为训练模型传递任何参数,然后所有 tub 都被用于默认数据目录。
python ~/mycar/manage.py train --model ~/mycar/models/mypilot
现在,你可以再次使用 rsync 将你的 model 移回你的小车。
rsync -r ~/mycar/models/ pi@<your_ip_address>:~/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. 再确保了其他问题都被排除之后,可以重新采集数据再试一下 :)
㊗️玩乐愉快~
网友评论