Trans-Atlantic Robots 203
An anonymous reader writes "In the summer of 2008, teams from a host of countries will compete in The Microtransat Challenge with the hope of gaining the honor of having built the first autonomous sailboat to cross the Atlantic. The results of Microtransat 2007, a smaller scale preliminary race, were recently announced. The winner was the team from Austria; team RoBoat, for having completed 24 hours of autonomous sailing. I am strongly considering joining this competition before the year is out, and would appreciate any insight from the Slashdot community. The boats can be up to 4 meters in length, and therefore capable of carrying a full-sized onboard computer (operating system of your choice). Time is limited however, so I would like to avoid as many hardware issues as possible and get straight to the difficult problem of writing the AI. So how would you design a seamless interface between sensors and actuators to the high-level code?"
In one word? (Score:3, Informative)
Cheers!
Re: (Score:2)
http://koentmnd.ytmnd.com/ [ytmnd.com]
Re: (Score:2)
Re: (Score:2, Insightful)
MATLAB Real-time Workshop (Score:2)
Re: (Score:2)
Re: (Score:2)
(just wondering)
Re: (Score:2)
I can't recall exact definitions, but there are "soft" and "hard" real-time systems. In soft systems you can miss some deadlines. Like in video game, where you don't want to skip the frame, but from time to time that happens and its not a big deal.
Some very expensive systems are soft real-time. For instance, AGC - which is basically fine-tuning of power system's frequency (to keep it 50 or 60 Hz) is not hard real time.
Re: (Score:2)
Sensitivity analysis (Score:2)
Having said that and with some experience of rough seas in a 20m trawler, auto navigation/steering is probably the easy part of crossing the Atlantic with such a small autonomous craft - there is a lot of crap and dead trees floating about o
Re: (Score:2)
Out of curiosity, though: how do people deal with the gigantic memory footprint of typical matlap apps? I frequently use matlab for prototyping, but once I load a few images, I find you start swapping even on a high end machine with 2+GB of RAM. The thought of piping large amounts of sensor data through it just makes me shudder.
Re: (Score:3, Informative)
You can even build your own XPC boxes from old scrap PCs. The little blue XPC boxes are nice but expensive and have limited IO. Our company just did this to save some money, works great. You can bootload them so that they're always running too.
Fun stuff.
I 3 Mathworks
Re: (Score:2)
Re: (Score:2)
Other than some solar power all he needs is a GPS unit with a serial feed to a PIC motor controller and some code for steering based on current location.
Re: (Score:2)
Don't write algorithms on a PIC! (Score:2, Informative)
Even an embedded Linux platform (e.g. Gumstix [gumstix.com]) would be a bad idea for this project, as cross-compiling is a PITA. For rapid development (something I have much experience in), go w
Re: (Score:2)
That was just to keep power consumption to a minimum.
Re:In one word? (Score:4, Interesting)
http://67.15.245.144/portfolio/navcom_ai/ [67.15.245.144]
You're welcome to contact me for info, or just grab the source code and schematics since it's all open. If you do contact me however, I've changed some code in the past two months that's slightly more efficient (it's on the Parallax website in the object exchange under Math AFAIK, if you can't find it, get a hold of me)
Matteo Borri mkb@libero.it
URBI (Score:5, Informative)
Re: (Score:2)
Well, DUH! (Score:5, Funny)
Re: Trans-Atlantic Robots (Score:2, Insightful)
Re: (Score:2)
How can there be any debate? The only answer is Boating and Sailing Distribution.
Re: (Score:2, Insightful)
Re: (Score:2)
approach (Score:5, Funny)
I couldn't help noticing that the rules forbid interference with other boats' electronic equipment and colliding with other boats, but say nothing about the use of, say, cannon. :)
Re:approach (Score:5, Funny)
Re: (Score:2)
Wait...water gun. Super High Powered Water Gun. Doesn't use any mass off your boat (ergo you can't claim collision) and doesn't 'directly' interfere with electronics (if it's not properly sealed, which would be a little silly first off, then it might interfere). Just got to get enough PSI and a good targeting system.
The best part? Infinite ammo, as long as you have power you can hit the ot
Re: (Score:2)
Laser beams (Score:2)
No contact with other boats, hence no collision. You could aim it at the sails or the structural components of the boat, hence no interference with the "electronic components".
Now all we need is the sharks to mount the lasers on :)
Re: (Score:2)
Re: (Score:2)
With the help of GPS, some small Azipods from
http://www.abb.com/cawp/seitp161/d9b2b9b6ef1f600cc1256fdf003b2929.aspx [abb.com]
(hey, maybe they will be willing to sponsor a LINUX-controlled craft?)
and some backing from other sources and I'm sure this can be done. After all, it's not as if Omega or LORAN are the navigation sources.
Re: (Score:2)
Re: (Score:2)
Wouldn't that make running the system on Windows illegal? I mean, surely the potential of suicide bombing would violate the rules too.
Re: (Score:3, Funny)
AI link (Score:4, Interesting)
they should be looking here. not there. (Score:2)
Well, if the interface has to be seamless, I suggest carving it out of a solid block of wood.
let me guess... (Score:2)
You take a block of wood, and carve away everything that doesn't look like a boat. Right?
Re: (Score:3, Insightful)
"God Works in mysterious ways". "Shit Happens". Can anyone explain, obvectively, the difference?
Partitioning of responsibility. "Shit happens" is simple acceptance of the universe's imperfection. "God works in mysterious ways" lets you know that if anything good happens, God did it. Of course, if anything bad happens, you deserved it. If despite all the Church has done for you, you still don't think you deserved it, then it's a test of your faith.
Re: (Score:2)
Summer of 2008? (Score:2)
In celebration of 10 years of Slashdot (Score:2)
Just do what NASA does (Score:3, Interesting)
Oh, and I'd recommend miniature/low power PCs for obvious reasons. That, or laptops.
Re: (Score:2)
Re: (Score:2)
2. They used **identical** hardware. The proposed system would use different hardware.
3. They didn't bound check a conversion from a 64bit to 16 bit.
4. The real killer - they were running unnecessary code. They didn't even need this bit of code, yet it had the power to take down the rocket.
Re: (Score:2)
Oh, and ignore the idiot about FTW. You had it right, he's obviously had a bad upbringing.
Obvious solution... (Score:2)
With their 133t skillz, they should remain undetected unless a container ship carrying music cd's and/or movie dvd's comes into Ahoy! range.
Oh, and look out for sharks with friggin' lasers attached to their heads-bad for sailboats.
Possible Architecture (Score:4, Informative)
PC (maybe mini-itx) running *nix talking via Ethernet/IP to a Netburner [netburner.com] Microcontroller talking via CAN to several PICs/AVRs with some extra circuitry (amplifiers, voltage dividers, etc) to interface with the sensors and actuators.
There are PICs and AVRs that have ethernet, but the NetBurner is damn easy to use. They also have some micros with GPIO, ADCs, and maybe PWM generation, so it might be easiest to skip the 8-bit micros altogether. I don't have any affiliation with NetBurner; I've just used their product and was sufficiently impressed that I might voluntarily choose to use it again.
Using Ethernet to control devices (Score:5, Insightful)
There's something to be said for using 10baseT to talk to control devices. 10baseT has better noise immunity than RS-232 and 5V TTL encoder signals. We had trouble with big servomotor PWM noise leaking into encoder signals, and a low noise in analog signals, but the 10baseT worked perfectly, even when near the engine of our robot vehicle. Not only is it differential over twisted pair, there's checking and retransmission.
The trend is towards putting an Ethernet interface on the thing to be controlled, rather than bothering with translation to CANbus. We used Galil motor controllers, which talk TCP and UDP over Ethernet. They're OK, but you can get comparable functionality in a smaller and cheaper package now.
10baseT has a feature that's important here - the connectors have retention latches, and don't fall out. USB does not latch, which is a showstopper in an industrial or vehicle environment.
Something we found useful was encapsulating boards. Mask the connectors with masking tape, and spray with Fine-L-Kote, which seals the board against humidity and provides some mechanical protection. Inspect under ultraviolet light (the stuff is clear, but glows) to see if you missed anything.
Re: (Score:2)
Ethernet is not suited for realtime. Random delays in cases of collision are bad, though perhaps not as bad on switched networks. Ethernet's large message sizes increase latency, which is also bad. TCP is also not suited for realtime. You could use UDP, but then you have to guarantee delivery yourself. CAN handles collisions based on message priority guaranteeing delivery. Messages are limited to 8 bytes, so latency is low.
If you only need soft realtime, then ethernet would probably be easier. How
Re: (Score:3, Insightful)
See Making Ethernet Work in Real Time [sensorsmag.com], from Sensors magazine. They show how to calculate the odds of delay exceeding a given value for a given network speed and loading. With a 10 Mb Ethernet, sending 1000 64-byte packets per second, you can be 99% sure there will not be a delay of more than 7 ms in 9 years. You can't load the network very much (5-10% is tops for a real time application). But the odds of an error are higher than the odds of a timing miss.
CANbus latency is only deterministic for the hi
Re: (Score:2)
This is assuming that you're aware of what's going on around you (which I expect the "AI" for the boat will be) and that you aren't awaken by a cargo ship when it's 10 metres away on a collision course.
Re: (Score:2)
You are right about the physical connectors for 10bt, though at first I thought you talking BNC. However I don't think any of those connecters are up to saltwater. I wonder what they use in boats and military applications. I'll bet something scrounged from military surplus would be better.
Re: (Score:2)
Hot glue is always a good solution to that sort of thing. Holds better than those little tabs on the RJ connectors too. (Please excuse me if this is painfully obvious; it seems insightful/informative to me because it's early in the morning.)
Re: (Score:2)
To be honest I don't see why you would need anything m
Re: (Score:2)
10baseT has better noise immunity than RS-232 and 5V TTL encoder signals. However, it (Ethernet) comes with an elevated price and is usually an overkill for simple control applications.
It's much cheaper than it used to be. Because Ethernet parts are produced in huge volumes, Ethernet interfaces are now about the same price as serial ports. They now take up less board space than a DB-9 connector. They're much cheaper than the "industrial" interfaces like CANbus. If there was one standard industrial net
What we use (Score:5, Informative)
There are CAN bus adapters that plug into serial or USB ports and there is Linux support for these. We're using one from Vector [vector-cantech.com].
As for hardware, we use the Kontron JREX SBC [kontron.com] with JFlex I/O boards to add the I/O ports we need(firewire and serial, mostly). Of course, if you're not cramped for space, you might go with something a bit larger.
I hope this helps, feel free to ask more questions.
Use VISTA (Score:2, Funny)
Re: (Score:2)
COntinue?
Stop?
As more questions?
OS of choice? Are swarms allowed? (Score:2)
AI might not be the difficult part (Score:2, Insightful)
Thoughts from an amateur sailor/hacker (Score:4, Informative)
Re: (Score:2)
My two cents as an armchair/weekend sailor.
The real challenges (Score:2, Informative)
Here's where I think your problems will really lie:
a) Heavy weather sailing relies on things like reefing and steering with an eye to waves. On a small boat, this goes double. 4m is sm
Re: (Score:2)
b) design problem too. Pot all electronics in suitable goo & install automatic bilge pumps.
c) Yes, you can get marine forecasts, either codified (but for human consumption) or as fax-like maps. Both would require serious logic to interpr
Re: (Score:2)
Some enterprising types might even steal it and auction it off for $2,000...
Automation in Linux (Score:4, Informative)
For the control system, we used INDI [sf.net], it's a powerful server/client control protocol that you can use to jump start your project within minutes. While it is geared toward astronomy, it can be used for any purpose.
Make things redundant (Score:2)
Reember to include GPS, and a sat receiver to get weather maps. Knowing about vawes and their sizes might also prove helpful, and femember to make a big keel to keep the boat stable. And waterprof it, so it can go down but will buoy up with the sail pointing in the right direction.
Re: (Score:2)
silly race, really. (Score:3, Insightful)
The trick, IMO, is creating a tacking plan based on your goals for the day, and knowing when to adjust it and when to just ignore local fluctuations.
Missiles (Score:2)
Maritime law ... (Score:2)
The college a friend of mine went to tried doing something similar (actually, the vessel should have gone around the world instead of just crossing the Atlantic). They had to give it up due to some maritime law issue - apparently, ocean-going vessels need to be capable of picking up people in case of an emerge
"Blackboard" based system (Score:2)
Re: (Score:2)
No! He should use a blackbeard system! Arr!
Methodology (Score:2)
1. Determine most stable and speedy hull design that will accommodate servos, electronics and power storage. I'm thinking basically a mono-hull with two outriggers using a simple lateen style sail. Jib may be a problem.
2. Sensor needs... GPS I'm thinking. Design a self learning algorithm that can take a plotted course and learn how to sail it. Let the boat learn how to sail itself ala FPGA style.
3. Profit!
Not just the interface, but simulation too (Score:2)
Boat size (Score:2)
You have space and mass for any kind of computing system you need - but batteries for a long flight would be a problem. Best solution? Build a real ship (wider, deeper) and use plenty of batteries as ballast.
Hmmm, no mentions about a
It's a boat, hardware might be important... (Score:2)
Given that it's a boat race on open water, maybe you should spend a *little* time thinking about hardware issues. If your key interest is AI maybe you should stick to simulators and lab based lego robots (or find a marine engineer for your team)?
FlowDesigner/RobotFlow (Score:3, Informative)
Press coverage from the September 2007 races (Score:2)
BBC News [bbc.co.uk] -- includes a video
The Register [theregister.co.uk]
UWA press release [aber.ac.uk]
Just follow the ducks (Score:2)
You wont need any processors etc. and the whole kit can be bought complete from Toys'R'Us for less than a dollar.
On the water...SBC (Score:2)
There is no substitute for a good engineering team on a project like this. Perhaps a challenge for a local university of engineering students to help out.
But environmental concerns are that a PC isn't going to cut it. Imagine what salt water mist does when it gets sucked in.... My guess is you need ingenuity like you find on many of the devices on http://linuxdevices.com./ [linuxdevices.com.]
An SBC computer that is of low power and can be sealed from the elements. Many have no special needs for fans. You going to nee
The Navigation part is trivial; however, ... (Score:2)
There is one part that is gonna kick your ass, and that is the ocean.
Waves are going to be the tricky part, since unlike tree's and other obstructions they are constantly in motion and vary in both size and intensity on an almost random basis. These will be the problem since knowing when you can tack, safely, and not end up stuck in the trough and rolled or worse yet, pitch polled by your computer trying to sail up the face of a wave will be your greatest challenge.
As others have said, your basic hull de
Wrong question... (Score:2)
That's probably the easiest problem you will have in the whole project. Why are you asking about it?
styrofoam, real time processing (Score:2)
Hmm... (Score:2)
As for the interface between sensors and your computer, microcontrollers are the bomb. Cheap, easy, fast, low-power, and designed for just that sort of thing. One $8 microcontroller, a $4 USB->serial chip, and a few passive components later, you've got something that can not only take readings (serial or analog) from a good number of sensors and pass them back to your computer, it's got en
Re:Don't know what you'll choose (Score:5, Funny)
Sigh Wouldn't be the first time Windows won (Score:2)
Yeah. I remember how Slashdot made a joke out of that the last time there was an article about a robot winning a competition using Windows.
Re: (Score:2)
Actually the underlying OS doesn't matter much (as long as it provides reasonable services), so current versions of Windows (don't know about Vista) MacOS or pretty much any Unix will do just fine. He should just go with what he's most comfortable with. It's not as if he's going to fight much malware on an isolated machine.
Re: (Score:2)
Re:An OS for your system? (Score:5, Funny)
If it requires a driver and a Linux driver is available
Didn't you RTFS? It has to be autonomous. That means no driver.
Re: (Score:2)
You also ignored the obvious problem that it needs a Captain and not a Kernel.
Re:but what *hardware* ? (Score:4, Interesting)
The quickest way that I know of to get your computer to talk to your motors is through a USB Data AcQuisition device (DAQ, for short). When we built a prototype ROV, we bought an off-brand China special [hytekautomation.com] for about $80 that had drivers for LabView. You will also need a motor controller. Some DAQs have Pulse Width Modulation (PWM) motor controllers built into them, but these are not cheap, in my experience.
Hook your DAQ up to your control computer (we used windows), and then your motor controllers to your DAQ. The power supply that powers the motors (12 V DC or more) goes into the motor controllers, and the signal from the DAQ goes into the motor controllers (USB is 5ish V DC, I think). The power to the motors comes out of the motor controllers, according to however you program it in Labview.
We used an Open Source Motor Controller [robotpower.com] (OSMC) that we built from parts.We used the system to vary the speed to 4 motors on the fly, using a computer interface that accepted input from a mouse and keyboard (just like Half-Life... sorta).
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
If he don't win with a sailboat, maybe he will win with a submarine
Re: (Score:2)
However, I think a transatlantic trip is too long for batteries (even when used only for limited amounts of time).
A "clipper" type hull at 3 meters long (4 meters overall) would displace about 0.3 cubic meters. This means the ship would weigh 300kg, and I assume less than 100kg would go on construction (hull, masts, sails, rigging) for something Atlantic worthy. So, you end up wit
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)