We are shipping a robot and hybrid laptop to a client, which will use it on its site. The laptop serves as a remote for the robot, or multiple robot. We want to be able to deploy software and system updates to the laptop and the robot. Both are running Ubuntu (at least for now). However, there are some challenges:
- The robot is not connected to internet.
- The laptop will be connected to internet regularly.
- The laptop will be connected to a robot (by a Wi-Fi hotspot provided by the robot), but unlikely at the same time it is connected to the internet.
I would like the laptop to download the latest version of the software when it is connected to internet, install the software update and potentially system updates, and transfer the software and system updates to the robot when connected to it.
I can think about some solutions, which seems a bit hacky:
- The laptop can use a package manager (APT or whatever) to download the latest version of the software, and Ansible rules to update itself.
- The laptop can detect when it is connected to the robot and send it the package somehow.
- Because the robot is not connected to internet, I would have to package the necessary DEB files (or whatever) for the system update.
- I could also use docker to make it easier to manage the system updates, although docker containers are a bit heavy to download.
But what I would like to know is: are there some solutions out there for this case of figure?