The ArcRover is my latest platform for developing GPS navigation systems as well as other computer related stuff. The robot uses a Raspberry Pi as the main computer. The Raspberry Pi is a very flexible and fun platform to work with. This is my first robot that uses a real computer, and this really opens up a lot of opportunities.
The Rover has an on board router that creates a WiFi network around it. This allows me to log into the Raspberry Pi using a SSH or VNC client on a laptop. The rover is also equipped with a web cam.
Currently a GPS connected directly to the on board serial port is the only sensor, but maybe I will add some other sensor in the future. I use some PIC processors to control the servos and motor speed. The Raspberry Pi sends data using the on board serial port to PIC processors. The PIC processors also measures the speed of one of the front wheels and adjusts the speed of the motor using a PID algorithm. This acts as a cruise control and it makes the rover drive at fairly the same speed on different kinds of terrain.
I have tried to make some programs for the rover both in Python and C++, but now I have decided to use Java instead. The main advantage of using Java is that it is easy to send data over a network.
Things that a have done:
- Made a simple working waypoint navigation program in C++.
- Made a server program in Java that allows me to connect to the rover's WiFi network form a home made Android application and drive it manually.
- Make a more advanced navigation program in Java that uses PID algorithms to steer to the waypoints.
- Make the rover to steer towards the line between two waypoints instead of just to the next waypoint.
- Specify an aria in which the rover should drive autonomously.
- Develop a custom program to run on a laptop communicating with the rover. I want this program to be able to start an autonomous mission, as well as driving the rover manually.
More information about this robot is available on my website: http://axelsdiy.brinkeby.se