Skip to content

utils

Logging utilities for controller runs.

Classes:

Name Description
Logger

A class for logging and visualization.

Logger

Logger(logging_freq_hz: int, output_folder: str = 'results', num_drones: int = 1, duration_sec: int = 0, colab: bool = False)

A class for logging and visualization.

Stores, saves to file, and plots the kinematic information and RPMs of a simulation with one or more drones.

Initialize logger buffers and output settings.

Note

The order in which information is stored by Logger.log() is not the same as the one in obs["id"]["state"]; see implementation below.

Parameters:

Name Type Description Default

logging_freq_hz

int

Logging frequency in Hz.

required

output_folder

str

Output directory for saved logs.

'results'

num_drones

int

Number of drones.

1

duration_sec

int

Preallocated duration in seconds (0 disables).

0

colab

bool

Enable Colab-friendly plotting.

False

Methods:

Name Description
log

Log entries for a single simulation step.

save

Save the logs to file.

save_as_csv

Save logs as comma separated values.

plot

Plot kinematics and RPMs for all drones.

log

log(drone: int, timestamp: float, state: ndarray, control: ndarray = np.zeros(12))

Log entries for a single simulation step.

Parameters:

Name Type Description Default

drone

int

Drone index for the log entry.

required

timestamp

float

Simulation timestamp.

required

state

ndarray

Drone state vector, shape (20,).

required

control

ndarray

Control target vector, shape (12,).

zeros(12)

save

save()

Save the logs to file.

save_as_csv

save_as_csv(comment: str = '')

Save logs as comma separated values.

Parameters:

Name Type Description Default

comment

str

Added to the folder name.

''

plot

plot()

Plot kinematics and RPMs for all drones.