New tutorial series - Docker and Robotics

Hi everyone! It’s a little while since I’ve flogged my tutorials here so I thought I’d let you all know about a new series I’ve just started. It’s on using Docker for robotics applications/development (with an emphasis on ROS).

Are there any particular topics you’d like to see covered? Some of the ideas on my list are:

  • General Docker usage
  • Setting up graphical apps
  • Setting up networking
  • Using Docker Compose
  • VS Code Dev Containers and Dev Container Templates
  • CUDA
  • Distributing/deploying images and containers to the field

I know there are already a few tutorials out there on some of these topics but hopefully I can provide something helpful for someone :slight_smile:


Fantastic video! What a great introduction and a professional production. :clapper:

1 Like

Great video!

Are there any particular topics you’d like to see covered?

Yes! If you could show how to run Ubuntu 20 in Docker on a Jetson nano without losing hardware acceleration, that would be tremendous. I don’t know whether that’s possible, but since you mentioned CUDA, perhaps you know a way. Thanks.

PS: I’m primarily interested in the hardware acceleration for h264 video encoding.

1 Like

Generally, running nvidia-docker with --gpus all argument is enough to retain HW acceleration in VMs. Sometimes, you also need --privileged or --security-opt seccomp=unconfined.

1 Like

Using docker for the development side of things makes a lot of sense, especially if you are working on multiple projects at the same time. I would be interested to know how we can use docker on the deployment side of things though - I guess it would make the experience of using Docker more complete. (from idea to dev to deployment)

One idea is that you could show how easy it now becomes to create 10 new articubots, now that you have containerised the application. Before someone would have to physically take a raspberry Pi, run an install script, configure all the sensors and so on. But now, you can simply have a script that pulls an image from the docker hub, starts a container, and that’s it!

1 Like

Hmm, I’ll admit that my personal experience using Docker on Jetsons is fairly limited as I don’t have one on hand to test with.
If I recall correctly though, the last time I tried one I did have some form of hardware acceleration, I think I could do things in RViz that I couldn’t do without passing the GPU through, although I did have some CUDA issues as well so it’s possible I was missing something. (That project didn’t actually require hardware accel or CUDA so it ultimately wasn’t a problem).

Those are some good ideas!

"Idea to dev to deployment is fun - it just needs another “d” word to cover that tinkering/experimentation phase… Design? Dream? Discovery? “Docker: Dream->Develop->Deploy”?


“Docker: Dream->Develop->Deploy”? This title is quite captivating :grin:

1 Like