FEBRUARY 2012: The robotics team of M.S. Ramaiah Institute of Technology has developed an autonomous unmanned ground vehicle (UGV) named Moksha. The objective of the project was to build an autonomous ground vehicle capable of following a prescribed track while avoiding obstacles in its path, to reach specified geometric locations.
The Moksha-UGV team was divided into five groups based on the different requirements of the project, namely, computer vision, light detection and ranging (LIDAR), GPS, motor controller and power systems.
Innovative approach to hardware
Project Moksha-UGV included various innovations:
Split-frame chassis. The chassis of the UGV is designed using split-frame technology. The chassis is split into two frames—a rear frame and a front frame. The two frames are interlinked via the flexible joint supported by a suspension system.
This split-frame design helps the robot easily manoeuvre through difficult terrains. The suspension system helps keep the UGV stable. Thus the UGV can easily cross ramps and rugged terrains.
Length 116.8 cm (3 feet 10 inches)
Width 73.7 cm (2 feet 5 inches)
Height 96.5 cm (3 feet 2 inches)
Motors Two (each 24V DC, 1.8A max, 120W)
Camera angle. As a convention, front-facing cameras are used in vehicles to capture a complete scenario. In the UGV’s implementation of image processing, only one camera is used, which is inclined downwards to amplify the details captured by the camera. This also prevents the unnecessary details that creep in when a conventional position is used. By making these small changes, a major overhead of filtering out the details is avoided.
Fabrication. The body of the UGV is fabricated using polyurethane material, which is very light and sturdy. Several compartments are made to keep the various components being used in the UGV so that the components remain in place even when the vehicle moves. The body provides protection to the components and also acts as an insulator.
The height of the camera’s arms is varied with a simple slot-and-screw mechanism. To optimise the use of space, the battery unit is kept below the vehicle in a drawer.
Solar energy. Power system includes a compact battery and solar panels. Solar panels provide energy to the vehicle even if the battery fails. These also ensure that the size of the batteries is reduced and introduce the use of green technology.
Power supply board. The power supply board is made from wood and the terminals are mounted. The board helps in power division and also provides sturdy connections. Power is provided to all parts of the vehicle from the power supply board. The power system is designed taking the real-time scenario under consideration in such a way that it provides power to the system without any fluctuation.
The hardware of the UGV is divided into three sub-units—drive train, control and perception. The UGV is a four-wheeled, two-DC-motored differentially-driven vehicle.
The control unit consists of RS160D motor controller. The motor controller is connected to a laptop, which serially communicates with the controller to control the vehicle’s motion. The computer also receives and processes data from the perception unit which comprises three sensors, namely, ROD 4-20 LIDAR, MaxSonar and Garmin 18HVS GPS device.
Perception unit. The three sensors help Moksha perceive its surroundings as follows:
ROD 4-20. It is an optical distance-cum-angle sensor, which uses infrared and laser light sources to detect objects, sweeps at 180 degrees and returns distance and angle at a rate of 25 scans per second (range adjustable).
MaxSonar. It is an ultrasonic range-finder sensor that can detect objects within the range of 0-6.5 metres. It needs only 5V power supply and gives an analogue output, which is easier to process.
Garmin GPS 18 OEM. It is WAAS-enabled and available in CMOS-level serial or USB 2.0 full-speed versions. It comes with an integrated magnetic base, which is sufficient to provide an extremely high level of accuracy.
Motor control. The UGV employs Robot-Solutions’ RS160D motor control. RS160D servo uses custom software to implement a 2.5-channel high-powered servo system. The servo uses a quadrature encoder feedback mechanism to control torque, velocity and position of the output. It operates in pulse-width-modulation (PWM) mode communicating serially with the processor through an RS232 cable.
Data is sent in ASCII format from the processor using Visual C++ platform. RS160D is a two-channel controller. Each channel controls two different motors (right and left).
Data is sent as:
[email protected] selects mode 1, i.e., PWM mode,
[email protected] selects serial communication mode
[email protected] selects torque control
Differential drive is used to turn the vehicle left or right depending on the data received from the sensors. Torque values for the controller vary between -255 and +255. Different speeds were tested for the two motors in order to optimise the degree of curve to which the vehicle has to turn in order to avoid obstacles and stay within the lane. The table shows a sample of values that were tested on the motors and their upshots.
Mechanical design overview
The split-frame design ensures better locomotion capabilities of the vehicle. The front wheels are independent and can rotate 360 degrees. This enables the vehicle to turn sharply when it gets very close to any obstacle.
The design also permits the UGV to negotiate ramps in a better way. The split-frame technology enables independent motion of the two frames and hence the ramp climbing becomes easier, reducing the burden on the motors. Even if one of the four wheels gets stuck in a pothole, the technology ensures that the other three wheels are placed on the ground. This helps the UGV to negotiate uneven surfaces and hence the use of the encoder is evaded.
The design is done on SolidWorks. The UGV is fabricated using mild steel material and is designed to take 150kg load. The material are laser-cut and welded together and then the painting is carried out (refer Fig. 2).
Block diagram of the UGV’s electrical system design is shown in Fig. 3. All the components have a common ground. For safety, emergency stops (E-stops) are connected in series with the circuit. These disconnect the power supply to the circuit with a single push of a button.
The central custom-made power distribution board is made of wood as it has electrical insulating property. Two metallic terminals are firmly mounted on the board and connected to a 12V, 34Ah power source. This connection is made using 40A, thick copper wires. Solar cells are used to recharge the battery.
@0ST120 @0ST120 Both motors off
@0ST130 @0ST130 Low voltage, vehicle moves with jitter
motion, not stable
@0ST170 @0ST170 Vehicle moves straight smoothly at
average speed of 2 Mph
@0ST170 @0ST140 Vehicle moves right at an angle
@0ST140 @0ST170 Vehicle moves left at an angle
The other connections from the motors and supply board to the motor controller, mechanical emergency-stop (E-stop) and wireless E-stop are made using 14AWG wires.
Pressing the mechanical E-stop switch turns off the supply to all the components. A normally-closed
(N/C) switch by default, the mechanical E-stop is placed at the back of the robot at an accessible position.
The wireless E-stop switch has a range of about 2.5 metres (100 feet). It employs an inbuilt relay to switch contacts between normally-closed (N/C) and normally-open (N/O) positions. The receiver takes 5V. When a signal is sent, it switches between N/C and N/O.
Autonomous challenge algorithm. Team Moksha adopted an ingenious approach for autonomy of the robot. The software design flow-chart is shown in Fig. 4.
Platform. The different devices on the UGV are controlled by a C++ program, which includes an integrated algorithm. The algorithm uses data from the sensing devices, camera, LIDAR and SONAR, and directs the RS160D motor controller. The different devices are connected to the processor using the USB ports, which are interfaced to the devices using USB-to-RS232 converters. This is done since the data is exchanged between the processor and the sensors and motor controller serially.
Image processing. The images are continuously taken from the video captured by a 5-megapixel camera and processed using different image-processing algorithms to detect the lane. This is done using the functions in the OpenCV library. The angle of the lane is calculated using the coordinates of the detected lines from the processed images and the instructions sent to the motor controller to move the UGV in the directed angle.
The camera is placed at a height of about 90 cm (3 feet) at an angle facing the ground in front of the vehicle. This is done to avoid detection of any unnecessary line due to noise in the image. Also, proper calibration is done in the program to match the angle of the lane to the angle of the line that appears in the image. The image is processed as follows (refer Fig. 5):
1. First, the RGB image is converted into greyscale.
2. The greyscale image is processed using Canny algorithm to detect the edges.
3. The resulting image is then processed using Hough (Probabilistic) transform to detect only line segments in the image.
Obstacle detection. A serial communication program reads the values continuously from the LIDAR through the serial port. The values are in hex format, which are converted into integer. The protocol structure consists of the following bytes that may be received: start, operation, option (1, 2, 3), scan number, angular step size, start angle, stop angle and distance.
Angular step size specifies the angular separation between two successive transferred measurement values and is equal to 0.36 degree. The difference between start and stop angles gives an approximation about the width of the obstacle. The difference is multiplied by the angular step size to calculate the width of the obstacle. The distance bit is the measured distance of an obstacle from the current location of the LIDAR. Using the distance, start and stop bits, the area around the UGV can be mapped. After knowing the distance and the angle of the obstacle, appropriate commands are given to the motor controllers.
Waypoint navigation. The GPS unit was upgraded to Garmin GPS 18 OEM. It provides non-volatile memory for storage of configuration information, a real-time clock and raw measurement output data in NMEA 0183 format (industry standard).
Each GPS data set is formed in the same way and has the following structure:
For example, a GLL data set is shown
Pramod Bhat M.
Akshay V. Joshi
Data extraction. The UGV employs a Brute force algorithm which relies on the map to navigate. This algorithm evaluates the safest and shortest path to a given location based on cost calculations, which is determined from the frequency of encountering the obstacles. For navigation, the desired location is always a GPS waypoint.
After data extraction, the coordinates are obtained and the destination coordinates fed manually into a sub-controlling program. The program continuously calculates the relative angle between the destination point and the present direction of the vehicle. It decides which point is closest to its present location, selects that point, and then makes its angle calculations using Haversine formula:
a = sin²(Δlat/2) + cos(lat1).cos(lat2).sin²(Δlong/2)
c = 2.atan2(√a, √(1−a))
d = R.c
where ‘R’ is the earth’s radius (mean radius = 6371 km), Δlat = lat2− lat1 and Δlong = long2− long1
This data is returned continuously to the main controlling program where decisions are made. Once the point is reached, the next nearest uncovered point is selected. The process continues till the sixth waypoint is reached.
The GPS receiver returns coordinates, which are converted into decimal degrees. The data input from the GPS software and obstacle-detection sensor is interfaced in the main controlling program. The UGV then finds its way to the waypoints and continues to the next ones. The GPS data is updated continuously.
The author is pursuing BE in electronics and communication from M.S. Ramaiah Institute of Technology, Bengaluru