无人驾驶小课堂|无人驾驶小课堂 - auto_pilot(2) donkeycar驴车测试及训练
1. 电脑链接 Donkeycar 开始开车
确保电脑 wifi 链接上 树莓派链接的网段。
使用电脑链接上树莓派上的小车,使用 Mac/Linux 电脑上的终端 terminal 或者 Windows 上命令行 Command Line。
ssh pi@输入密码之后,就通过你的电脑来访问你的小车了。
在小车里面安装应用。
【无人驾驶小课堂|无人驾驶小课堂 - auto_pilot(2) donkeycar驴车测试及训练】donkey createcar ~/mycar --template donkey2运行小车。
cd ~/mycar这样你就可以直接打开浏览器看到操作界面了,输入
python manage.py drive
文章图片
浏览器看到的donkeycar操作界面 操作建议:
在最上方的 Control Mode 里面有:
- Joystick:
文章图片
Joystick选项中的细节 - Gamepad
这是使用游戏手柄来控制的部分,我们可以参阅链接来进行手柄的设置。
- Device Tilt
这是使用手机本身的平衡仪来控制小车,类似与方向盘的感觉,
前倾是前进、后倾是后退、左倾是左转、右倾是右转。
2. 小车操控的矫正 小车 donkeycar 本身由于是组装的,因此他的左右控制及油门控制多是需要校准的。就像一台自行车,你需要校准一下方向盘是不是歪,以及座位的高低是否合适等等。
我们对小车 donkeycar 的矫正也是左右方向盘的转向 steel 还有油门 throttle 的大小。
STEEL 矫正
1. 打开 config.py 文件。前提是你需要 ssh 在你的电脑上打开 donkeycar 的文档。
nano ~/mycar/config.py2. 找到汽车上的控制电线,看看它插入PCA板的通道。它应该是 1 或 0 。
3. 运行donkey calibrate --channel
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值3. 小车的数据收集 最好一次性收集10圈没有错误的赛道。
THROTTLE_STOPPED_PWM =零油门的PWM值
THROTTLE_REVERSE_PWM =全反向油门时的PWM值
赛道示意图 如果你跑得不好,请立即停止停车以停止录制。一些不好的数据不会影响您的自动驾驶仪。
在收集了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你也可以不为训练模型传递任何参数,然后所有 tub 都被用于默认数据目录。--model ./models/mypilot
python ~/mycar/manage.py train --model ~/mycar/models/mypilot现在,你可以再次使用 rsync 将你的 model 移回你的小车。
rsync -r ~/mycar/models/ pi@5. 实现小车的无人驾驶! 在小车使用模型进行无人驾驶!:~/mycar/models/
python manage.py drive --model~ / mycar / models / mypilot6. 常见问题 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. 再确保了其他问题都被排除之后,可以重新采集数据再试一下 :)
祝?玩乐愉快~
推荐阅读
- 一个小故事,我的思考。
- 家乡的那条小河
- 一个人的碎碎念
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- 昨夜小楼听风
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 2019.4.18感恩日记
- 那件我们忽略的小事叫感恩
- 你有婚内虐待行为吗()