gRPC ROS2
gRPC ROS 2 Communication Module
Note
Features: - gRPC server for receiving drone plans from Mission Management - gRPC client for sending execution results back - Integrated ROS 2 action client - Thread-safe queue operations - Comprehensive logging and error handling
- class grpc_ros2.PlanCommunicationService(*args: Any, **kwargs: Any)[source]
Bases:
PlanCommunicationServicergRPC service implementation for drone plan processing.
- Parameters:
action_client – Initialized ROS 2 action client
ros2_logger – Configured logger instance
- SendPlan(request, context)[source]
Process incoming drone plan requests.
- Parameters:
request – gRPC request containing serialized plan data
context – gRPC connection context
- Returns:
gRPC response with processing confirmation
- Raises:
grpc.RpcError for critical processing failures
Note
Expected request format: [drone_id: int, [command1: str, command2: str, …]]
- grpc_ros2.run_ros2_server(action_client, ros2_logger)[source]
Start and manage gRPC server instance.
- Parameters:
action_client – Initialized ROS 2 action client
ros2_logger – Configured logger instance
- grpc_ros2.run_ros2_client(ros2_action_queue, ros2_logger)[source]
Handle drone result transmission to Mission Management.
- Parameters:
ros2_action_queue – Thread-safe result queue
ros2_logger – Configured logger instance