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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions