Mobile application based assistive bot for intralogistics

In recent years, technology has been developing rapidly to meet the increasing demand for human needs. Using robotics, human needs are met with speed and accuracy [2]. A robotic arm works by the controls provided by the user or by predetermined commands. The project described here is a robotic arm with 3 degrees of freedom to pick and place objects. The robotic arm is controlled using a mobile application and Bluetooth communication. The robotic arm uses servo motors interfaced with Arduino.


Introduction
Robotic arms have applications in many manufacturing industries. They can be used for welding, spray painting, drilling, pick-and-place operations, and many more applications. There has been a rapid growth in technology during recent years, leading to new control methods and better automation systems [16]. The applications of robotic arms in industries are vast [9]. Robots' need to be more accurate, faster, and more efficient which has led to new drivers and controllers [12]. Considering the advantage of the significant rise in usage of mobiles in recent years, the aim of this project is to design a robotic arm used to pick and place objects located in its work envelope and control the robotic arm using a mobile application via Arduino. The project described here is economically beneficial in the aspect of the control strategy. The modules included in this project are the Mobile application which communicates with the HC-05 Bluetooth module, the Bluetooth module interfaced with the microcontroller, the servo motors which are placed in the robotic arm for movements, and the microcontroller, which plays a major role in setting the positions of the servo motors according to the input given by the mobile application [8].

Arduino UNO
Arduino UNO is an open-source microcontroller board which consists of ATmega328P microcontroller developed by Arduino.cc. The board has sets of digital and analog input/output pins which may be connected to wide range of sensors, actuators and other circuits. The board has 14 digital I/O pins (6 pins can provide output through PWM) and 6 analog pins. The board can be programmed with Arduino IDE using a USB cable. It can be powered by either a USB cable or a 9V battery [5].

HC-05 Bluetooth module
The HC-05 Bluetooth module is used for wireless communication which can be used in master or slave configuration. It works on 3.3V power supply. It uses serial communication and communication range is less than 100 metres. In this project, the Bluetooth module establishes communication between the mobile phone and Arduino UNO board.

MG995 Servo motor
The MG995 Metal Gear servo motor works with power supply of 5V. It processes the PWM signal received from the microcontroller and sets the positions of the robotic arm. The motor gives good torque and can rotate to an angle of 180 degrees [7]. The positioning of the angles is accurate. Three such motors are used for the base, shoulder, and elbow of the robotic arm.

SG90 Micro-servo motor
The SG90 Micro-servo motor is a small and light-weighted servo motor which can rotate to an angle of 180 degrees [2]. Its operating voltage is approximately 5V. This motor is used for the actuation of the gripper.

Infrared sensor module
The infrared sensor module is used to detect the presence of object to be picked. Transmitter and receiver are 2 main components of this module. The infrared LED emits IR light which is invisible. The photodiode receives this IR light. The photodiode is a semiconductor with reverse-biased p-n junction. When IR light falls on the photodiode, the photodiode conducts current. The current flow through the photodiode is directly proportional to the amount of light received. This phenomenon can be used to detect presence of objects in front of the robotic arm. This sensor works with 5V DC supply.

Robotic arm specifications
The robotic arm has 3 degrees of freedom with 3 revolute joints [14]. All the joints have 1 degree of freedom. There are 4 parts, namely, base, shoulder, elbow and gripper. A servo motor powers each piece. The gripper is a constricting type that physically constricts the object for picking. The gripper has  [6]. The range of angles between which the parts of the arm can move is given below [15]:

Circuit diagram
The circuit diagram is shown in Figure 3. The 5V power supply is distributed to the inputs of the infrared sensor, 3 MG995 servo motors and 1 micro servo motor. The Bluetooth module is powered by the 5V pin of the Arduino UNO board.

System architecture
C language is used in this project for the programming. A 5 Volts external power supply is given to provide appropriate power to the 3 MG995 servo motors,1 MG90 micro servo motor, and the infrared sensor. The robotic arm is controlled by a mobile application created using MIT App Inventor. 3 MG995 servo motors are used for base, shoulder, and elbow [3]. 1 SG90 micro servo motor is used to provide actuation to the gripper. The Bluetooth module is connected to the Tx and Rx pins of Arduino UNO board. One infrared module is connected to detect the presence of the object to be picked. The mechanical structure of the robotic arm is made using L and C clamps connected by nuts and bolts [17].

Arduino coding
The communication between Arduino and the Mobile application is done using Bluetooth communication. The servo motors are connected to the digital pins 9, 10, 11 and 6 of the Arduino board. The infrared sensor is connected to digital pin 3. As soon as the Arduino board is powered up, the infrared sensor detects whether the object to be picked is present or not and gives the output to the Arduino program, which communicates the information to the mobile application that displays the object status. When the mobile application sliders are changed, the corresponding section of program is executed by Arduino. When the SAVE button is pressed, the current positions of servo motors are saved in a 1-D array of Arduino program. When RUN button is pressed, the positions stored in the array are executed using loop statements.

Mobile application
The robotic arm's customized mobile application is created using MIT App Inventor [10], which provides various range of components like labels, buttons, Bluetooth connectivity options, sliders, etc.
[11]. Programming blocks are used to give instructions to each element present in the mobile application. There are buttons to connect or disconnect to the Bluetooth module [1]. There are sliders for each part of the robotic arm namely, base, shoulder, elbow and gripper. When the slider's position in the mobile application is changed, the angle of the respective servo motor varies. These positions are communicated from the application to the Arduino program through the Bluetooth module. When the SAVE button is pressed, the robotic arm's current positions are saved in the Arduino program. When the RUN button is pressed, the positions saved previously would be executed. Also, whether the object to be picked is present or absent is displayed in the application based on the information provided by the infrared sensor through the Bluetooth module.

Results
With this project, the robotic arm can be controlled easily by a person with little or no robotics skills. Fig-5 shows the robotic arm picking the object from the starting point. With a simplified control method, robotic arms can also be used for domestic purposes. The aim of this project to control a robotic arm using a mobile application for pick-and-place operations has been achieved. The automated arm controls are accurate and user-friendly. The movements of the robotic arm are automated by recording the steps and running them multiple times. [14]