navigation-primitives

Implements occupancy maps, A* path planning, and footprint validation for mobile robots in Isaac Sim.

4.0k|530|Updated May 28, 2025
One-click install
npx skills add https://github.com/isaac-sim/IsaacSim --skill navigation-primitives
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: navigation-primitives
Source: https://github.com/isaac-sim/IsaacSim/tree/main/skills/navigation-primitives
Command: npx skills add https://github.com/isaac-sim/IsaacSim --skill navigation-primitives

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires numpy, scipy, opencv-python.

What problem does it solve?

Mobile robot navigation in Isaac Sim requires correctly deriving robot footprints, generating occupancy maps from USD stages, planning collision-free paths, and sizing navigation buffers—tasks that are error-prone when hardcoded or done without physics-aware validation.

Core Features & Use Cases

  • Runtime Footprint Derivation: Computes robot footprint dimensions, Z-offset, and inscribed/circumscribed radii from collider prims, preventing robots from falling through floors or clipping walls.
  • Occupancy Mapping & A Planning*: Rasterizes USD stage geometry into occupancy grids with obstacle filtering, then runs A* with erosion kernels and oriented-footprint PhysX validation.
  • Wheel Kinematics & Cameras: Provides differential drive and holonomic controller configurations plus look-at chase camera math with degenerate up-vector handling.
  • Use Case: When building a warehouse navigation demo with a Nova Carter robot, use this Skill to compute its footprint, generate an occupancy map from the warehouse USD, plan an A* route through aisles, and validate every waypoint against PhysX overlap queries before driving.

Quick Start

Ask the AI to compute the robot footprint and plan a validated A* path across an occupancy map for a mobile robot in your Isaac Sim stage.

Frequently Asked Questions about navigation-primitives

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate an occupancy map from a USD stage in Isaac Sim?

Iterate prims with UsdPhysics.CollisionAPI under /World, compute world AABBs with UsdGeom.BBoxCache, and rasterize them into a grid at your chosen resolution. Filter out shells, floor markings, and ceiling objects to avoid thousands of false obstacles.

How do I plan an A* path for a mobile robot on an occupancy grid?

Erode the navigable grid with a circular kernel sized to the robot's inscribed radius, run heapq-based A* on the eroded grid, then smooth with Catmull-Rom. Validate every smoothed waypoint with an oriented-footprint collision check before accepting the path.

Why does my robot fall through the floor when spawned in Isaac Sim?

Many robots have their articulation origin above the ground contact point, such as Spot at roughly 0.69 m. Compute the Z-offset from the collider AABB and spawn the robot at z = ground + z_offset.

What is the difference between inscribed and circumscribed radius for navigation buffers?

The inscribed radius is safe for any yaw and used for grid erosion, while the circumscribed radius covers worst-case rotation and sizes conservative buffers. For rectangular robots, an oriented-footprint overlap_box check recovers space lost to circular approximations.

Does Isaac Sim support holonomic or mecanum wheel robots?

Yes, use HolonomicController with HolonomicRobotUsdSetup to extract wheel positions, orientations, and mecanum angles from the robot USD, then apply commands via WheeledRobot.apply_wheel_actions. Kaya is a validated holonomic example.

Why is my chase camera render blank when looking straight down?

When the camera forward vector is parallel to the up vector, the cross product degenerates and produces a broken matrix. Detect abs(fwd dot up) > 0.99 and fall back to an alternate up vector such as (0, 1, 0).