Skip to content

A Beginners Guide to Robotics

Robotics is actively engaged in the expanding problems of new developing sectors as it strives to reach the human frontier. The new generation of robots will increasingly interact, explore, and collaborate with humans, affecting people and their lives.

The scientific endeavour of a half-century of robotic discoveries that created robotics as a contemporary scientific subject has resulted in the credible prospect of practical robots among humans. The field’s vibrant expansion and robust growth over the previous decade has spurred our desire to innovate.

Following materials are compiled to help you get started in this field.

How to Begin?

The most important thing for a novice is to begin learning a language since it opens up a world of possibilities in terms of projects to work on and activities to accomplish. Also bear in mind that after you’ve mastered one language, learning another is pretty simple. Different languages offer different benefits and could be use for a particular purpose respectively.

Python

Python is also very popular due to its use in machine learning and also because it can be used to develop ROS packages.

Resources

C

C is a important language whilst doing hands-on robotics.Arduino uses a wrapper around C.If the robotics device in question has limitations in memory, then standard C programming language is a better technology choice.

Resources

C++

The Arduino microcontroller uses a programming language based on C++. C++ allows interaction with low level hardware, and also real time performance. C and C++ are very mature programming languages. To ensure the best performance of a robot, it will be better to use C++. As the robotics is very dependent on the real time performance, C and C++ are the best options.

Resources

Elixir

(for more advanced stuff)

Elixir is a dynamic, concurrent, functional language designed for building scalable and maintainable applications.

Resources

Development Environment

It’s not as simple as entering into a text editor to write code. A compiler, external libraries, path environments, a terminal, version control, documentation, and other components are usually present. Don’t worry if you don’t understand what these terms signify; they collectively form your development environment. To begin, ensure that you are familiar with the following.

  • Linux Operating System: The most well-known and widely used open source operating system is Linux. Linux is an operating system that lies beneath all of the other software on a computer, accepting requests from those programmes and transmitting them to the computer’s hardware.One can use linux OS (either through (dual booting|Youtube Tutorial), virtual machine or WSL)

  • Linux Terminal: The Linux terminal is a text-based interface used to control a Linux computer. It’s just one of the many tools provided to Linux users for accomplishing any given task, but it’s widely considered the most efficient method available.

    YouTube Tutorial

  • Git & Github: The Git version control system, as the name suggests, is a system that records all the modifications made to a file or set of data so that a specific version may be called up later if needed. The system makes sure that all the team members are working on the file’s latest version, and everyone can work simultaneously on the same project. GitHub is a Git repository hosting service that provides a web-based graphical interface.

    YouTube Tutorial | Udemy Course

Automation

Robot Operating System (ROS)

The Robot Operating System (ROS) is not an actual operating system, but a framework and set of tools that provide functionality of an operating system on a heterogeneous computer cluster. Its usefulness is not limited to robots, but the majority of tools provided are focused on working with peripheral hardware.

Resources

Check out these Youtube Videos(Link 1|Link 2)

Path Planning

Path planning is the process of determining a path or trajectory for a robot by avoiding obstacles or adhering to set dynamic or kinematic constraints. It’s something we do instinctively as humans, but robots find it difficult, so we try to make them intelligent by using path planning algorithms. Path planning is essential in robot automation because most robots must plan a path. Even in the case of robotic arms, moving the end effector from one spatial coordinate to another necessitates the planning of a trajectory that the arm must follow. The constraints and dimensions for planning the path or trajectory are different from those used in ground robot planning.

Resources

Simultaneous Localization and Mapping (SLAM)

SLAM (simultaneous localization and mapping) is a method used for autonomous vehicles that lets you build a map and localize your vehicle in that map at the same time. SLAM algorithms allow the vehicle to map out unknown environments. Engineers use the map information to carry out tasks such as path planning and obstacle avoidance.

Resources

Robot Perception

Robot perception is undervalued by beginners due to a lack of understanding of the difficulties involved. It’s difficult to imagine how difficult it would be for a robot to observe, analyse, and extract usable data from a three - dimensional environment, because we’re used to picking and putting objects with extreme precision in front of us. It’s simple for us to stroll without stumbling over a branch. However, robots face a much more difficult situation. This element of developing intelligent robots is addressed in Robot Perception.

Resources

Sensors play an important role in any robotic task. High-quality Cameras, LiDARs etc are used. To get started with perception by using images, OpenCV is a good starting point. For perception using Point Clouds, Point Cloud Library is a good starting point(PCL can only be used via C++).

There are many advancements that are taking place. With the advent of Neural Networks, Convolution Neural Networks(CNN’s) are used to extract and analyse important information from depth maps thus enabling image and point cloud segmentation, classification tasks etc.

Machine Learning / AI

Much of the computer based tools we use follow the same principle - they are a collection of straightforward instructions for the computer to follow so that it can solve a task. Machine Learning on the other hand, is about how the computer can learn to solve a task from examples, much like we humans learn.

Resources

Control Systems

Control systems aid in regulating the robot’s actions and movements. Because the dynamics change over time, we require controllers. When the robot goes first on smooth concrete, then on carpeted flooring, or when it walks up a slope, then down it. Therefore, creating a good controller requires physical modelling of the system.

A controller receives a reference state from us. The controller also has sensor feedback, and it uses both to generate the control signal necessary to get to the reference state. The System receives this control signal. How the system responds to this control input is determined by the system dynamics. Hopefully, the System will reach our intended reference state if the controller is effective.

Resources

Electronics

The electronics system of a robot is made up of sensors and actuators that are interfaced with the microcontroller using drivers. Interfacing is done with basic electronics components like as wires, resistors, and capacitors, and the whole assembly is installed on a breadboard, prototyping board, or printed circuit board (PCB).Single board computers (SBC) are used for advanced functioning.

Single Board Computers

A single-board computer (SBC) is a complete computer built on a single circuit board, with microprocessor(s), memory, input/output (I/O) and other features required of a functional computer. Single-board computers are commonly made as demonstration or development systems, for educational systems, or for use as embedded computer controllers. Rasberry pi is good to start with.

Microcontrollers

Arduino is a low cost, open source and easy to learn microcontroller. The syntax used to program Arduino is similar to that of C/C++ and a software called Arduino IDE is used to program it. The Arduino IDE is open source software which is written in Java and will work on a variety of platforms: Windows, Mac, and Linux. The IDE enables you to write code in a special environment with syntax highlighting and other features which will make coding easier, and then easily load your code onto the device with a simple click of a button.

Resources

Sensors

A sensor monitors environmental conditions such as fluid levels, temperatures, vibrations, or voltage. When these environmental conditions change, they send an electrical signal to the sensor, which can then send the data or an alert back to a centralized computer system or adjust the functioning of a particular piece of equipment. Ex. wheel encoders, temperature sensors, depth cameras (Kinect), LiDARs, Ultrasonic sensors, etc.

Actuators

An actuator, on the other hand, causes movement. It takes an electrical signal and combines it with an energy source to create physical motion. An actuator may be pneumatic, hydraulic, electric, thermal, or magnetic. Ex. Motors (DC, Stepper, Servo, BLDC),Linear Actuators (Solenoid or a linear servo), etc.

PCB Designing

easyEDA is good to start with. One could follow official tutorial for better understanding. Youtube Tutorial

Mechanical Designing

CAD

SOLIDWORKS is a major CAD tool used to develop mechatronics systems from beginning to end. At the initial stage, the software is used for planning, visual ideation, modeling, feasibility assessment, prototyping, and project management. The software is then used for design and building of mechanical, electrical, and software elements. Finally, the software can be used for management, including device management, analytics, data automation, and cloud services.