Exploration of VS Code extensions for a ROS Developer

In the developers' community, there will always be an ongoing debate about the best IDE (Integrated Development Environment) out there, be it IntelliJ, Xcode, Eclipse, Atom, Sublime Text, or Visual Studios. But this blog isn’t about choosing the best IDE. I personally love to code in VS Code as a Robotics (ROS) developer. Being a ROS developer is way different than let’s say being a Web developer, especially in terms of the infrastructure available to make development easier. When I first started coding, my VS Code setup was very minimal and the only extensions I used were specific to writing C++/Python code. Until now, I had been utilizing the command-line interface (CLI) to execute various functionalities within ROS.

This is my experience of exploring the extensions available for ROS development and comprehension of the missing functionalities.
While doing research for this blog, the first thing I did was simply type ROS in the search bar for extensions in VS Code.

article image 1 The very first Visual Studio Code extension for ROS was by Microsoft which provides ROS developers with a long list of features and functionalities like information about the ROS status and active topics, creating a ROS environment with sourced terminal, running ROS executables and launch files, and much more. This extension is readily available in the VS Code extensions marketplace and can be installed with a single click.

Some cool functionalities that you can enjoy after installing this extension are:

Another plugin that I found useful was CMake by twxs: article image 1

Although the current extensions for VS Code for Robotics provide tons of features for a faster, better development process, as an experienced and active ROS developer, I find some essential features still missing.

I am really grateful to have installed the plugins available for ROS. If I have to put an estimate on the percentage of the time these plugins have saved, I would say it is about a 40% reduction in the overall development time especially for writing and executing ROS nodes. The ROS plugins aren’t perfectly developed yet as witnessed especially due to the unique challenges of visualization and data formats of ROS. As the robotics community is continuously growing, I have high hopes that the development environments would also improve over time. As of today, I highly recommend using the existing plugins to save time, especially for startups who struggle with maintaining one development process across the organization.

If you liked the article, please buy me a ☕️ coffee