Robots & AirGen Client
AirGen currently supports two fundamental types of robots:
- Aerial robots including quadrotors, vertical takeoff/landing vehicles, etc.
- Wheeled robots including cars, forklifts, and other ground platforms.
Even though these robot categories have different methods for control, AirGen provides a common API structure for sensors, cameras, and planning.
AirGen Client
Upon the start of a session in GRID, a Python object associated with the API of the robot is pre-defined in the first cell of the notebook, named as airgen_drone_0
or airgen_car_0
by default, depending on the category of the robot.
For example, a drone may be defined as:
This high-level object contains higher level functions which are described in the Robot API Documentation as well as an AirGen client
which enables low-level communication with the AirGen simulation environment.
The user can directly interact with the low-level AirGen API associated with the robot or the simulation through airgen_<robot>_0.client
.
For example, the drone can be commanded to takeoff with
The base class of the client is VehicleClient
, with child classes MultirotorClient
and CarClient
for aerial and wheeled robots, respectively. Full documentation can be found in VehicleClient, MultirotorClient, and CarClient reference pages.
A client can be instantiated independently of a GRID robot object, assuming that the simulation is running:
Ground Truth
The airgen client also allows access to simulation ground truth. For example, we can access the pose and kinematics via
where simGetVehiclePose
returns a Pose object consisting of 3D position and quaternion vectors, and simGetGroundTruthKinematics
returns a KinematicsState object made up of pose, twist, and acceleration.
Environment
The client also provides access to the simulation environment, including object interactions, weather, time of day, etc. as detailed in the Environment section.
Robot-Specific Interface
The MultirotorClient
and CarClient
classes provide additional, form-factor specific controls and functionality on top of VehicleClient
.
These additional features are described in the MultirotorClient and CarClient reference pages.
Was this page helpful?