| Robot Model | Noitom | VR | Description |
|---|---|---|---|
| Adam SP | ✅ | TODO | |
| Adam Pro | ✅ | TODO | |
| Adam U | ✅ | ✅ |
Pre-compiled release, no build required. Requires Ubuntu 22.04, ROS 2 Humble, Python 3.10.
curl -fsSL https://raw.githubusercontent.com/pndbotics/pnd_teleoperation/refs/heads/main/install.sh | bashOr from a local file:
./quickstart.sh --file pnd-teleop-amd64.tar.gzThen run:
source /opt/pnd/pnd_teleop/setup_cli.bash
spteleop teleop adam_u webvr minkFor developers who need to modify the code or build on a different platform.
- ubuntu 22
- ros2 humble
- casadi
- uv
sudo apt-get update && sudo apt-get install -y \
build-essential \
gfortran \
liblapack-dev \
pkg-config \
swig \
git \
cmake \
python3 \
python3-pip \
git-lfs \
--install-recommends
cd /tmp && \
git clone https://github.com/casadi/casadi.git casadi && \
cd casadi && \
git checkout 3.6.7 && \
mkdir build && \
cd build && \
cmake -DWITH_PYTHON=ON -DWITH_IPOPT=ON -DWITH_OPENMP=ON -DWITH_THREAD=ON .. && \
make -j$(nproc) && \
sudo make install && \
sudo ldconfiggit lfs clone https://github.com/pndbotics/pnd_teleoperation.git
cd pnd_teleoperationpip install uv --user
uv sync./build.shspteleop cli: new version command line tool, supports auto-completion and tab-completable(old version command line tool has been deprecated and will be removed in several versions)
source setup_cli.bash
spteleop teleop [adam_type] [mocap_driver] [algorithm]
# example:
spteleop
spteleop teleop adam_u webvr mink
spteleop teleop adam_pro noitom pinocchio
spteleop launch pinocchio-adam_u-webvr # launch a bringup launch fileAfter building successfully, create a distributable tarball:
./scripts/package_release.sh
# Output: release/pnd-teleop-<arch>.tar.gzcd docker
# update user id
./update_env.sh
docker compose up --buildopen another terminal and connect to the container
docker exec -it pnd_retarget_ros bashfoxglove studio sudo apt install ros-$ROS_DISTRO-foxglove-bridge
source install/setup.bash
ros2 launch foxglove_bridge foxglove_bridge_launch.xml port:=8765source install/setup.bash
ros2 launch bringup retarget_noitom_rosbag.py
ros2 bag play rosbag2_2025_01_23-14_23_32 -l --remap /tf:=/noitom/tfsource install/setup.bash
ros2 launch noitom_mocap noitom_mocap.launch.py
ros2 run noitom_mocap noitom_mocap ros2 bag record <topic_name>ros2 run tests_bag play_bag --ros-args -p bag_path:=rosbag2_2025_03_28-09_04_32/echo 'export UV_DEFAULT_INDEX="https://pypi.tuna.tsinghua.edu.cn/simple"'>> ~/.bashrc
# echo 'export UV_DEFAULT_INDEX="https://mirrors.aliyun.com/pypi/simple/"' >> ~/.bashrc
source ~/.bashrcIf you encounter issues loading models during runtime, check if they have been correctly downloaded. If the download fails due to network issues, try setting the environment variable:
export HF_ENDPOINT="https://hf-mirror.com"After setting the environment variable, restart the teleoperation program to trigger model download.
sudo su
./run.sh [adam_type] [mocap_driver] [algorithm] # adam_type: adam_sp/adam_u/adam_pro; mocap_driver: noitom/vr; algorithm: pinocchio/mink;
# example:
./run.sh adam_u vr mink
./run.sh adam_pro noitom pinocchiopreview:
sudo ./preview.sh