sim.scoring.ScoringNode#

Abstract base class for scoring nodes.

Each competition should have a corresponding ScoringNode subclass that: 1. Tracks competition-specific scoring criteria 2. Publishes score updates 3. Monitors UAV state and competition progress

Classes#

ScoringNode

Abstract base class for competition scoring nodes.

Module Contents#

class ScoringNode(competition_name: str)#

Bases: rclpy.node.Node, abc.ABC

Abstract base class for competition scoring nodes.

Subclasses must implement: - update_scoring(): Update score based on current competition state - get_current_score(): Return the current score - reset_scoring(): Reset scoring state (optional, for restart scenarios)

competition_name#
current_score = 0.0#
score_publisher#
status_publisher#
abstractmethod update_scoring() None#

Update scoring based on current competition state.

This method should be called periodically (via timer or callback) to check competition progress and update scores.

get_current_score() float#

Get the current score.

Returns:

Current score value

publish_score(score: float | None = None) None#

Publish the current score.

Parameters:

score – Score to publish. If None, uses self.current_score

publish_status(status: str) None#

Publish a status message.

Parameters:

status – Status message string

reset_scoring() None#

Reset scoring state.

Subclasses can override this to reset competition-specific state.

classmethod node_name() str#

Get the node name in snake_case.

classmethod service_name() str#

Get the service name prefix.