A custom python simulator for testing multi-robot task allocation algorithms.
It is modular in nature, and every robot, goal/task location, charging station is loaded in as a node.
Every node can be expanded to maintain additional properties as required.
A list is maintained for every type of node.
Maintaing every node's position as x-y coords enables continuous space planning instead of discretized.
In every iteration of update loop, the robots move towards their goal by velocity*dt amount.
(This behaviour can be modified to any desired dynamics by changing the update funtion of a node)
After the action, multiple checks regarding battery charge, task completion, etc are performed and nodes updated.
2 GUI's : PyGame and matplotlib.
Despite implementing blitting in matplotlib, the pygame gui is still faster.
Obstacles not incorporated, can represent use cases such as those of drone surveilance or search and rescue, where a limited number of drones have multiple tasks sites to attend, and also a limited number of charging stations which they need to occasional attend.
Can be used check emperical statistics of deployed algorithm, such as time for task completion, percentage of task completion, number of bots with dead batteries, etc.
An older version of the code.
This was based on discrete rasterization.
Any black and white image can be loaded as an occupancy grid.
Robots, tasks, charging station nodes were overlayed on this occupancy grid.
Collision checking and base A* was implemented for discrete path planning for the point agents.