Essay: Mobile platforms

Essay details:

  • Subject area(s): Engineering essays
  • Reading time: 21 minutes
  • Price: Free download
  • Published on: August 18, 2019
  • File format: Text
  • Number of pages: 2
  • Mobile platforms
    0.0 rating based on 12,345 ratings
    Overall rating: 0 out of 5 based on 0 reviews.

Text preview of this essay:

This page of the essay has 6155 words. Download the full version above.

Mobile Platform

Figure 1: ROBO TX Explorer, Dimensions 465x80x320mm (source: [2])

This chapter introduces fundamental information about mobile platforms, their types, the process of choosing the current one and why. It also states the means of path tracking and the possible methods according to the nature of the project goals as well as the needed preparations, cabling and programming to achieve its target and the problems initiated as a reason for this choice and (if possible) its avoidance procedures in regards to this project and the applications of such platforms in the field of industrial manufacturing

In general, mobile robots are automatic machines that are capable of moving around the certain environment using traditional or untraditional locomotive principles to reach their destination. The way the reach their goal can be divided to autonomous or predefined (manual) or a combination of both methods. Autonomous navigation allows the robot through its sensors and programming algorithm to decide which way it should take to reach its destination, while predefined or manual navigation simply relies on human control as an input to get it to needed position. [3, p. 28]

Mobil robots are categorized according to their motion kinematics and how they anticipate the terrain under them. Each motion kinematic was developed to achieve certain feature and performance aspects (speed, weight, precision, type of terrain).

Legged Mobile Robots
Legged locomotion is characterized by a series of point contacts between the robot and the
ground. The key advantages include adaptability and maneuverability in rough terrain.
Because only a set of point contacts is required, the quality of the ground, between those
Points does not matter so long as the robot can maintain adequate ground clearance. Also, a walking robot is capable of crossing a hole or chasm so long as its reach exceeds the width of the hole. A final advantage of legged locomotion is the potential to manipulate
objects in the environment with great skill. An excellent insect example, the dung beetle, is
capable of rolling a ball while locomoting by way of its dexterous front legs. [3, p. 17]

The main disadvantages of legged locomotion include power and mechanical complexity.
The leg, which may include several degrees of freedom, must be capable of sustaining
part of the robot’s total weight, and in many robots, must be capable of lifting and lowering
the robot. Additionally, high maneuverability will only be achieved if the legs have a sufficient
number of degrees of freedom to impart forces in some different directions. [3, p. 18]

Due to their relatively low performance and reliability those are still in development phase and don’t have any real application in IM. However, there is substantial progress regarding performance and stability in the field done by companies like Boston Dynamics [4].

Wheeled Mobile Robots
As Siegwart stated, “The wheel is the most popular locomotion mechanism in mobile robotics and man-made vehicles in general” [3] due to its performance and uncomplex mechanism. A wheel mechanism in most cases is self-balanced and highly maneuverable. There are many variations for a wheel mechanism which depends on aspects like the wheel design, the number of wheels and their allocation. From just two wheels a mechanism can be stable, but because of its limitations, a system of 3 or more wheels is preferred [3, p. 33].

In the field of handling especially in assembly lines, mobile robots like KUKA’s KMP 1500 and omniMove [5] are used to manage machined parts (i.e. car bodies) between different assembly stations. As part of a full automation plan for the A. line/factory, they carry out multi-tasks simultaneously. Their omnidirectional wheels enable them more maneuverability in comparison to common solutions without scarifying performance. They have a load range from 1500 kg to 20.000 kg [5] that make them suitable for automotive and airplanes assembly lines.

Figure 2: Car body carried by KUKA KMP 1500 (left) and KUKA omniMove transports aircraft parts at Premium Aerotec in Augsburg (right). Image Source: Premium Aerotec (Source: Kuka [5])

Tracked slip/skid locomotion
For the former types of configurations, they weren’t based on a slip/slid mechanism. Such a mechanism is based on steering the robot by moving one or more wheels in a different direction and/or at different speeds. This type of asynchronous motion creates a deviation in a robot’s direction which with the right proportions can be manipulated into controlling the rotation of a mobile robot. An example of this concept is army tanks as a conventional vehicle and Fischertechnik Robo Explorer TX (Figure 1) in the field of mobile robots.

The locomotive of these types of vehicles are mainly based on threaded connected wheels. Those have a larger ground contact area which improves their maneuverability on different kinds terrain which regarded easy for steering ability but possess a challenge to be preciousely controlled due to its complexity as rotation isn’t rather on a point or even a fixed axis but in the area of the contacted thread which concludes interchanging axes during a turn [3, p. 42].

Platform Selection
Selection criteria
For the given task, a mobile robot is needed that has the following characteristics and capabilities:
1. a stable structure that can handle the robot arm mounted on it
2. simple and modular to best integrate with robot arm
3. has its own programmable microcontroller to manage and control its movement
4. has sensor and programming compatibility for path tracking and obstacles avoidance
5. communication option with arm’s microcontroller
6. Static and dynamic stability with mounted arm

Regarding those aspects and resources provided from UAS Technikum Wien two platforms were considered. Those platforms have features and equipment that allow them to carry out various navigational tasks including this required by this project. They are also relatively simple to control and program, but as a microcontroller they also have some limitations that can risk the achievement of this project’s goal.

In these processes both platforms and their characteristics/parameters will be analyzed and compared to the other platform. Only the relevant characteristics (including KO criteria) will be compared others will be excluded. Then each relevant parameter will be given points on a scale from 1 to 10 according to its criticality to the project.

Arduino Robot
The Arduino Robot is a wheeled mobile robot. It consists of two wheels with each has its own drive motor and two more points of contact for stability. Its control hierarchy is also based on two Arduino microcontrollers based on ATmega32u4 chip, one for controlling both motors (Motor board) and the other for reading sensors, end interface, and control of the motor board (Control board). Both microcontrollers are programmable.

Figure 3: Arduino Robot Dimensions: 185x85mm (Source: [6])
Table 1: Technical Specification of control board [6]
Control Board Summary
Microcontroller ATmega32u4
Operating Voltage 5V
Input Voltage 5V through flat cable
Digital I/O Pins 5
PWM Channels 6
Analog Input Channels 4 (of the Digital I/O pins)
Analog Input Channels (multiplexed) 8
DC Current per I/O Pin 40 mA
Flash Memory 32 KB (ATmega32u4) of which 4 KB used by bootloader
SRAM 2.5 KB (ATmega32u4)
EEPROM (internal) 1 KB (ATmega32u4)
EEPROM (external) 512 Kbit (I2C)
Clock Speed 16 MHz
Keypad 5 keys
Knob potentiometer attached to analog pin
Full color LCD over SPI communication
SD card reader for FAT16 formatted cards
Speaker 8 Ohm
Digital Compass
I2C soldering ports 3
Prototyping areas 4
Radius 185 mm
Height 85 mm

Figure 4: Arduino Robot Control Board, Radius: 185mm (Source: [6])
Table 2: Technical Specification of motor board [6]
Motor Board Summary
Microcontroller ATmega32u4
Operating Voltage 5V
Input Voltage 9V to battery charger
AA battery slot 4 alkaline or NiMh rechargeable batteries
Digital I/O Pins 4
PWM Channels 1
Analog Input Channels 4 (same as the Digital I/O pins)
DC Current per I/O Pin 40 mA
DC-DC converter generates 5V to power up the whole robot
Flash Memory 32 KB (ATmega32u4) of which 4 KB used by bootloader
SRAM 2.5 KB (ATmega32u4)
EEPROM 1 KB (ATmega32u4)
Clock Speed 16 MHz
Trimmer for movement calibration
IR line following sensors 5
I2C soldering ports 1
Prototyping areas 2

Figure 5: Arduino Robot Motor Board, Radius: 185mm (Source: [6])
Fischertechnik Robo TX Explorer
According to the official website, the Robo TX Explorer is a multi-function micro-mobile robot used mainly for teaching and experimental purposes which make it ideal for this project. It comes with various types of sensors like guidance, light, temperature .., etc. And output equipment such as lights, motors (with encoders) and sarin. The Robo TX Explorer is controlled exclusively by Fischertechnik microcontroller ROBOTICS TXT Controller.

Table 3: Fischertechnik TXT Controller & Robo TX Specifications [2]
Dual processor ARM Cortex A8 (32bit/600mHz) + Cortex M3
Memory capacity: 128 MB DDR3 RAM, 64 MB Flash
Memory expansion: Micro SD card slot
Display: Color 2.4“ touch display (320×240 pixels)
8 Universal inputs: Digital / analog 0-9VDC, analog 0–5kΩ
4 High-speed numerical inputs: Digital, frequency up to 1kHz
4 Motor outputs 9V/250mA (max: 800 mA): speed infinitely controllable, short-circuit proof, alternative 8 single outputs for components such as lights, etc.
Combined Bluetooth / WiFi RF module: BT 2.1 EDR+ 4.0, WLAN 802.11
Infrared receiver diode: for fischertechnik Control Set transmitter
USB 2.0 Client: Mini USB port for connection to PC
USB Host interface: USB-A port for fischertechnik USB camera, USB sticks, etc.
Camera interface: over USB host, Linux camera driver integrated into operating system
10-pin male connector for additional inputs and outputs as well as I2C interface Integrated loudspeaker
Integrated real time clock with replaceable buffer battery: for capturing measured values within a defined period of time
Linux-based, open source operating system
Programming ROBO Pro, C-Compiler, PC-Library, and many others.
Link to smartphones / tablet PC‘s via Bluetooth or WLAN
Power supply: 9V DC socket 3.45 mm or fischertechnik 2.5 mm sockets.
Dimensions 225x65x150 mm
Robo TX Explorer
Contents two encoder motors, three indicator lights, buzzer, NTC resistor, photoresistor, ultrasonic distance sensor, optical color sensor and an IR trail sensor.
Dimensions 465x80x320 mm

Cost Utility method (NWA)
As both microcontrollers are provided with the mind that they are suitable for the project’s goals and other options cannot be considered (resources) there was no need to KO criteria analysis and was proceeded to the next step.
For the next step, there will be a direct comparison between the two robots and respectively their microcontroller. The comparison will be based on the relevant properties essential for this project and will be assigned to factor (up to 10) according to their importance and criticality to meet its goals. Then each comparison point will be assigned a score from 1 to 10 as 1 is relatively very bad and 10 is excellent regarding nature of the comparison point.

After completing evaluating each robot according to the stated comparison points the point will be multiplied by their respective factors the summed for a total score. The robot with the higher total score is best suited for carrying out the needed task
Table 4: Evaluation of the 2 Mobile robots
Comparison points Arduino Robot Robo TX Explorer
Factor Score F x S Score F x S
Geometry 6 4 24 8 48
Functionality 9 2 18 9 81
Stability 8 5 40 7 56
Resources 6 8 48 4 24
Customizability 5 3 15 7 35
Sustaining load 8 3 21 8 64
Total Score 166 308

As concluded it the cost-utility analysis, the Robo TX Explorer was chosen to carry on further development of the project. The reason behind the assigned score for the comparison points can be summarized in following statements:
Better Geometry (rectangular and not circular)
More static and kinematic stability (lower center of gravity)
Modularity (ease of assembly)
Ease of coding: RoboPro (flow-chart based programing software)
Functionality (Performance problems by Arduino Robot)

Platform Configuration
For the basic configuration of the mobile robot, it will be assembled to best suitable form of stability while providing a horizontal base for the robot arm.

Figure 6: Basic assembly of Fischertechnik Robo explorer TX and Plugin Diagram, Scale 1:4 (source:[7])

The Robo explorer TX is formed of mini parts that are connected using friction. This method used to simplify and enhance customizing the robot mountable platform for additional part (i.e. robot arm) [7].

As Basic functional configuration, the encoder motors are connected to TXT microcontroller. Each encoder motor consists of a simple motor with integrated encoder in one box and has 5 outlets; 2 for current (motor, encoder), 2 for ground (motor, encoder) and 1 for signal (encoder). The TX microcontroller is connected to a 9V Battery which transmits power to all connected peripherals [7].

Line following and obstacle avoidance strategy
The Robo explorer TX has a form of self-navigation & tracking capabilities as well as avoidance system. Due to its size, form and what is designed for (learning/proof of concept), it has the basic form of those features. Namely for self-navigation, it uses line following method and IR for obstacles detection as avoidance system. [8] [9]

Line following is one of the simplest forms for achieving a self-navigating mobile robot. It’s a semi-automated method that depends upon sensing a pre-drawn line (usually black) and follow it in a closed loop. The idea is based a pair of IR sensor that detects the black line. Each sensor is in a continuous reading whether it detects the line where the robot goal is to try keeping both sensors detecting the line simultaneously. An algorithm is used in this case to determine the action of the mobile robot based on the combination of signals from both sensors.
Table 5: IR pair sensor variables and their result actions
Left Sensor Right Sensor Action
On (detects line) On Move forward
Off On Move left
On Off Move right
Off Off Stop or move in circle (search for line)

The disadvantage of this method is the movement of the robot is not smooth as it wobbles around the line trying to figure the correct path. For a smoother yet more accurate line following is by using a PID controller. [8] [10]

Figure 7: Robot movement scenarios during line following (source:[10])
Obstacle avoidance
Local obstacle avoidance aims at identifying and managing solutions to overcome (if possible) objects and distortions in a planned or navigated path. It does so by changing robot’s trajectory in a suitable manner based on the input from its distance and body sensing sensors, then returns to its original path after the obstacle has been successfully avoided. This algorithm acts as a subprogram that is only activated once an obstacle in the robot path is detected. The nature of the obstacle and the complexity of the avoidance algorithm determines its effectiveness and efficiency [9].

Figure 8: Kuka youBot avoiding an obstacle by turning around it (source:[11])

Robot Arm
A robot arm is mainly built by connecting the chain of bodies called links each two are connected through joints. Joints are often an optimal place to setup up actuators. Actuators are motors (electrical) that allow the movement of links with respect to each other.

Degree of freedom
Robot’s configuration states the position parameters of all points of a robot. As the links are solid rigid bodies not all of them are needed to represent the robot’s configuration. Mathematically they are regarded constants, so they are represented as factors in displacement, velocity and acceleration formulas.
To define a planar body with a specific area on a plane, it needs coordinates in (x,y) in respect to the origin to pin point its position. It also needs a coordinate [theta] to specify its orientation at the given position.
As Lynch stated, “The number of degrees of freedom (DoF) of a robot is the smallest number of real-valued coordinates needed to represent its configuration.” [12, p. 11]. As stated above the links of a robot is of no particular interest of studying as they are with constant properties, while the joint the displace them and alter their orientation are much more relevant to determining the DoF of a robot.

Degrees of freedom = (Sum of freedoms of the bodies) – (Number of independent constraints)

For basic joints found in the typical robot, a joint connects only two links, joints that connect 3 or more links are excluded. In reality, joints are not found in planer surface though it can have planar or spatial movement. Due to their various mechanisms, there are many different types of joint with each has its gains and losses but for ease of determining a robots DoF, they are categorized in few groups relevant to their mechanisms. Using a different kind of joints is done according to the designer concept and his goals of how to provide a degree of motion freedom or in other cases motion constrains between links.
Table 6: Types of mechanical joint and their DoF [12]
Joint Type DoF Description
Revolute (R) 1 aka hinge joint, allows rotational motion about the joint axis
Prismatic (P) 1 aka sliding or linear joint, allows translational (or rectilinear) motion along the direction of the joint axis
Screw (H) 1 aka helical joint, allows simultaneous rotation and translation about a screw axis.
Cylindrical (C) 2 allows independent translations and rotations about a single fixed joint axis.
Universal (U) 2 consists of a pair of revolute joints arranged so that their joint axes are orthogonal.
Spherical (S) 3 ball-and-socket joint, has three degrees of freedom and functions much like our shoulder joint.

Grübler\’s Formula determines the degree of freedom of a kinematic chain, that is, a coupling of rigid bodies using mechanical constraints [13, p. 77]. While the formula is reliable to express the number of parameters that define the configuration of a linkage from the number of links and joints and the degree of freedom at each joint, It fails to compute the DoF of some closed chained mechanisms with over constrains (singularities) [12].

Grübler\’s formula for the number of degrees of freedom of the robot is:
Where N is the number of links, J is the number of joints; m is the number of DoF of a rigid body (m = 3 for planar mechanisms and m = 6 for spatial mechanisms), and f is DoF for a Joint i
Arm Kinematics
What is meant by forward kinematics in robotics, is the calculation of position and orientation of an end-effector of a robot arm given the parameters and joint values.

Figure 9: Robot arm of 2 link and 2 joints
Figure 9 illustrates the forward kinematics of a 2R planar open chain mechanism, where links lengths are L1, L2 and their incremental orientation based on the origin are θ1 and θ2 respectively. The Cartesian coordinates (x,y) and orientation of the end effector Φ will be as following:

x= L_1 cos⁡〖θ_1+L_2 cos⁡(θ_1-θ_2 ) 〗
y= L_1 sin⁡〖θ_1+L_2 sin⁡〖(θ_1-θ_2)〗 〗
This can also be more systematically calculated by attaching reference frame to the origin and the center of each joint (point of orientation between two links) [12]
Where T_01=[■(cosθ_1&-sinθ_1&[email protected]θ_1&cosθ_1&[email protected]&0&1)], T_12=[■(cosθ_2&sinθ_2&[email protected]θ_2&cosθ_2&[email protected]&0&1)] and , T_23=[■(1&0&[email protected]&1&[email protected]&0&1)]
The orientation of the end effector can be also described using this method assuming all joints’ angles are defaulting to origin, so the orientation of the end effector will be:
M=[■(1&0&〖L_1+L〗[email protected]&1&[email protected]&0&1)]

Arm Kinematics Details

Planer motion equation:
P(x¦y)= f(θ_1,θ_2 )
x= L_1 cos⁡〖θ_1+L_2 cos⁡(θ_1-θ_2 ) 〗
y= L_1 sin⁡〖θ_1+L_2 sin⁡〖(θ_1-θ_2)〗 〗
dx/dt= -θ ̇_1 L_1 sin⁡〖θ_1-(θ ̇_1-θ ̇_2 ) L_2 sin⁡〖(θ_1-θ_2)〗 〗
dy/dt= θ ̇_1 L_1 cos⁡〖θ_1+(θ ̇_1-θ ̇_2 ) L_2 cos⁡〖(θ_1-θ_2)〗 〗
dP/dt [■([email protected])]=[■(〖-θ ̇_1 sin〗⁡〖θ_1 〗&〖-(θ ̇_1-θ ̇_2 )sin〗⁡(θ_1-θ_2 )@〖θ ̇_1 cos〗⁡〖θ_1 〗&(θ ̇_1-θ ̇_2 )cos⁡〖(θ_1-θ_2)〗 )][■([email protected]_2 )]
If dx/dt≠0 ,dy/dt=0  movement only in x direction
If dx/dt=0 ,dy/dt≠0  movement only in y direction

Figure 10: Determining θ2 by solving the quadrable “L1cbd”
e=√(d^2+〖L_1〗^2-2db.cos⁡(180-(θ_1+θ_2 )) )=√(〖L_1〗^2+d^2+2db.cos⁡(θ_1+θ_2 ) )
e=√(c²+b²-2bc.cosφ_2 )
β=sin^(-1)⁡〖((bsinφ_2)/e) ……(2)〗

From equations (1) and (2)

This section describes the movement concept and how it is executed as well as defining connection between the two robots before and after integration as well as configuring hardware peripherals and microcontrollers I/O

Movement Concept
A method for the robot approaching the gripping position for a given object:
For the system(Robot) to approach the object needed to be processed, its motion will be divided and controlled in 3 levels:
Platform Motion: This is the primary motion. It’s used to cover longitudinal distance until the object can be with the range of the robot arm
Axial motion: 360° axial motion about the z-axis (normal to platform). Its objective is to reposition the arm of the system by rotation in respect to the object so that they are in the same planer level
Planer motion: (x,y) based planer motion used to make the final repositioning of the arm to be able to be in physical contact with the object and manipulate it as needed.
The control for all three motion systems are independent of each other and can be singularly controlled to simplify the coding algorithm. The steps are carried by commanding each actuator respectively and not simultaneously to avoid withdraw of voltage due to a limited power supply (battery 9V).

Figure 11: Motion structure diagram
As illustrated in the project flow chart, the robot should recognize if the object to carry, is within the range of its arm and upon that, whether to travel it or continue with the arm’s program. The arm program then opens the gripper and reach the object to optimal position (catch position). For processing the object there are 2 modes; pick & hold where the robot pick up the object and move while it’s still in the arm until it places it back down and the other mode is pick and place where the robot places down the object on its mobile platform and until it reaches its destination then pick it up again and place it down off.

Figure 12: Task Flowchart including the two operation modes
I/O limitations
The kinematics of the mobile robot and its arm is an automated control of its actuators (i.e. motors). For this task a microcontroller with sufficient I/O channels and communication compatibility. The original concept was that a microcontroller (Fischertechnik TXT) would be only used to control the whole system; 2x Encoder motors + 4x Servo motors (Robot arm 3 DoF) after research it was concluded that this method is not possible as the microcontroller is limited to 4 output ports for only encoder motors [2]. An I/O extension couldn’t be considered due to size (22,5 x 6,5 x 15 cm) [14], price (≈€199) and availability. Therefore, a second microcontroller (Arduino UNO) was to be used to control the servo motors for the robot arm as a separate system while trying to connect both microcontrollers for better automation and control keeping in mind compatibility and nature of each microcontroller.

Figure 13: Fischertechnik I/O extension board, Scale 1:5 (Source:[14])
Navigation Planning
To control the mobile robot (Explorer TX) to move from point A to point B, a navigation plane has to be developed. By researching the navigation options while trying to approach a full automated process there were two option: 1. Path Tracking (Line following) – 2. Remote Controlling

Mobile Robot movement
Planning and Navigation
The Robo explorer TX comes with IR trail sensor that enables it to follow black line one the ground in a continuous loop. It consists of two transmitters and two receivers with each has its input channel for different sensing scenarios. The trail sensor function ideally in range 5 to 30 cm and requires a voltage of 9V [8, p. 20]. For obstacle avoidance, Robo explorer TX is equipped with a mountable ultrasonic sensor that uses ultrasonic waves (as the name indicates) as sensing medium with a theoretical range of up to four meters. Those sensors along with two encoder motors for each side of the robot are connected and controlled through Fischertechnik TXT microcontroller programmed by RoboPro.

Figure 14: Plugin Diagram of Robo explorer TX with trail and ultrasonic sensor (Source: [7])

Line following
The main goal of this trial is to test and recognize the ability of the Robo explorer TX whether it can use this method as a reliable navigation option for fulfilling the purpose of the project and if successful how it can be optimized for obstacle avoidance.
For the robot to be able to find the black line, it must be drawn on a white background to maximize contrast. The IR trail sensor will be install on the bottom of the robot with its sensors facing the ground. The module transmits IR light to the pavement substrate. According to the color of the substrate it sends different reflections which are measured by phototransistors. For programming logic, if a bright or white substrate reflects the light its returns a value of 1. With a black one, it returns a value of 0. In an ideal scenario representing a forward movement on the black line both sensors should return the value of 0 [8, p. 25 ff].

Figure 15: Line following program: Trail_Searcher_2.rpp (Source: [8])
For more developed programming scenario, a subprogram is added to handle obstacles. By using the ultrasonic sensor module, if the robot detects an object in front of it start altering its path to left or right and moves in a semicircular path maintaining a minimum distance between it and the obstacle until it overcomes it than start searching again for the black line and continue its destination

Using these programs, each with a different approach and algorithm, the mobile robot was not able to track the black line successfully. In few scenarios, it was partially able to track the black line drawn on the ground but this was not accurate enough to fulfill the goal of precisely traveling drawn path. The reason for this result is due to the limitations of the trailing sensor, namely low sensitivity and no proper signal filtration.

Figure 17: Line following trial

IR Remote Controlling
Another approach to this problem is to control the mobile robot using IR controller. However, this approach requires more complex I/O configuration and programming; the concept behind that is trying to connect the mobile robot microcontroller (Fischertechnik TXT) with the Arduino microcontroller of the robot arm using an IR receiver and its remote control as it cannot be directly connected to the mobile robot microcontroller itself. For this, the communication protocol must be accurately regulated taking in mind the compatibility issues like different voltages, electronics, I/O, programming …, etc.

To decode the transmitted signal by the IR remote control, a C code IR library is implemented in an Arduino sketch with a Serial.printIn() command to identify and assign each switch of the remote control with its relative hex code. This method can use a physical digital display or serial monitor view adjust on the COM and Serial.begin() (i.e. 9600)

Arduino as Input/Master for TXT microcontroller
With Arduino capabilities and its flexible I/O interface with the right configuration, its ports can be programmed as a usable output signal for TXT microcontroller. Through this concept, it’s to control the both microcontroller’s systems through one interface which is a common method in field of automation

Figure 18: Plugin Diagram between the 2 microcontrollers
Table 7: Plugin ports, variables and signal voltage
Arduino Output Type Output Voltage TXT Input Type Input Voltage Resistance

2 DO, Bool 1.4v I8 DI, Bool 350mv 10KΩ,1.1v
3 DO, Bool 1.4v I7 DI, Bool 350mv
4 DO, Bool 1.4v I6 DI, Bool 350mv
5 DO, Bool 1.4v I5 DI, Bool 350mv

I/O peripherals
IR Sensor
It acts as the main input for receiving navigation commands that are transmitted to TXT controller through the Arduino. It can also be used to control practically both controllers and their outputs.

Infrared is very common to use for wireless controlling which in this case improve cabling management, resources and degree of automation. But it has its limitations due to its short range and accuracy it’s not a very reliable option.

IR receiver VS1838B

Figure 19: VS1838B technical drawing (source:[15]) | Figure 20: IR receiver VS1838B and remote control \”Car mp3\” (source:[16])
Specifications [15]
Photodetector and preamplifier in one package.
• Internal filter for PCM frequency.
• Inner shield, good anti-interference ability.
• High immunity against ambient light.
• Improved shielding against electric field disturbance
• 3.0V or 5.0V supply voltage; low power consumption.
• TTL and CMOS compatibility.
• Suitable transmission code: NEC code, RC5 code.

2x Metal Gear Digital RC Servo High Torque
Metal Gear Servo is equipped with a brushed DC coreless motor inside, making quick response, strong adaptability, and low electromagnetic interference. It has a torque of up to 15 kg/cm and relative small size which makes it the choice for controlling both arm’s links.
Specifications [17]
Stall Torque: 12 kg/cm(4.8V), 15kg/cm(6V)
Metal gear and dual-ball bearing.
Dimensions: 54.1 x 20 x 44.3 mm; Weight: 55g
Supports voltage control in bipolar driver mode.

Andoer SpringRC SM-S4315R 15Kg
SM-S4315R is a continuous (360°) rotating the signal controlled motor. Servo here is a misused term as the feedback loop has been disabled in exchange for continuous rotation. Instead, a trimmer potentiometer is installed and enabled to be configured through a screw to adjust the value when it receives 1.5ms. By controlling the signal pulse width through a controller, it can rotate both directions, if its shorter or longer at different speeds or stop when it matches exactly the pulse width [18].

Servo-Type: continuous Rotation
Speed: 0,17-0,21 RPM (4.8V – 6V)
Torque: 13 – 15,1 (4.8V – 6V)
Package dimensions: 6 * 5 * 4cm
Wight: 79g

The Gripper (End effector)
The 1501MG is a metal-geared analog servo from Power HD. it is one of the commonly used servos regarding its size. It has a torque of 15.5 Kg/cm which is over sufficient as a gripping force. This servo has been provided by the UAS Technikum Wien [20].

Specifications [21]
Modulation: Analog
Torque: 4.8V: 15.50 kg-cm, 6.0V: 17.00 kg-cm, 7.2V: 20.45 kg-cm
Speed: 4.8V: 0.16 sec/60°, 6.0V: 0.14 sec/60°
Weight: 60.0 g
Dimensions: 41.9 x 20.6 39.6 mm
Pulse Cycle: 20 ms
Pulse Width: 500-2100 µs

2x Fischertechnik Encoder-Motor 24V
Fischertechnik encoder motor contains bi-directional motor connected to an encoder by a built-in board. 2 of these motors are used as the main drive for the Robo explorer TX by using slip/skidding mechanism only two are required to achieve linear and rotational locomotion.

Figure 24: Fischertechnik encoder motor, Scale 1:1 (source: [21])
Plug-in & Circuit Diagram
As shown in Figure [] which illustrates how the two controllers are interconnected through 4 I/O channels. On Arduino side, it intercepts IR receiver signals then translate it into a hex code. Each switch on the remote control represents a constant hex code which can be put in as an input signal for a required output through while, if or switch statement.
The Arduino also handle controlling of the four servo motors (3 180°, one continuous) to control the robot arm achieving the desired angles and positions. This can be fully automated or also controlled through IR remote control. Regarding the resources of this project, the z-axis will be remote controlled, while the arm planar movement will be carried out according to the algorithm.

Figure 25: Plugin diagram total system

Arduino will also indirectly control the Robo explorer TX through TXT controller which receive the switch signal correspondent to 4 channel coded for the four directions (forwards, backward left and right). A Voltage source (battery)will supply both controllers and the redirect the power supply to their sensors/actuators. As the battery is limited to 9 volts, the process is carried step by step to avoid voltage drops.

Figure 26: Circuit Diagram Total system
RoboPro Idea
RoboPro is the main programming software from Fischertechnik to control and program its products including the Robo explorer TX and its TXT controller. For learning purposes, it uses a simple user interface based on the idea of flow charts. Programming function is demonstrated as a block while the variables the flow of the program is represented through drawing links instead of line code. Although RoboPro is simple to use it also carries the feature of a complete programming suit for all kinds of needs. By selecting programming level, more functions (i.e. logic gates, loops, libraries .., etc.) are enabled [22].

Figure 27: RoboPro Programming example (source: [2])
Remote Control
The program concept is based on receiving the movement commands of the mobile robot to 4 on/off switches where enabling a switch disable the others and carry its respective movement command. The movement commands (forward, backward, turn right, turn left) is a combination of controlling the two encoder motors (M1, M2) in similar or different directions.
Table 8: Motion signals / resulting movment
Command Switch Command algorithm
Move forward I4, HIGH M1 rotate cw, M2 rotate cw, same speed
Move backward I5, HIGH M1 rotate ccw, M2 rotate ccw, same speed
Turn right I6, HIGH M1 rotate cw, M2 rotate ccw, same speed
Turn left I7, HIGH M1 rotate ccw, M2 rotate cw, same speed

Figure 28: Mobile robot movement program
Arduino IDE/C language
Arduino IDE (Integrated development environment) is a programming platform based on C language for Arduino controllers. It consists of source code editor, compiler, and a debugger. To ease Arduino programming concept is based on two main functions; setup() for analyzing and setting initial values like attaching peripherals, defining I/O channels .., etc. and loop() is for executing the intended commands in a repetitive manner [6] [23].

Figure 29: Arduino DIE (source: [6])

Conclusion & Future Development
Through the development of the project, planning the networking between controllers and their peripherals and between each other represented difficulties. The main idea was to mount the TXT controller on the side of the mobile platform (fixed) to keep the center of gravity low as possible while the Arduino is mounted on the movable arm to maintain a connection with its servo motors. It was assumed that the two entities would work independently of each other as the concept of line following was still not excluded. After trials with line following failed and developing a connection between the two controllers the problem appeared. While the TXT controller is fixed, the Arduino controller is 360° rotational. By moving to the arm around z-axis to its extend the cabling will eventually break up.
A possible solution would be connecting the controllers through the center of the z-axis to avoid revolving cables around the outer circumference of the arm. This can only be done if TXT controller remount in the center of the mobile robot and the arm. This lead to trade off stability (higher center of gravity) and redesigning the robot arm base. Another possible option is using a wireless connection between the two controllers. This can be done using Arduino Wi-Fi shield mounted on the Arduino controller while the TXT controller has built-in Wi-Fi adapter. This method has to be tested for insurance of connection stability and reliance [6] [24].

Figure 30: Arduino WiFi Shield (source: [24])

Automating z-axis
As mentioned before to achieve a 360° rotational movement around z-axis the feedback loop has to be removed. Due to this compromise, the precision control on the angular displacement of the motor has been lost. This control can be regained by installing an external motion sensor (i.e. digital compass module) on the motor and reprogram it according to the sensor reading. By this, the feedback loop has been practically restored while not sacrificing the continuous motion [6] [25].

Figure 31: Arduino compass HMC5883L (source: [25])
Final words
For the purpose of the project such a robot in the industrial field has multifunctional applications, namely handling, finishing, construction and transporting. This tributes to more efficient automated systems low cost and more productivity. It also motivates to widen personal knowledge as the progress requires exploring different fields of science other than mechanical engineering like electronic and programming and how to use this knowledge to implement a solution that is simple due to limited time and resource but practical and efficient enough to stay on the goal of the project. This concept is always implemented by engineers in different work fields as they face challenges to solve technical issues while limited by definite resources and time.


[1] Oxford University, \”Oxford Dictionaries,\” [Online]. Available: [Accessed 28 11 2016].
[2] Fischertechnik GmbH, \”fischertechnik,\” [Online]. Available: [Accessed 27 11 2016].
[3] R. Siegwart and I. R. Nourbakhsh, Introduction to Autonomous Mobile Robots, MIT Press, 2004.
[4] Boston Dynamics, [Online]. Available: [Accessed 27 11 2016].
[5] KUKA AG, [Online]. Available: [Accessed 28 11 2016].
[6] Arduino, \”,\” [Online]. Available: [Accessed 03 January 2017].
[7] Fischertechnik, Assembly Instruction, Fischertechnik, 2014.
[8] Fischertechnik, Activity booklet, Fischertechnik, 2012.
[9] S. Tzafestas, Introduction to Mobile Robot Control, Elsevier, 2014.
[10] S. o. Robots. [Online]. Available: [Accessed 13 01 2017].
[11] youBot Store GmbH, Kuka AG, [Online]. Available: [Accessed 15 01 2017].
[12] F. C. P. Kevin M. Lynch, Modern Robotics Mechanics, Planning, and Control, Cambridge University Press, 2016.
[13] C. T. Jorge Angeles, Rational Kinematics, Springer, 1989.
[14], Fischertechnik, [Online]. Available: . [Accessed 15 12 2016].
[15] Chioszrobots. [Online]. Available: [Accessed 12 1 2017].
[16] Osoyoo. [Online]. Available: [Accessed 12 01 2017].
[17] Sunfounder. [Online]. Available: [Accessed 12 01 2017].
[18] Pololu Corp., [Online]. Available: [Accessed 02 01 2017].
[19] Roboter Haushaltsgeräte, \”,\” [Online]. Available: [Accessed 12 01 2017].
[20] Pololu Corporation, [Online]. Available: [Accessed 13 01 2017].
[21], [Online]. Available: [Accessed 13 01 2017].
[22] Fischertechnik, \”RoboPro Help,\” Fischertechnik, 2014.
[23] D. R. Brian W. Kernighan, The C Programming Language, Prentice Hall; 2 edition, 1988.
[24] J. A. T. Machado and M. F. Silva, \”An Overview of Legged Robots,\” Institute of Engineering of Porto, Porto, Portugal.

...(download the rest of the essay above)

About this essay:

This essay was submitted to us by a student in order to help you with your studies.

If you use part of this page in your own work, you need to provide a citation, as follows:

Essay Sauce, Mobile platforms. Available from:<> [Accessed 10-12-19].

Review this essay:

Please note that the above text is only a preview of this essay.

Review Title
Review Content

Latest reviews: