Thursday 12 May 2016

Four wheeled omnidrive robot driving

It has been quite a while since I last blogged. I have been working on driving of a mobile robot lately. Driving plays a really important role in case of a mobile robot. So what do I mean by driving?

Driving is basically another term of control of mobile robot. Controlling a robot's motion ain't as easy as you think at the first approach. The first robot you ever made might have had four motors with two switches controlling motor state on or off. If you had been a genius then you might have had even applied some embedded electronics and microcontrollers to make a variable speed robot using PWM. The systems mentioned above were open loop systems.

Open Loop v/s Closed Loop
To understand importance of driving, consider an example where you are walking on the side of a road. Now if you were an open loop system, you must have been blindfolded. Maybe you could have a person giving you inputs of where to walk. But would you risk your life by walking on the road blindfolded on someone else's input?

Here's the drill, the input and feedback are the important terms here. A system with no feedback but only input signals can be called open loop while a system with feedback is, of course, a closed loop.

The advantages of a closed loop system is that the system knows what output it gives out and gets feedback from outside world what output actually reached in the world. Here comes the concept of error. Error is, as usual, the quantity you desire minus the quantity you have currently. In closed loop systems, this error is the subtraction of feedback signal from input signal. This error is fed in an error reduction algorithm or controllers that change the output according to the error. The famous PID controller is one such controller. Google about it.

Why Driving?
So let's get back to where we started. Why driving? Because running four motors (in my case 4) at the same time irrespective of load ain't a piece of cake. And for a "perpetual mechanically perfect" robot, it is a must for all the motors to run at the same rpm in order to get a nice straight resultant direction of motion. Autonomous robots have these skills as their prerequisites. Plus driving ensures the robot to be immune of the external forces disrupting its path, for e.g. if you increase load on one wheel, then by nature, the rpm of that wheel should be decrease. This decrease in rpm can be fed back to the system which then will compensate the rpm of this wheel to make it back normal and hence the resultant direction shall be unchanged. (Theoretically)

Driving of robots can also be further expanded to line tracing, curve tracing, swarm robotics etc.

Currently I am working on Texas Instruments Tiva C series microcontrollers and Raspberry Pi 2 to apply my CONTROL SYSTEM on the robot. Control system. Explore it. Driving is an application of the control theory.

Aniket.