The GRID Robot API provides a unified interface for controlling different types of robots, whether simulated or real. This abstraction allows you to write code that works seamlessly across different robot form factors and environments.

Key Features

  • Unified Interface: Same API for real and simulated robots
  • Form Factor Support:
    • Wheeled robots
    • Robotic arms
    • Legged robots
    • Aerial robots
  • Environment Agnostic: Code works in both simulation and real-world
  • Sensor Integration: Standardized access to cameras, LiDAR, and other sensors

Same Code, Different Robots

The API maintains consistent method names and parameters across different robots:

# Wheeled robot in simulation
from grid.robot.wheeled import AirGenCar

car = AirGenCar()
car.getPosition()  # Returns Position(x, y, z)
car.getOrientation()  # Returns Orientation(x, y, z, w)

# Aerial robot in real world
from grid.robot.aerial import ModalaiDrone

drone = ModalaiDrone()
drone.getPosition()  # Same method returns Position
drone.getOrientation()  # Same method returns Orientation

Sensor Access

Access to sensor data across platforms:

# Get camera image from real robot
from grid.robot.wheeled.jetbot import JetBot

robot = JetBot()
rgb_image = robot.getImage("front_center", "rgb")

# Get camera image from simulated robot
from grid.robot.wheeled import AirGenCar

car = AirGenCar()
rgb_image = car.getImage("front_center", "rgb")

Common Base Classes

The API is built on a hierarchy of base classes that ensure consistent behavior:

  • Robot: Base class for all robots
    • Wheeled: For wheeled platforms
    • Arm: For robotic arms
    • Aerial: For aerial vehicles
    • Locomotion: For legged robots

Key Concepts

  1. Common Types and APIs

  2. Movement Control

    • High-level movement commands
    • Low-level control when needed
  3. Sensor Integration

    • Standard image types: rgb, depth, segmentation
    • Common data formats across platforms

Available Robots

Wheeled Robots

Robotic Arms

Aerial Robots

Legged Robots

Was this page helpful?