Build Day notes 4/6/2013


For the latest update, a lot of people were having trouble getting the new nconf library reference loaded. When people are using the script, it was not doing enough. You have to do the following as well which I'll add to the script shortly. You have to:

  1. "sudo bash"
  2. "cd \opt\openrov"
  3. "npm install"

That will download the nconf library. It will also attempt to recompile the library which has been failing for some reason. If that fails, you can ignore it. You should now have the directory \opt\openrov\node_modules\nconf". All should work now.

We ran in to an issue where the json config file on one of the ROVs somehow got corrupted. This reported as an error parsing the config file from nconf in the openrov.log file. The solution was to simply delete the rovconfig.json file. The system rebuilds it automatically. I'll look in to error handling around this that automatically deletes it if it is corrupt vs. crashing the node process.

We discovered that when using the gamepad it is possible to send enough data to the node.js server that in a high cpu situation, it cannot keep up with and crashes the node process with a stack overflow error. Suggested altering the sample rate in the config.js file and lowering it from 20 to 10 instead. This will need some more research. Probably need to use the keyboard and gamepad data to setup a model and only send the ROV the state of the model vs. every potentially redundant sample from the input devices.

Discovered that we will need to do some balancing of the ROV to keep it from pitching when piloting it. Looks like we will need some foam to to mounted above the rear motors. This should also help get us to neutral buoyancy as the ROV was a bit negative buoyant.

Discovered that the motors will pull in a lot of sand inside if you run on the bottom. This is a problem because the dirt particles appear to be scraping of the nickel plating over the magnets. Lots of discussion about coating the bell with something. There was also discussion regarding the potential that dirt could also scrape the coating over the copper coils.

Couple of us will be reviewing the boot-loader code for the Arduino to see if we can come up with ideas on how to fix this updating of the Arduino issue.

Talked about custom firmware of the ESCs as a possible need so that we can eliminate deadzone and make other needed tweaks. There are custom firmware's already floating around.

Discovered how important a compass is to drive the ROV underwater when we don't have direct line of sight.

The updated solution for better securing the props to the motor bells proved to work nicely.

These are my notes from the build day. Feel free to add/correct.

Picture of Eric's ROV from my ROV in the tank.

In the grass @ Aquatic Park

Just offshore from Aquatic Park

Reversing after running aground headed back to shore

Some key links from browsing with folks:

Details on installing custom firmware on an ESC

Example code for using the Arduino as a programmer for the ESC

Source code for the ATMEGA bootloader