Friday, 19 September 2014

Unmanned Ground Vehicle development and design


An unmanned ground vehicle is a vehicle or a robot that operates in contact with the ground without an on-board human presence. UGV have different applications including military operations to other dirty and dangerous activities. In this post I will be talking about the key components of a UGV and the option to make it open source.

Introduction to hardware components
Choice of hardware is a key factor to the development of UGV. Depending on the type of application of the UGV, the hardware is to be selected. The hardware will consist of 4 parts.
1: The Controlling unit
2: The Driver unit
3: The Engine unit
4: The Chassis unit.
5: The power unit

The controlling unit
The UGV needs a controller to control it's mobility. Depending on the UGV to be human controlled or autonomous, the choice has to be made accordingly. For a UGV to be human controlled, the controlling unit will need a wireless module. Wireless module may also be needed for an autonomous UGV for live data. What ever the case is, the choice is yours. Arduino is an open source SOC capable of carrying out multiple commands at a time. Starting from beginner level to advanced level, arduino always remains on the front lines. Let us consider an Arduino board named Arduino Leonardo. The Arduino Leonardo has 20 Digital input/output pins out of which 7 pins can be used as PWM pins. a 16 MHz crystal oscillator, a micro USB connection, a power jack, an ICSP header, and a reset button. You can use the board as your controlling unit, Simply you need to code your arduino along with the instructions. Details regarding the Arduino board are available in The arduino can be interfaced with the driver unit by using the pins.
Arduino Leonardo board. PC:

In case of Black e Track(UGV developed by team AARPT), the Arduino leonardo is used as a controlling unit. If your UGV is autonomous, then the sensors must be attached to digital I/O pins in input mode. The digital pins are bi-directional and can work as input as well as output. The arduino leonardo is controlled by a PC using serial port communication.
Note: The arduino leonardo uses serial() function when connections to the PC or other device is via USB. When shifted to rx and tx pins(pin 0 and pin 1) serial1() function has to be used. 
In the case of Black e Track, team AARPT have used wireless communication with PC. The PC sends serial data to the Arduino by serial port communication based on RF frequency of 2.4 GHz. Many hardware are available for wireless communication. List of websites where products can be bought are mentioned at the end of the post.  

The driver unit
The UGV is controlled by the combination of control unit and wireless module. Now there is another unit called the driver unit which is responsible for the driving of motors or servos. In case of Black e Track, team AARPT have used high torque DC metal geared motors. So in order to control the motors, we need a driver which will receive digital signals from the controlling unit. There are some factors that must be kept in mind while choosing the driver unit. e.g: Your UGV must be able to move through rough terrains so you need a driver unit capable of providing much power to the motor. The choice for the hardware is yours. In case of Black e Track, Motor driver of 18V and a max current rating of 20A is used.

The engine unit
The engine unit is the one that provides mobility to the UGV. Depending on the designer of the UGV, the engine unit can be either a 4 wheel drive system or a 2 wheel drive system. For rugged application, it is always advised to make the UGV a 4 wheel drive system. The steering of the 4WD is comparatively easier to implement. Generally differential drive steering mechanism is used to steer the UGV. The designer should keep in mind certain factors including length, breadth and height of the UGV for the choice of the drive system and the steering system. There are several other factors as well. Depending on the type of application the choice is yours for the motor. The motor in case of rugged application must be able to carry the UGV forward in rough and rugged terrain so it's always better to use high torque DC geared motors.

The chassis unit
The chassis or the base of the UGV is a key element of the UGV to operate smoothly. Depending on the drive system or the steering system, you must adapt your chassis to it. eg: In case of 4WD differential steering system, the breadth must be equal to or slightly greater than the length for the UGV to turn effortlessly. Wheel slip should be as low as possible. The design of the chassis unit is very essential for the UGV. Try to make the chassis as light and tough as possible.

The power unit
The power source will supply energy to your UGV. It's always preferred to use a Li-ion battery because of it's capacity in a small size. In Black e Track, the initial version used a DC power supply as we weren't able to manage a battery for some time and financial problems. The next version contains an inbuilt power source of  11.75V 4.5A.

Before getting your hands dirty with the mechanical part of the UGV it's essential you know how to control it. An UGV if controlled remotely, must be operated by a PC with some user interface. Many controlling software are available but it's always preferred you make one. In the above tutorial, I have talked about the use of Arduino board. I have communicated with the Arduino board by serial port communication through RF module of 2.4 GHz. It's pretty easy to code for your UGV's controlling software. I would prefer for the use of Microsoft Visual Studio.

List of websites from where parts can be bought.


Below here is the video of our Black e Track initial version.
PS: The wires are not for controlling. The wires were used for DC power of 12V 3A.

Sunday, 15 June 2014

MVP MSP student mentorship program

The MVP student mentorship program

The Microsoft Most Valuable Professional (MVP) Award is Microsoft's way of saying thank you to exceptional, independent community leaders who share their passion, technical expertise, and real-world knowledge of Microsoft products with others.   

The Microsoft MVP Mentor Program matches these MVPs with students from around the world who want to learn how to use Microsoft technologies through social mentoring, guided webinars, one to one mentoring, and much more.

In this post, I will be discussing about my experience as a MSP in MVP student mentorship program. Firstly, I would like to thank Kari Finn mam for allowing me for this wonderful opportunity. Mayur Tendulkar sir was assigned as my mentor. I would say that I was lucky enough to develop under him. My interests was windows phone and as Mayur sir excels in it, I was assigned with him. It will depend on the Microsoft technology you choose for the program. During my entire course of the program, I have developed 2 apps. I will surely mention about those apps later. You can also check out in the apps section from the tab.

The course of the program was of 3 months. Mayur sir equally divided those months on the basis of "Learning, Development, Corrections". I must say he was an awesome mentor especially when it came to presentation, management and development. It was sorted out that I would be publishing 3 apps in the Windows phone marketplace in due course but I published only 2 because of my exams and slightly ill health.

Talking about Mayur sir, I already mentioned that he was an awesome mentor. He always mentioned one point that I always tried to jump steps which infact was real. He guided me thoroughly through various sessions, meetings, screen casts etc. Every week we used to talk over skype and discuss the progress and also discuss about the future works. It was altogether a properly maintained sequential approach all credits to Mayur sir.

Lastly after the end of 3 months, officially the program was stopped but Mayur sir still guides me in my app development. I bet that once you apply for this program, you won't regret it. Trust me just go and apply. 

Below are the details of my developer account where you can find my apps.

Developer Name:    avirup171
Platform:                 Windows phone marketplace
Developer GUID:     c4c9a4bc-605e-4298-ae19-e276d5495c44