Introduction to Linux: Key Aspects and Application in Robotics
Discover the significance of Linux in the world of robotics and beyond. Learn about its widespread usage, versatility under the GNU GPL license, robust security features, and practical application through executing bash scripts on a Linux system. Dive into the fundamentals of Linux Shell interaction, essential for communicating with the Linux operating system efficiently.
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
Let me tell you one simple detail. Have you ever heard of ROS? The Robotics Operating System that is the reason for the existence of this beloved Academy? In fact, 99% of the courses that you will find here will be about ROS. Well, at present, ROS only fully supports Linux systems.
Linux is everywhere Did you know that every time you use Google or Facebook or any other major Internet site, you are communicating with servers running Linux? Most DVRs, airplane and automobile entertainment systems, and even smart TVs run on Linux. Furthermore, if you are using an Android phone, you are also using Linux. As a matter of fact, Linux is used in 498 of the 500 world's speediest supercomputers.
Versatility Linux is available under the GNU GPL license, which means it can be freely used on almost any product or service you re developing, as long as the license terms are respected. Also, Linux development is community-based. This means that you can work with other Linux developers to share knowledge and learning.
Security Linux is one of the most secure operating systems around. From devices/files to programs, access mechanisms, and secure messaging, you name it.
Demo a) In the following demo, you are going to execute a bash script. Bash scripts are a very useful and common tool used by Linux developers. Basically, it is the tool used for creating programs for Linux. So... let's go for it!
In order to complete this demo, you will need to execute some commands on the Web Shell. The Web Shell is just a regular Linux Shell, which runs on a web browser (since this course is based on a web browser). But now... what is a Linux Shell? Well, we can say that the Shell is the tool that allows you to communicate with the Linux system in order to tell it what to do (by sending commands). On the course screen, you will find the Web Shells (see image below).
You will find 4 available Web Shells, and you can switch between them by clicking on the different tabs (although, for this course, you should only need one). This is known as the prompt of the Shell. It contains some basic information like the current user (in this case its user) or the current path you are on (you will learn more about this during the course). You will also see that it has a white block flickering. This means that the Shell is active and waiting to receive your orders!
The above command will send you to the folder where the bash script is located. If you've done it right, you will see how your prompt gets updated with the following path:
Now, let's execute the bash script! But before anything, let's quickly explain how it works. In this case, the bash script you are going to execute is expecting an argument. The script, then, will evaluate the argument received and do one thing or another. For this script, you can send 3 different arguments: forward: This will move the BB8 robot forward. rotate: This will make the BB8 robot rotate on its own axis. stop: This will make the BB8 robot stop any movement. So, basically, you can execute the bash script in the following ways.
Main Objective of this course The objective of this course is to give you the basic tools and knowledge to be able to understand and create any basic ROS Navigation related project. You will be able to create maps of environments, localize the robot in the environment, make the robots perform path planning, visualize data of the different Navigation processes and debug errors using Rviz, configure the different Navigation nodes... The course will allow you to understand Navigation packages that others have done. So you can take ROS code made by others and understand what is happening and how to modify it for your own purposes. This course can serve as an introduction to be able to better understand the official ROS Navigation documentation or external Navigation documentation and projects.
Learning ROS Navigation: attack in two ways The course provides teaching lessons in two different ways: Learn ROS Navigation programming several robots: This part consists of units that each one teaches you some topic of ROS Navigation. But you will learn creating and executing code while using different robots for it (the robots above).Theory through hands on experience. Apply what you learnt to a Robot Project: Here you will apply what you have learnt in the previous units by attacking a full project controlling a Summit XL robot. The objective is to make the Summit XL navigate to different spots of the environment autonomously.
Learning ROS Navigation by programming several robots: We will teach you the main ROS concepts that are the core of ROS Navigation. These are the most important concepts that you have to master. Once you master them, the rest of ROS Navigation can follow easily. Along the units of this course, you will learn: Unit 1: How ROS Navigation Basic Structure works. Unit 2: How to create a Map of the environment. Unit 3: How to Localize a robot in an environment. Unit 4: How to Plan a Trajectory in this environment. Unit 5: How to Execute a Trajectory and Avoid Obstacles while performing this trajectory.
Each Unit is meant to be done in around one session of about 4-5 hours. We will use Python language to teach you and to program the robots.
Apply what you learnt to a Robot Project: As you master the different concepts of ROS Navigation, you will have to apply your learning in a complete robot project. We suggest that you combine the learning of the lessons with progressing on the project. That is why, we have divided the project into 4 sessions: Project Section 1: Create a Map of the environment you want to navigate. Project Section 2: Create a service that when used it reads the current pose of the robot and it saves it with a label. Project Section 3: Configure and test the Path Planning System for your robot. Project Section 4: Create a global program that receives an string indicating an specific label, and navigates the robot to the pose assigned to that label.