JetBot 系列教程之目标巡线
来自Waveshare Wiki
JetBot 例程使用教程
- JetBot 系列教程之登录JupyterLab
- JetBot 系列教程之电机驱动
- JetBot 系列教程之手柄遥控
- JetBot 系列教程之OLED显示
- JetBot 系列教程之自主避障
- JetBot 系列教程之目标巡线
- JetBot ROS AI Kit 主页
步骤1、在JetBot上收集数据
- 在这一章中,我们同样需要使用收集数据,巡线,自主运行这写步骤来实现自主巡线功能。
- 在浏览器地址栏输入http://<jetbot_ip_address>:8888连接到小车,找到Notebooks/road_following/。打开data_collection.ipynb文件
- 运行程序后会显示一段youtube上的演示视频,国内客户可能观看不了视频
- 程序运行到此处会显示当前摄像头的测试图像。右边图像会显示一个绿点和蓝色线。用于表示小车应该运行的路线。为方便后面的操作,我们将输出窗口用新窗口打开。
- 下面程序和游戏手柄遥控章节类似。修改index为实际手柄对应的标号。修改axes为要控制的按键。
- 【注意】此处的axes按键必须Wie模拟按键,即可以输出小数。如果使用我们配置的游戏手柄,则需要按下HOME键,切换模式。使得指示灯为两个灯亮的状态
- 修改button值,设置对应的按键为拍摄图片按键
- 下面开始收集数据,将小车放置到线的不同位置,控制手柄的方向键,将绿色点拖到黑线上。蓝色线即表示小车应该运行的方向。然后按下按键拍照收集图片。尽可能多的收集各种情况的图片,count表示已经拍摄的图片数量
- 【注意】使用手柄控制绿点位置可能操作很不方便,可以通过拖动steering和throttle两个滑条来改变位置。
- 最后运行程序保存拍摄图片,当前目录下生成一个zip压缩文件。
步骤2、训练神经网络
- 在浏览器地址栏输入http://<jetbot_ip_address>:8888连接到小车,找到Notebooks/road_following, 打开train_model.ipynb文件。
- 如果使用的是上一节手机到的数据,不需要解压,图片文件已经在当前目录下。
- 如果需要另外解压文件,需要将road_following.zip改成对应的ZIP文件名,否则会提示文件不存在
- 下载神经模型,过程可能比较久
- 最后训练神经模型,当前目录下会生成best_steering_model_xy.pth文件
步骤3、自主巡线
- 在浏览器地址栏输入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运动更加平滑,摆动幅度更小。