In this guide we will rely on Docker containers, that are one of many available containerization solutions, yet very popular for robotics. These qualities can be used for both prototyping and production. Building your robotics application in containers enables a way to deploy ROS environment configurations that is scallable, flexible, and avoids a “dependency hell”, is scalable, and highly flexible. Containers are packages of software that include all the libraries, dependencies and source code to run an application on its own, and they use virtualization on a system level to achieve that. We first need to discuss the general purpose of virtualization before focusing on the remote development environment setup. (I or we?)The outline Why a containerized ROS environment matters? Now you can proceed with reading the introduction, or go straight to the main tutorial. If you are a VSCode user, you might benefit from a very good talk describing VSCode & Docker setup. For these reasons, CLion is a preferable choice to me when compared with VSCode (which is also very powerful!). I focus here on CLion because it is free for academic and Open Source use, and it offers excellent refactoring and code suggestions capabilities. There are no tutorials for using ROS in a direct Moreover, the direct Docker integration arrived only at the most recent CLion release, and to the best of my knowledge there are no tutorials supporting There are already many useful tutorials provided for CLion that describe the process of remote C++ development without ROS or local CLion development with ROS, but none of the tutorial I have seen talks about a complete remote setup with ROS which takes into considerations actual debugging. The target audience for this guide are the users who wish to locally or remotely develop ROS applications with CLion and Docker while retaining all the features of this powerful IDE, including local or remote debugging with GDB. The closing remarks include a recommended list of references. Lastly, I discuss general limitations of this particular setup and potential Docker limitations for ROS. The third and forth section discusses the meat of this tutorial – a step by step guide how to set up a local or full-remote development with the already described toolbox. In the second section I specify the scope of today’s tutorial and distinguish it from other development configurations that include remote targets. This guide is outlined as follows: In the first section “Why a containerized ROS environment matters?” I provide the motivation and three use-cases why would you use a containerized Docker ROS environment. You will compile and run ROS nodes on that container, and attach a debugging session to a local or remote GDB server. By the end of this tutorial, you will be able to use CLion to work with your local ROS workspace natively or in a custom Docker container. How can you make your ROS development environment setup system-independent and ready in no-time? Or even better: How can you do it on a powerful, remote host and retain all excellent features of your local IDE, including code completion, refactoring, and very importantly: debugging? This detailed tutorial will show you how to achieve all of that with Docker, CLion, and a few other tools.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |