Let's Make Robots!

The boat emulator


The project I am working on is actually a boat (USV) but I am the "hired gun" for software and don't always have ready access to it. I can't say much about the project other than to say it does have some market potential and it is hard to test on public water without drawing a crowd. As you might guess, for some parts of the project, this is a real hardship. There are lots of parts of it where it really isn't - developing communication protocols between controllers using xBees, reading GPS and compass and performing calculations, etc. But for some operations, particularly the ones I have been posting about lately. I need to get some live data. 

So I came up with the bright idea of using an airboat/hovercraft inspired design on wheels as a "boat emulator". 

It's run by an Arduino MEGA 2560 with a proto board jammed full of goodies - xBee 900 Pro, GPS, tilt compensated compass and a data logger. The RJ-45 has nothing to do with ethernet; it was just a handy quick disconnect for the I2C LCD and some push buttons that are on the boat.

I talk to it with another Arduino (in the plastic case) that has similar toys but no motor and has a joystick and another unit that is just a beacon. I also have an xBee on the PC that talks to any unit and/or monitors all the traffic.

The first thing I will work on is spinning in and taking off in a required direction and figuring out when I can switch to GPS course instead of compass bearing.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I have done some work on boats and are looking forward to see where this goes.



But one question with regards to "... figuring out when I can switch to GPS course instead of compass bearing" Why would you switch to GPS course if you have a good working compass?

With current, wind and waves acting on the boat, the direction the bow is pointed in is not as important to me as the direction the boat is going when making adjustments to stay on course. I will use the compass to point the bow in a direction that is at least roughly correct to take off, but once I am under power I think I will want to use the GPS.I don't think I can figure current, wind and wave effect fast enough to algorithmically respond, if I can even measure those variables accurately. Once the boat is on plane, measuring in real time would become really difficult.

My boat is currently only using GPS to get its course and adjust the rudder. It works fine moving towards a waypoint but when the boat is turning towards the next waypoint,  the speed slows down and by the time I get a steady course again the boat overcompensates and oscillates a bit before getting a steady track. So I’m adding a compass and will try using that instead.

I understand. If I implement this correctly, I would drop back to using the compass in that situation. I will make course corrections along the way, but I hope not to come off plane until I am very near my destination. I read a lot about the problems auto pilots have crossing from Florida to Bimini; you have to be really careful about not ending up going dead against the current at the end if you use a compass.

To hold a position in moving water, I will have to do some hull speed operation using the compass also.

It's slow. Main problem is the wheels, though I could reduce weight also. The reason I am sure the wheels are the worse problem is that setting it on top of a skateboard and probably doubling the weight made it faster but with no steering. I need to get some good new wheels with bearings. But the first test was a qualified success.

Wheels replaced - new post will explain...

I edited the main entry to include the changes I made. I got rid of the rougher prototype pics and modified description. I got larger diameter soft rubber wheels. It glides along much better on these. It still goes slower than I expected, but it goes.


The major issue is getting started. I need a smooth flat surface. A gymnasium would be ideal. Once it starts moving, it will accelerate to a decent speed and has some reasonable control at cruising speed. It can run the street, but it has to be level and it has to be started on a smooth spot. It's not going to give me the pivoting start I hoped for on wheels but I can adjust the code to still give me some meaningful testing for that. I will just have to start the engine at full and delay a couple of seconds before I start processing as if it were a dead start. There are some nearby outdoor basketball courts and parking lots that should work pretty well for testing. I hope to do that Saturday AM.

It was somewhat successful; I could move it an control it on a clean level surface. But a couple of things happened that have made continued work on it less desirable. One was testing on the "real" USV that got me past the issue I was concerned with needing to test a lot. I still would like to have my own unit to test various things, but it is now less important that it behave like a boat and more important that it go reasonably fast. So with that in mind, I bid on something and won it on Friday night. I will probably be starting a new page on it in a few days. Here is a teaser...