We’ve been looking at the different ways companies deploy software to robots for a while and put together an article on the most common techniques we’ve seen.
They usually fall into a few buckets:
- Manually updating (with ssh, git, rsync, etc.)
- Software Configuration Management (SCM) tools (e.g. Ansible, Salt Project, etc.)
- A/B updates (RAUC, Mender, SWUpdate)
- Containers - Can be used in combination with techniques (Docker, Kubernetes, Balena, etc.)
- AWS Greengrass.
- Various other options.
We go through each one at a high-level discussing their pros and cons as applied to robotics based on the learnings we’ve found from the community. Hope it’s helpful to some folks.