JETANK AI Kit 教程六、目标巡线
来自Waveshare Wiki
JETANK AI Kit 教程目录
- JETANK AI Kit 教程一、组装小车
- JETANK AI Kit 教程二、安装镜像
- JETANK AI Kit 教程三、电机驱动
- JETANK AI Kit 教程四、远程遥控
- JETANK AI Kit 教程五、自主避障
- JETANK AI Kit 教程六、目标巡线
- JETANK AI Kit 教程七、舵机驱动
- JETANK AI Kit 教程八、JETANK控制
- JETANK AI Kit 教程九、运动检测
- JETANK AI Kit 教程十、颜色识别
- JETANK AI Kit 教程十一、颜色追踪
- JETANK AI Kit 教程十二、手柄控制
- JETANK AI Kit WIKI 主页
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_build_trt.ipynb文件
- 直接运行程序使用使用 TensorRT 优化模型,程序正常运行后会生成best_steering_model_xy_trt.pth文件。
第四步:自主巡线
- 在浏览器地址栏输入http://<jetbot_ip_address>:8888连接到小车,找到Notebooks/road_following,打开live_demo_trt.ipynb文件
- 运行程序加载模型,打开摄像头实时显示图像
- 程序中有四个参数,可以通过拖动滑条改变参数的值,如果需要实现巡线功能需要根据实际情况调试参数,使巡线的效果更好。
- 此输出展示jetbot的当前运行情况,x,y表示当前图像预测的x,y值,可以表示转动角度。speed表示jetbot直线速度,steering表示转向速度。
- 最后运行程序小车会转动,通过调节speed gain 滑条启动jetbot. 【注意】, speed值尽量小一点,否则速度太快容易冲出线外。当jetbot沿线运行,但是左右摆动幅度太大,可以减小steering的值,是jetbot运动更加平滑,摆动幅度更小。
【提示】:由于履带机器人转向摩擦力较大,巡线时不会很平滑运动。