从烧录系统开始Jetson Nano无人车开发记录

从烧录系统开始Jetson Nano无人车开发记录(一)

本章介绍硬件选型与系统烧录环境配置

前言

搭建一个四轮麦克纳姆移动机器人平台,用于团队日常学习,算法复现和开发。

将在下文详细介绍从系统烧录开始,搭建平台环境的步骤。


一、硬件选型

主控:Jetson Nano B01国产开发者套件(4GB)    一套(包括7寸显示器、TF卡、读卡器、电源适配器、亚克力板、无线网卡、散热风扇等)

底盘:麦克纳姆轮底盘套件    一套(选配了镭神N10激光雷达)

相机:OAK-D-Lite

二、Nano的开机与装配

1、烧写固件

使用电源适配器给Nano主板供电(注意要保证选择供电方式跳线帽的正确连接)并接显示器,准备一台装有Ubuntu的电脑(虚拟机也可以),用数据线(安卓数据线)连接Nano与电脑。

使用杜邦线,将第二脚和第三脚短接进入烧录模式,再上电。

打开固件烧录工具所在目录,运行可执行文件,进行固件烧录。

当Nano的显示器上最后一行显示4.4#_是,就说明固件烧录成功。

2、烧写TF卡的系统并开机

这一步一定要注意镜像文件要选择与自己主板匹配的。如果是官方的Nano主板,去nvidia官网下载最新版就可以;如果是国产的,把就去问商家要一个稳定的镜像,千万不要用官方的镜像,烧录之后开不了机的。最小选择32G的,大一些当然更好。

1、对TF卡进行格式化

直接在win10的磁盘管理里格式化即可,使用SDFormatter最好。

2、烧录

我这里使用的是balenaEtcher,大家也可以使用其他烧录软件,比如Win32DiskImager等。

balenaEtcher里的检查环节是可以跳过的,如果时间宽裕的话,等一下即可,在烧录时,文件资源管理器可能弹出很多的警告,不用管就好,等烧录完成之后,拔出读卡器即可。

3、释放TF卡空间

下载一个磁盘管理工具,将tf卡除系统以外的存储空间释放出来。

3、风扇的安装及使用

1、连接好风扇的供电线,安装到散热片上

2、控制方式

2.1直接使用命令行

sudo sh -c 'echo 255 > /sys/devices/pwm-fan/target_pwm'    #最大速度开启风扇
sudo sh -c 'echo 0 > /sys/devices/pwm-fan/target_pwm'    #关闭风扇

2.2jtop的下载(开机自启)

确保pip已安装(如何安装python-pip在本文后续第5部分有说明,建议先执行完第5部分全部内容)

sudo -H pip install jetson-stats

重启nano,在终端中输入jtop即可

从烧录系统开始Jetson Nano无人车开发记录_第1张图片

按5即可进入控制风扇的界面,m加速,p减速,除此之外jtop这个工具还有很多功能,可以查看CPU、GPU、网卡等工作信息,比较方便。

从烧录系统开始Jetson Nano无人车开发记录_第2张图片 

2.3程序自动控制(github上的开机自启且通过温度调节转速)

GitHub - Pyrestone/jetson-fan-ctl: Automagic fan control for the Nvidia Jetson Nano

这个是在逛github时发现的一个有意思的软件,温度小于20°自动关闭,温度大于50°风扇以最大转速工作。配置信息在config.json文件中,各位根据自己需求更改即可。

从烧录系统开始Jetson Nano无人车开发记录_第3张图片​ 

从github官网clone下载后(如何从github下载资源我就不赘述喽)进入对应文件夹,执行脚本安装软件,安装前要确保python3-dev已经安装(如何安装python3-dev在本文后续第5部分有说明,建议先执行完第5部分全部内容),如果要卸载就执行卸载的脚本,uninstall.sh即可。

sudo ./install.sh

4、apt换源

换源可以说是linux开发的第一要务,基操。可以节省很多时间。

1、备份

cp /etc/apt/sources.list /etc/apt/sources.list.bf

2、打开/etc/apt目录下的sources.list文件,删除全部并更换为以下内容(我这里用的是中科大的镜像源,其他也可以),执行sudo apt update更新即可。

deb https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main restricted univers    e multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main restricted     universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main restrict    ed universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main restricte    d universe multiverse

5、pip和dev的安装及python换源

1、pip与dev的安装

sudo apt-get install python3-pip python3-dev
sudo apt-get install python2-pip python2-dev

2、python的pip换源

执行以下代码,在家目录下创建.pip的隐藏文件夹,并切换到.pip里创建pip.conf文件

cd ~
mkdir .pip
cd .pip

创建pip.conf文件(不会使用vim的朋友,可以使用gedit等)

vim pip.conf

并写入以下内容(我写的是清华的镜像源,其他也可,例如中科大、阿里等),保存退出

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
timeout = 120

6、ros的安装

在终端中执行以下命令进行ros的安装(我安装的是melodic版,适配ubuntu18.04):

1、添加ROS软件源 

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2、添加密钥

sudo apt-key adv --keyserver 'hkp:/ OpenPGP Keyserver' --recv-keyC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3、更新软件源并下载

sudo apt-get update
sudo apt-get install ros-melodic-desktop-full

4、安装并初始化rosdep

sudo pip install rosdep
sudo rosdep init
rosdep update

上面的shell在执行时大概率会出现time out的报错,是由于访问外网超时引起的,有耐心的小伙伴们可以反复执行,直到不报错。也可以执行下面的,安装rosdepc,其实是一个东西,rosdepc就是用国内的鱼香ros下载,速度会很快。(鱼香ROS真的香,用过的都说好)

sudo pip install rosdepc
sudo rosdepc init
rosdepc update

5、依赖包安装

sudo apt-get install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

6、添加环境变量

echo "source /opt/ros/melodic/setup.bash" >>~/.bashrc
source ~/.bashrc

7、运行海龟demo检查ros是否正常

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

7、deathai的安装

注意:OAK相机必须使用USB3.0的数据线

具体步骤请参考官方文档

1.1.5. Jetson平台 — DepthAI Docs 0.3.0.0 documentation

要注意的是,jetson安装DepthAI和普通Ubuntu系统不同,一定要按照官网的步骤,配置虚拟环境。使用OAK相机时,执行

workon depthAI

进入配置好的虚拟环境中,再进行开发或使用。如下图:

在运行install_requirements.py文件进行安装时,有一个压缩包是下载不下来的,需要科学上网(访问外网),将此脚本文件内对应下载该安装包的语段注释掉就可以,或者从可以访问的网站上下载下来,放在这个文件夹里,当要下载的包已存在时,脚本会自动跳过安装下一个。

从烧录系统开始Jetson Nano无人车开发记录_第4张图片

8、Docker的安装

可以参考docker官网的步骤

Install Docker Engine on Ubuntu | Docker Documentation

依次执行以下命令

sudo apt update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
  "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

将当前用户添加到docker组,添加后就不用每次加sudo权限

sudo groupadd docker    #添加docker group
sudo gpasswd -a ${USER} docker    #将当前用户添加到docker组
sudo service docker restart    #重启docker服务

在终端输入

docker -v

即可查看自己安装的docker的版本信息


总结

    以上就是今天跟大家分享的内容,主要是我使用Linux(Ubuntu)进行开发时的一些常用配置,本文是针对英伟达Jetson Nano B01这款开发板。后续会继续更新小车开发的内容和一些开发技巧,例如:上位机与下位机的通信(串口通信);在小车上部署autoware.ai与一些自动驾驶中以及比较成熟的算法,主要包括环境感知和路径规划,目前计划有:YoLo系列,deepsort,slam等;vim的使用及插件的安装;tmux的使用;docker常用命令,git常用命令等。完全看心情,哈哈哈。都会整理出来,供大家参考。各位如有疑问欢迎评论留言即可,由于本人水平有限,出现错误也是在所难免,各位批评指正文章中的错误。

    如需转载,请联系本人,注明出处即可。

你可能感兴趣的:(python,开发语言)