JetBot AI Kit 教程七、目标巡线

Road-following

第一步:在JetBot上收集数据

在这一章中,我们同样需要使用收集数据,巡线,自主运行这写步骤来实现自主巡线功能。

  • 在浏览器地址栏输入http://<jetbot_ip_address>:8888连接到小车,找到Notebooks/road_following/。打开data_collection.ipynb文件

  • 运行程序后会显示一段youtube上的演示视频,国内客户可能观看不了视频

  • 程序运行到此处会显示当前摄像头的测试图像。右边图像会显示一个绿点和蓝色线。用于表示小车应该运行的路线。为方便后面的操作,我们将输出窗口用新窗口打开。
  • 下面程序和游戏手柄遥控章节类似。修改index为实际手柄对应的标号。修改axes为要控制的按键。

【注意】此处的axes按键必须Wie模拟按键,即可以输出小数。如果使用我们配置的游戏手柄,则需要按下HOME键,切换模式。使得指示灯为两个灯亮的状态


  • 修改button值,设置对应的按键为拍摄图片按键

  • 下面开始收集数据,将小车放置到线的不同位置,控制手柄的方向键,将绿色点拖到黑线上。蓝色线即表示小车应该运行的方向。然后按下按键拍照收集图片。尽可能多的收集各种情况的图片,count表示已经拍摄的图片数量

【注意】使用手柄控制绿点位置可能操作很不方便,可以通过拖动steering和throttle两个滑条来改变位置。

  • 最后运行程序保存拍摄图片,当前目录下生成一个zip压缩文件。

第二步:训练神经网络

  • 在浏览器地址栏输入http://<jetbot_ip_address>:8888连接到小车,找到Notebooks/road_following, 打开train_model.ipynb文件。
  • 如果使用的是上一节手机到的数据,不需要解压,图片文件已经在当前目录下。
  • 如果需要另外解压文件,需要将road_following.zip改成对应的ZIP文件名,否则会提示文件不存在

  • 下载神经模型,过程可能比较久

  • 最后训练神经模型,当前目录下会生成best_steering_model_xy.pth文件

第三步:自主巡线

  • 在浏览器地址栏输入http://<jetbot_ip_address>:8888连接到小车,找到Notebooks/road_following,打开live_demo.ipynb文件
  • 运行程序加载模型,打开摄像头实时显示图像
  • 程序中有四个参数,可以通过拖动滑条改变参数的值,如果需要实现巡线功能需要根据实际情况调试参数,使巡线的效果更好。

  • 此输出展示jetbot的当前运行情况,x,y表示当前图像预测的x,y值,可以表示转动角度。speed表示jetbot直线速度,steering表示转向速度。

  • 最后运行程序小车会转动,通过调节speed gain 滑条启动jetbot. 【注意】, speed值尽量小一点,否则速度太快容易冲出线外。当jetbot沿线运行,但是左右摆动幅度太大,可以减小steering的值,是jetbot运动更加平滑,摆动幅度更小。

TAG: 树莓派5 PCIE M.2 NVME SSD固态硬盘X1000 2242 2230 RS485转RJ45 Pico-DALI2扩展板适用于ESP32 C6 S3 DALI通信自定义控制多组灯光 Modbus-RTU-Relay-32CH 树莓派5 RTC电池盒 TOF测距 X1008树莓派5 PCIe转2.5寸3.5寸SATA HDD/SSD双硬盘扩展板 串口屏 USB转RS485 TTGO T-Echo NRF52840 SX1262 LoRa收发器SoftRF/Meshtastic BME280 GPS GNSS L76K 1.54电子墨水屏兼容LILYGO 树莓派5寸LCD显示屏1024x600大盖板全贴合电容触摸屏HDMI电脑 树莓派RP2040 LED矩阵 15.6寸双显示屏 笔记本电脑扩展屏 LCD 1080P 内置重力感应 喇叭 ESP32-H2 Zigbee 树莓派5 RTC教程 Milk-V Duo RJ45教程 树莓派1.3寸LCD ESP32舵机驱动板 Modbus RTU工业级8路导轨式模拟量采集模块 DC 7~36V宽电压供电 支持电压电流采集 ESP32 S3 CAN