Article Versions
Export Article
Cite this article
  • Normal Style
  • MLA Style
  • APA Style
  • Chicago Style
Research Article
Open Access Peer-reviewed

Using a High-Speed Mini-PC to Control an Autonomous Underwater Vehicle

Ali. Jebelli , Mustapha C.E. Yagoub, Balbir S. Dhillon
American Journal of Mechanical Engineering. 2019, 7(3), 116-128. DOI: 10.12691/ajme-7-3-2
Received May 23, 2019; Revised July 02, 2019; Accepted July 14, 2019

Abstract

In this paper, the authors present the design of a mini-PC board to fast processing of an AUV (Autonomous Underwater Vehicle) with two 360° rotational thrusters. This rotation capability in the thrusters, along with an embedded mass shifter, allows for long-time immersive motor maneuvers for this AUV. Also, the conditions for moving the device at the water surface and depth are provided by changing the angle of the thrusters and moving the mass shifter along with the motor speed change. All the commands related to the motor angles, proper position of the thrusters, mass shifter, and speed, are sent to an Engine board via a high-speed Mini PC. The high-speed Mini PC sends decisions to the Engine board after receiving and processing all sensors data as well as data from embedded cameras. This integrated system provides the ability to move safely based on accurate analysis of the environment by sensors and images received by cameras from the surroundings, with minimal energy consumption for the underwater AUV. The results of various tests demonstrated the high performance of this AUV.

1. Introduction

Nowadays, the research to enhance the capabilities of Autonomous Underwater Vehicles (AUVs) is mainly to reach uncertain and harsh environments that could be very difficult to access to humans. Such AUVs can indeed allow exploring the sea and monitoring underwater structures, where prolonged exposure to humans is dangerous or even, sometimes, impossible. Reducing the size of these AUVs will increase their availability and maneuverability. However, it is very difficult and challenging to embed electrical and mechanical parts inside these AUVs, thus leading to high costs as well as hard challenges for AUV designers 1, 2, 3, 4, 5.

In this paper, the authors introduced a small Teflon (PTFE) underwater AUV, which has a very high maneuverability capability with only two 360-degree rotational thrusters. Reducing the number of thrusters can save energy and thus give the AUV a higher working time autonomy. To this end, a user will provide the desired depth and direction to the AUV, and this later will move toward the predefined arrival point with minimal energy consumption because of a mass shifter implemented in the AUV and a control loop between the thrusters and this mass shifter. In this AUV, we used a high-speed mini-PC unit that simultaneously captures/analyses data from embedded cameras and sensors, and sends the appropriate commands to the Engine board by matching images from cameras and sensor information. Thus, the board defines the position of the mass shifter, speed, and angle of the thrusters. To reduce weight and optimize size in the AUV, we designed two-level electronic boards that allow reducing communication cables. Finally, a prototype of the designed AUV was successfully tested under real conditions (in both pool and ocean environments).

2. AUV Description

To successfully design the body, one should establish a primary plan of the body structure with the exact location of each sub-part to be embedded, knowing that it will be made of one piece with cameras on the top and bottom, and engines attached on the sides (Figure 1 to Figure 3).

As seen in Figure 2, the curving all around the body minimizes the drag force, as detailed later. The valve #1 in Figure 3 is used for placing charger cables, microcontrollers and processor data cables. It, therefore, enables the user to have access to the whole system without having to open the whole body, thus preserving the body sealing. It is to be noted that the rear of the body has a cubic shape to precisely allow more space to this access valve. The holes #2 and #3 in Figure 3 are for the pressure sensor and the antenna, respectively.

The body was designed with two dolly blocks (#4 in Figure 3), in which servomotors have been placed to change the thruster angle.

The thickness of the body (made of Polytetrafluoroethylene - PTFE) is of 1 cm. There are two cameras, one above (main camera) and one on the bottom. Considering the thickness of the body, some extra tools may be attached to the body if deemed necessary. Therefore, adding more thrusters or an arm would be possible to further enhance the AUV functionality.

Beside the main access valve at the rear, five other valves have been also designed to embed the electrical/mechanical parts. Such valves have been isolated from the rest of the body by walls to avoid any damage due to possible leakage. In Figure 4, valve #1 is a valve under the access valve to access the batteries. The engine driver board is placed in the space provided by valve #2. Valve #3 has been dedicated to locate the Mini PC and valve #4 to initially locate the sensors. However, due to their high sensitivity, they have been relocated as in Figure 5: the circular space near the cape has been used for placing the Inertial Measurement Unit (IMU) and the compass sensors, as in Figure 6. In this Figure, #1 is devoted to the bottom camera while #2 and #3 are for the sensors. Note that these parts have holes at the bottom covered by clear and thinner-than-body lens, the aim being to weaken the earth's electromagnetic waves inside the body.

Valve #5 is for the parts that are connected to the middle sheet: the mass shifter and its motor. Finally, valve #6 is for the main camera space as well as for the sensor board. Figure 7 shows the placement of the driver board, the bottom camera, the sensor board, the mass shifter, and the main camera.

3. Main Processor

All AUV processes including camera/sensor data, detecting obstacles, controlling motor operation, etc., should be managed via a main processing board. Considering the amount of data to manage in real time, the AUV operation needs a high-speed processor to efficiently receive and send commands. With its high processing speed, supporting USB ports, and 802.11ac dual band wireless network, we selected the mini PC board Giada i200-BG000, Celeron 6. Figure 8 shows the block diagram of the main processor.

4. Sensors and Sensor Boards

In this work, we used different sensors based on the specific functionalities assigned to the designed AUV. The common factors in selecting these sensors are their relatively low cost, high performance, small size, high sensitivity, resistance against heat and low current consumption, as well as their ability to work with the I2C communication protocol. As mentioned above, due to their high sensitivity, the sensors and their electronic board have been embedded in a separate container in order to reduce the communication error with the main processor as well as to minimize the risk of damage and calibration errors in case of accidently hitting an obstacle. Figure 9 shown the hardware and electronics connections.

The selected IMU sensor is the MPU-9250 with a 3-axis gyroscope, a 3-axis accelerometer, a 3-axis compass, and an internal temperature sensor 7. The selected compass sensor is the HMC6343, a fully integrated compass module 8. According to the available space and the sensors involved, two electronic boards were designed to connect the sensor board with an IDE cable (Figure 10).

Because there is a linear relation between water pressure and water depth, we used a pressure sensor to measure the device depth (fixed to a maximum of 8 m). The selected pressure sensor is the MS5803-14BA 9, a high-resolution pressure sensor with I2C interface.

A high-resolution temperature output allowed the implementation of a depth measurement system and thermometer without any additional sensor. A gel protection and antimagnetic stainless-steel cap has been included to protect against overpressure waterproof 1.

To measure humidity and temperature, we used the SHT-11 digital sensor with I2C protocol. A unique capacitive sensor element is used to measure relative humidity while the temperature is measured by a band-gap sensor 1.

The aim of the sensor board is to collect data from the above sensors. Data will be sent to the main processing board via a serial port. This board is responsible for measuring data from all the sensors and sending them to the main processor board. This board also receives the required commands from the main processing board and send them to the motor driver board. It is based on the microcontroller ATMEGA64 10, which has two Universal Asynchronous Receiver/Transmitter (UART) communication ports: one for the main processor and one for the motors driver board. The mass shifter circuit, composed of two switches at both ends of a rod, as well as the LED lighting control circuit are mounted in this board.

A programmer socket, a reset circuit, a battery voltage detection socket, and a LDR photocell sensor used to detect changes in the resistance of the circuit board have been also mounted on this board along with sensor sockets of the above mentioned HMC6343, MPU9250, MS5803 and SHT11 (two). A vacant socket (for future use) is also part of this board. Note that due to the large space required by all fittings and connectors, this board has been designed in two levels. The circuits are located in the bottom level while the sockets and connectors are located on the top level of the board.

5. Transceiver

As mentioned, the AUV’s function is to work into water at a maximum depth of 8 m. The Mini PC (Giada i200-BG000, Celeron) usually operates with Wi-Fi and Bluetooth systems. However, due to underwater antenna issues in terms of cost and power supply, we decided to use two transceiver modules in order to evaluate the system performance during the AUV mission and to control the AUV in emergency mode. For this purpose, we retained two RF7020 (ADF7020) modules: one external to be connected to the external controller and one internal to be connected to the Mini-PC through a USB port 11, 12, 13.

6. Cameras

In recent years, demands for underwater tasks, such as exploration of ocean environment and resources or inspection of underwater structures, have dramatically increased. We have then included two cameras in the AUV design 1: the first (WebCam C615) in a transparent dome-like space at the top of the AUV with a capability of a 360o rotation and the second on the AUV floor (720p USB Camera with Infrared LEDs) 1, both for observing the surroundings and detecting obstacles (Figure 11). Also, several LEDs have been added all around the cameras to shed light into the water environment. A light board was then designed, consisting of an LDR (Light Dependent Resistors) photocell sensor 1 to measure the ambient light and four LED for providing light on the top of the camera.

7. Power Distribution Board and Batteries

Because of the variety of the devices to be embedded in the AUV (Table 1), a power distribution board of dimensions 69.7*48.6 mm2 was designed with a µA 7805 regulator (Figure 12).

Also, since the 12 V battery voltage should not fall below 9 V and the 20 V battery voltage should not fall below 15 V, two-voltage detection circuits have been embedded. Their outputs are evaluated by the analog-to-digital converter of the sensor board microcontroller. As a result, the outputs from these circuits have been connected to the sensor board.

As main power supply, we used two rechargeable batteries: a 20V/14Ah battery and a 12V/12Ah battery (with regulators). Full battery specifications are reported in Table 2.

8. Access Valve Board

An access valve board has been placed in the final part of the AUV (in the access valve chamber). The aim of designing such board is to turn the device on, access to information stored in the device, and charge the battery after being drained. This board is made up of two perpendicular boards so that the user can plug the network cable into the charger cable.

A micro-switch has been embedded in the horizontal board for the user to directly turn-on or -off the main processing board. There are also two input sockets and two output sockets for voltage as well. Input sockets are connected to the battery and output sockets will be linked to the power source. Two headers have been used for connecting the input sockets to the on-board battery charger on the vertical board. Figure 13 shows the Access board, which includes two sockets for connecting chargers and a network socket for connecting to an external computer.

9. Engine and Driver Board

A single driver is used for controlling all the engines. This driver is responsible for receiving a series of orders in a serial form from the main processor board via the sensors board, and controlling the direction and speed of all engines, which includes two BTN7971B motor driver modules for control of DC motors 14.

This board produces the Pulse Width Modulation (PWM) signals required by all engines via a mega64 microcontroller. Block diagram and schematic of the engine’s driver board is shown in Figure 14-a and the BTN7971B Motor Driver Module in Figure 14-b.

In order to provide different types of movements to the device we implemented:

- Two Buhler 1.13.044.023.03 24 V DC motors for moving the main body of the device 15.

- One Moons hybrid stepper motor 16HS Series 1.8° /12 V DC to move the ball screw and Mass Shifter, its dynamic torque curves is shown in Figure 15.

- Two XQ-S4020D 21.8 kg waterproof digital servomotors for the horizontal and vertical rotation of thrusters.

Note that all the above engines are directly connected to the motor’s driver board.

10. Controller Design

The designed vehicle has five degrees of freedom for moving namely, horizontal/vertical movements and rotations around the x-axis, the y-axis, and the z-axis.

Different controlling algorithms were then implemented to control the AUV’s speed (associated with the device horizontal movement) and depth (corresponding to the device vertical movement), as well as the pitch angle and the direction level.

10.1. Speed Controller

This controller adjusts the speed of the left and right engines to provide the required speed depending on the scheduled route. Thus, a proportional integral controller (PI) 1 has been used, which formula can be set as:

(1)

with kpu the speed controller proportional coefficient and kiu the speed controller integral coefficient. T is the controller output in terms of engine revolution percentage and εu the speed error, calculated as:

(2)

where ud is the desired speed and u the speed measured by the sensors.

10.2. Pitch Controller

A mass moving system was designed to control the pitch angle, i.e., the X body-axis towards the horizon.

The intended mass moves only towards the longitudinal direction of the body (the x-axis) and causes rotation around the center of gravity, thus creating positive or negative angles towards horizon. Due to its inherent stability, the device tends to keep the pitch angle close to zero. This implies that if the instrument is out of balance, it returns to its steady state, the zero angle. Moreover, in dive or rising, it is desirable that the angle of the nose can change upwards or downwards to decrease the body angle with its path, thus decreasing the friction with the fluid, and therefore, increasing speed.

For this purpose, the pitch controller adjusts the moving poise close to the center of balance to make the nose angle zero, when the device moves horizontally and if the device tends to change its depth upwards or downwards it replaces the moving poise backwards or forwards, respectively.

A proportional controller has been used to adjust the nose angle as:

(3)

Where is the controller output, which includes the poise distance towards the center of balance. kpp is the controller proportional coefficient and εp the nose angle error between the desired pitch angle θd and the pitch angle θ measured by the sensors:

(4)

Note that preliminary simulations showed that there is no need for an integrator term.

10.3. Depth controller

The depth controller maintains the device at the desired depth. It has two modes, at rest and during movement:

Ÿ Depth Controller at rest: If the AUV is at rest, the speed is zero and the angle θs relatively to the horizon is set automatically by the servos to 90o. The depth is maintained at the desired value by adjusting the level of engines’ revolution. For this, a proportional integral controller has been used,

(5)

with kpD1 the depth controller proportional coefficient at rest and kiD1 the depth controller integral coefficient at rest. T is the controller output determined by the engines’ revolution in terms of percentage. εD is the depth error calculated as:

(6)

where Dd is the desired depth and D the measured depth evaluated by the sensors.

Ÿ Depth controller during movement: when the speed is not zero, the θs parameter is used to control the depth by changing the engines’ angle towards horizon and the required vertical force is provided. For this purpose, a proportional integral controller has been used as

(7)

with kpD2 the depth controller proportional coefficient during movement and kiD2 the depth controller integral coefficient during movement.

10.4. Level Controller

The logic of controlling the AUV direction is based on the difference between the left and the right servo's angle. For example, if the desired rotation is towards right, the left servo is placed upper than the right servo and becomes closer to horizon and if the desirable rotation of the device is towards left, the right servo comes up and becomes closer to horizon. To implement this logic a proportional-integral controller has been used as

(8)

Here kpy is the proportional coefficient of the controller and kiy its integral coefficient. θe is the controller output, showing the required difference between the servo motors, and εy is the direction error given by

(9)

where yd is the desired direction angle and y the direction angle calculated by the sensors.

11. Experimental Tests

11.1. Experimental Setup

The above algorithms were first implemented and tested separately. Then, the AUV was built with all required mechanical and electrical blocks (Figure 16 and Figure 17).

Integrating so different blocks is indeed challenging. So, we first tested the interaction between blocks to predefined commands before embedding them. Once assembled and insulated, we can access the AUV through the access board. At rest, the servomotors and the mass shifter return to their default mode (the mass shifter return to the center of gravity of the AUV and servomotors return to horizontal state or zero angle). Also, the rotating body of the camera chamber is placed on the AUV nose in default mode.

We first connected the Mini-PC to a computer to perform initial verifications. Then, we activated the wireless connection mode for the Mini-PC and removed the cable network from the access board. Next, we placed the cap access valve and sealed it. Once placed on water, the AUV will float at the surface until we send the first set of commands.

11.2. Performance Results

In this section, all the above controllers (speed, pitch, depth and direction) were integrated into a single algorithm and the whole system behavior evaluated.

For the test, a predefined set of commands was sent to the prototype in terms of desired speed (Figure 18), depth (Figure 19) and direction angle (Figure 20). As shown in Figure 21 to Figure 33, the AUV’s responses follow the given commands, thus allowing validating the algorithm implementation.

In fact, while comparing Figure 21 and Figure 22, we can notice that the evolution of the speed prototype to the speed command agrees with the vertical speed. In spots where the depth change occurs, this later rises to balance the AUV’s moving.

This has been further confirmed by the acceleration curves (Figure 23 to Figure 25). Indeed, when the AUV changes the angle of its pitch and rotates towards left and right, an acceleration is applied to the AUV in the y-axis direction of the body to closely follow its commands. Similarly, for the other acceleration components.

Same conclusions can be made for the depth and pitch angle (Figure 26 and Figure 27).

We should note that to maintain the stability of the AUV, angular velocity around the x-axis occurred to keep it stable around its longitudinal axis (Figure 28). The variations of the y- and z-axis angular velocities as well as the servo angles and the corresponding moving of the mass shift weight confirm the good operation of the prototype (Figure 29 to Figure 33).

12. Conclusion

In this paper, we designed a lightweight autonomous underwater AUV with vision capabilities. The tasks involved the design of various mechanical parts, particularly two rotating thrusters and an interior mass shifter to efficiently control the device movement. Sensor boards were also embedded to share information with a Mini-PC board and thus, to assure proper AUV operation. Control-based algorithms were developed to control the AUV operation and assure proper responses to external commands and/or surrounding conditions. Also, two cameras were used to collect information about the surrounding environment.

To do so, we started with the AUV body by selecting a shape and subdividing it into blocks in order to locate all embedded mechanical and electrical components required for proper operation under real environmental conditions; the objective being to achieve a good trade-off between size and weight. Then, by setting the simulated maximum depth to 50 m, loading, strain, and stress analyses and simulations were performed to ensure the body safety while submitted to external forces (note that the effective maximum depth was set to 8 m, well below the simulated value of 50 m). Next, we included a mass shifter to control the AUV movement and assure its stability. We also designed a sensor board, a power board, an access board, and a motor driver board as well as a Mini-PC to manage the data exchange with the different mechanical and electronic parts like the IMU, pressure, and compass sensors.

After receiving predefined-user commands regarding the desired arrival point to reach at a certain depth and with a certain speed, the fabricated AUV prototype was able to perform the given task by efficiently changing its driving motors’ speed and servomotors’ angle. This played an important role in preserving the energy resources of the AUV, thus increasing its autonomy. Finally, after more than 600 hours of testing under various operating conditions including both pool and ocean environments, the designed AUV successfully responded to all commands by taking appropriate decisions.

References

[1]  Jebelli, A., “Design of an Autonomous Underwater Vehicle with Vision Capabilities,” Ph.D Thesis, University of Ottawa, 2016.
In article      
 
[2]  Jebelli, A., “Development of Sensors and Microcontrollers for Underwater Robots,” Master’s Thesis, University of Ottawa, 2014.
In article      View Article
 
[3]  Jebelli, A., Yagoub, M.C.E, Dhillon, B.S., “Design and control of a self-balancing autonomous underwater vehicle with vision capabilities,” Journal of Marine Science: Research & Development, Vol. 8, No. 1, pp. 1-7, 2018.
In article      
 
[4]  Jebelli, A., Yagoub, M.C.E, Dhillon, B.S., “Modeling of an autonomous underwater robot with rotating thrusters,” Advances in Robotics and Automation, Vol. 6, No. 1, pp. 1-10, 2017.
In article      
 
[5]  Zhao, Y., Wang, L. and Peng, S., “A Real-Time Collision Avoidance Learning System for Unmanned Surface Vessels,” Neurocomputing, 182, pp. 255-266, 2016.
In article      View Article
 
[6]  i200, 4th Gen. Intel® CoreTM i3/i5/i7 Processor Intel® HD Graphics 4400, Intel, 2015.
In article      
 
[7]  MPU-9250 Product Specification, Document Number: PS-MPU-9250A-01, InvenSense Inc, 2014.
In article      
 
[8]  Three-axis Compass with Algorithms HMC6343, Honeywell’s Magnetic Sensors, 2014.
In article      
 
[9]  126MS5803-14BA Miniature 14 bar Module, Measurement Specialties Inc., 2012.
In article      
 
[10]  http://www.atmel.com/images/atmel-2490-8-bit-avr-microcontroller-atmega64- l_datasheet.pdf, [Last access May 23, 2018].
In article      
 
[11]  FSK/ASK Transceiver IC, Analog Devices, Inc., 2012.
In article      
 
[12]  KeyStone Architecture Universal Asynchronous Receiver/Transmitter, Texas Instruments, 2010.
In article      
 
[13]  http://www.dorji.com/docs/data/DRF7020D13.pdf, [Last access May 25, 2018].
In article      
 
[14]  BTN7971B High Current PN Half Bridge NovalithIC, Infineon Techn., 2008.
In article      
 
[15]  http://www.buehlermotor.de/C12572D40025EAF8/vwContentByKey/W274AHF53 91 WEBRDE/$File/DC- Motor_51x73_1.13.044.0XX.pdf, [Last access May 27, 2018].
In article      
 
[16]  http://www.motionusa.com.s3-website-us-east-1.amazonaws.com/moons/Hybrid _Stepper_Motors_16HS_Series.pdf, [Last access May 18, 2018].
In article      
 

Published with license by Science and Education Publishing, Copyright © 2019 Ali. Jebelli, Mustapha C.E. Yagoub and Balbir S. Dhillon

Creative CommonsThis work is licensed under a Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/

Cite this article:

Normal Style
Ali. Jebelli, Mustapha C.E. Yagoub, Balbir S. Dhillon. Using a High-Speed Mini-PC to Control an Autonomous Underwater Vehicle. American Journal of Mechanical Engineering. Vol. 7, No. 3, 2019, pp 116-128. http://pubs.sciepub.com/ajme/7/3/2
MLA Style
Jebelli, Ali., Mustapha C.E. Yagoub, and Balbir S. Dhillon. "Using a High-Speed Mini-PC to Control an Autonomous Underwater Vehicle." American Journal of Mechanical Engineering 7.3 (2019): 116-128.
APA Style
Jebelli, A. , Yagoub, M. C. , & Dhillon, B. S. (2019). Using a High-Speed Mini-PC to Control an Autonomous Underwater Vehicle. American Journal of Mechanical Engineering, 7(3), 116-128.
Chicago Style
Jebelli, Ali., Mustapha C.E. Yagoub, and Balbir S. Dhillon. "Using a High-Speed Mini-PC to Control an Autonomous Underwater Vehicle." American Journal of Mechanical Engineering 7, no. 3 (2019): 116-128.
Share
  • Figure 7. Locating internal components: (1) Sensors, (2) Bottom camera, (3) Mini-PC, (4) Batteries (5) Mass Shifter, (6) Main Camera
[1]  Jebelli, A., “Design of an Autonomous Underwater Vehicle with Vision Capabilities,” Ph.D Thesis, University of Ottawa, 2016.
In article      
 
[2]  Jebelli, A., “Development of Sensors and Microcontrollers for Underwater Robots,” Master’s Thesis, University of Ottawa, 2014.
In article      View Article
 
[3]  Jebelli, A., Yagoub, M.C.E, Dhillon, B.S., “Design and control of a self-balancing autonomous underwater vehicle with vision capabilities,” Journal of Marine Science: Research & Development, Vol. 8, No. 1, pp. 1-7, 2018.
In article      
 
[4]  Jebelli, A., Yagoub, M.C.E, Dhillon, B.S., “Modeling of an autonomous underwater robot with rotating thrusters,” Advances in Robotics and Automation, Vol. 6, No. 1, pp. 1-10, 2017.
In article      
 
[5]  Zhao, Y., Wang, L. and Peng, S., “A Real-Time Collision Avoidance Learning System for Unmanned Surface Vessels,” Neurocomputing, 182, pp. 255-266, 2016.
In article      View Article
 
[6]  i200, 4th Gen. Intel® CoreTM i3/i5/i7 Processor Intel® HD Graphics 4400, Intel, 2015.
In article      
 
[7]  MPU-9250 Product Specification, Document Number: PS-MPU-9250A-01, InvenSense Inc, 2014.
In article      
 
[8]  Three-axis Compass with Algorithms HMC6343, Honeywell’s Magnetic Sensors, 2014.
In article      
 
[9]  126MS5803-14BA Miniature 14 bar Module, Measurement Specialties Inc., 2012.
In article      
 
[10]  http://www.atmel.com/images/atmel-2490-8-bit-avr-microcontroller-atmega64- l_datasheet.pdf, [Last access May 23, 2018].
In article      
 
[11]  FSK/ASK Transceiver IC, Analog Devices, Inc., 2012.
In article      
 
[12]  KeyStone Architecture Universal Asynchronous Receiver/Transmitter, Texas Instruments, 2010.
In article      
 
[13]  http://www.dorji.com/docs/data/DRF7020D13.pdf, [Last access May 25, 2018].
In article      
 
[14]  BTN7971B High Current PN Half Bridge NovalithIC, Infineon Techn., 2008.
In article      
 
[15]  http://www.buehlermotor.de/C12572D40025EAF8/vwContentByKey/W274AHF53 91 WEBRDE/$File/DC- Motor_51x73_1.13.044.0XX.pdf, [Last access May 27, 2018].
In article      
 
[16]  http://www.motionusa.com.s3-website-us-east-1.amazonaws.com/moons/Hybrid _Stepper_Motors_16HS_Series.pdf, [Last access May 18, 2018].
In article