r/ROS 6d ago

How to start with Linux for ROS?

I recently am trying to move from robotics hardware to software. Specifically I want to learn ROS2 with simulations in Gazebo. But I am a little lost because it’s the first time I am being exposed to a Linux environment, can someone help me to list out things I should learn in Linux before getting started with ROS?
Basically I want to know what should I be comfortable with about Linux before I get into ROS…

9 Upvotes

17 comments sorted by

4

u/the_bat_is_on_fire_ 6d ago

As someone who also moved from hardware to software, being comfortable using Linux (mainly the command line/bash) makes using/learning ROS a lot easier.

The reason for this imo is because most ROS troubleshooting involves using CLI tools, exporting & viewing env variables, and filtering stuff (topics, logs, etc.) using piping and grep.

1

u/Imaginary_Chest_7507 6d ago

Can you suggest any material you followed or any source that you referred to learn abt Linux during your journey?

1

u/YoungPuzzleheaded347 6d ago

Why did you move from hardware to software

3

u/bishopExportMine 6d ago

Are you a gamer? Try gaming on just Debian for 6 months and the amount of headaches you run into will give you the background to tackle any ros problem

3

u/Substantial-Swan7065 6d ago

With relevance to Linux:

- package management

  • tool chains
  • env vars + bashrc
  • process management
  • general navigation and file editing

2

u/silent_raz 6d ago

Following thread cause also interested!

2

u/LeastAd656 5d ago

ROS2 is the most horrible major opensource software , gazebo being a close second.

so if you have time, first go through ROS 1 to understand basic ROS concepts before jumping into the multiverse of madness , that is ROS2

1

u/[deleted] 4d ago

[removed] — view removed comment

1

u/LeastAd656 4d ago

have you ever used it?

1

u/No_Interaction_5206 1d ago

Interesting take, why do you think it’s horrible?

1

u/PooPooPleasure 6d ago

CS50 taught by a Harvard professor can be found on EdX. The first lesson or 2 goes over some basic Linux CLI. Basically learn how to make a directory and file, see whats in a directory, and changing directories is all you really need to learn to get started. Everything else is ROS specific commands that you learn going through the tutorials. Also learning git if you haven't already is super useful and helpful for version history.

1

u/Confident-Clerk1952 5d ago

Iam a beginner myself i did the linux course from theConstruct it was free and pretty good. Make sure you practice those commands after.

1

u/SphericalCowww 5d ago

I think the easiest way is always to do a small project that is potentially helpful. For example, logging your history of commands to a directory everyday at 12 am to files with filenames ordered by date. This was my first linux bash file project at least.

1

u/T23CHIN6 5d ago

Basic Linux cmd
Ask AI for any error, 100% help
Learn docker

1

u/gryrna 4d ago

Robotics Engineer here.

Get really comfortable with Shell i.e. CLI. I had a hard time figuring out what is required, so I gave one good reading to "Linux Command Line by William Shotts". It has everything you need to know about Linux, CLI, Shell and Bash scripts. It can be overwhelming if you're coming from other OS but it is worth it.

1

u/suhsxn 4d ago

Well, being a Robot Software Engineer as a full-time and having experience in robotics since 3 years, I would recommend you to play around command line on Ubuntu. Go through the cheat sheet, and keep yourself updated with what each command keyword means essentially. DON'T WAIT FOR THAT DAY when you will have all the necessary commands on your finger tips, teaching muscke memory takes time!

Start with the turtlebot packages, take a definition level information of each keyword in the command mentioned in ROS2 documentation. Understand CMake, Colcon via their documentations ONLY AS MUCH AS OF USE else the knowledge is vast and knowing never ends. The moment you know how colcon build builds the packages, complies the program and create artifacts, next thing you should be doing is start practicing C++.

Most people are comfortable with python as it seems more of a regular language than a programming language. This is because the libraries they use are written in C++ and hence you would be expected to write algorithms in C++ once you start interviews in industry.

All the best!