Alright, be honest. We all were like, “ROS sounds cool.” Let me install it and see how it works, plus how hard can installing it be(famous last words). Then you search up “ROS install Ubuntu”, and you find 50 guides all saying something different. Some require 4 hours of compiling while others simply use ATP. What is the deal with all of this?
Method 1: Easy way out!
https://imgr.search.brave.com/HrMbmi1kSMEnJflnt8rSZnsbBd8q3LKt_4gurC8rsos/fit/602/606/ce/1/aHR0cHM6Ly9pLnBp/bmltZy5jb20vb3Jp/Z2luYWxzL2Q5LzJm/L2RkL2Q5MmZkZGQ1/NGFkOTA3NTQ5NWY0/ODdjMTRhM2ZjODQ1/LmpwZw Now how this one works is simple. ROS only supports LTS versions of Ubuntu. That is 20.04, 18.04, 16.04, 14.04, etc. Now for each LTS version, there is a version of ROS. For 20.04, it is Noetic Ninjemys, for 18.04, it was Melodic Morenia, etc. You must be wondering, “Can you communicate between other versions of ROS?” Absolutely! They will communicate flawlessly with each other. They communicate over an IP Protocol that is common and reverse compatible. It is a little difficult to communicate between ROS1 and ROS2 since you must use ros_bridge. But that’s for another day!
For Ubuntu 20.04 (Noetic Ninjemys)
Now, unless you have some crazy dependency, the latest ROS1 version is the way to go for beginners. The latest as of December 12, 2021, is ROS Noetic. Installing previous versions will be a little harder. 1 more thing, I will show installation on Ubuntu 20.04 but other operating systems like Arch, Windows, and Debian are available. Here is how you can install Noetic Ninjemys:
Link to other OS installations: http://wiki.ros.org/noetic/Installation
|
|
That’s it!

Method 2: From Source (Advanced Users)
There is a separate way where you can install and compile all the ~150 packages from source. This is for the professional developers or the confused beginners(get it?). Please let me know in the comments if you want me to make a separate article on this!
Setup Development Environment
Alright, the installation is finally complete. Not so fast! We still have to make the development environment. Don’t worry, it is SUPER easy!
|
|
Take if for a Spin!
Finally, the moment you have all been waiting for…your very first ROS1 command!

Note:
Please note: this article shows you how to set up ROS on 1 computer. Meaning that the Master and Nodes are on the same computer. TO communicate across many computers, there is a painful setup procedure that I won’t make you endure just yet(brace yourself for the future).
ROS Core
ROS1(not ROS2) works on the following system:
ROS Core manages the master node. It manages all the communication happening in the ROS network. You cannot run any ROS nodes without it.
|
|
Turtle Sim

The first thing you are going to do is make a little turtle draw things on a screen using your arrows.
If you are short on time, install it using APT:
|
|
If you want to learn ROS properly, do this:
|
|
Now, let us run it! Make sure roscore is running on a different terminal
|
|
This should show a box where you can move a turtle around. But more importantly, is the things happening behind the scene.
|
|
What do you see? Can you find our node?
|
|
Where is the turtle location topic? Did you see it?
|
|
Replace the first argument with the topic name you previously found. Can you see the coordinates move as the turtle runs around(or should I say crawl around)?
Things to note:
cmd_vel: This is what we call a Twist message. It contains target velocity values for 3 axes of translation and 3 axes of rotation. You can imagine how useful this is for a remote-controlled robot.
Command structure: Did you notice the pattern in the commands. It is the object you are accessing(rosnode, rosservice, rostopic, rosrun, etc), then the action you want to perform(echo, list, hz, etc), then the arguments. We will dive into the depth of these commands in another article.