# ROS2

- [Index](https://www.learnros2.com/ros/index.md)
- [IDE and CMake Setup](https://www.learnros2.com/ros/ide-and-cmake-setup.md)
- [How to add additional include search path](https://www.learnros2.com/ros/ide-and-cmake-setup/how-to-add-additional-include-search-path.md)
- [ROS2 Building Blocks](https://www.learnros2.com/ros/ros2-building-blocks.md)
- [ROS Workspace and Package Layout](https://www.learnros2.com/ros/ros2-building-blocks/ros-workspace-and-package-layout.md)
- [Launch File](https://www.learnros2.com/ros/ros2-building-blocks/launch-file.md)
- [tf2](https://www.learnros2.com/ros/ros2-building-blocks/tf2.md)
- [Quality of Service](https://www.learnros2.com/ros/ros2-building-blocks/quality-of-service.md)
- [Configurations](https://www.learnros2.com/ros/ros2-building-blocks/configurations.md)
- [Rviz Configuration](https://www.learnros2.com/ros/ros2-building-blocks/configurations/rviz-configuration.md)
- [Built-in Types](https://www.learnros2.com/ros/ros2-building-blocks/built-in-types.md)
- [Built-in Message Type](https://www.learnros2.com/ros/ros2-building-blocks/built-in-types/built-in-message-type.md)
- [ROS Architecture](https://www.learnros2.com/ros/ros-architecture.md)
- [Intra-process Communication](https://www.learnros2.com/ros/ros-architecture/intra-process-communication.md)
- [Navigation and Planning](https://www.learnros2.com/ros/navigation-and-planning.md)
- [Navigation Stack and Concepts](https://www.learnros2.com/ros/navigation-and-planning/navigation-stack-and-concepts.md)
- [Navigation2 Implementation Overview](https://www.learnros2.com/ros/navigation-and-planning/navigation2-implementation-overview.md)
- [Cost Map](https://www.learnros2.com/ros/navigation-and-planning/navigation2-implementation-overview/cost-map.md)
- [Obstacle Avoidance and DWB Controller](https://www.learnros2.com/ros/navigation-and-planning/navigation2-implementation-overview/obstacle-avoidance-and-dwb-controller.md)
- [DWB Controller](https://www.learnros2.com/ros/navigation-and-planning/dwb-controller.md)
- [Page 5](https://www.learnros2.com/ros/navigation-and-planning/page-5.md)
- [How to launch the Nav2 stack](https://www.learnros2.com/ros/how-to-launch-the-nav2-stack.md)
- [ROS2 Control](https://www.learnros2.com/ros/ros2-control.md)
- [Online Resources](https://www.learnros2.com/ros/ros2-control/online-resources.md)
- [Overview of Codebase](https://www.learnros2.com/ros/ros2-control/overview-of-codebase.md)
- [Cookbook](https://www.learnros2.com/ros/cookbook.md)
- [Useful Commands](https://www.learnros2.com/ros/cookbook/useful-commands.md)
- [How to specify parameters](https://www.learnros2.com/ros/cookbook/how-to-specify-parameters.md)
- [How to build the workspace](https://www.learnros2.com/ros/cookbook/how-to-build-the-workspace.md)
- [How to publish message to a topic from command line?](https://www.learnros2.com/ros/cookbook/how-to-publish-message-to-a-topic-from-command-line.md)
- [How to inspect service and make a service call](https://www.learnros2.com/ros/cookbook/how-to-inspect-service-and-make-a-service-call.md)
- [How to properly terminate ROS and Gazebo](https://www.learnros2.com/ros/cookbook/how-to-properly-terminate-ros-and-gazebo.md)
- [How to add and remove models in Gazebo simulation dynamically](https://www.learnros2.com/ros/cookbook/how-to-add-and-remove-models-in-gazebo-simulation-dynamically.md)
- [How to spin nodes](https://www.learnros2.com/ros/cookbook/how-to-spin-nodes.md)
- [Tutorials](https://www.learnros2.com/ros/tutorials.md)
- [Services and Communication between ROS2 and Gazebo](https://www.learnros2.com/ros/tutorials/entity-management-service.md)
- [Subscription and Message Filters Demo](https://www.learnros2.com/ros/tutorials/subscription-and-message-filters-demo.md)
- [Executor and Spin Explained](https://www.learnros2.com/ros/tutorials/executor-and-spin-explained.md)
- [Lifecycle Node Demo](https://www.learnros2.com/ros/tutorials/lifecycle-node-demo.md)
- [Robotic Arm Demo](https://www.learnros2.com/ros/tutorials/robotic-arm-demo.md)
- [Multiple Robotic Arms Simulation Demo](https://www.learnros2.com/ros/tutorials/multiple-robotic-arms-simulation-demo.md)
- [Introduction to xacro](https://www.learnros2.com/ros/tutorials/introduction-to-xacro.md)
- [Page](https://www.learnros2.com/ros/page.md)
- [Tech Blog](https://www.learnros2.com/ros/tech-blog.md)
- [Difference between URDF and SDF and how to convert](https://www.learnros2.com/ros/tech-blog/difference-between-urdf-and-sdf-and-how-to-convert.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.learnros2.com/ros.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
