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
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.
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.
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!
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).
"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”?