jetracer_pro_2GB AI Kit系统安装使用说明

使用Jetson Nano开发者套件

如果使用JetsonRacer AI Kit的话,首先需要组装小车,组装小车这一步也比较简单,可以参照官网的小车组装pdf文档即可。
链接地址:

  • https://www.waveshare.net/w/upload/9/96/Jetracer_pro_Assembly_CN.pdf在这里插入图片描述
    组装后的小车:
    在这里插入图片描述

1. 安装镜像

准备工作

  1. Jetson Nano 开发者套件将 microSD 卡用作启动设备和主存储器。一般会提供一个大容量快速存储卡(64 GB内存卡)。
  2. 下载 Jetson Nano 开发者套件 SD 卡镜像,并留意其在计算机上的保存位置。
    镜像文件地址
    在这里插入图片描述

将镜像写入microSD卡

如果不是第一次使用SD卡,SD卡中有其他文件,请先做好备份工作,然后格式化SD卡。使用 SD 协会的 SD Memory Card Formatter 格式化 microSD 卡。

  1. 下载、安装并启动 Windows 版 SD Memory Card Formatter
  2. 选择卡驱动器
  3. 选择“Quick format”(快速格式化)
  4. 将“Volume label”(卷标)留空
  5. 单击“Format”(格式化)开始格式化,然后在警告对话框中单击“Yes”(是)
    在这里插入图片描述
    接下来选择是
    在这里插入图片描述
    镜像文件的写入
  • 下载、安装并启动Etcher
    在这里插入图片描述
  • 单击“Select image”(选择镜像),然后选择先前下载的压缩镜像文件,将压缩文件解压
  • 插入 microSD 卡(若尚未插入)
  • 单击“Select drive”(选择驱动器),并选择正确设备
    在这里插入图片描述
  • 单击“Flash!”(闪存!)。如果 microSD 卡通过 USB3 连接,Etcher 写入和验证大约会需要 10 分钟
  • Etcher 操作完成后,Windows 可能会提示您它不知如何读取 SD 卡。此时只需单击“Cancel”(取消),然后删除 microSD 卡即可。
    在这里插入图片描述

2. 进入系统

将 microSD 卡(已写入系统映像)插入 Jetson Nano 模块下侧的插槽中。(SD卡槽位于Jetson Nano核心板的背面)
在这里插入图片描述

启动Jetson Nano并通过USB连接

设置步骤:

  1. 将 microSD 卡(已写入系统映像)插入 Jetson Nano 模块下侧的插槽中。
  2. 拨开电源开关,等待 1 分钟,以便开发者套件启动(这里最好多等一会)。
    线将Jetson nano 的micro USB接到电脑(数据线不是电源线),打开浏览器并导航到 192.168.55.1:8888 ,并使用默认密码 jetbot 登录 Jupyter Lab。(这里开发板不一样默认的密码也不一样,有jetson、Jetson Nano、jetbot几种)
    在这里插入图片描述
    成功登陆Jupyter Lab
    在这里插入图片描述

将JetRacer连接到WIFI

首次启动时,这里不能直接使 在Jupyter Lab中打开终端Terminal,在此终端中连接网络。
可以用ssh的方式来连接小车。首次启动可以使用micro USB连接小车和电脑,使用COM端口的方式连接小车。
在这里插入图片描述
登录名和密码都是jetbot
输入以下命令可以扫描可用的WiFi网络,并找到要连接的WIFI名称

sudo nmcli device wifi list

连接到选定的WIFI网络,其中<ssid_name>, 替换为你的WIFI账号密码。

sudo nmcli device wifi connect <ssid_name> password <password> 

运行如下命令可以查询WIFI 接口wlan0 的 IP 地址。断开USB连接并重启系统也可以在OLED显示器上显示IP地址

ifconfig

断电,重启小车,micro USB线不再需要了,拔了收起来就行。之后的操作都是直接用wifi连接的。

重启小车后,显示器中会有小车的ip信息,
在这里插入图片描述
然后就可以在浏览器中输入http://<jetson_ip_address>:8888连接到小车,其中jetson_ip_address为OLED上显示的实际IP, 比如:192.168.43.129:8888 使用密码 jetbot 登录Jupyter Lab。(注:电脑和小车要连在同一个网络下)
在这里插入图片描述
这里才算正式配置好网络,使用Jupyter Lab网页连接和SSH都可以,但是这两个是不同的,第一个登陆进去是root用户,你是不能进行任何修改更新的,第二个才是普通用户jetbot,一般我们使用此用户进行之后的一切操作。
看下边的对比:
Jupyter Lab网页连接
在这里插入图片描述
SSH
在这里插入图片描述

安装更新JetCard Python包

查看电脑上有没有下边几个文件,没有的话需要重新下载安装,如果有则可跳过这一步,进入配置电源模式。
在这里插入图片描述

执行以下命令更新Jetcard Python包。

cd $HOME 
mkdir ws 
cd ws 
git clone https://ghproxy.com/https://github.com/waveshare/jetcard 
cp jetcard/jetcard/ads1115.py ~/jetcard/jetcard/ 
cp jetcard/jetcard/ina219.py ~/jetcard/jetcard/ 
cp jetcard/jetcard/display_server.py ~/jetcard/jetcard/ 
cp jetcard/jetcard/stats.py ~/jetcard/jetcard/ 
cd ~/jetcard 
sudo pip3 uninstall jetcard -y 
sudo reboot  #重启 
cd ~/jetcard 
sudo python3 setup.py install

执行以下命令安装JetCam Python包

cd $HOME 
git clone https://github.com/NVIDIA-AI-IOT/jetcam 
cd jetcam 
sudo python3 setup.py install 

执行以下命令安装torch2trt Python包

cd $HOME 
git clone https://ghproxy.com/https://github.com/NVIDIA-AI-IOT/torch2trt 
cd torch2trt
sudo python3 setup.py install  

在终端中执行以下命令安装JetRacer软件包

cd $HOME 
git clone -b ws/pro https://github.com/waveshare/jetracer 
cd jetracer 
sudo python3 setup.py install

配置电源模式

为了防止Jetson Nano消耗的电量超过电池供电量,我们将其设置为5W模式 打开终端并输入以下命令设置5W模式:

sudo nvpmodel -m1
nvpmodel -q

在这里插入图片描述
重启小车,同时OLED上也会显示 MODE: 5W。

3. 电机驱动

Basic Motion

在浏览器地址栏输入http://<jetbot_ip_address>:8888连接到小车,左侧打开/jetracer/notebooks/。打开basic_motion.ipynb文件 带有lpynb后缀的文件为lpython Notebook文件,包括注释文本和python程序。可以通过点击Run->Run Select Cells或者点击运行快捷图标▶来运行单段程序。 【注意】文本中有详细的程序注释说明,认真阅读注释即可明白程序功能
在这里插入图片描述
运行语句car.steering = 0时,小车舵机会转向。0表示向前,1表示轮子转到最左边,-1表示轮子转到最右边。改为不同的值轮子转到不同的方向,数值范围为[-1,1]
如下设置,小车前轮向左偏转

car.steering = 0.3

在这里插入图片描述
运行此段程序后,会输出转向增益car.steering_gain和转向初始位移car.steering_offset。 转向增益car.steering_gain可以表示轮子可以转动的最大角度 转向初始位移car.steering_offset 可表示轮子初始偏移,当car.steering = 0时,小车没有直线行驶时可以通过调整转向拉杆长度或者修改转向初始位移的值可使小车直线行驶。
car.throttle 为油门大小,范围为[-1,1],0表示停止,1表示最大速度前进,-1表示最大速度后退,修改次值后运行程序则后轮会转动。 car.throttle_gain 为油门增益,可以表示小车可以运动的最大速度,当car.throttle_gain = 1且car.throttle =1 时则小车可以运行到最高速度。

总结:本节主要学习如何控制小车运动,小车分为两部分控制,一部分为转向steering控制小车转弯,另外部分为油门throttle控制后轮转速。 转向增益car.steering_gain控制轮子最大转动范围,转向初始位移car.steering_offset可以补偿机械组装带来的转向误差。 油门增益car.throttle_gain 控制后轮最大转速范围。

4. 遥控器控制小车

在浏览器地址栏输入http://<jetbot_ip_address>:8888连接到小车,左侧打开/jetracer/notebooks/。打开teleoperation.ipynb文件 将游戏手柄接收器插到电脑USB口,注意:接收器是要接到电脑而不是接到jetson nano上,游戏手柄需要接到打开JupyterLab网页的设备上

手柄需要按下home键,使遥控手柄两个灯亮的状态
在这里插入图片描述
打开GamePad手柄测试网页,看下是否检查到遥控手柄。记下对应设备的INDEX数值为多少 按下遥控手柄按键对应的数值会变化,记下对应按键的名称。
在这里插入图片描述
运行这段代码后窗口会输出游戏手柄对应的按键。注意程序中的index需要修改为实际遥控手柄对应的值,在刚才打开的网页中可以看到对应的INDEX。按下按键对应的按键图标会提示按键已按下
在这里插入图片描述
此处设置油门最大速度为0.2,为了后面采集数据方便限制小车运动过快。设置转向偏移为0.18,这个值根据实际情况调节,直到在不转向的情况下小车可以直线行驶
在这里插入图片描述
修改axes值对应不同的按钮,此处为方便遥控设为axes[0], axels[5] 遥控器按键buttons[7]

运行程序之后即可通过遥控手柄控制小车。Asex[0]控制前轮转向,Asex[1]控制后轮转速左边摇杆左右方向控制小车前轮转向,右边摇杆上下方向控制小车后轮速度
在这里插入图片描述
注意:由于电调的原因,小车后退需要双击两下按键才会倒车。“正反转带刹车”模式采用双击式倒车方式,即油门摇杆在第一次从中点区域推至反向区域时,电机只是刹车,不会产生倒车动作;当油门摇杆快速回到中立点区域并第二次推至反向区域时,如果此时电机已停止,则产生倒车动作,如果电机 未停止,则不会倒车,仍是刹车,需要再次将油门回到中点并推向反向区,此时如果电机已经停止才会倒车,这样做的目的是防止车辆行驶过 程中因多次点刹而造成误倒车。

5. 小车自主循线设计

数据采集及模型训练

完成以上步骤,小车可以在遥控器下运行,是无法自主在车道线上行驶的。数据是模型训练的重要组成部分,这一部分将介绍如何使用小车车进行数据的采集。只有采集了车道线的数据后,才能进行下一部分。
在浏览器中登录Jupyter Lab,也就是输入http://<jetson_ip_address>:8888连接到小车,找到/jetracer/notebooks/。打开interactive-regression.ipynb文件。
在这里插入图片描述
如上图所示,此段代码开启摄像头,设置图像分辨率为224*224。
**注意:关于摄像头的使用,运行过一次摄像头之后,再次运行加载摄像头很可能会卡Bug,这时候直接重启小车是最简单的方法。**如果不想重启小车,需要在终端运行此语句重启摄像头,这种方法时灵时不灵。

sudo systemctl restart nvargus-daemon

直接运行interactive-regression.ipynb程序所有单元,程序中会显示如下界面:
在这里插入图片描述
此时可以将小车放到赛道上,同时打开teleoperation.ipynb程序运行,使遥控手柄可以控制小车运动。 控制小车沿着赛道运行,每移动一小段位置,就用鼠标移动到图片中小车理想的运行路径上点击一下保存图片,控制小车沿着赛道拍摄10圈(采集300张左右就可以了,多采集一点弯道的数据)。
在这里插入图片描述
采集好数据后,将epochs的值选择为15左右,然后点击train,训练15轮。 训练好数据后可以点击evaluate 评估训练模型,如果采集的数据没有问题,可以在最左边的图像中看到当前小车位置的理想方向。 注意采集的数据需将小车沿轨道移动到不同的位置,偏移和方向,尽可能沿理想路径的方向上选择最远的点保存,以保证小车不会离开轨道或碰撞物体。

循线代码运行

在这一章中,我们使用训练的模型实现自动驾驶。在浏览器地址栏输入http://<jetson_ip_address>:8888连接到小车,找到jetracer/noteboot/。打开road_following.ipynb文件。
在这里插入图片描述
程序运行到此段后目录中会生产使用touch2trt转换和优化的模型文件road_following_model_trt.pth。这个优化过程可能需要几分钟才能完成。
在这里插入图片描述
此段程序是将图像处理的输出output再经过PD控制小车运行。 car.steering_offset 参数是修正小车机械误差导致的小车初始状态偏移,这个参数需要改为小车实际的数值。 car.throttle 设置小车运行最大速度(0.18最优),次值设置过大会导致小车容易跑出轨道。 Kp,Kd 为PID参数,此处紧使用PD调节。可以根据小车实际运行效果调试此参数。

6. 相关资料整理

如果你不想使用命令行的方式访问Jetson Nano,又不想再多添加一个显示器,可以选择搭建VNC Server,网上搜到了一篇搭建步骤:

开发指南书:
在这里插入图片描述

参考资料:

  • https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit#next-projects
  • https://www.waveshare.net/wiki/JetRacer_2GB_AI_Kit
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello689

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值