The kaiju package computes safe trajectories for all robots between science configurations. The SDSS-V robotic array is very densely packed, and robot arm patrol zones in the focal plane heavily overlap. Finding a successful path from one target to another target for all robots while avoiding collisions and deadlocks with neighboring robots a challenging problem. The algorithms employed in kaiju are based on a simple heuristic, and so can be made to run very fast even when computing simultaneous paths for 500 robots. Fast running code can be utilized in real time which is important for maintaining low overheads and flexibility during nightly observing.
The unique insight to the kaiju algorithm is that robot paths are solved in “reverse”. To compute paths, we place robots in the desired configuration to observe a science field and then iteratively perturb each robot toward a “folded” configuration in which all robots are aligned in a lattice-like configuration. We then reflect this path to move robots from folded to deployed. Building paths between a science configuration and a common state allows for transitioning between any two configurations through the common folded state.
The kaiju code is written in Python-wrapped C++. A more detailed description of SDSS-V’s robotic path planning challenge and the kaiju solution are published in Sayres et al. (2021).