本章介绍硬件选型与系统烧录环境配置
搭建一个四轮麦克纳姆移动机器人平台,用于团队日常学习,算法复现和开发。
将在下文详细介绍从系统烧录开始,搭建平台环境的步骤。
一、硬件选型
主控:Jetson Nano B01国产开发者套件(4GB) 一套(包括7寸显示器、TF卡、读卡器、电源适配器、亚克力板、无线网卡、散热风扇等)
底盘:麦克纳姆轮底盘套件 一套(选配了镭神N10激光雷达)
相机:OAK-D-Lite
使用电源适配器给Nano主板供电(注意要保证选择供电方式跳线帽的正确连接)并接显示器,准备一台装有Ubuntu的电脑(虚拟机也可以),用数据线(安卓数据线)连接Nano与电脑。
使用杜邦线,将第二脚和第三脚短接进入烧录模式,再上电。
打开固件烧录工具所在目录,运行可执行文件,进行固件烧录。
当Nano的显示器上最后一行显示4.4#_是,就说明固件烧录成功。
这一步一定要注意镜像文件要选择与自己主板匹配的。如果是官方的Nano主板,去nvidia官网下载最新版就可以;如果是国产的,把就去问商家要一个稳定的镜像,千万不要用官方的镜像,烧录之后开不了机的。最小选择32G的,大一些当然更好。
1、对TF卡进行格式化
直接在win10的磁盘管理里格式化即可,使用SDFormatter最好。
2、烧录
我这里使用的是balenaEtcher,大家也可以使用其他烧录软件,比如Win32DiskImager等。
balenaEtcher里的检查环节是可以跳过的,如果时间宽裕的话,等一下即可,在烧录时,文件资源管理器可能弹出很多的警告,不用管就好,等烧录完成之后,拔出读卡器即可。
3、释放TF卡空间
下载一个磁盘管理工具,将tf卡除系统以外的存储空间释放出来。
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即可
按5即可进入控制风扇的界面,m加速,p减速,除此之外jtop这个工具还有很多功能,可以查看CPU、GPU、网卡等工作信息,比较方便。
2.3程序自动控制(github上的开机自启且通过温度调节转速)
GitHub - Pyrestone/jetson-fan-ctl: Automagic fan control for the Nvidia Jetson Nano
这个是在逛github时发现的一个有意思的软件,温度小于20°自动关闭,温度大于50°风扇以最大转速工作。配置信息在config.json文件中,各位根据自己需求更改即可。
从github官网clone下载后(如何从github下载资源我就不赘述喽)进入对应文件夹,执行脚本安装软件,安装前要确保python3-dev已经安装(如何安装python3-dev在本文后续第5部分有说明,建议先执行完第5部分全部内容),如果要卸载就执行卸载的脚本,uninstall.sh即可。
sudo ./install.sh
换源可以说是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
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
在终端中执行以下命令进行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
注意:OAK相机必须使用USB3.0的数据线
具体步骤请参考官方文档
1.1.5. Jetson平台 — DepthAI Docs 0.3.0.0 documentation
要注意的是,jetson安装DepthAI和普通Ubuntu系统不同,一定要按照官网的步骤,配置虚拟环境。使用OAK相机时,执行
workon depthAI
进入配置好的虚拟环境中,再进行开发或使用。如下图:
在运行install_requirements.py文件进行安装时,有一个压缩包是下载不下来的,需要科学上网(访问外网),将此脚本文件内对应下载该安装包的语段注释掉就可以,或者从可以访问的网站上下载下来,放在这个文件夹里,当要下载的包已存在时,脚本会自动跳过安装下一个。
可以参考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常用命令等。完全看心情,哈哈哈。都会整理出来,供大家参考。各位如有疑问欢迎评论留言即可,由于本人水平有限,出现错误也是在所难免,各位批评指正文章中的错误。
如需转载,请联系本人,注明出处即可。