On device abstractions for portable, reusable robot code | Synapse