> For the complete documentation index, see [llms.txt](https://leftover-ice.gitbook.io/resources/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://leftover-ice.gitbook.io/resources/ros/beginners-guide-to-ros/ros-installation.md).

# ROS Installation

## Prerequisite: Get Ubuntu

ROS is best used with an Ubuntu environment. For my guides, I am using Ubuntu 22.04 (Dual Booted on Windows). For information on how to do that, refer to the below guide.

{% content-ref url="/pages/kfzGsFwqEExbXwbVrTtU" %}
[Ubuntu Setup - Dual Booting (For Windows)](/resources/ros/beginners-guide-to-ros/prerequisites/ubuntu-setup-dual-booting-for-windows.md)
{% endcontent-ref %}

Another good alternative (and easier to setup) is to use Windows Subsystem for Linux (WSL) and specifically WSL version 2 (WSL2).

{% content-ref url="/pages/tYPlPIWCIVWX7MgCUme6" %}
[Ubuntu Setup - Windows Subsystem for Linux (WSL)](/resources/ros/beginners-guide-to-ros/prerequisites/ubuntu-setup-windows-subsystem-for-linux-wsl.md)
{% endcontent-ref %}

## What version of ROS should I use?&#x20;

There are two top-level versions of ROS.

1. ROS1
2. ROS2

Both works to create and program robots. I'd recommend you to learn both ROS1 and ROS2 to be familiar with the differences.&#x20;

Sometimes we just refer our default ROS version as "ROS" so just take note that when I mention "ROS" in subsequent pages, I am referring to ROS2.

What is the main difference? Here is a link to describe the differences between the two.&#x20;

{% embed url="<https://www.model-prime.com/blog/ros-1-vs-ros-2-what-are-the-biggest-differences>" %}

But the confusion doesn't just end here, there are different versions for ROS1 and ROS2 respectively too. They are called distributions/distros and new ones come out every 2-4 years.

**ROS1 Distributions**

{% embed url="<https://wiki.ros.org/Distributions>" %}

**ROS2 Distributions**&#x20;

{% embed url="<https://docs.ros.org/en/jazzy/Releases.html>" %}

For my guides, I will be using ROS2, specifically the Humble Distribution.

Note that distributions require specific Ubuntu Distros! For example, ROS2 Humble works on Ubuntu 22.04.&#x20;

***

So now that you have a brief understanding of ROS, let us take a look at how we can set up ROS.&#x20;

{% content-ref url="/pages/6RJfZ1mtl72WQIojMjt2" %}
[Installation Guide \[ROS2 Humble\]](/resources/ros/beginners-guide-to-ros/ros-installation/installation-guide-ros2-humble.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://leftover-ice.gitbook.io/resources/ros/beginners-guide-to-ros/ros-installation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
