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: PlanCommunicationServicer

gRPC service implementation for drone plan processing.

Parameters:
  • action_client – Initialized ROS 2 action client

  • ros2_logger – Configured logger instance

__init__(action_client, ros2_logger)[source]
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

grpc_ros2.start_grpc_ros2(ros2_action_queue: Queue, ros2_logger)[source]

Initialize and start ROS 2 communication infrastructure.

Parameters:
  • ros2_action_queue – Shared action/results queue

  • ros2_logger – Configured logger instance

grpc_ros2.create_logger(logger_name, log_file)[source]

Configure concurrent-safe logging system.

Parameters:
  • logger_name – Logger namespace identifier

  • log_file – Path to log file location

Returns:

Configured logger instance