Software Testing Journal

May 19th
Took the boat out (no mast or sails). Had trouble initially with rudder servo... nudging the box made it work so clearly there are some VERY sketchy connections. Not good guys. Wanted to try the whole sailcourse function, but menu needs a fix to work with hyperterminal, so we couldn't input the desired waypoint, and wireless programming isn't working so no way to hardcode it. Used Sail and directed the boat downwind, got itself straight, but stayed along ~160 degrees (according to compass query from the menu) when it should have been going 180. When told to go north, went angled but not 180 from the south angle. Tried to sail autonomously to corner of dirt pit waypoint which was hardcoded in, but for no known reason not getting any data. After this and coming back in, one of the 12V batteries read 2.6V so this was probably the problem.

Fun was had by all :)

Fixes:
 * Andre is going to go over the circuits and fix solder
 * Laszlo will fix menu/investigate hyperterminal to make it work like the serial monitor does by default
 * Make good weather so we can test more
 * Test more once these fixes are implemented

May 16th
Order to test:


 * water/rollerskating testing
 * start at lowest level, make sure servos are turning the way we expect. (rudder, main, jib)
 * check wind sensor data, <180 means left vs right (look which way we expect it to?)
 * sail downwind
 * sail(upwind) make it go closehauled and stay along that course
 * checktack <- pass in a waypoint (or an array index from the waypoint)
 * getoutofirons <- put the boat in irons and see what happens
 * tack <- check out the cases
 * sail to waypoint
 * sailcourse
 * stationkeeping
 * long course -> find a way to loop between.

other things to look at:


 * Can the boat get back on course after a 180 degree course change (at 90 degrees to wind) ie potential station-keeping logic
 * What is tacking radius (approx?)
 * What are some sample speeds, what is fast and slow for the boat?
 * GPS accuracy

April 19
We didn't actually test anything today; but here's alist of thigns TO test

To do: Watertest:


 * Can the boat get back on course after a 180 degree course change (at 90 degrees to wind) ie potential station-keeping logic
 * What is tacking radius (approx?)
 * What are some sample speeds, what is fast and slow for the boat?

April 5
The following were being printed: //send data to zigbee Serial.println; Serial.print(latitude); //Curent latitude Serial.print(","); Serial.print(longitude); //current longitude Serial.print(","); Serial.print(bspeed); //boat speed Serial.print(","); Serial.print(heading); //boat direction Serial.print(","); Serial.print(wind_angl); //wind angle, (relative to boat or north?) Serial.print(","); Serial.print(wind_velocity);//wind velocity in knots Serial.print(","); Serial.println(headingc);//compass heading distanceToWaypoint <- check initialization, these numbers aren't making sense

This was the output:

44.23,-76.49,5.40,326.90,316.60,0.40,139.30 4749 <- this doesnt make sense, changing; check initalization, and also make sure that it's coded to mean a distance c w checksum not good... Two commas present, didnt parse Two commas present, didnt parse Stored extra data - 44.23,-76.49,5.40,326.90,329.40,0.30,138.70 4749 c w Two commas present, didnt parse Two commas present, didnt parse 44.23,-76.49,5.40,327.00,328.60,0.40,139.10 4749 c w

We also changed the waypoints: Before (from the PB100 data we collected June 1 2010): waypointX=4413.7075;//Present waypoint's latitude (north/south, +'ve is north) coordinate waypointY=07629.5199;//Present waypoint's longitude (east/west, +'ve is east) coordinate

After (from the location data we're getting now): waypointX=44.24;//Present waypoint's latitude (north/south, +'ve is north) coordinate waypointY=-76.48;//Present waypoint's longitude (east/west, +'ve is east) coordinate

This is, according to http://jan.ucc.nau.edu/~cvm/latlongdist.html, 1.4km away from our starting location. Need more accuracy in lat/long!

Progress:
 * dont seem to have the problem with no wind data after compass
 * setSails is ready to water-test
 * sailStraight is ready to water-test

To do:
 * figure out if we're losing accuracy in GPGLL when we parse.
 * once accuracy issue is solved, see if boat will track towards a target as per code
 * look into if GPSconv is actually correct at all for distance
 * for some reason we're seeing GPSconv appearing in the Serial.print randomly .. why?
 * this could be a deal-breaker if we have to hook up a new GPS
 * determine if boat is adjusting sails AND rudder together properly
 * perhaps separate the data gathering from straightSail and controlSails, ie collect data outside the control functions, control functions use the data available, data should be updated before calling them
 * maybe when twoCommas are present, print the first few bytes of the data array

March 29
The new motor DB9 is working properly, as well as the new RS232/TTL board :) Now hardware-wise we just need to mount the DB9s and make waterproof battery connections/mount them.

I wonder if we have our MUX timing wrong, and should have a delay after we change the select line; theres a "beep beep" noise form the SW, the noise it makes when there's no signal, in between moving the sails the first and 2nd time in the MUX testing motor code (which moves the sails and rudder 3 times in autonomous mode, switches to RC mode, and then again tells polou to move the sails 3 times). Added a short 100 us delay.

While testing for GPS in the parking lot: with the Box sitting on the right side (xbee couldnt send a signal from the left side, too much stuff in the way) of the main team space door and Xbeeing data back to the bay computer, and the wind sensor sitting outside at the max extension of the 30 (??) ft cable new in 2010, it took about 5 minutes to obtain a GPS lock. With a GPS lock, there are no double commas in the data. Sometimes theres a large delay with no data, around 10 seconds; perhaps an Xbee range issue?

Do to next:


 * make sure that sail and rudder control is actually controlling the correct motor
 * look into whether we can receive PB100 data and compass data without spamming the PB100. A few weeks ago, when we tried to cycle sailStraight and setSails one after eachother, there was no wind data; instead called setSails 10 times (wind data) for each sailStraight (compass) call. But this shouldn't be happening
 * test sailStraight and setSails with a laptop to monitor xbee data in the parking lot
 * test GPS coordinate tracking and course-setting in the parking lot

March 21st
Nasty out, and not enough people to take the boat out.

Looked into the issue of wind sensor string/newest angle not matching from below.

After rotating the sensor and examining the data, we could see that it was outputting 360 minus the string angle as the newest angle when the string angle was greater than 180. We then found in code that this was in fact happening in straightSail, and very much on purpose with the logic being that at the moment we don't care whether the wind is coming from port or starboard. We commented out the line in order to be 100% sure this was the issue, and then the newest angle was being outputted properly.

Summary of what was learned:
 * Everything was being outputted as it was supposed to be, we just forgot about a calculation in the code!
 * When the wind sensor is not receiving enough wind, the direction seems to default to either 270 or 0. (such as in the bay without both doors open.
 * It takes several seconds (~10) for a change in conditions to be reflected in the output in hyperterminal (such as opening or closing the bay door to get cross-wind, or blowing on the sensor). We can discuss what this means for the boat itself. (i.e. whether we should change the frequency of data).

March 18
Took boat out to parking lot


 * Worked well:
 * Seemed to steer east for a while - compass seemed to work
 * hooked the rudder servo plug up to the steering servo on the roller skates, worked great that way
 * cory made a nice rudder linkage for the roller-skates that worked nicely
 * tied the boat down with foam; didn't fall over, even in gusts, but was a little scary at times, make sure to keep someone next to bot even when it's going fine by itself


 * To work on:
 * after a while the steering seemed off; was turning north
 * wondering if the steering and sails outputs are backwards?
 * not sure if the sails were actually turning; the smartwinch thought it had no signal at the end (based on it's beeps)
 * could mean that the MUX is broken
 * lost contact with xbee upon leaving the team space
 * need a laptop to test/program with working serial xbee input (found a driver online for the one we have, kind of sketch, it's on dropbox)
 * walkie talkies are a pain, need to REALLY squeeze down the button for them to work :) they DO work though


 * Next time:
 * use RC mode to control steering and get a better sail control test
 * check if we have GPS data
 * look into wind sensor string/newest angle -> not matching