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#
Abstract base class for competition scoring nodes. |
Module Contents#
- class ScoringNode(competition_name: str)#
Bases:
rclpy.node.Node,abc.ABCAbstract 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.