硬件环境
NVIDIA Jetson AGX Xavier Developer Kit (32GB)
- GPU 搭载 Tensor Core 的 512 核 Volta GPU
- CPU 8 核 ARM v8.2 64 位 CPU、8 MB L2 + 4 MB L3
- 内存 32 GB 256 位 LPDDR4x | 137 GB/秒
- 存储 32 GB eMMC 5.1
- PCIe X16 X8 PCIe Gen4/x8 SLVS-EC
- RJ45 千兆以太网
- USB-C 2 个 USB 3.1 接口、DP 接口(可选)、PD 接口(可选) 可通过同一端口支持封闭系统调试和烧写
- 摄像头接口 (16 个)CSI-2 通道
- M.2 Key M NVMe
- M.2 Key E PCIe x1 + USB 2.0 + UART (for Wi-Fi/LTE) / I2S + DMIC + GPIOs
- 40 针接头 UART + SPI + CAN + I2 C + I2 S + DMIC + GPIOs
- 高清音频接头 高清音频
- eSTATp + USB 3.0 Type A 借助 PCIe x1 桥接器的 SATA 接口 + USB 3.0(PD + 适用于 2.5 英寸 SATA 接口的数据)
- HDMI Type A HDMI 2.0
- µSD/UFS 卡座 SD/UFS
软件环境
- jetson4.4
- vnc & xface
- ros
- osqp & qpOASES
- cuda10.2
- pcan8.10
- tensorrt7.1
- opencv4.1
Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
| FROM arm64v8/ubuntu:18.04
COPY file/clean-layer.sh /usr/bin/clean-layer.sh
RUN chmod +x /usr/bin/clean-layer.sh \ && /usr/bin/clean-layer.sh \ && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "Asia/Shanghai" > /etc/timezone
#COPY file ADD file/1_sys_config.sh /tmp/ RUN apt-get update \ && apt-get install -y vim busybox net-tools iputils-ping iproute2 gpg apt-utils locales \ && sh /tmp/1_sys_config.sh \ && /usr/bin/clean-layer.sh
#Install VNC&XFCE RUN gpg --keyserver keyserver.ubuntu.com --recv F42ED6FBAB17C888 \ && gpg --export --armor F42ED6FBAB17C888 | apt-key add - \ && sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ && locale-gen \ && dpkg-reconfigure --frontend=noninteractive locales \ && update-locale LANG=en_US.UTF-8 \ && apt-get update \ && apt-get install -y xfce4 xfce4-terminal tigervnc-standalone-server \ && bash -c "yes | apt-get install -y sudo" \ && /usr/bin/clean-layer.sh
RUN echo "user" | adduser autopolit && \ echo "autopolit ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \ usermod -aG dialout autopolit # Install ros ADD file/ros.key /tmp/ros.key RUN apt-key add /tmp/ros.key \ && apt-get update \ && apt install -y ros-melodic-desktop-full \ ros-melodic-cv-bridge ros-melodic-abseil-cpp \ python-rosdep libgoogle-glog-dev libpcap-dev \ python3-qtpy python3-pip \ libopenblas-dev liblapacke-dev \ cmake libavcodec-dev libavformat-dev libavutil-dev \ libeigen3-dev libglew-dev libgtk2.0-dev libgtk-3-dev \ libjpeg-dev libpng-dev libpostproc-dev libswscale-dev \ libtbb-dev libtiff5-dev libv4l-dev libxvidcore-dev \ libx264-dev qt5-default \ zlib1g-dev libgl1 libglvnd-dev pkg-config \ libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \ python-simplejson python-pip exfat-utils \ && /usr/bin/clean-layer.sh
RUN sudo -H pip3 install jetson-stats rosdep \ && sudo pip install google protobuf \ && ln -s /usr/bin/vtk6 /usr/bin/vtk \ && ln -s /usr/lib/aarch64-linux-gnu/python2.7/site-packages/vtk/libvtkRenderingPythonTkWidgets.aarch64-linux-gnu.so /usr/lib/aarch64-linux-gnu/libvtkRenderingPythonTkWidgets.so
#安装中文字体 RUN apt-get update \ && apt-get install -y fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming \ && /usr/bin/clean-layer.sh
# Install osqp & qpOASES ADD tools/osqp.zip /tmp/osqp.zip ADD tools/qpOASES-3.2.1.zip /tmp/qpOASES.zip RUN cd /tmp \ && unzip osqp.zip \ && unzip qpOASES.zip \ && cd /tmp/osqp \ && bash install.sh \ && cd /tmp/qpOASES-3.2.1 \ && mkdir build \ && cd build \ && cmake .. \ && make install \ && cd / \ && rm -rf /tmp/* # Install cuda ADD tools/cuda /tmp/ RUN dpkg -i /tmp/*.deb \ && apt-key add /var/cuda-repo-10-2-local-10.2.89/7fa2af80.pub \ && apt-get update \ && apt-get install cuda-toolkit-10.2 -y \ && echo "export PATH=/usr/local/cuda/bin:$PATH" >> /home/autopolit/.bashrc \ && echo "export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH" >> /home/autopolit/.bashrc \ && echo "export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH" >> /home/autopolit/.bashrc \ && echo "source /opt/ros/melodic/setup.bash" >> /home/autopolit/.bashrc \ && rm -rf /tmp/* \ && /usr/bin/clean-layer.sh
# Install pcan ADD file/linux-headers-4.9.140-tegra /usr/src/linux-headers-4.9.140-tegra/ ADD file/pcanlib/etc/modules.conf.local /etc/ ADD file/pcanlib/lib/modules/4.9.140-tegra /lib/modules/4.9.140-tegra/ ADD file/pcanlib/usr/include /usr/include/ ADD file/pcanlib/usr/lib /usr/lib/ ADD file/pcanlib/usr/local/bin /usr/local/bin/ ADD tools/peak-linux-driver-8.10.2.tar.gz /tmp/ ADD file/tegra /usr/lib/aarch64-linux-gnu/tegra/ RUN echo "/usr/lib/aarch64-linux-gnu/tegra" >> /etc/ld.so.conf.d/aarch64-linux-gnu.conf \ && ldconfig RUN apt-get update \ && apt-get install -y kmod libpopt-dev \ && cd /tmp/peak-linux-driver-8.10.2 \ && make all NET=NO PCI=NO ISA=NO DNG=NO PCC=NO \ && modprobe pcan \ && rm -rf /tmp/* \ && /usr/bin/clean-layer.sh
#Install opencv ADD tools/build_opencv /tmp/ RUN cd /tmp \ && ./buildOpenCV.sh \ && rm -rf /tmp/*
# lib ADD tools/libnvinfer-dev_7.1.3-1+cuda10.2_arm64.deb /tmp/ ADD tools/libnvinfer7_7.1.3-1+cuda10.2_arm64.deb /tmp/ RUN dpkg -i /tmp/*.deb \ && rm -rf /tmp/*
#Install tensorrt ADD tools/tensorrt /tmp RUN dpkg -i /tmp/libnv* \ && dpkg -i /tmp/tensorrt_7.1.3.0-1+cuda10.2_arm64.deb \ && rm -rf /tmp/*
#添加VNC文件,设置环境变量 ADD file/xstartup /autocar-code/xstartup ADD file/passwd /autocar-code/passwd ADD file/.Xauthority /autocar-code/.Xauthority RUN mkdir /home/autopolit/.vnc \ && cp /autocar-code/passwd /home/autopolit/.vnc/ \ && cp /autocar-code/xstartup /home/autopolit/.vnc/ \ && cp /autocar-code/.Xauthority /home/autopolit/ \ && chown -R autopolit:autopolit /home/autopolit \ && chown -R autopolit:autopolit /autocar-code
|