2013-06-05 Development Call

return to Development Call index

Event Details

 * Time: 2013-06-05 12pm PDT
 * Location: http://www.youtube.com/watch?v=VVgPsAzoLq4

Summary

 * @BA reviews 2 months of software updates
 * Discussion of sensor integration
 * @ES Preview of new design for chamber
 * Software feature requests
 * OpenCTD project
 * 3D vision camera

Attendees

 * Eric Stackpole (@ES)
 * David Lang (@DL)
 * Colin Ho (@CH)
 * Peter Christensen (@PC)
 * Dominik Fretz (@DF)
 * Jim Trezzo (@JT)
 * Brian Adams (@BA)
 * John Stiger (@JS)
 * Martin Evans (@ME)
 * Benoit Gantaume (@BG)

New Followup Items

 * { @DL} Schedule the OpenCTD team for a hangout

Agenda
ES:
 * New chassis design - better capacity, more organized
 * Walt doing electrical design
 * Brian improving software

Software Overview
BA:
 * no big architectural changes to software
 * lots of enhancements and bug fixes
 * things added:
 * camera snapshots, mjpeg software gives you an image from a certain url, ROV captures images to SD card (not browser)
 * need to update software libraries to include images in streaming metadata
 * config system: preferences, settings,
 * could be better designed, ordered, labeles
 * still lots of settings in config.js that can't be set from the browser
 * calibration, in-flight things should be in UI, environmental settings should remain in config.js
 * environmental settings different for e.g. Raspberry Pi vs Beagle Bone
 * we're already calling shell scripts for interoperation, e.g. serial port - isolate different platform changes, scripts there
 * gamepads - developing in lockstep with Google's Chrome development, for controllers with Direct Mode
 * none of the libraries worked well, added code to let you specify control mappings for non-supported controllers
 * standard controller APIs map values from -1..1, all value translation happens upstream in ArduinoPhysics
 * node.js autorestart on crash (3 restarts but configurable)
 * original app.js is a wrapper around new cockpit.js
 * swap control directions
 * lots of issues in Github Issues list https://github.com/OpenROV/openrov-software/issues
 * could use help with UI cleanup and redesign
 * started on new headsup display
 * biggest software issue is timing for Arduino updates
 * XMPP library to talk to Google Talk to announce IP addresses it's listening on

Sensor Conversation
ES: What's the easiest way for people to send data from new sensors to cockpit?

BA:
 * Most sensors have Arduino code examples, difficult to port to JS
 * Should leverage those and create conventions to add values to telemetry
 * define an interface for common entries (e.g. cmp = compass)

JT:
 * Don't invent your own protocols or algorithms
 * Layers: raw sensor, clean interface data, reporting to dashboard

ES:
 * almost any sensor has already been integrated to an Arduino
 * Labview Interfaces follow some arbitrary label on a stream of data and customize display/visualization

PC:
 * data generated/calculated on Arduino, send tagged data through node to browser, visualize on browser
 * build cockpit using visualization widgets and that makes it extensible for future users

BA: how to manage lots of Arduino code, sensor modules

DF: new or weird sensors still need to be integrated, have standardized output format

BA:
 * simple sensors are easy to integrate, complex sensors like IMU take a long time to integrate
 * sample code often uses lots of memory, text strings, etc

JT: Multiple subsystems
 * right now we have one camera, one Arduino
 * it seems like we're almost abstracted enough to mix multiple serial streams to the node.js server

ES: Walt considering a new board like a full Arduino Mega with more memory, I/O, etc

New Physical Design for Chamber
ES:
 * don't rotate the whole cylinder, just raise/lower the front bar with camera/lights
 * room for bigger Arduino board
 * leave front 1/2 of the cylinder empty for payload flexibility
 * just prototypes now, building will begin when ES gets back 6/19

Power Isolation Issue
BA: power issues can hang the Arduino and require a hard physical reset

JT: ROV operation should be separated from the payloads so you can't lose control of the ROV

ES: you can build a [electronics voodoo] into the topside connector to reset it from topside while ROV is underwater

Ideas Based on Use
ES:
 * would like night mode - make background darker
 * responsive design for smaller screens
 * keyboard for screen capture so you don't have to hit the mouse

OpenCTD Project
ES: could connect as a generic serial stream, but it might be a problem to tie up the Arduino resources

DL: Will invite him to a hangout

ES: CTD is like the microscope for oceanographers

CH:
 * Other sensors: Nishkin(?) bottles to gather samples, water sampler
 * Star Oddi - Logging Life Science

ES: USB Microscopes $5-$30 on eBay could be used to inspect samples in situ, CV to split organic/inorganic, etc

JT: applications might be limited by onboard power, but the topside laptop can boost power

Processing Power
ES: Beaglebone black has more horsepower but no one has it working yet

BA:
 * input was being sampled at a high rate and sending all samples, took 30-45% CPU
 * switched to only send when inputs changed, lowered processing to ~4%
 * two k-worker processes in Ubuntu for processing the USB stream cause sporadic processing spikes

3D Vision Camera
CH:
 * Kinect doesn't work because it uses IR structured light
 * this camera uses a sensor that works underwater
 * projects light and generates 3d image based on time to return light
 * not sure about libraries, processing power, etc
 * XBox One has an HD Time of flight sensor, not sure if it will work underwater
 * output is a multidimensional matrix of distances corresponding to normal images