This is a Visual Studio Code Extension that provides debugging support for Robot Operating System 2 (ROS 2) development ROS 2 on Windows, Linux and MacOS. The Robot Operating System is a trademark of Open Robotics.
NOTE: This extension is rebranded and re-released by Ranch Hand Robotics, a company owned by the maintainer of the ms-iot VSCode ROS Extension with permission from Microsoft. The source extension was split into 3 parts - ROS 1, ROS 2 and a URDF editor.
- Automatic ROS environment configuration.
- Allows starting, stopping and viewing the ROS core status.
- Automatically create
colconbuild and test tasks. - Run and Debug ROS Launch Files
- Resolve dependencies with
rosdepshortcut - Syntax highlighting for
.msg,.urdfand other ROS files. - IntelliSense support for ROS message files (
.msg) including hover information with nested message properties and go-to-definition. - Code snippets for Python, C++, and launch files to accelerate development.
- Automatically add the ROS C++ include and Python import paths.
- Format C++ using the ROS
clang-formatstyle. - Debug a single ROS node (C++ or Python) by attaching to the process.
- Debug ROS nodes (C++ or Python) launched from a
.launch.pyfile. - Configure Intellisense
- Support for alternative shells (e.g.
fish,zsh, etc.) for ROS 2. - (Preview) Model Context Protocol (MCP) Server, allowing LLMs to introspect a running ROS 2 system.
- Support for Pixi Package Manager for ROS 2, a cross-platform ROS 2 development environment.
- (Preview) Lifecycle Node Support, allowing you to manage the lifecycle of ROS 2 nodes through the Dashboard.
- Support for Visual Studio Code and Cursor
The VS Code ROS extension will attempt to detect and automatically configure the workspace for the appropriate ROS Distro.
The extension will automatically start when you open a ROS 2 workspace.
If you are migrating from the ms-iot/vscode-ros extension, consider the following:
-
Launch.json - To support splitting the ROS 1 and ROS 2 extensions, the launch task name in launch.json has been changed to
ros2. -
URDF Editor - The URDF editor has been split into a separate extension. If you were using the URDF editor, you will need to install the Robot Developer Extension for URDF/Xacro.
-
ROS 1 - If you were using the ROS 1 extension, you will need to install the Robot Developer Extension for ROS 1.
Please see the documentation site at Robotics Developer Extensions for ROS 2 Documentation
If you encounter any issues with this extension, the following resources are provided:
Bugs and feature requests are handled through Github Issues in the Repository. If you find that you are hitting the same issue as someone else, please give a 👍 or comment on an existing issue. Please provide as much details as possible, including an isolated reproduction of the issue or a pointer to an online repository.
Github Discussions are provided for community driven general guidance, walkthroughs, or support.
If you find this extension useful, please consider sponsoring Ranch Hand Robotics to help support the development of this extension and other open source projects.
Contributions are always welcome! Please see our [contributing guide][CONTRIBUTING.md] for more details!
A big Thank you! to everyone that have helped make this extension better!
- Andrew Short (@ajshort), original author
- James Giller (@JamesGiller)
- PickNikRobotics (@PickNikRobotics) for code formatting
- Microsoft (@ms-iot) for curating the ms-iot extension