Basic of Robotics.| Defination | levels | programming languages |types of Robotics|Applications| etc.
Basic....!
For many people robotics is a hobby, while for many others robotics is a business and has been for many years. Robots are in widespread use throughout industry making cars, semiconductors and food, populating circuit boards and managing warehouses. Robots increasingly do the tasks that are too dull, dirty and dangerous for us.
Most of these industrial robots are just machines following fixed operating sequences, with little ability to alter what they do. Human supervision is needed to deal with any slight variation from normal routines. If a human gets in the way of an operating robot they are likely to lose body parts or their life. In the same way, computer-controlled milling machines and 3D printers are also robots. A robots' inability to cope with novel situations is the reason that it's best to design the solution around the robot as an integrated system rather than expect the robot to handle tools, materials and environments designed for humans.
If you ask most robotics companies they would see themselves as primarily software companies. The robot is a delivery vehicle for their specialized software. A huge amount of effort is going into making robots that interact well with people or that can cope with variability. This research is leading to robots that can appear to be pretty clever, but in reality they are just following a program. When not performing their programmed tasks they are not thinking about anything else, like we would!
Robotics is also a big consumer of new physical technologies, including new battery and power systems, better motors, nanotechnology, biotechnology and additive manufacturing (3D printing).
Different Levels of learning....!
I see this question being asked a lot so I will go ahead and try my best to provide a road map that can guide someone to either start or develop themselves further in robotics. The road map has 4 levels and each level focuses on 4 core concepts. Each concept intertwines with itself and holistically develops your inner robotic genes ;) !
Warm-up level:
- Learn coding: Start picking up at least one handy programming language. Arduino IDE is good. Python is great. C/C++ will be fantastic. My suggestion would be: Python. There are several reasons for this and later in the road map you will see why.
- Learn electronics: Start building basic electronic circuits. It can be as simple as lighting up an LED. Next light up more LEDs. Make a simple traffic signal. Implement switches. Learn the theoretical ideas behind how voltage, current, resistors, transistors, series & parallel circuits work. Explore sensors and servo motors too!
- Learn basic assembling: As kids we loved making toys and building stuff. Do the same here. Learn to make some basic structures using wood, acrylic, fiber, or plastic.
- Integrate with micro-controller: With knowledge of the above concepts, you should try and test them on a basic micro-controller. After all, you want your circuit to “react”. The most popular choice among hobbyists and beginners is to go with Arduino. Arduino has truly simplified the process of coding and implementing basic reactionary circuits.
Beginner level:
- Learn Object-Oriented Programming: It is not only important to code in robotics but also how to code well. Object-oriented programming (OOP) is a tremendous muscle to grow and earlier you can do this, the more you will thank yourself in the future. OOP isn’t exclusive to Python. However, in Python you can implement these easily and practice. Through OOP, you will learn about classes, methods, inheritance, etc and this is an excellent technique for writing functional, modular, and efficient codes.
- Learn physics, probability, and linear algebra: As you are growing from an infant roboticist to an adolescent, it is important that you also know how robotics is written, read, and spoken by others in the community. This robotics language heavily uses physics, probability, and linear algebra. Yes, you may not enjoy these subjects in school or university but trust me you need them if you are serious about robotics. You cannot do computer vision without knowing about matrices. You cannot do path planning without knowing about physics. You cannot do artificial intelligence or machine learning without knowing about probability.
- More involved computer skills: Now what do I mean by that? A lot of newcomers to robotics get stumped (I was too!) that they need to learn this new alien looking operating system that has a penguin somewhere next to it. I am talking about Linux operating system. It is imperative that for someone looking to get deeper into robotics should familiarize themselves with Linux. A lot of libraries, packages, and software developed for robotics are distributed very easily and efficiently on Linux environments. Popular linux OS choice: Ubuntu
- Embedded systems: Now that you have developed better knowledge of coding, circuitry, theoretical concepts, and familiarity with Linux, we need to implement these on a smaller computer than our laptop. So go ahead and try warmup level concepts along with the above concepts on a mini-computer such as Raspberry Pi or the BeagleBone. Hook on some sensors, servos, and a camera to one of these min-computers, and write some code to sense, move, and detect stuff!
Intermediate level:
- Develop theoretical foundations: Here depending on what area of robotics you are interested in, you need to learn more into the theory behind it. Learn about robotic arm manipulation (kinematics & control), perception (computer vision, linear algebra, matrices), machine learning/artificial intelligence (probability, statistics, maths). Do you see how some of the previous concepts are fundamental to these core robotics areas?
- Use advanced libraries: Now you need to implement machine learning and/or computer vision algorithms on your robot. After all, the robot should be able to see and think and learn, right? On Python, there are amazing libraries written for implementing machine learning and computer vision algorithms e.g. tensor flow and OpenCV. Similarly, a lot of AI can be practiced on Python as well. Of course you can do the same in C/C++. However, I am trying to keep it consistent here.
- Get familiar with ROS: With the knowledge of all of the above, an excellent middle-ware that one should learn is the Robot Operating System (ROS). It can be a little tricky to pick up at first. However, ROS opens up your doors to test advanced algorithms and simulations on robots that you don’t even have! Want to fly a quadcopter? Or navigate a robot autonomously in a map? How about getting an industrial arm to pick up an object? You can do that in ROS via its simulation environment named Gazebo.
- More CAD: You may be interested to develop and design complex robots. Start learning 3D design software such as Blender or SolidWorks so that you can design your own robots.
Expert level:
- Keep learning and growing: Each concept mentioned above is endless by its own virtue, and to become an expert in robotics, you will need to invest the time and keep learning. You will realize that you need to learn more classifiers or models to detect objects/images better. Or you might need to learn more about control algorithms to optimize your solutions.
- More software/hardware: Depending on your area of interest and specialization, you will be doing more and more of coding, algorithmic development, ROS, and/or robotic designing.
Lastly, I am definitely not an expert and hence I cannot add much to that. What I can say for sure is even I do not know what I do not know. One important thing to remember is: get started and be consistent =)
Programming languages...!
Robotics is considerably huge field to cover as it involves various aspects of Electronics, Mechatronics, computer science, machine learning, instrumentations and controlling and Artificial Intelligence (AI).
Along with the knowledge of above fields, the knowledge of programing language is essential as this is how robots obey the commands. With so much to cover, a new roboticist will definitely ask “what is the best programming language for robotics?”
Sadly the question does not have single answer with arrival of new technological advancement in field of robotics. Instead of asking that you shall ask “which programming language you shall learn first?”
BASIC and PASCAL:
BASIC (Beginners All-Purpose Symbolic Instruction Code) and PASCAL are two of the principal programming dialects.
BASIC is intended for apprentices, which makes it a really simple programing language to begin with.
Pascal was intended to empower great programming rehearses and furthermore presents builds like pointers.
Nowadays, the two dialects are somewhat obsolete to be useful for “regular utilize”. In any case, it can be helpful to learn them in case you will do a ton of low level coding or you need to get comfortable with other mechanical robotics languages.
Lisp:
Lisp stands for “list processing”. Lisp is not only the world’s second oldest programing language after FORTRAN but also has considerable importance in fields of Artificial intelligence and machine learning as developer says Lisp is designed to evolve.
Lisp is quite popular for its symbolic expression and great prototyping capabilities. Even some parts of ROS (robotic operating system) are written in Lisp.
MATLAB
One of the most popular and most used programing language, MATLAB, is an open source. MATLAB has become quite popular among the amateurs in this field and professional roboticist for analyzing information and building control system.
As some forums have stated that there are people who have developed entire robotic system by using only MATLAB. If you are concerned with top-tier analysis, generating technical data & graphs and establishing controlling unit the MATLAB will be a great help and you may want to learn it.
Python
There has been an immense resurgence of Python lately particularly in apply autonomy.
Python abstains from a great deal of the typical things which take up time in programming, for example, characterizing and throwing variable sorts. What’s more, since it permits basic ties with C/C++ code, this implies execution overwhelming parts of the code can be actualized in these dialects to maintain a strategic distance from execution misfortune.
Moreover, Python is becoming even more popular with automation devices like Raspberry Pi and Arduino which makes it must learn programing language not only for Robotics but also for complete automation package.
Java
Most of the computer and controlling engineering degree programs and Robotics Certification Courses teaches JAVA as their first programing language as it is providing all the high level features needed to deal with various aspects of robotics.
This object-oriented programing language is also great choice for AI programs especially building algorithms such as language processing, search and neural network algorithms and those are the essential aspects of any humanoid which is great challenge to robotics.
In shot JAVA cannot be avoided in the list of best programing language for robotics.
C++
Many individuals concur that C and C++ are a decent beginning stage for new roboticists. C++ is the quickest programming dialect on the planet.
Its capacity to talk at the equipment level empowers engineers to enhance their program execution time. Since a great deal of equipment libraries utilize these dialects.
Types of Robotics...
Here are the top 5 types of robots:
1. Pre-Programmed Robots – Such robots operate in a controlled environment to perform simple and repetitive tasks. A mechanical arm on an automotive assembly line can be an ideal example of this. It serves a single function like inserting a certain part into an engine or welding a door on, etc.
2. Autonomous Robots – These can operate without any requirement of human operators. Roomba vacuum cleaner is one such example that uses sensors to roam freely throughout the home and clean. Human supervision is not required here.
3. Humanoid Robots – These robots resemble human beings. These can also perform various activities like jumping, running, talking, etc. These are widely used in entertainment, research, and the medical domain. Hanson Robotics’ Sophia and Boston Dynamics’ Atlas are the two most prominent examples.
4. Teleoperated Robots - These mechanical bots are controlled by humans. Usually these work in extreme weather circumstances, geographical conditions, etc. The examples may include the human-controlled submarine that can fix underwater pipe leaks or drones used for detecting landmines on a battle-ground.
5. Augmenting Robots – Such robots can either enhance the existing human capabilities or replace lost capabilities. For example, robotic prosthetic limbs can lift heavy-weights.
I had given my best view about robotics and basic, so please give me a feedback via comment.....
Thank you
Really interesting post. I was looking for this kind of information and enjoyed reading this one. Keep posting. Thanks for sharing.
ReplyDeleteData Science Online Training
Python Online Training
Salesforce Online Training