Myself and 6 other masters students at exeter uni have been tasked to build an unmanned autonomous robot.
Its task is to move around a rail network scanning for defects and cracks within the steel rails, and log this data.
Due to a shortage of electronic engineers, building the entire control system falls to me.
I've never used Arduino before, but it seems like a relatively simple way to interface and control several components.
The project is described below.
At its most basic level the control system must be able to read location and time data off of a GPS module, and store that data to a removable storage media along with information from the defect sensors. The control system must also control motors (probably stepper motors) to maintain a highly constant speed. Finally some rudimentary pathing will be needed, and perhaps outputs to control the motors involved with the robot folding into the tracks to allow a train to pass. A visual camera would also be a nice optional addition. The data processing for the sensors will probably take place on a separate chip, so processing speed for this system isn't a major concern.
Any general advice/suggestions would be greatly appreciated!
Currently I'm trying to decide which arduino board would be best suited.
Other uncertainties are:
What kind of removable storage works best with arduino? Is it easy to write to USB flash memory?
Will a GPS module require a 'shield'? Or can a arduino board with UART interface with them directly?
How straightforward is stepper motor control with arduino? I've found several shields that do the job, but are they necessary?
Any arduino can interface to a GPS. If you have multiple hardware UARTs, use one of those, otherwise there is a SoftwareSerial library you can use instead.
A micro SD card is probably your best bet to store your data. The Arduino ethernet can use them and there are several shields that can too.
Stepper motors draw too much current to be driven directly by the arduino so you'll need separate power and a driver board of some sort - could be a shield, could be home grown. Given a driver, they're easy to control - a pin for step and another for direction.
Not really sure what you mean by pathing but it sounds RAM intensive - Mega or Due perhaps.
Cameras tend to come with a RAM requirement that most arduinos can't satisfy - they can control the camera, but some other device had better be dealing with the video stream.
Your folding train avoidance mechanism sounds like it would use a few motors and therefore control pins; something with more pins than an UNO will likely be needed. You could do initial GPS and stepper testing with one though.
What are the required distances per scanning period?
Some of the requirements are somewhat not complicated ( gps, data logging)
As for the steppers moving this "folding robot" would seem to be overcomplicated since you will be doing positioning by gps. I would almost envision a small gasoline powered generator with battery type of platform for distance.
I can see steppers maybe doing the "folding " of the robot. The steppers would only be powered when folding is required.
This is what I see as the most complicated aspect of this robot. Seeing and knowing when to and when to unfold.
As far as the folding-unfolding I might suggest that the robot have movable plungers that push into the side of the rails to hold it
while the wheels move into and out of contact with the rails. This would also lock the robot to the rails when the train passes over it. Wouldn't want the trains passing over to dislodge it.
Just some thoughts.
This took a little while to input so don't know what else has been replied.
My first thought is that you should use a Raspberry PI for the heavy lifting (data processing, visuals, safety stuff etc) and just use the Arduino as an interface between the PI and the hardware.
If this is going to operate on a working railway it will need some sophisticated interaction with the signalling system and the signallers unless it is so small that a train could destroy it with absolutely no damage to the train or to any other railway infrastructure.
If it is being designed for use on the UK rail network I reckon you need to talk to Network Rail before you spend more than a few hours scoping out the project.
I suspect that the fact that you are asking questions here (rather than teaching us) may not impress Network Rail.
Robin2:
If this is going to operate on a working railway it will need some sophisticated interaction with the signalling system and the signallers
Yes. It would, at least, have to reliably operate the track circuiting and folding stub axles wouldn't do that. It would need some method of informing the signallers that it was going to fold up and when safely clear of the running track. If the signaller was not aware of these and saw the track circuit clear unexpectedly, their immediate reaction would be to stop all trains in the area, as it would look as if there had been a derailment.
unless it is so small that a train could destroy it with absolutely no damage to the train or to any other railway infrastructure.
I can't see Network Rail even agreeing to that.
If it is being designed for use on the UK rail network I reckon you need to talk to Network Rail before you spend more than a few hours scoping out the project.
If it was able to activate a track circuit, imagine what would happen at an automatic level crossing. It would enter the section, the lights would flash, the barriers would close and 30 minutes later this thing comes trundling along at 2 MPH! Another 10 minutes later, the gates will open to allow the traffic on the road to cross. If it's not destroyed by an irate motorist in the first few weeks of operation, I'd be most surprised.
Is this something that already exists and you are copying the design or did you come up with the idea of it folding under the incoming train?
Somehow the whole idea seems rather weird. Can you be certain that the locomotive driver won't slam on the emergency brakes when he sees that thing? It doesn't matter it it's folded under the track or not. He very realistically may not recognize the device and try to avoid the accident that was not going to happen. Not only would it cause delays, it could also get very costly if the wheels develop flat spots.
i think this is posible ,,
why not , whe just bought new systems in the Netherlands for checking faults in railway sys
why did i not think about this ,
but yes this can be done ,,
but also depents what you want to check and the rate of checking things is it posible to out run a incoming train ,,
or wil this sys give more delays ,, because of faulty design ,,
like always !
they can sort colored candy real fast ,, why not sorting this out !!
I doubt if Arduino approves its products for this sort of application and I suspect that RaspberryPI don't either.
We may all complain about the cost of maintaining the rail network but I think the concerned contributions here are illustrating why railway equipment is expensive - in the same way that aviation stuff is expensive.
And, as far as I know, Network Rail can already adequately scan track at 40 or 60 mph so what advantage would there be at 2mph?
In a similar but different context a professional said to me something like "if it needs that much checking it just isn't safe"
Robin2:
I doubt if Arduino approves its products for this sort of application and I suspect that RaspberryPI don't either.
We may all complain about the cost of maintaining the rail network but I think the concerned contributions here are illustrating why railway equipment is expensive - in the same way that aviation stuff is expensive.
And, as far as I know, Network Rail can already adequately scan track at 40 or 60 mph so what advantage would there be at 2mph?
In a similar but different context a professional said to me something like "if it needs that much checking it just isn't safe"
...R
Not only that, but almost all of the major UK rail accidents in the last 25 years have been found to be due to human error, not faulty materials.