Robotic arm manipulator. Do-it-yourself tabletop robotic arm, plexiglass manipulator on servos, or uArm reverse engineering. Materials and tools

Hello!

We are talking about the line of collaborative robotic manipulators from Universal Robots.

The Universal Robots company, originally from Denmark, produces collaborative robotic manipulators for automating cyclic production processes. In this article we present their main specifications and consider the areas of application.

What is this?

The company's products are represented by a line of three lightweight industrial handling devices with an open kinematic chain:
UR3, UR5, UR10.
All models have 6 degrees of mobility: 3 portable and 3 orienting. Devices from Universal Robots produce only angular movements.
Robotic manipulators are divided into classes, depending on the maximum permissible payload. Other differences are - radius working area, weight and base diameter.
All UR manipulators are equipped with high-precision absolute position sensors, which simplify integration with external devices and equipment. Thanks to their compact design, UR manipulators do not take up much space and can be installed in work sections or on production lines where conventional robots cannot fit. Characteristics:
Why are they interesting?Ease of programming

Specially developed and patented programming technology allows non-skilled operators to quickly configure and control UR robotic arms using intuitive 3D visualization technology. Programming occurs through a series of simple movements of the working body of the manipulator to the required positions, or by pressing the arrows in special program on tablet.UR3:UR5:UR10: Quick setup

The initial startup operator will need less than an hour to unpack, install and program the first simple operation. UR3: UR5: UR10: Collaboration and security

UR manipulators can replace operators performing routine tasks in hazardous and contaminated environments. The control system takes into account external disturbing influences exerted on the robot manipulator during operation. Thanks to this, UR handling systems can be operated without protective barriers, close to personnel workstations. Robot safety systems are approved and certified by TÜV - the German Technical Inspectorate.
UR3: UR5: UR10: Variety of working bodies

At the end industrial manipulators UR provides a standardized mount for installing special working parts. Additional modules of force-torque sensors or cameras can be installed between the working body and the final link of the manipulator. Possible applications

With industrial robotic manipulators UR, the possibility of automating almost all cyclical routine processes opens up. Universal Robots devices have proven themselves in various fields of application.

Translation

Installing UR manipulators in transfer and packaging areas increases accuracy and reduces shrinkage. Most transfer operations can be carried out without supervision. Polishing, buffering, grinding

The built-in sensor system allows you to control the accuracy and uniformity of the applied force on curved and uneven surfaces.

Injection molding

The high precision of repetitive movements allows UR robots to be used for polymer processing and injection molding tasks.
Maintenance of CNC machines

The protection class of the shell provides the ability to install handling systems for collaboration with CNC machines. Packing and stacking

Traditional automation technologies are cumbersome and expensive. Easily customizable, UR robots are capable of working with or without protective shields around employees 24 hours a day, ensuring high accuracy and productivity. Quality control

A robotic manipulator with video cameras is suitable for three-dimensional measurements, which is an additional guarantee of the quality of the products. Assembly

A simple attachment device allows UR robots to be equipped with suitable auxiliary mechanisms necessary for the assembly of parts made of wood, plastic, metal and other materials. Make-up

The control system allows you to control the developed torque to avoid over-tightening and ensure the required tension. Bonding and welding

High accuracy of positioning of the working element allows you to reduce the amount of waste when performing gluing operations or applying substances.
UR industrial robotic arms can perform Various types welding: arc, spot, ultrasonic and plasma. Total:

Industrial manipulators from Universal Robots are compact, lightweight, and easy to learn and use. UR robots are a flexible solution for a wide range of tasks. Manipulators can be programmed to perform any actions inherent in the movements of a human hand, and they are much better at rotating movements. Manipulators are not prone to fatigue or fear of injury; they do not need breaks or weekends.
Solutions from Universal Robots allow you to automate any routine process, which increases the speed and quality of production.

Discuss the automation of your production processes using Universal Robots manipulators with an official dealer -

We are creating a robotic manipulator using a rangefinder and implementing backlighting.

We will cut the base from acrylic. We use servo drives as motors.

General description of the robotic manipulator project

The project uses 6 servo motors. For the mechanical part, acrylic 2 mm thick was used. The base from a disco ball came in handy as a tripod (one of the motors is mounted inside). An ultrasonic distance sensor and a 10 mm LED are also used.

An Arduino power board is used to control the robot. The power source itself is the computer power supply.

The project provides comprehensive explanations for the development of a robotic arm. The issues of power supply of the developed design are considered separately.

Main components for the manipulator project

Let's start development. You will need:

  • 6 servomotors (I used 2 models mg946, 2 mg995, 2 futuba s3003 (mg995/mg946 have better characteristics than futuba s3003, but the latter are much cheaper);
  • acrylic 2 millimeters thick (and a small piece 4 mm thick);
  • ultrasonic distance sensor hc-sr04;
  • LEDs 10 mm (color - at your discretion);
  • tripod (used as a base);
  • aluminum grip (costs about 10-15 dollars).

For driving:

  • Arduino Uno board (the project uses a homemade board that is completely similar to Arduino);
  • power board (you will have to make it yourself, we will return to this issue later, it requires special attention);
  • power supply (in in this case computer power supply is used);
  • a computer for programming your manipulator (if you use Arduino for programming, then the Arduino IDE)

Of course, you will need cables and some basic tools like screwdrivers and the like. Now we can move on to design.

Mechanical assembly

Before starting to develop the mechanical part of the manipulator, it is worth noting that I do not have drawings. All knots were made “on the knee”. But the principle is very simple. You have two acrylic links, between which you need to install servo motors. And the other two links. Also for installing engines. Well, the grab itself. The easiest way to buy such a grip is on the Internet. Almost everything is installed using screws.

The length of the first part is about 19 cm; the second - about 17.5; The length of the front link is about 5.5 cm. Select the remaining dimensions in accordance with the dimensions of your project. In principle, the sizes of the remaining nodes are not so important.

The mechanical arm must provide a rotation angle of 180 degrees at the base. So we have to install a servo motor at the bottom. In this case, it is installed in the same disco ball. In your case, this could be any suitable box. The robot is mounted on this servo motor. You can, as shown in the figure, install an additional metal flange ring. You can do without it.

For installation ultrasonic sensor, acrylic 2 mm thick is used. You can install an LED right below.

It is difficult to explain in detail exactly how to construct such a manipulator. Much depends on the components and parts that you have in stock or purchase. For example, if the dimensions of your servos are different, the acrylic armature links will also change. If the dimensions change, the calibration of the manipulator will also be different.

You will definitely have to extend the servo motor cables after completing the development of the mechanical part of the manipulator. For these purposes, this project used wires from an Internet cable. In order for all this to look like, don’t be lazy and install adapters on the free ends of the extended cables - female or male, depending on the outputs of your Arduino board, shield or power source.

After assembling the mechanical part, we can move on to the “brains” of our manipulator.

Manipulator grip

To install the grip you will need a servo motor and some screws.

So what exactly needs to be done.

Take the rocker from the servo and shorten it until it fits your grip. After this, tighten the two small screws.

After installing the servo, turn it to the extreme left position and squeeze the gripper jaws.

Now you can install the servo with 4 bolts. At the same time, make sure that the engine is still in the extreme left position and the gripper jaws are closed.

You can connect the servo drive to the Arduino board and check the functionality of the gripper.

Please note that gripper operation problems may occur if the bolts/screws are over-tightened.

Adding lighting to the pointer

You can brighten up your project by adding lighting to it. LEDs were used for this. It's easy to do and looks very impressive in the dark.

Places for installing LEDs depend on your creativity and imagination.

Electrical diagram

You can use a 100 kOhm potentiometer instead of resistor R1 to manually adjust the brightness. 118 Ohm resistors were used as resistance R2.

List of main components that were used:

  • R1 - 100 kOhm resistor
  • R2 - 118 Ohm resistor
  • Transistor bc547
  • Photoresistor
  • 7 LEDs
  • Switch
  • Connection to Arduino board

An Arduino board was used as a microcontroller. The power supply used was a power supply from personal computer. By connecting the multimeter to the red and black cables, you will see 5 volts (which are used for the servo motors and ultrasonic distance sensor). Yellow and black will give you 12 volts (for Arduino). We make 5 connectors for the servomotors, in parallel we connect the positive ones to 5 V, and the negative ones to ground. Same with the distance sensor.

After this, connect the remaining connectors (one from each servo and two from the rangefinder) to the board we soldered and the Arduino. At the same time, do not forget to correctly indicate the pins that you used in the program in the future.

In addition, a power LED indicator was installed on the power board. This is easy to implement. Additionally a 100 ohm resistor was used between 5V and ground.

The 10mm LED on the robot is also connected to the Arduino. A 100 ohm resistor goes from pin 13 to the positive leg of the LED. Negative - to the ground. You can disable it in the program.

For 6 servo motors, 6 connectors are used, since the 2 servo motors below use the same control signal. The corresponding conductors are connected and connected to one pin.

I repeat that the power supply from a personal computer is used as power supply. Or, of course, you can purchase a separate power supply. But taking into account the fact that we have 6 drives, each of which can consume about 2 A, such a powerful power supply will not be cheap.

Please note that the connectors from the servos are connected to the PWM outputs of the Arduino. Near each such pin on the board there is symbol~. An ultrasonic distance sensor can be connected to pins 6, 7. An LED can be connected to pin 13 and ground. These are all the pins we need.

Now we can move on to Arduino programming.

Before connecting the board via USB to your computer, make sure you turn off the power. When you test the program, also turn off the power to your robotic arm. If the power is not turned off, the Arduino will receive 5 volts from the usb and 12 volts from the power supply. Accordingly, the power from usb will transfer to the power source and it will “sag” a little.

The wiring diagram shows that potentiometers have been added to control the servos. Potentiometers are optional, but the code above will not work without them. Potentiometers can be connected to pins 0,1,2,3 and 4.

Programming and first launch

5 potentiometers are used for control (you can completely replace this with 1 potentiometer and two joysticks). The connection diagram with potentiometers is shown in the previous part. The Arduino sketch is here.

Below are several videos of the robotic arm in action. I hope you will enjoy.

The video above shows the latest modifications of the armament. I had to change the design a little and replace a few parts. It turned out that the futuba s3003 servos were rather weak. They turned out to be used only for gripping or turning the hand. So they installed mg995. Well, mg946 will generally be an excellent option.

Control program and explanations for it

// drives are controlled using variable resistors - potentiometers.

int potpin = 0; // analog pin for connecting a potentiometer

int val; // variable for reading data from the analog pin

myservo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

myservo5.attach(11);

pinMode(led, OUTPUT);

( //servo 1 analog pin 0

val = analogRead(potpin); // reads the potentiometer value (value between 0 and 1023)

// scales the resulting value for use with servos (getting a value in the range from 0 to 180)

myservo1.write(val); // brings the servo to a position in accordance with the calculated value

delay(15); // waits for the servomotor to reach the specified position

val = analogRead(potpin1); // servo 2 on analog pin 1

val = map(val, 0, 1023, 0, 179);

myservo2.write(val);

val = analogRead(potpin2); // servo 3 on analog pin 2

val = map(val, 0, 1023, 0, 179);

myservo3.write(val);

val = analogRead(potpin3); // servo 4 on analog pin 3

val = map(val, 0, 1023, 0, 179);

myservo4.write(val);

val = analogRead(potpin4); //serva 5 on analog pin 4

val = map(val, 0, 1023, 0, 179);

myservo5.write(val);

Sketch using an ultrasonic distance sensor

This is probably one of the most impressive parts of the project. A distance sensor is installed on the manipulator, which reacts to obstacles around.

Basic explanations of the code are presented below

#define trigPin 7

The following piece of code:

We assigned names to all 5 signals (for 6 drives) (can be anything)

Following:

Serial.begin(9600);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

pinMode(led, OUTPUT);

myservo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

myservo5.attach(11);

We tell the Arduino board which pins the LEDs, servo motors and distance sensor are connected to. There is no need to change anything here.

void position1())(

digitalWrite(led, HIGH);

myservo2.writeMicroseconds(1300);

myservo4.writeMicroseconds(800);

myservo5.writeMicroseconds(1000);

There are some things you can change here. I set a position and called it position1. It will be used in the future program. If you want to provide different movement, change the values ​​in brackets from 0 to 3000.

After that:

void position2())(

digitalWrite(led,LOW);

myservo2.writeMicroseconds(1200);

myservo3.writeMicroseconds(1300);

myservo4.writeMicroseconds(1400);

myservo5.writeMicroseconds(2200);

Similar to the previous piece, only in this case it is position2. Using the same principle, you can add new positions for movement.

long duration, distance;

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance = (duration/2) / 29.1;

Now the main code of the program begins to work out. You shouldn't change it. The main task of the above lines is to configure the distance sensor.

After that:

if (distance<= 30) {

if (distance< 10) {

myservo5.writeMicroseconds(2200); //open grabber

myservo5.writeMicroseconds(1000); //close the grabber

You can now add new movements based on the distance measured by the ultrasonic sensor.

if(distance<=30){ // данная строка обеспечивает переход в position1, если расстояние меньше 30 см.

position1(); //essentially the arm will work out whatever you specify between the brackets ( )

else( // if the distance is greater than 30 cm, go to position2

position()2 // similar to the previous line

You can change the distance in the code and do whatever you want.

Last lines of code

if (distance > 30 || distance<= 0){

Serial.println("Out of range"); //output a message in the serial monitor that we have gone beyond the specified range

Serial.print(distance);

Serial.println("cm"); //distance in centimeters

delay(500); //delay 0.5 seconds

Of course, you can convert everything here into millimeters, meters, change the displayed message, etc. You can play around with the delay a little.

That's all. Enjoy, upgrade your own manipulators, share ideas and results!

Hello Giktimes!

The uArm project from uFactory raised funds on Kickstarter more than two years ago. They said from the very beginning that it would be an open project, but immediately after the end of the company they were in no hurry to publish the source code. I just wanted to cut the plexiglass according to their drawings and that’s it, but since there were no source materials and there was no sign of it in the foreseeable future, I began to repeat the design from photographs.

Now my robotic arm looks like this:

Working slowly in two years, I managed to make four versions and gained quite a lot of experience. You can find the description, history of the project and all project files under the cut.

Trial and error

When I started working on the drawings, I wanted not just to repeat uArm, but to improve it. It seemed to me that in my conditions it was quite possible to do without bearings. I also didn’t like the fact that the electronics rotated along with the entire manipulator and I wanted to simplify the design of the lower part of the hinge. Plus I started drawing him a little smaller right away.

With these input parameters I drew the first version. Unfortunately, I do not have any photographs of that version of the manipulator (which was made in yellow). The mistakes in it were simply epic. Firstly, it was almost impossible to assemble. As a rule, the mechanics that I drew before the manipulator were quite simple, and I did not have to think about the assembly process. But still, I assembled it and tried to start it, and my hand hardly moved! All the parts revolved around the screws and if I tightened them so that there was less play, she could not move. If I loosened it so that it could move, incredible play appeared. As a result, the concept did not survive even three days. And he started working on the second version of the manipulator.

Red was already quite suitable for work. It assembled normally and could move with lubrication. I was able to test the software on it, but still the lack of bearings and large losses on different thrusts made it very weak.

Then I abandoned work on the project for some time, but soon decided to bring it to fruition. I decided to use more powerful and popular servos, increase the size and add bearings. Moreover, I decided that I would not try to do everything perfectly at once. I sketched out the drawings hastily, without drawing out beautiful connections, and ordered cutting from transparent plexiglass. Using the resulting manipulator, I was able to debug the assembly process, identified areas that needed additional strengthening, and learned how to use bearings.

After I had a lot of fun with the transparent manipulator, I started drawing the final white version. So, now all the mechanics are completely debugged, they suit me and I’m ready to say that I don’t want to change anything else in this design:

It depresses me that I could not bring anything fundamentally new to the uArm project. By the time I started drawing the final version, they had already rolled out the 3D models on GrabCad. As a result, I just simplified the claw a little, prepared the files in a convenient format and used very simple and standard components.

Features of the manipulator

Before the advent of uArm, desktop manipulators of this class looked rather dull. They either had no electronics at all, or had some kind of control with resistors, or had their own proprietary software. Secondly, they usually did not have a system of parallel hinges and the grip itself changed its position during operation. If you collect all the advantages of my manipulator, you get a fairly long list:
  1. A system of rods that allows powerful and heavy motors to be placed at the base of the manipulator, as well as holding the gripper parallel or perpendicular to the base
  2. A simple set of components that are easy to buy or cut from plexiglass
  3. Bearings in almost all components of the manipulator
  4. Easy to assemble. This turned out to be a really difficult task. It was especially difficult to think through the process of assembling the base
  5. The grip position can be changed by 90 degrees
  6. Open source and documentation. Everything is prepared in accessible formats. I will provide download links for 3D models, cutting files, list of materials, electronics and software
  7. Arduino compatible. There are many detractors of Arduino, but I believe this is an opportunity to expand the audience. Professionals can easily write their software in C - this is a regular controller from Atmel!

Mechanics

To assemble, you need to cut out parts from 5mm thick plexiglass:

They charged me about $10 to cut all these parts.

The base is mounted on a large bearing:

It was especially difficult to think through the base from the point of view of the assembly process, but I kept an eye on the engineers from uArm. The rockers sit on a pin with a diameter of 6mm. It should be noted that my elbow pull is held on a U-shaped holder, while uFactory’s is held on an L-shaped one. It's hard to explain what the difference is, but I think I did better.

The grip is assembled separately. It can rotate around its axis. The claw itself sits directly on the motor shaft:

At the end of the article I will provide a link to super detailed assembly instructions in photographs. You can confidently twist it all together in a couple of hours if you have everything you need at hand. I also prepared a 3D model in the free SketchUp program. You can download it, play it and see what and how it was assembled.

Electronics

To make the hand work, all you need to do is connect five servos to the Arduino and supply them with power from a good source. uArm uses some kind of feedback motors. I installed three regular MG995 motors and two small metal geared motors to control the gripper.

Here my narrative is closely intertwined with previous projects. Some time ago I started teaching Arduino programming and even prepared my own Arduino-compatible board for these purposes. On the other hand, one day I had the opportunity to make boards cheaply (which I also wrote about). In the end, it all ended with me using my own Arduino-compatible board and a specialized shield to control the manipulator.

This shield is actually very simple. It has four variable resistors, two buttons, five servo connectors and a power connector. This is very convenient from a debugging point of view. You can upload a test sketch and record some macro for control or something like that. I will also give a link to download the board file at the end of the article, but it is prepared for manufacturing with metallized holes, so it is of little use for home production.

Programming

The most interesting thing is controlling the manipulator from a computer. uArm has a convenient application for controlling the manipulator and a protocol for working with it. The computer sends 11 bytes to the COM port. The first one is always 0xFF, the second one is 0xAA and some of the remaining ones are signals for servos. Next, these data are normalized and sent to the engines for processing. My servos are connected to digital inputs/outputs 9-12, but this can be easily changed.

uArm's terminal program allows you to change five parameters when controlling the mouse. As the mouse moves across the surface, the position of the manipulator in the XY plane changes. Rotating the wheel changes the height. LMB/RMB - compress/uncompress the claw. RMB + wheel - rotate the grip. It's actually very convenient. If you wish, you can write any terminal software that will communicate with the manipulator using the same protocol.

I will not provide sketches here - you can download them at the end of the article.

Video of work

And, finally, the video of the manipulator itself. It shows how to control a mouse, resistors, and a pre-recorded program.

Links

Files for cutting plexiglass, 3D models, a purchase list, board drawings and software can be downloaded at the end of my


Connection:

If you have assembled the parts of the manipulator in accordance with the instructions, you can begin assembling the electronic circuit. We suggest connecting the manipulator servos to the Arduino UNO via Trerma-Power Shield, and controlling the servos using Trema potentiometers.

  • Turning the knob of the first Trema potentiometer will rotate the base.
  • Turning the knob of the second Trema potentiometer will rotate the left arm.
  • Turning the third Trema potentiometer knob will rotate the right arm.
  • Turning the fourth Trema potentiometer knob will move the gripper.

The program code (sketch) provides protection for servos, which consists in the fact that the range of their rotation is limited by the interval (two angles) of free play. The minimum and maximum rotation angles are specified as the last two arguments to the map() function for each servo. And the value of these angles is determined during the calibration process, which must be performed before starting to work with the manipulator.

Program code:

If you apply power before calibration, the manipulator may begin to move inappropriately! Complete all calibration steps first.

#include // Connect the Servo library to work with servos Servo servo1; //Declare a servo1 object to work with the base servo drive Servo servo2; //Declare a servo2 object to work with the left shoulder servo Servo servo3; //Declare a servo3 object to work with the right arm servo Servo servo4; //Declare a servo4 object to work with the capture servo int valR1, valR2, valR3, valR4; // Declare variables to store potentiometer values ​​// Assign pins: const uint8_t pinR1 = A2; // Determine the constant from the output number of the control potentiometer. base const uint8_t pinR2 = A3; // Determine the constant from the output number of the control potentiometer. left shoulder const uint8_t pinR3 = A4; // Determine the constant from the output number of the control potentiometer. right shoulder const uint8_t pinR4 = A5; // Determine the constant from the output number of the control potentiometer. capture const uint8_t pinS1 = 10; // Define the constant with the pin number of the base servo drive const uint8_t pinS2 = 9; // Define the constant with the pin number of the left arm servo drive const uint8_t pinS3 = 8; // Define the constant with the pin number of the servo drive of the right arm const uint8_t pinS4 = 7; // Define a constant with the pin number of the capture servo drive void setup())( // The setup function code is executed once: Serial.begin(9600); // Initiate data transfer to the serial port monitor servo1.attach(pinS1); // Assign servo1 to the object control of servo drive 1 servo2.attach(pinS2); // Assign to object servo2 control of servo drive 2 servo3.attach(pinS3); // Assign to object servo3 control of servo drive 3 servo4.attach(pinS4); // Assign to object servo4 control of servo drive 4 ) void loop())( // The loop function code is executed continuously: valR1=map(analogRead(pinR1), 0, 1024, 10, 170); servo1.write(valR1); // Rotate with the base The angles indicated in this line: 10 and 170 may need to be changed (calibrated) valR2=map(analogRead(pinR2), 0, 1024, 80, 170); servo2.write(valR2); // Control the left shoulder The angles indicated in this line: 80 and 170 may need to be changed (calibrated ) valR3=map(analogRead(pinR3), 0, 1024, 60, 170); servo3.write(valR3); // Control the right shoulder The angles indicated in this line: 60 and 170 may need to be changed (calibrated) valR4=map(analogRead(pinR4), 0, 1024, 40, 70); servo4.write(valR4); // Control the capture The angles indicated in this line: 40 and 70 may need to be changed (calibrated) Serial.println((String) "A1 = "+valR1+",\t A2 = "+valR2+",\t A3 = "+valR3+ ", \t A4 = "+valR4); // Display the corners on the monitor)

Calibration:

Before you start working with the manipulator, you need to calibrate it!

    Calibration consists of specifying the extreme values ​​of the rotation angle for each servo, so that the parts do not interfere with their movements.
  • Disconnect all servos from the Trema-Power Shield, upload the sketch and connect power.
  • Open the serial port monitor.
  • The monitor will display the rotation angles of each servo (in degrees).
  • Connect the first servo (which controls the rotation of the base) to pin D10.
  • Turning the knob of the first Trema potentiometer (pin A2) will rotate the first servo (pin D10), and the monitor will change the current angle of this servo (value: A1 = ...). The extreme positions of the first servo will be in the range from 10 to 170 degrees (as written in the first line of the loop code). This range can be changed by replacing the values ​​of the last two arguments to the map() function in the first line of loop code with new ones. For example, replacing 170 with 180 will increase the extreme position of the servo in a given direction. And by replacing 10 with 20, you will reduce the other extreme position of the same servo.
  • If you replaced the values, you need to re-upload the sketch. Now the servo will rotate within the new limits specified by you.
  • Connect the second servo (which controls the rotation of the left arm) to pin D9.
  • Turning the knob of the second Trema potentiometer (pin A3) will lead to the rotation of the second servo (pin D9), and the monitor will change the value of the current angle of this servo (value: A2 = ...). The extreme positions of the second servo will be in the range from 80 to 170 degrees (as written in the second line of the loop sketch). This range changes in the same way as for the first servo.
  • If you replaced the values, you need to re-upload the sketch.
  • Connect the third servo (which controls the rotation of the right arm) to pin D8. and calibrate it in the same way.
  • Connect the fourth servo (controlling the gripper) to pin D7. and calibrate it in the same way.

It is enough to perform calibration once, after assembling the manipulator. The changes you make (values ​​of limit angles) will be saved in the sketch file.

View of the inside of the palm of the humanoid robot RKP-RH101-3D. The palm of the humanoid robot's hand is clamped at 50%. (see Fig. 2).

In this case, complex movements of the hand of a humanoid robot are possible, but programming becomes more complex, interesting and exciting. At the same time, on each of the fingers of the hand of a humanoid robot it is possible to install additional various sensors and sensors that control various processes.

This is, in general terms, the design of the RKP-RH101-3D manipulator. As for the complexity of the tasks that a particular robot, equipped with various manipulators that replace its hands, can solve, they largely depend on the complexity and perfection of the control device.
It is common to talk about three generations of robots: industrial, adaptive and artificial intelligence robots. But no matter what kind of robot is designed, it cannot do without manipulator hands to perform various tasks. The manipulator links are movable relative to each other and can perform rotational and translational movements. Sometimes, instead of simply grabbing an object from industrial robots, the last link of the manipulator (its hand) is some kind of working tool, for example, a drill, a wrench, a paint sprayer or a welding torch. Humanoid robots may also have various additional miniature devices at the fingertips of their hand-shaped manipulators, for example, for drilling, engraving or drawing.

General view of the humanoid combat robot on servos with hands RKP-RH101-3D (see Fig. 3).

Share