Basics of Autonomous Robot Navigation System With ROS | For Beginners | (Open Source softwares)
What Is Autonomous Robot & Navigation?
Image Source - Google | Image by - S. Winkvist / Public domain |
Before Starting this topic lets discuss about What is an Autonomous Robot Navigation? Robot is a device which helps human and obey all orders of humans. Now Autonomous Navigating Robot have sense of direction, mapping and position(By doing this we provides intelligence). This robots can automatically go to the predetermined destination without any external control from a location. This robotic process can be divided into two parts Hardware part and Software part
Hardware Part
There are many hardware available in the Indian Market for the normal
robot but the main question is the Which hardware appropriates for
navigation bot.
-
In the very First You will Need Microprocessor(Computer can be) or
SoC(System On Chip) ex.
Raspberry Pi. This system used to run our programs and save our directory and
codes.
-
You need chassis and design for the robot.
-
If your robot is land robot than you will need wheel or tracks, DC
differential drive Encoded Motors, This will give you
exact Rotation and movement of robot. Microcontroller (arduino) Used to Control the motors
-
According to the motors, You will need Motor Driver to drive and
control motors Direction and Speed.
-
Ranging Device : It will Give distance data to your program, there are
various types in it :3D Ranging Device, 2D ranging device, Single and
Multi point Ranging, Ultrasonic, Sonar, Radar, Laser Ranging
(LiDAR),..Etc
-
IMU(inertial measurement unit) This provide the acceleration of robot and angle of the robot, Its
useful to get robot Odomatry(Odomatry is uses the IMU sensor
data for determine acceleration and angle over the time.)
-
Battery and charger
-
Wires
Software Part
-
Ubuntu version OS recommended Because Ubuntu is open source OS and it
is free for all (as well Commercial Purpose also).
-
ROS (Robot Operating System): ROS is not software and nor OS it is
middleware system. It is also available for many other operating system
and recently it also support in Windows OS also. Currently ROS introduce
new distro
Foxy Fitzroy. This is supports mac OS, Ubuntu OS and Windows as well (This is named
as ROS 2 by ROS community).
-
In ROS many distros(distribution) are there, This distros supports some fixed OS on
your main system(PC or SoC) Example you have Ubuntu 16.04 version than
ROS Kinectic distro is best supportable for you.
-
For the testing or learning purpose if you don't want to install Ubuntu
than there also option for Windows users. They can install WSL (Windows
Subsystem for Linux) you can intall this on Windows OS This
installation provides you Ubuntu's Terminal where you can install ROS on
it.
-
ROS is now also available for Windows OS but Windows is not open source
system So , if you want to use as officially and industrial purpose than
you have to switch to the ubuntu OS or any other OS Where ROS
supported.
-
After the installation of the ROS, You have two choice for
programming
-
Python
-
CPP (C++)
-
In ROS you have to create Workspace, This directories are runs when you
execute your programs on terminal.
- ROS Installation : select best OS for your hardware and according to the OS Select ROS Destro version than move to the terminal and follow the instruction for particular distros
- This link will redirect you to ROS installation (Click On ROS installation). There are some installation option open anyone. ex .. Melodic, Kinectic, Noetic,..
- It will take to you to new window and in this it is given platforms and supportable OS for Selected ROS version. Ex. Ubuntu, Debian. Select your OS (Ubuntu OS is best preferable)
- After Clicking your OS it will open installation and some codes, read that carefully and paste code to your terminal. (There will also some options desktop-full installation, Desktop Installation. It's all upon you which function you want to install with ROS.)
Image Source - Google | Image by - http://wiki.ros.org/ / CC BY-SA |
What you need for Path Finding.
1. Position : Measuring the robot's position.
2. Sensing : Measure obstacles such as walls object and objects.
3. Map : Maps with road and obstacles information using SLAM algorithm (Simultaneous Localization and
Mapping).
4. Path : Calculate optimal path to the destination and follow the
path.
According to “Autonomous robot navigation system”, A Robot which can
navigate its own position and reach its destination by avoiding the
obstacles which are coming in front of it.
There are two terms which always comes in front of us, those are
-
Location
-
Navigation
Location means the position where I am right now.
While navigation terms consists of the the fundamental terms.
-
Self localization
-
Path planning
-
Map building and interpretation
These three above task can be done simultaneously for approaching the
Automatic Navigation System.
Currently Electric Vehicles are common, best thing is that it is not using fossil fuel and that is
why it makes the environment less spoiled. Now that days are not far away when cars will run on the road
without drivers.
Wonderful article very much Informative. Written in very easy language.
ReplyDeleteThank You
ReplyDeleteFor the information. Very useful article 👍
Can anyone recommend me the best service from the list mentioned in this site.
ReplyDeleteDigital Mapping