Run in Simulation
Two ways to run the Astral SDK without hardware: lightweight ArduPilot SITL for API-level work, and Isaac Sim for full perception-in-the-loop autonomy.
No GPU, no Astral hardware. ~5 min setup. Best for trying the SDK API and validating flight logic before real flight.
Start SITL in one terminal, then point the SDK at it via an env var:
# Terminal 1 sim_vehicle.py -v ArduCopter --console --map # Terminal 2 pip install astral-sdk export ASTRAL_SDK_SERIAL_PORT=tcp:127.0.0.1:5760 python -c " import time, astral_sdk as drone drone.takeoff(2.0) time.sleep(5) drone.land() drone.disconnect() "
Runnable example: astral-sdk/examples/sitl.
Full 3D world with cameras, physics, and the same MAVLink + ROS 2 + Nav2 stack you'd run on real hardware. Requires an NVIDIA RTX GPU and ~50 GB of disk.
Recorded in Isaac Sim — representative of the environments and vehicle mix this stack is built for.
How the pieces connect: your Python calls astral_sdk, which talks MAVLink to ArduPilot SITL, which is driven by Isaac Sim's physics. The astral_drone ROS 2 package bridges Nav2 goals into MAVLink velocity setpoints.
Bring up Isaac with an ArduPilot bridge (Pegasus Simulator is a good starting scene), then connect:
export ASTRAL_SDK_SERIAL_PORT=tcp:127.0.0.1:5760 # Build and launch the ROS 2 package cd ros2_ws colcon build --packages-select astral_drone source install/setup.bash ros2 launch astral_drone bringup.launch.py
Send Nav2 goals from RViz or ros2 action send_goal and the drone moves in Isaac. Pin a known-good Isaac Sim version — NVIDIA breaks APIs on a roughly quarterly cadence.
Real drones are expensive and slow to iterate against. Most autonomy bugs (frame conventions, mode-switch races, velocity-clamp surprises) surface in sim on a laptop, in minutes, with no risk to hardware.
The SDK API is identical between sim and real flight — the only thing that changes is ASTRAL_SDK_SERIAL_PORT. What flies in sim flies on the drone.
