Kaiju

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).

Kaiju’s “reverse” path solving strategy. Paths are solved by starting in a science configuration and moving toward a folded state.

Jaeger

While Kaiju handles the algorithmic generation of safe trajectories between two configurations, the communication of these trajectories to the grid of robotic positioners in the FPS is managed by a different piece of software, codenamed jaeger.

jaeger handles the low-level communication between the observatory servers and the robotic positioner network, monitors positioner status, and transmits and executes Kaiju-validated trajectories for the FPS. jaeger also calculates the updated coordinates for each target based on time-dependent factors such as telescope scale and atmospheric refraction, and records the metadata associated with an FPS “configuration”.

Back to Top