# Basic Robotics
# Introduction
A robot is a machine or device —especially one programmable by a computer— capable of performing tasks that may or may not imitate human actions and other complex series of actions automatically.theres a significant diffference betwen a machine(eg:car engines) and robots. A robot must be self dependent and dynamic.
Robotics is an interdisciplinary branch of engineering and science that includes mechanical engineering, electronics engineering, computer science, and others. Robotics deals with the design, construction, operation, and use of robots, as well as computer systems for their control, sensory feedback, and information processing.
# laws of robotics
The Three Laws of Robotics are a set of rules devised by the science fiction author Isaac Asimov.The Three Laws, quoted as being from the "Handbook of Robotics, 56th Edition, 2058 A.D.", are:
- A robot may not injure a human being or, through inaction, allow a human being to come to harm.
- A robot must obey the orders given it by human beings except where such orders would conflict with the First Law.
- A robot must protect its own existence as long as such protection does not conflict with the First or Second Laws
# Branches of Robotics
# Dissection of Robot
# 1. Manipulator:
Just like the human arm, the robot consists of what is called a manipulator having several joints and links. Robots
# 2. Endeffector:
The base of the manipulator is fixed to base support and at its other free end, the Endeffector is attached.
The Endeffector is expected to perform tasks normally performed by the palm and finger arrangements of the human arm.
# 3. The Locomotion Device:
In the case of Human Beings the power for the movement of the arm, the palm and fingers is provided by muscles. For the robot the power for the movement (locomotion) is provided by the motors. The motors used for providing locomotion in robots are of three types depending on the source of energy: Electric, Hydraulic or Pneumatic.
# 4. The Controller:
The digital computer (both the hardware and the software) acts as a controller to the robot. The controller functions in a manner analogous to the human brain. With the help of this controller, the robot is able to carry out the assigned tasks. The controller directs and controls the movement of the Manipulator and the Endeffector. In other words, the controller controls the robot.
# 5. The Sensors:
Without the data supplied by the sense organs, the brain would be incapable of intelligence. In other words the controller (the computer) of the robot cannot do any meaningful task, if the robot is not with a component analogous to the sense organs of the human body. Thus, the fifth and the most important component of the robot is the set of sensors. Sensors are nothing but measuring instruments which measures quantities such as position, velocity, force, torque, proximity, temperature, etc.
# 6. Actuator
An actuator is a component of a machine that is responsible for moving and controlling a mechanism or system
# Major Task in Robotics
# 1) Modeling and Simulation
Modeling and simulation is the use of a physical or logical representation of a given system to generate data and help determine decisions or make predictions about the system. CAD , MATLAB
# 2) Motion Control (Electronics)
Motion control is a involves in moving robot in a controlled manner. The main components involved typically include a motion controller and one or more actuators.
Motion control may be open loop or closed loop. In open loop systems, the controller sends a command to the actuator, and does not know if the desired motion was actually achieved.
For tighter control with more precision, a measuring device may be added to the system (usually near the end motion). When the measurement is converted to a signal that is sent back to the controller, and the controller compensates for any error, it becomes a Closed loop System.
This needs the depth knowledge of actuators , how to interface them with microcontroller
# 3) Algorithm Development (Programming)
As modern robots address real-world problems in dynamic, unstructured, and open environments, novel challenges arise in the areas of robot control algorithms and motion planning. These challenges stem from an increased need for autonomy and flexibility in robot motion and task execution. Adequate algorithms for control and motion planning will have to capture high-level motion strategies that adapt to sensor feedback.
# 4) Localization
Robot localization is the process of determining where a mobile robot is located with respect to its environment. Localization is one of the most fundamental competencies required by an autonomous robot as the knowledge of the robot's own location is an essential precursor to making decisions about future actions Learn More
# 5) Path Planning
Path-planning is an important primitive for autonomous mobile robots that lets robots find the shortest – or otherwise optimal – path between two points. Otherwise optimal paths could be paths that minimize the amount of turning, the amount of braking or whatever a specific application requires. Algorithms to find a shortest path are important not only in robotics, but also in network routing, video games and gene sequencing. Learn More
# 6) Forward and Inverse Kinematics
In order to plan a robot’s movements, we have to understand the relationship between the actuators that we can control and the robot’s resulting position in the environment. For static arms, this is rather straightforward: if we know the position/angle of each joint, we can calculate the position of its end-effectors using trigonometry. This process is known as forward kinematics. If we want to calculate the position each joint needs to be at, we need to invert this relationship. This is known as inverse kinematics. Learn More
# 7) Locomotion and Manipulation
locomotion as the ability of the robot to move and manipulation as the ability to move objects in the environment of the robot. Both activities are closely related: during locomotion the robot uses its motors to exert forces on its environment (ground, water or air) to move itself, during manipulation it uses – sometimes the same – motors to exert forces on objects to move them relative to the environment. Learn More
# Current Development in Robotics
# 1) SOPHIA
Sophia is a social humanoid robot developed by Hanson Robotics. She is a very example of Artificial Intelligence development in the current time. . This AI robot includes face tracking, emotion recognition, and robotic movements. Sophia is best categorized as a chatbot with a face. She can take decision not like completely but similar to humans and for this ability she has given a citizenship too.
# 2) 'Blind' Cheetah Robot
Cheetah, Created by MIT's Engineers and roboticists. It feels its footing much like a blindfolded person and respond more quickly to unexpected obstacles than if it relied on sight and hence can perform dangerous, dirty and difficult work. Learn More
# 3) Wireless 'RoboFly'
A new type of flying robot is so tiny and lightweight. It is also capable of untethered flight and is powered by lasers. RoboFly flies freely, thanks to a photovoltaic cell on its body that converts energy from a narrow laser beam into elecrical form
# 4) Erica, Japan's Next Robot
Japan is planning to make a android robot, physical appearence similar to 23-year old women. She may soon become a TV news anchor in Japan.Erica is capable of holding a conversation with humans.
# Software
Different Software used in modeling , designing and simulation are listed here
# Arduino IDE software
Arduino IDE is an open source software that provides platform to write, edit and compile codes written for arduino hardware. It connects to the Arduino hardware to upload programs and communicate with them. It supports C and C++ based coding structure. The IDE is written in JAVA and based on Processing programming language. The program written in the IDE is called sketch. These sketches are saved with file extension .ino.
A minimal arduino program consists of two basic functions:
setup () : This function is called once. It is used to initialize variables, input and output pin modes, and other libraries needed in the sketch.
loop () : After setup() function ends, the loop() function is executed repeatedly in the main program. It controls the board until the board is powered off or is reset.
# Proteus
Proteus is a software used for electronic design automation(EDA).EDA includes the softwares used to design electronic systems, circuits, circuit boards and chips. The software is basically used for schematic capture, simulation, and PCB layout design.
The microcontroller simulation in proteus works by applying hex file to the schematic microcontroller part which is then co-simulated with analog and digital electronics connected to it.It is a convenient to use as teaching tool and project prototyping.
Proteus allows arduino programs to be written with simple flowcharting methods and arduino shields to be placed on the schematic with a mouse click. The entire arduino system can then be simulated, tested and debugged in software.
# CAD, design and CAM software
Computer aided design(CAD) is the use of computer systems as an aid for creation, modification, analysis and optimization of a design. It is used to increase productivity, improve quality and optimized manufacturing. It specially focuses on mechanical designing and drafting. A typical CAD software includes graphical depiction and information of materials, processes, dimensions, and tolerances. They are used for designing in 2D or 3D space.
Computer-aided manufacturing (CAM) is the use of software to control machine tools in the manufacturing of workpieces. Its primary purpose is to create a faster production process and components and tooling with more precise dimensions and material consistency, minimizing wastage and energy consumption. The model generated in CAD is uploaded into CAM software, which in turn controls machine tool.
Most of the widely used CAD and CAM software are given below:
# Solidworks
# AutoCAD
# Fusion 360
# CATIA
# Autodesk Inventor, etc.
# EAGLE
Easily Applicable Graphical Layout Editor (EAGLE) another electronic design automation (EDA) software especially used for printed circuit board (PCB) layout. EAGLE provides multi window GUI and menu system for editing, management and customization.
# MATLAB
MATLAB is a numeric computing environment and programming language. It allows matrix manipulations, plotting of functions and data, implementation of algorithms and interfacing with programs written in other languages, including C, C++, C#, Java, FORTRAN and Python. It’s basically a linkage between math , graphics and programming.
The language, built-in math functions and tools approaches faster solution than traditional programming languages. It is widely employed in range of applications like signal processing and communications, machine learning, control systems, test and measurements,computational biology, etc.
# Robot Operating System (ROS)
Developing a robot with a computer brain requires a bunch of software tools on the computer side—like software drivers, third party tools for computer vision and simulation tools. ROS framework gathers all these tools and manages how you develop a code for your robot
The concept of ROS goes far beyond just a framework. ROS is an OS in concept because it provides all the services that any other OS does—like hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management. Even though ROS is still a framework that isn't a standalone OS or an RTOS and isn't the only framework for robots, it seems to be adopted widely and have a large developers community.
The robot operating system Powering the world's robots is a essentially a filesystem that will let you organize all of your robotics code.
Why start with software, and not hardware? In simulation, and with the way the Robot Operating System is organized, you WILL learn how to interface with simulated controllers and how to actuate simulated robots, and be able to put entire systems together. A long story short, a robot is essentially a local area network of sensors and actuators connected by physical joints in usually, a tree like structure. You will shortly realize that Arduino is just a device used to communicate to hardware, and the real stuff is done by learning the ideas that software organizes. Reference