Skip to content

Installation

Requirements

  • Python 3.9+ (3.12 recommended)
  • CMake 3.16+
  • C++17 compiler

Install from PyPI

Bash
pip install tesseract-robotics

Install from Source

1. Clone the Repository

Bash
git clone https://github.com/tesseract-robotics/tesseract_nanobind.git
cd tesseract_nanobind

2. Install Dependencies and Build

Bash
pixi install
pixi run install

This builds C++ libraries (pixi run build-cpp) and installs the Python package. C++ libs are built in ws/install/.

Verify Installation

Python
import tesseract_robotics
print(tesseract_robotics.__version__)

# Test with a bundled robot
from tesseract_robotics.planning import Robot
robot = Robot.from_tesseract_support("abb_irb2400")
print(f"Loaded robot with {len(robot.get_joint_names('manipulator'))} joints")

Environment Variables

The package auto-configures these at import time:

Variable Purpose
TESSERACT_SUPPORT_DIR Robot URDF/mesh resources
TESSERACT_TASK_COMPOSER_CONFIG_FILE Task composer plugins
TESSERACT_KINEMATICS_PLUGIN_PATH Kinematics plugin libraries
TESSERACT_CONTACT_MANAGERS_PLUGIN_PATH Collision plugin libraries

For development, you can also source env.sh:

Bash
source env.sh
python examples/freespace_ompl_example.py

Troubleshooting

Plugin Loading Errors

If you see errors about missing plugins:

Text Only
Error: Failed to load plugin library

Ensure environment variables are set. The package should auto-configure these, but for editable installs you may need:

Bash
source env.sh

OpenMP Crashes (macOS)

If you get crashes related to OpenMP on macOS, pixi automatically installs llvm-openmp. The build scripts use $CONDA_PREFIX/lib/libomp.dylib (pixi sets CONDA_PREFIX).

RTTI/typeinfo Errors

If TaskComposer fails with "Input is not a Composite Instruction", rebuild with visibility settings:

Bash
# In build_tesseract_cpp.sh and CMakeLists.txt
-DCMAKE_CXX_VISIBILITY_PRESET=default