CloudTwin  ROS2 Humble
Digital twin for path and trajectory optimisation
Classes | Functions | Variables
digital_twin.simulation_logger Namespace Reference

Classes

class  SimulationLogger
 

Functions

def main (args=None)
 

Variables

int STATUS_ABORTED = 6
 
int STATUS_CANCELED = 5
 
int STATUS_SUCCEEDED = 4
 

Detailed Description

simulation_logger.py — Records navigation simulation data to JSON.

For each room command received, logs:
  - Departure: robot position + timestamp when the command was received
  - Target: room name, room ID, and theoretical coordinates from registry
  - Arrival: robot position + timestamp when Nav2 reports goal reached
  - Duration: time elapsed between departure and arrival
  - Position error: Euclidean distance between target and actual arrival

Output is a single JSON file per simulation run, saved under simulation_logs/.

Subscribes:
    /room_command                       (std_msgs/String)
    /bcr_bot/odom                       (nav_msgs/Odometry)
    /navigate_to_pose/_action/status    (action_msgs/GoalStatusArray)
    /room_command_feedback              (std_msgs/String)
    /clock                              (rosgraph_msgs/Clock)

Parameters:
    log_directory   (str)   — folder for simulation logs
    room_registry   (str)   — path to room_registry.yaml (empty = auto-resolve)
    odom_topic      (str)   — odometry topic
    goal_reached_distance_m (float) — fallback distance threshold

Function Documentation

◆ main()

def digital_twin.simulation_logger.main (   args = None)

Variable Documentation

◆ STATUS_ABORTED

int digital_twin.simulation_logger.STATUS_ABORTED = 6

◆ STATUS_CANCELED

int digital_twin.simulation_logger.STATUS_CANCELED = 5

◆ STATUS_SUCCEEDED

int digital_twin.simulation_logger.STATUS_SUCCEEDED = 4