Jetson Nano折腾日志① – 开发板Get Da☆ze

前言

有一天晚上突发奇想,想到能不能自己做出来一个超便宜超简单的自动驾驶方案?

然后这篇文章就出来了….

总之,在经过一晚上的敲定过后,大概是有了些眉目,最后决定做一个双目的自动驾驶方案,开发板是Jetson Nano

真是超级廉价呢…

本文就是Jetson Nano的调试部分了,后续会做一个目录~

Jetson Nano的简要介绍

一款老黄做的开发板,由于是最入门级,其相比起树莓派多了块GPU外,好像没什么太多不同,甚至CPU主频还要低点…

但是因为要用到视觉识别方面的任务,这意味着Jetson Nano的GPU可以大显身手,接近500GFlops的洋垃圾虽然不能干大多数的事情,但是吊打下树莓派还是轻轻松松的

希望跑模型的时候也能轻轻松松…

默认情况下,Jetson Nano的SDK是4.6.1,截止至目前,最新的SDK版本已经是4.6.4了,需要之后手动更新

另外,Nano的L4T版本是R32.7.4,之后也会用到

Jetson Nano的芳容

二手的美

虽然是在咸鱼买的二手,但是成色还是不错的,如果能忽略掉卖家把支撑点给拧反了的话…

但是无所谓,这并不影响正常的使用!

原价淘宝1000+,海外不算运费800左右,咸鱼600+,简直就是廉价的不能再来廉价的开发板了

总之,还是很值的。

点亮

点亮其实略有讲究,Jetson Nano的供电最高为5V 4A,DC口,亦支持5V 2A的micro-usb口,如果使用DC,就需要安装J48跳线,如果是micro-usb的话,就不需要跳线。

需要注意的是,由于功率的不同,开发板性能也会有所不同,简单的说,采用micro-usb的方式连接是跑不满开发板的,加装风扇后负载会更高,所以日常中建议使用5V 4A的DC口。

安全套(不是)

因为我的DC线还没到,所以先使用了micro-usb线进行连接。

不是华为口,不是华为线,但是华为宝

跳过的安装部分

在官网下载了最新的镜像:https://developer.nvidia.com/jetson-nano-sd-card-image

然后刷入SD卡,把SD卡插入nano,开机,照常安装,就进入主界面了

感觉NVIDIA这块做的挺好的,可以说是非常简单了

唯一的问题是这块要插个HDMI线,然后插好鼠标和键盘,可以是2.4G的无线键鼠

要被插满惹

主界面

简要的按照官网配置了下VNC,以进行远程桌面访问(官方推荐的是Vino VNC,已知Xrdp是有问题的,可以根据自己需要选择安装TightVNC,TigerVNC和x11vnc)

绿绿的主界面

然后就会发现,Vino VNC的延迟是真的高啊…内网1000Mbps也顶不住它,应该是发包机制的问题

所以换x11vnc

安装x11vnc

先卸载掉vino vnc

sudo apt remove vino -y

然后就是习惯性更新下系统,我在一开始的时候先更新好了,所以就无所谓,遇到需要替换配置文件的时候直接Y

sudo apt update
sudo apt upgrade
sudo apt autoremove

确定更新完毕后再继续,避免任何奇奇怪怪的异常情况

安装x11vnc

sudo apt install x11vnc -y

设定密码

x11vnc -storepasswd

如果之前跑着vino的话可能会有端口占用的问题,可以手动kill掉线程,或者省事的话直接重启

此外,需要确定自己是2GB版本还是4GB+的版本,2GB的用户与4GB的用户位置应该是不一样的,可以运行以下命令确定位置:

ps wwwwaux | grep auth

然后就可以手动启动测试下是否正常,我的用户名是xiaohuo,记得改成自己的

x11vnc,启动!

x11vnc -auth /run/user/1000/gdm/Xauthority -display :0  -forever -loop -noxdamage -repeat -rfbauth /home/xiaohuo/.vnc/passwd -rfbport 5900 -shared

看到这个宾至如归的主界面就是没问题了

小到塞不下的主界面

接下来就是编写systemd的脚本,让x11vnc自启,文本编辑器这里用的是nano,没装的话装一下就好,也可以随自己喜欢用vim之类的

sudo apt install nano -y
sudo nano /lib/systemd/system/x11vnc.service

粘贴脚本内容并保存(Ctrl+X退出,回车保存,当然也可以先保存再退出)

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth /run/user/1000/gdm/Xauthority -display :0  -forever -loop -noxdamage -repeat -rfbauth /home/xiaohuo/.vnc/passwd -rfbport 5900 -shared

[Install]
WantedBy=multi-user.target

不过因为我后来拔掉了HDMI,变成了无头模式(Headless),所以为了解决VNC这个只有一小块屏幕的窘境,需要给桌面环境加个虚拟的显示器

编辑下环境文件

sudo nano /etc/X11/xorg.conf

在尾部加入一个虚拟桌面,这里设定的是24色,1280×800的桌面,可以根据自己需求修改

Section "Screen"
     Identifier    "Default Screen"
     Monitor       "Configured Monitor"
     Device        "Tegra0"
     SubSection "Display"
         Depth    24
         Virtual 1280 800 # Modify the resolution by editing these values
     EndSubSection
EndSection

重启以后,大功告成

像模像样

外网访问

因为家里申请了公网,所以可以直接从外部访问Nano,我是将这台nano绑定了MAC后,把内网IP从另一台Ubuntu电脑上转发出去,路由器做了DMZ,所以一切交给Ubuntu就好。

转发用的是realm,配置起来相当简单,这里就不过多介绍了。

安装ROS系统

做小车,肯定是少不了ROS系统,本处使用docker完成环境配置。

本次使用的容器库是:https://github.com/dusty-nv/jetson-containers

安装Portainer是可选的,可以安装时直接用这个项目提供的脚本,然后正常管理就好。

首先是完成容器库的初始化

sudo apt-get update && sudo apt-get install git python3-pip
git clone --depth=1 https://github.com/dusty-nv/jetson-containers
cd jetson-containers
pip3 install -r requirements.txt

随后是设定下docker的运行环境,指定为这个项目

sudo nano /etc/docker/daemon.json

把内容加上一行"default-runtime": "nvidia"

{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },

    "default-runtime": "nvidia"
}

接下来就是安装ROS2了,目前最新的发行版是iron,找到iron的镜像,指定给脚本进行安装

注意检查自己的版本是不是L4T- R32.7.1,如果跟我一样是Jetson Nano B01或者其他用JetPack 4.6.1+的机子的话,就可以直接用这个包。

如果是再用JetPack5+的话,需要替换成适合自己系统的包。

sudo ./run.sh $(./autotag dustynv/ros:iron-desktop-l4t-r32.7.1)

如果不想用工具的话,可以参考工具的构建命令

sudo docker run --runtime nvidia -it --rm --network host --volume /tmp/argus_socket:/tmp/argus_socket --volume /etc/enctune.conf:/etc/enctune.conf --volume /etc/nv_tegra_release:/etc/nv_tegra_release --volume /tmp/nv_jetson_model:/tmp/nv_jetson_model --volume /home/xiaohuo/jetson-containers/data:/data --device /dev/snd --device /dev/bus/usb -e DISPLAY=localhost:11.0 -v /tmp/.X11-unix/:/tmp/.X11-unix -v /tmp/.docker.xauth:/tmp/.docker.xauth -e XAUTHORITY=/tmp/.docker.xauth dustynv/ros:iron-desktop-l4t-r32.7.1

其会自动下载镜像,以及配置环境变量,安装完毕后输入ros2 -h就可以看到正常的帮助界面了

No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next