Why ROS Docker might not be the best choice for your (Production Ready) Robots

Amanmalhotraa
2 min readMar 11, 2022

Touching down production ready robotics with docker and DevOp tools for a production ready build is hard. Last couple of years I struggled to make sense of things but Here Is My (along with some learnings form ) Take on DOCKER + ROS

ROS (Robot Operating System ) is driving robots and machines for almost a decade now , it would be hard to find any manufacturer not using ROS at least once , With the recent development in CICD & Docker being one of the main key elements in the game , Dockerization is the best choice for a lot of people for most of the use cases . ROS however boils it down to have problems that people don’t think would be a problem .

Here is my take on

WHY NOT DOCKER WITH ROS MIGHT NOT BE FOR YOU

- GPIO — If you are using any sorts of GPIO from your hardware , you need to use -device Flags

Problem — Time consuming and takes a lot of backtracking to figure out the possible need for your application

-Over Exposing Ports — Developers expose the entire resource for the hardware with -privileged option

Problem — This removes all sandboxing which makes docker exposed to data breaches

-Networking — Dockers communicating with each other needs setup of ports

Problem — It needs proper bridging and communication setup to talk to multiple dockers and you might end up spending alot of time just sending files across your machine

- Delta Updates — if you are relying entirely on (ON THE FLY ) updates then STOP & Think

Problem — Docker essentially can not handle problems like low network and bandwidth issues it needs Good Network & Infrastructure to (Hot Swap) the entire software alone

- Fleet management might be hard( Like Really hard ) — From my experience we quickly migrated to AWS Fleet management to manage feet of robots because we saw problems

Problem — Kubernetes is not a solution , its defined for aggregate of compute, Robotics or fleet in general is exact opposite you need to test things to see if your application actually needs it or not

Hope you got some insights about Production Ready Robotics , and this was helpful .

Again this is all from my experience so maybe your application might go really well with docker

--

--