AirGen exposes a compact set of Python classes for representing positions, orientations, and geospatial locations. Mastering these data types makes it easier to compose movement commands, interpret sensor returns, and debug trajectories across the full robot fleet. All spatial coordinates follow the North-East-Down (NED) convention unless otherwise noted:Documentation Index
Fetch the complete documentation index at: https://docs.generalrobotics.dev/llms.txt
Use this file to discover all available pages before exploring further.
- X → North / forward
- Y → East / right
- Z → Down (negative values move upward)
client is an instantiated AirGen client (for example, client = airgen.RobotClient() or airgen.MultirotorClient()).
Vector3r
Vector3r tracks a three-element float vector and is returned by many APIs, including simGetRobotPose, simGetGroundTruthKinematics, and most sensor interfaces.
- Access components via
.x_val,.y_val,.z_val. - Helpful constants:
Vector3r.ZERO,Vector3r.ONE,Vector3r.FORWARD,Vector3r.UP, etc. - Supports arithmetic (
+,-,*,/), vector math (dot,cross,distance_to), and normalization.
Quaternionr
Quaternionr stores orientation in wxyz order (scalar part first). Compared to Euler angles, quaternions avoid gimbal lock and interpolate smoothly.
- Construct from Euler angles via
Quaternionr.from_euler_angles_degrees(roll, pitch, yaw)or from axis/angle usingQuaternionr.from_axis_angle(axis, angle). - Convert back to Euler angles with
.to_euler_angles()(radians) or.to_euler_angles_degrees(). - Implements quaternion algebra (
*, scalar multiplication,inverse(),slerp(),rotate()).
Pose
Pose bundles a Vector3r position with a Quaternionr orientation. Poses are used throughout the API (simSetRobotPose, simSetObjectPose, trajectory planners, sensor extrinsics, etc.).
Pose.toLocal(client, robot_name="") and Pose.toWorld(client, robot_name="") to transform between a robot’s local NED frame (defined at spawn) and the global simulation frame.
GeoPoint
GeoPoint captures latitude, longitude, and altitude in the WGS84 reference ellipsoid. It is the input to GPS-style APIs such as moveToGPSAsync, moveOnGPSPath, and simSetGeoReference.
GeoPose
GeoPose pairs a GeoPoint with a Quaternionr orientation, enabling geodetic placement of robots and movable actors.
Geo ↔︎ World Conversions
When mixing GPS waypoints with local motion planning, convert betweenGeoPoint and Vector3r using helpers in airgen.utils.geodetic.
Pose when you need to synthesize world-space placements that align with real-world latitude/longitude targets.
Continue with the Movement page to see how these types are used when commanding drones, cars, and legged robots.