Skip to content

#Traversability Filter Crashes on Jetson Orin (ARM64) - PyTorch Compatibility Issue #5

Description

@hrigx6

Traversability Filter Fails on Jetson Orin (ARM64) - given image has PyTorch CPU-Only Installation

Environment

  • Platform: NVIDIA Jetson Orin Nano (ARM64)
  • JetPack: 6.0 (R36.4.0)
  • Base Image: Built from nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04 (ARM64 variant)
  • ROS2: Humble
  • CUDA: 12.1.1
  • cuDNN: 8

Issue Description

The elevation mapping node crashes when trying to initialize the traversability filter on Jetson Orin.

Error Output

[elevation_mapping_node-1] terminate called after throwing an instance of 'pybind11::error_already_set'
[elevation_mapping_node-1]   what():  AssertionError: Torch not compiled with CUDA enabled
[elevation_mapping_node-1] 
[elevation_mapping_node-1] At:
[elevation_mapping_node-1]   /usr/local/lib/python3.10/dist-packages/torch/cuda/__init__.py(403): _lazy_init
[elevation_mapping_node-1]   /usr/local/lib/python3.10/dist-packages/torch/nn/modules/module.py(1084): cuda
[elevation_mapping_node-1]   /home/ros/workspace/install/local/lib/python3.10/dist-packages/elevation_mapping_cupy/traversability_filter.py(46): get_filter_torch
[elevation_mapping_node-1]   /home/ros/workspace/install/local/lib/python3.10/dist-packages/elevation_mapping_cupy/elevation_mapping.py(112): __init__
[elevation_mapping_node-1] 
[elevation_mapping_node-1] Fatal Python error: Aborted
[ERROR] [elevation_mapping_node-1]: process has died [pid 367, exit code -6]

PyTorch Installation Issue

$ python3 -c "import torch; print(torch.__version__, torch.cuda.is_available())"
2.9.0+cpu False

The Dockerfile's pip install command installs PyTorch 2.9.0 CPU-only on ARM64, which cannot run CUDA operations required for the traversability filter.

On ARM64, this downloads torch-2.9.0+cpu (CPU-only wheel) instead of CUDA-enabled builds.

The traversability filter requires:

  1. PyTorch with CUDA support
  2. GPU-compatible Conv2D operations
  3. cuDNN integration

Attempted Solutions

  1. ✅ Built using provided Dockerfile.x64 on Jetson ARM64
  2. ✅ All packages compiled successfully (elevation_mapping_cupy, grid_map, etc.)
  3. ✅ CuPy installed and working with CUDA
  4. ❌ PyTorch installed as CPU-only (no CUDA support)
  5. ❌ Traversability filter crashes when trying to use .cuda()
  6. ❌ Disabling traversability in config still initializes PyTorch filter
  7. ❌ Commenting out weight_file and removing from layers still crashes

Questions

  1. ARM64 Support Verification: The README claims support for "ARM arch for NVIDIA Jetson Orin boards" - how is this achieved?
  2. PyTorch Installation: The Dockerfile installs CPU-only PyTorch on ARM64. Is there a Jetson-specific installation method?
  3. Traversability on Jetson: Has anyone successfully run the traversability filter on Jetson with GPU acceleration?
  4. Config-based Disable: Is there a way to completely disable traversability filter initialization via config (weight_file commented + layers removed still crashes)?
  5. Alternative Solutions: Recommendations for running traversability on Jetson or workarounds?

Workaround Needed

Could you provide guidance on:

  • Recommended PyTorch installation method for Jetson (wheel URL or build instructions)
  • Or, instructions for using Chainer backend on Jetson

System Info

# JetPack Version
$ cat /etc/nv_tegra_release
R36 (release), REVISION: 4.0, GCID: 37537400, BOARD: generic, EABI: aarch64

# CUDA Version (in container)
$ nvcc --version
Cuda compilation tools, release 12.1, V12.1.105

# Current PyTorch (problematic - CPU only)
$ python3 -c "import torch; print(torch.__version__, torch.cuda.is_available())"
2.9.0+cpu False

# Container Architecture
$ uname -m
aarch64

# CuPy (working correctly with CUDA)
$ python3 -c "import cupy; print(cupy.cuda.is_available())"
True

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions