Tutorial for beginner who wants to start using ROS Noetic on Ubuntu 20 LTS
- Getting started with Linux
- What is a Linux?
- Ubuntu interface
- Performing task on Ubuntu
- Basic commands
- Basic robot operating system (ROS)
- What is ROS?
- ROS concept
- ROS computational graph
- continuous data streams (topics)
- remote procedure calls (services)
Linux is an open-source Unix-like OS that manages communication between hardward and software, since Linux is an open-source, many distributions(versions) have been developed, one of the most popular one is Ubuntu we use today.
Desktop elements
Shell is a command-line interface that interprets what should the ubuntu perform from command of user, there are many shells out there but the default one of ubuntu is Bourne-Again shell or bash
As a developer, most of time we spend on ubuntu doing tasks will use what we called terminal, terminal is a power tool that uses shell to interprets the command and it gives us ability to
- Navigating
- Manipulating
- Diagnosis
- More++
You can start using command prompt or terminal by go to a launcher and type the following word and enter
terminal
or the another way is to use the short-cut which is way better and faster, just press ctrl
+ alt
+ t
then your terminal should appear as shown below
You can see that on the terminal there is a hayashi@lab:~$
hayashi
is the username indicated before @ symbol
lab
is the hostname indicated after @ symbol
~
is the directory you are working on (~ or "tilt" means the home directory)
$
is prompt symbol, this symbol will tell where the command you type begin
Basic commands
ls, ls will list what file are in the directory you are working on
ls
cd, cd is the command to change the directory that you want to go to work
cd ~/Desktop
If you want to edit the script or text file, Ubuntu has provided us the default text editor which is called gedit, of course there are more text editors, some text editor gives more functionality for coding such visual studio code, vim, nano and more
gedit my_text_editor
sudo, sudo stands for superuser do, this command gives ability to be an administrator or root privileges, some files could not be directly used local, so the sudo comes into this position
example of sudo command, from the command below, you could see that the terminal will warn us about the permission to update file repository
apt update
to use this command properly, we need to append sudo in front of the command
sudo apt update
These are just the basic commands, if you would like to know more, here is the link to my recommend page to read about command on Linux
- lightweightness, ubuntu is lightweight in its nature, ypu don't have to pay to get access, you can install along side with your existing operating system, just donwload, install and use!
- the distribution of ubuntu is a long-term support (usually 5 years)
- tons of community support, ubuntu has a great community whenever you have a problem, you could get help such as ubuntu community or stackoverflow and more communities++ out there
Robot operating system or ROS for short, ROS is an open-source framework for developing a robotics, ROS has a simple concept and easy to understand, ROS has a lot of communities, so many engineers and researchers use this framework to develop their own robot applications.
To install ROS on ubuntu, first you are going to open the terminal using ctrl
+ alt
+ t
and cd
to the home directory, then you are going to set your computer to accept software from ROS
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
Get the key from ROS to make sure you really get the ROS software from ROS
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
Update the repository on your computer
sudo apt update
Now the part of ROS, ROS provided many ways to install, but in this tutorial, I will just let you install the full version of ROS since you will get access to all tools and libraries in ROS
sudo apt install ros-noetic-desktop-full
Now, this command may take a while to install ROS depends on your quality of internet connection. After finish from installing ROS, next we will set up the environment before use. We are gonna open up the bash file and add this command to source the workspace, cd
to the home directory
gedit ~/.bashrc
source /opt/ros/noetic/setup.bash
Save the text editor and close, then source the .bashrc file
source ~/.bashrc
After that, these dependecies are important for building up the workspace for ROS
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
Next, we will install rosdep
. Before we use the ROS tools, we need to have this rosdep to easily install system dependencies for source you want to compile and is required to run some core components in ROS. for full detail about the rosdep, please visit this link
sudo apt install python3-rosdep
Initilize the rosdep
sudo rosdep init
rosdep update
Now, you have ROS installed on your ubuntu !
ROS filesystem level
ROS filesystem level is the part of the ROS that consider the filesystem on the disk, the filesystem level mainly consists of packages, metapackages and message type, service types.
ROS workspace
ROS workspace is where you modify, build, and install catkin packages, the workspace will usually contain build, devel and src folder
- build is where the build file of the workspace is kept, all cache and information about build is here
- devel stands for development, it is where the built target is stored, after the build configuration
- src stands for source, it is where the source file of the workspace are kept, your script file, your package that follows the rule of the filesystem level
Let's create ROS workspace !
Before create the workspace, we must install the catkin_tool package which contains the build tool for our workspace
Open up your terminal using ctrl
+ alt
+ t
, and get ROS repository that contains the catkin_tool
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
Setup the key for the ROS repository
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
Update the latest version of packages from repositories
sudo apt-get update
Install catkin_tool package
sudo apt-get install python3-catkin-tools
For additional info about the catkin_tool package, please visit this link
Now we are ready to create our ROS workspace !
To create ROS workspace, open the terminal using shortcut ctrl
+ alt
+ t
or you can go open the launchpad and type terminal to open your terminal
next, create the folder for your ROS workspace
mkdir -p ~/catkin_ws/src
Go to the catkin_ws directory
cd catkin_ws
Build your ROS workspace
catkin build
your workspace is built with this command then it is ready for your robot application, you could see 3 new folders which are build, devel and logs folder, the logs folder here will just log what catkin build did for you if you want to know what happened of last build
- .bashrc file? link
After the workspace has created, we will source our workspace to bashrc file, let's go back to home directory and type this command on your terminal
cd ~ && echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc && source ~/.bashrc
For additional info about creating ROS workspace, please visit this link
Create the your first package
Next we will create first ROS package, first let's change directory to src in catkin_ws
cd ~/catkin_ws/src
Create a package
catkin_create_pkg my_package rospy roscpp std_msgs
Your package has created, you could check the current directory by using ls
command, next you have to go back to catkin_ws to build your workspace
catkin_create_pkg my_package rospy roscpp std_msgs
has a form catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
- catkin_create_pkg is the command the create the package in your ROS workspace
- package_name is the name of the package, you could name this package whatever you want
- dependency means ROS packages that your package depends on
cd ..
Then
catkin build
Now you will see the terminal shows that the package my_package has been built
For additional info about creating ROS package, please visit this link