Arduino Robot -Remotely Work

I wanted to build a small robot that is capable of performing multiple tasks like following light, avoiding obstacles, following a line, etc.
I wanted to be able to change between modes using a small RF remote.
The line sensors will be added shortly :)
Supplies

- 1x Arduino Uno R3 USB MicrocontrollerAdd to cart
- 1x HC-SR04 Ultrasonic Range FinderAdd to cart
- 2x Parallax (Futaba) Continuous Rotation ServoAdd to cart
- 2x SW 2-5/8" Diameter Servo Wheel (Black)Add to cart
- 1x PVC Expanded Foam 3mm Sheet 12" x 12" Black (5pk)Add to cart
- 1x M3 x 20mm Hex Standoff Mounting Kit (10pk)Add to cart
- 1x Hitec HS-85BB Servo MotorAdd to cart
- 2x Photocell Light Sensor Module
- 1x Lynxmotion Aluminum Servo Bracket Two Pack ASB-01Add to cart
- 1x 170 Tie Point Mini Solderless Breadboard Pair - BlackAdd to cart
- 1x SparkFun 6-Inch F/F Jumper Wires (20pk)Add to cart
- 1x Jumper Wires 6" M/F Pack of 20Add to cart
- 1x 7.4V, 2000mAh, 5C LiPo Battery
- 1x OSEPP Sensor Shield
- 2x Pololu Ball Caster with 3/8" Plastic BallAdd to cart
- 1x RF Remote (4 Buttons)
Schematic,Code

It's quite hard to hold my phone, press the buttons on the remote and use the flashlight but I think this video would still make Stanley Kubrick proud.
First I press a button to activate the obstacle detection mode, then I press the stop button, after that I activate the light following mode, stop, then the light avoiding mode (that will be replaced by the line following mode shortly).
Enjoy... or not :D
Design,code


Step 2 — Design, Code and Stuff
I wanted this robot to look like the old "multi-staged" robots we used to build out of old CD's. I also wanted to make sure it was easy to add or remove sensors on it, making it sort of a "development platform".
Since I'm not a very advanced programmer the code was a bit of a challenge and I'm not sure if I will be keeping it like this, but it works for now. I attached it to this post if it can help someone make something similar.
A few changes that I'm working on:
- Adding a line sensor;
- Changing the continuous servos for two LSS (new LynxMotions smart servos) since I have two and the wheels fits on them perfectly;
- Adding a Piezo Buzzer (giving him a voice);
- Maybe a few well placed bump sensors;
- Changing the Remote for something else, 4 buttons is not enough for everything I want him to to, I will probably be building my own (tutorial coming soon);
- Giving him a better name.
Video

Remote controlled