这里将介绍Jeston安装docker并部署walk-these-way的jeston镜像。
注意,该方法有版本问题,Jepack4.6.1的python3.6 torch无法与unitree官方提供的python3.8库兼容
1. Docker安装
这里安装的是docker engine,如果已经有了docker desktop也同样可以使用。
Ubuntu | Docker Docs
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
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
3. 运行容器
walktheseway使用了makefile运行docker, 类似的,稍作修改以适应我的程序。
将主机的/home/go1/lowlevel挂载到/home/isaac/lowlevel目录
run:docker stop foxy_controller || truedocker rm foxy_controller || truedocker 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
4. 测试容器
进入容器后运行python检查cuda:![]()
发送测试文件
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相关兼容性:
PyTorch for Jetson - Announcements - NVIDIA Developer Forums
发现在JetPack 5才更新至python3.8。
PyTorch for Jetson Platform - NVIDIA Docs
NVIDIA L4T PyTorch | NVIDIA NGC
GitHub - dusty-nv/jetson-containers: Machine Learning Containers for NVIDIA Jetson and JetPack-L4T
run_31:docker stop py31_controller || truedocker rm py31_controller || truedocker 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