Monthly Archives: August 2013

Phil 8.19.13

8:00 – 11:00 SR

  • Backups.
  • Got the list of queries that Lenny and Chris think would be a good starting point.
  • Working out hours remaining on FP. Sent off to brad

11:00 – 4:00 FP

  • it looks like there are bugs in the audio code. It seems that you cannot do zero speed sessions. And the writing out of results with multiple sound files looks pretty confused. I’m not sure if extra CRs are being put in there or if some of the data isn’t being written out. Need to run some more examples. And I just can’t make it break. Odd.
  • Fixing the state problem. Done.
  • Fixing the saving issue. Also changing the naming of the speakers to reflect Dolby or not. Done.
  • New version release built and deployed.

Dong Shin 08.19.2013

  • continue working on FA4/RA
    • working on the project status query for RA – done!
    • added project budget information to RA (filterable, configurable)
    • refreshing RA data keeps the filter…
    • FMP/Invoice not required for Req’s with $0 funded budget
    • fixed status filter not working
    • working on Dynamic Panel not working – ManagedCanvas.minimizeAll()

Phil 8.16.13

8:00 – 10:00 SR

  • Backups
  • A little unpacking. Now that I have a desk, I can have some tea!

10:00 – 4:00 FP

  • Adding custom speaker number and placement as per Dr. Kuber’s request.
  • Looks like dot product should do the trick: DotProduct
  • Done! With only a couple of string compare issues. I also had to make the speaker index jump around the subwoofer channel until I can work out how to set the EQ.

Dong Shin 08.16.2013

  • continue working on FA4/RA
    • all components in Dynamic Panel must be wrapped in <s:Scroller /> to resize properly!
    • going through the list from yesterday’s meeting
      • removed Projects View
      • created FilterableDGSpark for Spark DataGrid
      • reworking to get status from three row types instead of all row types (Obligation Outlay Types)
    • database update!
      • ALTER TABLE `obligation_outlay_types` CHANGE `type` `type` VARCHAR( 256 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
      • ALTER TABLE `obligation_outlay_types` ADD `status` TINYINT NULL DEFAULT NULL ;
    • query to get OVERDUE requisitions
      • SELECT ‘DUE’ AS status, funding_id, c.* FROM (
        SELECT funding_id FROM (
        SELECT * FROM (
        SELECT count(*) as null_count, funding_id, year, year_count FROM budget_centers c, obligations_outlays o WHERE c.uid = o.funding_id AND o.year + o.year_count = 2014 AND ISNULL(month_1)
        AND (o.type in (SELECT `type` FROM obligation_outlay_types WHERE status = 1 ))
        GROUP BY year, year_count, funding_id
        SELECT count(*) as null_count, funding_id, year, year_count FROM budget_centers c, obligations_outlays o WHERE c.uid = o.funding_id AND o.year + o.year_count = 2014 AND ISNULL(month_2)
        AND (o.type in (SELECT `type` FROM obligation_outlay_types WHERE status = 1 ))
        GROUP BY year, year_count, funding_id
        AND (o.type in (SELECT `type` FROM obligation_outlay_types WHERE status = 1 ))
        GROUP BY year, year_count, funding_id
        ) AS q WHERE null_count = (SELECT COUNT(*) FROM obligation_outlay_types WHERE status = 1) ) AS t ) AS t2
        LEFT JOIN budget_centers c ON t2.funding_id = c.uid

Phil 8.15.13

Phil 8:00 – 11:00 SR

  • Meeting. Dong has input the list of issues
  • Backed up
  • Switched out PPM and PA for FA and RA on the VISIBILITY website. Could not get roles restrictions to work on the PPM directory. Need to look into that.

11:00 – 4:30 FP

  • Switched out the old, glued together stack of sensors for a set of c-section parts that allow pressure on the sensor to be independent of the speaker. They keep falling off though. Trying now with more glue and cure time. I also need to get some double-stick tape.
  • More glue worked!
  • IMG_2185
  • Modified the code so that multiple targets can exist and experimented with turning forces off.

Phil 8.14.13

8:00 – 11:00 SR

  • Backups
  • Some more back and forth with Brandon W. Not sure where that’s going.
  • Showed Pat VISIBILITY. She might be able to help with a proof-of-concept ROI visualization
  • Poked at Dong’s dynamic panel problem

11:00 – 4:00 FP

  • Added force interaction between gripper and target sphere
  • Determined how to make the ratio calculation work. If the sum of all of the magnitudes on the target is greater than zero, then the ratio equals the magnitude of the sum of the force vectors divided by the sum of each magnitude. A value of 1.0 means that there is no contact. A value of 0.0 is a perfectly opposing contact. As currently implemented, if the ratio is less than 0.5, then the position of the target sphere is set to the point that lies between the two grippers, otherwise the (summed) contact force vector is applied to the target.
  • Need to add walls around the work environment so that the targets can’t get out of reach.
  • Need to add the metal standoffs for the speakers. I was thinking about ordering some box tubing, but the sizes weren’t optimal. I’ll bend up some metal tonight.
  • Need to start adding in the code that will support the experiments
    • Task code
    • Feedback options
      • Position and pressure only
      • Position, force feedback and pressure
      • Position, pressure and vibration
      • Position, force feedback, pressure and vibration.

Phil 8.13.13

8:00 – 10:00 SR

  • Backups
  • There may be a problem where some of the data is disappearing after being entered in the VizTool? Overheard a conversation, but didn’t follow up.

10:00 – 4:30 FP

  • Got the wiring cleaned up.
  • Integrating collision response with the targetSphere. The math is looking reasonably good.
  • Added multi-target capability.
  • Added adjustable sensitivity to the pressure sensors. The pushing directly on the speakers is causing artifacts. I think I need to build small c-section angle that decouples the squeezing force from the Vibroacoustic feedback.

Dong Shin 08.12.2013

  • converting FA to Flex 4.6
    • working on Financial Data Editor – done
    • flexlib 2.4 is not compatible – new 2.5 version
    • arc90 flexlib.container (CollapsiblePanel) is not compatible – looking for suitable replacement….
      • trying ShinyLib CollapsiblePanel
      • not working!
    • trying
    • converting all mx references to fx….
    • States not compatible! (LoginScreen) – removed for now.

Phil 8.9.13

8:00 – 10:00 SR

  • Backups
  • Desk issues
  • Looks like someone might be interested in Visibility pretty much out of the blue. We’ll see

10:00 – 5:00 FP

  • Wired up the speakers to the old grip interface. Amp and speakers work nicely
  • Now to work on the force moving the gripper.
  • I also need to get the target force vector back so that I know how to move the target. Not looking forward to implementing friction…
  • Hmm. Before I commit to doing it right, I’m wondering if I can look at the summed magnitude of the force vectors vs the magnitude of the summed force vectors. If the first is high and the second is low, then it means that the ball is being squeezed. Above a certain ratio, The target could simply be at the center of the sensor points.
  • Assuming that the above will work, I need to do the following to targets
    • An awareness of a “floor” that provides either a limit to motion or an upward force once penetrated
    • An awareness of the forces being applied and the sources of the forces. Since these are spheres with given radius, the information to be tracked could be as simple as the center positions of the items
    • Gravity and mass?

Phil 8.8.13

8:00 – 10:00 SR

  • Backups
  • Deployed new FA, which seems to be working well
  • Met Pat.

10:00 – 5:00 FP

  • Building a two-fingered gripper
  • Going to add sound class to SimpleSphere so that we know what sounds are coming from what collision. Didn’t do that’ but I’m associating the sounds by index, which is good enough for now
  • Need to calculate individual forces for each sphere in the Phantom and return them. Done. To keep the oscillations at a minimum, I’m passing the offsets from the origin. That way the loop uses the device position as the basis for calculations within the haptic loop.
  • Here’s the result of today’s work: