by PaulL » Mon Aug 06, 2012 12:44 am
by PaulL
Mon Aug 06, 2012 12:44 am
I've mentioned this elsewhere, but more info:
* I'm running Windows XP on the RB-100.
* I'm not using MS Robotics Developer Studio.
* I'm not using RoboIO, I built my own hardware functions in Visual Studio VB .Net.
* I AM using WinIO.dll to access Roboard hardware from .Net.
* Servo hardware is using Continuous Mode for PWM.
* I use the Multimedia Timer for 4mS position updates.
* Moves in the vid were from the Robonova's stock program scaled to Roboard PWM values.
* Offsets / Trims are applied to position values for each servo using a .Net control.
* I'm using a Transcend Class 6 MicroSD card.
I'm not using Speed as a controlling factor, I'm using position and duration to perform a move. Speed is derived from moving from Start Position to End Position in Duration. This lets me plug in whatever calculation to get the current position based on fraction of the move (0 is start, 1 is end, between is position calculation). I created calculations for accel, decel, accel/decel, and linear interpolation. Part 1 of the vid is linear interpolation, Part 2 is a mix of the others. What this means is that it will be easier for me to adjust timing or style of moves (ex, dancing to an audio beat), or adjust for time-oriented real world scenarios. I even added the ability to generate an event at a specific time in the move (for things like starting other moves while another move is in action).
I should also mention, movement is not strictly "frame" based in the form of requiring all servos to be specified for a "frame". A move group (collection of movements) can be specified for any combination of servos. This means that I can implement one group move while another is already in progress. I also have single servo move capability, for working with dynamic things like object tracking and such. It also supports "instantaneous" moves, where you set a servo's position and instantly (within 4mS) the servo is set to the new position (Duration = 0).
The "flop" seen when he shifts to his left foot in the video is from backlash in the HSR-8498HB's. I am looking forward to seeing what the HSR-5498SG's can do (less backlash, metal gears). Visible "jitter" in slower motions is caused by low resolution in the Hitec servos (the smallest step in resolution of the servo is visible), solution is to move faster.
I've mentioned this elsewhere, but more info:
* I'm running Windows XP on the RB-100.
* I'm not using MS Robotics Developer Studio.
* I'm not using RoboIO, I built my own hardware functions in Visual Studio VB .Net.
* I AM using WinIO.dll to access Roboard hardware from .Net.
* Servo hardware is using Continuous Mode for PWM.
* I use the Multimedia Timer for 4mS position updates.
* Moves in the vid were from the Robonova's stock program scaled to Roboard PWM values.
* Offsets / Trims are applied to position values for each servo using a .Net control.
* I'm using a Transcend Class 6 MicroSD card.
I'm not using Speed as a controlling factor, I'm using position and duration to perform a move. Speed is derived from moving from Start Position to End Position in Duration. This lets me plug in whatever calculation to get the current position based on fraction of the move (0 is start, 1 is end, between is position calculation). I created calculations for accel, decel, accel/decel, and linear interpolation. Part 1 of the vid is linear interpolation, Part 2 is a mix of the others. What this means is that it will be easier for me to adjust timing or style of moves (ex, dancing to an audio beat), or adjust for time-oriented real world scenarios. I even added the ability to generate an event at a specific time in the move (for things like starting other moves while another move is in action).
I should also mention, movement is not strictly "frame" based in the form of requiring all servos to be specified for a "frame". A move group (collection of movements) can be specified for any combination of servos. This means that I can implement one group move while another is already in progress. I also have single servo move capability, for working with dynamic things like object tracking and such. It also supports "instantaneous" moves, where you set a servo's position and instantly (within 4mS) the servo is set to the new position (Duration = 0).
The "flop" seen when he shifts to his left foot in the video is from backlash in the HSR-8498HB's. I am looking forward to seeing what the HSR-5498SG's can do (less backlash, metal gears). Visible "jitter" in slower motions is caused by low resolution in the Hitec servos (the smallest step in resolution of the servo is visible), solution is to move faster.