The main objective is to build a system (both hardware and software) adaptable to provide remote control of any automobile (automatic shift assumed), while providing the operator with real time data.
The project will be divided into several phases:
1- Throttle and Steering Control
Basically in this phase the hardware for the control of the vehicle is going to be designed and built. As a first approach the idea was to interface the beagleboard to the CAN network of the car to provide control of the throttle and break systems of the car via the Cruise system of the car. However in order to make the system truly portable and flexible to any model of car and to avoid doing any substantial changes to the cars system (the idea is to be able to switch between manual (normal) control and remote control when needed) within the project objectives is the use and customization of actuators to control the throttle and steering of the unit.
After the hardware is setup the next natural step will be to control it via the expansion port of the beagleboard, in the worst scenario the control will be done by a microcontroller, which will interface with the beagleboard (which will do all the transactional processing).
In this phase the communication should be resolved. Two types of communications schemes will be investigated: The first one and more probable will be the use of a 3G WiFi dongle to provide Internet connection to the system; the second one will be the use of a WiFi dongle and provide connection through WiMax network (this will limit too much the coverage and usability of the system). After setting up Internet connection to the board, the idea is to embed a server to which the operator can log from any Internet access point to gain control of the vehicle and operate it (even through iphone or any internet capable device). In few words provide connectivity to the board and code the scripts to decode user inputs into physical signal to control the cars movement.
3- Visualization hardware
The third phase will handle the vision part of the project. First an electronic arm servo based will be designed built and controlled (again not very sure to use the expansion port on the beagle or interface via microcontroller) in order to provide an arm capable of moving in a 360º-180º angle to give movement to a camera to be mounted at the end of it. The camera will interface with the beagleboard and the video capture should be sent via de server embedded on the board.
4- Graphical user interface
At this stage of the project the idea is to make a user end application that will connect to the server and also to design a web page. The goal is to be able to connect and take control over the vehicle from any computer so a web page seems to be the way to go. However an application seems to provide more security for the transfer of the information. The project aim is to provide both options.
5- Further steps
Once the system is working there is space for a lot of further developing. Some ideas are:
Provide CAN interface so we can get data on the status of the car (speed, tire pressure, amount of gas left, etc )
Make a GUI to work with some augmented reality lenses. This way by using the lenses there is no need for a computer display. The system could show the camera feed and the information of the car status.
Adding accelerometer to the lenses would allow to control the camera pan and tilt using head movements this will improve the feeling of actually driving the car.