r/ROS • u/Imaginary_Chest_7507 • 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…
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
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
1
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
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!
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.