Introduction: TechTank C/w Coilgun

First images of what has been a work-in-progress for 6 months. The construction is almost complete and 2015 is the year to focus on the programming and electronics side.

Coil-Gun... This is what has inspired the tank as when the coilgun was first tested I was so surprised at the power I thought I would have to incorporate this onto some tracks. It fires a 20mmx6mm steel slug. Have had a number of test fires, it charges to about 340VDC in about 10 seconds and then use an opto to trigger an SCR. Now its all encased I feel its a lot more reliable and less dangerous than having the HV circuit board lying around the table. It has a 1500uf photoflash capacitor.

Tracks and motor have been purchased from hongkong and the body has just evolved over time.

The turret has 2 servos, gyro, ultrasonic and 2 IR distance sesnors and the camera.

The motor controller has an arduino nano plugged into the top and provides PWM, direction and amps for the two drives. The motors have a hall effect speed sensors circuit as well, which Im not sure where to integrate this function, arduino or raspberrypi.

The rear of the unit has a raspberrypi and 3.2" toushscreen + an IR distance sensor.

Power: 2 off 11.3V 3300ma batteries in the undercarriage.

Sound is yet to be completed however have a small amp and a 40mm speaker which will be printed into a holder to look like a satelite dish.

Now whats bought me here is I need help planning the software side which I would like some input from those who have done it before....

Aim of the project

Search autonomously, find a target, aim and shoot. the target could simply be a coloured block in the first instance. Would also want to control everything via smartphone and some functons from the touchscreen

Thoughts soo far :

Raspberrypi running the expanded Firmata.

OpenCV for object detection

All code running in python

Gyro, which I plan on using to keep the barrel straight when the tank is traveling up/down would direct connect to raspberrypi with servo control through firmata.

Smartphone app could use touchOSC, however I would really like to see a streamed image from the camera with range bearings superimposed over the image, so maybe a custom html page served direct from the RPi.

My biggest dilemma at the moment is I would really like to use a Speed PID for each of the motors as I have a speed pulse, however understand firmata does not support this so really torn. I truly believe the 2 motor PID function should belong in the arduino and not the RPi. As the tank is about 200gm heavier on one side I really think I need some low level speed matching so it will track straight.