SYSTEM IMPLEMENTATION

Subsystems

Coupling Mechanism

This subsystem is a hardware addition to the robot mobility platform Khepera IV. It is responsible for facilitating the physical coupling between robot agents, allowing them to collaborate and traverse discontinuous terrain. The coupling mechanism uses a pin-and-hole method of mechanical coupling and is developed from electromechanical components like a Linear actuator to actuate the pin, a Solenoid Lock to latch on to the pin after complete actuation, Roller support to facilitate the sliding of the pin, Microcontroller in addition to Khepera Compute system and Battery as per power requirements. The coupling mechanism is strong enough to support the weight of another robot and is designed to compensate for minor misalignments.

Localization

The pose of every agent on the map needs to be determined precisely to enable coupling between the robots and cover the points of interest efficiently. The user provides a map and the initial positions of the agents. The sensor readings from the agent will be used for getting the pose estimate. The wheel encoders provide an initial first estimate of the robot’s pose. Then the data from the laser range finder is used to refine the estimate of the change in the pose by matching scans of consecutive frames. The laser scans are also matched with the provided map. Fusion of these data will be done using Extended Kalman or particle filters. This process is done separately for each agent using the map provided by the user. During the coupling process, the localization precision should be high. Therefore, when the robots are sufficiently close to each other during coupling, additional redundant methods like Aruco marker-based pose estimation will also be used along with the previously mentioned method.

Preprocessing

The preprocessing block involves the processing of the map into Voronoi diagrams/connected grids or any other format required by the planning block. Additionally, the map also contains information about the gaps in the system. The preprocessing block determines all the feasible gaps in the map based on the number of agents available and also determines the configuration required by the agents to cross those feasible gaps. The infeasible gaps will be considered obstacles in the map. The outputs from the system include the processed map, feasible gaps, and their corresponding configuration.

Task Allocation

The task allocator assigns uncompleted tasks to each agent based on the inputs from the preprocessing block while minimizing the overall time taken. Specifically, it will allocate points of interest to cover each agent and also allocate the points of coupling and decoupling in case the agent has to cross a gap. Greedy heuristics or some sort of optimization technique will be used for this purpose. The problem will be formulated as a modification of Multiple Traveling Salesman to include the gaps and coupling behaviors. It outputs the next task for each agent and sends it to the navigation subsystem.

Navigation

The navigation subsystem includes a trajectory planner and controller. The trajectory planner is further categorized as a goal trajectory planner, coupling planner, and gap-crossing planner. Based on the inputs from the task allocator and the localization blocks, one of the three planners will be used to generate collision-free paths to cover points of interest, coupling strategies, or gap-crossing paths. The high-level controller in the server then computes the error in the actual and desired pose for each agent and generates desired linear, angular velocities or coupling commands depending upon the assigned tasks. Based on these commands, the low-level controller of the Khepera platform will convert these into desired actuator velocities.

Fleet Management System

The fleet management system serves as the communication bridge between all the agents and the server. The user provides a config file with information about all the agents in the fleet to set up communication channels for transmission and reception for all the agents. It also handles packing, unpacking, and logging of data and monitors the agents during operation. It relays information back to all the other subsystems in case of any changes in the fleet.