目录

Jetson-nano配置Docker和torch运行环境

Jetson nano配置Docker和torch运行环境

这里将介绍Jeston安装docker并部署walk-these-way的jeston镜像。

注意,该方法有版本问题,Jepack4.6.1的python3.6 torch无法与unitree官方提供的python3.8库兼容

1. Docker安装

这里安装的是docker engine,如果已经有了docker desktop也同样可以使用。

Run the following command to uninstall all conflicting packages:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

设置仓库:

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") 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-buildx-plugin docker-compose-plugin

测试:

sudo docker run hello-world

https://i-blog.csdnimg.cn/direct/1a8b183355524443b521550ea6c38224.png

2. 准备镜像

下载image:

https://drive.usercontent.google.com/download?id=1XkVpyYyYqQQ4FcgLIDUxg-GR1WI89-XC&export=download&authuser=0

使用docker加载image:

docker load -i ~/Downloads/deployment_image.tar

https://i-blog.csdnimg.cn/direct/f0c93069be5c4d71ab56222483a5b4b1.png

3. 运行容器

walktheseway使用了makefile运行docker, 类似的,稍作修改以适应我的程序。

将主机的/home/go1/lowlevel挂载到/home/isaac/lowlevel目录

run:
	docker stop foxy_controller || true
	docker rm foxy_controller || true
	docker run -it \
		--env="DISPLAY" \
		--env="QT_X11_NO_MITSHM=1" \
		--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
		--env="XAUTHORITY=${XAUTH}" \
		--volume="${XAUTH}:${XAUTH}" \
		--volume="/home/go1/lowlevel:/home/isaac/lowlevel" \
		--privileged \
		--runtime=nvidia \
		--net=host \
		--workdir="/home/isaac/lowlevel" \
		--name="foxy_controller" \
		jetson-model-deployment bash

将Makefile发送到nano后运行:

scp -r Makefile go1@192.168.0.154:/home/go1/lowlevel/
sudo make run

https://i-blog.csdnimg.cn/direct/a80ebe5390ba45b9ac738cab4cb25438.png

4. 测试容器

进入容器后运行python检查cuda:

![](https://i-blog.csdnimg.cn/direct/b052e385cedf45e28602871db0ae64c9.png)
![](https://i-blog.csdnimg.cn/direct/11565779c36f4609a5c548cb595e4de0.png)

发送测试文件
​​​​​​​scp -r lowlevel go1@192.168.0.154:/home/go1/

运行:

python3 play_policy_isolated.py

再次发现报错,原因是目前的image使用了python3.6,这与unitree提供的3.8版本库不兼容。

walktheseway使用的软件包是cp36

FROM nvcr.io/nvidia/l4t-pytorch:r32.6.1-pth1.9-py3

查看jeson pytorch相关兼容性:

发现在JetPack 5才更新至python3.8。

run_31:
	docker stop py31_controller || true
	docker rm py31_controller || true
	docker run -it \
		--env="DISPLAY" \
		--env="QT_X11_NO_MITSHM=1" \
		--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
		--env="XAUTHORITY=${XAUTH}" \
		--volume="${XAUTH}:${XAUTH}" \
		--volume="/home/go1/lowlevel:/home/isaac/lowlevel" \
		--privileged \
		--runtime=nvidia \
		--net=host \
		--workdir="/home/isaac/lowlevel" \
		--name="foxy_controller" \
		dustynv/l4t-pytorch:r36.2.0 bash