Author Archive

Capturing software-skinned mesh data

September 11, 2010

EZphysics highlights meshes and proxies when you select them in the menu-tree.

The way highlighting works is that the edges of the triangle mesh are colored with alternating colors so the mesh is displayed and overlayed by the alternating colored lines. However it seems that there is a problem with accessing the skeletal mesh triangle data *after* it has been skinned (the process of modifying a “skeleton” where each bone influences a group of points on the mesh hence skinned mesh refers to displaying the altered mesh after its bones have changed position). We tried to force skinnnig to occur in software rather then GPU and it seems to be doing that but still capturing the elusive post-skinned mesh is yet to be achieved as depicted in the image below where the girl’s mesh has been transformed using skeletal animation technique but the highlighted triangle contour is in its original pose.

Dynamixel bus communication from Matlab

February 19, 2010

Using a board with FTDI chip, and the library from Robotis, the DLL is linked to Matlab and so functions can be called from within m-functions to send-receive packets from the servo bus.

function [PresentPos]=bioloid(id,GoalPos)
% Send and receive values from dynamixels
%       ID - Vector with all dynamixels ID
%       GOALPOS - Vector with all goal dynamixels positions
%       PRESENTPOS - Vector with all dynamixels positions

% Fernando Carreira
% IST-Humanoids lab, Lisbon
% 09-02-2010

for pos=1:n
    calllib('dynamixel','dxl_write_word',id(pos),30,GoalPos(pos));      %write pos
    PresentPos(pos) = calllib('dynamixel','dxl_read_word',id(pos),36);  %read pos


Using the CM5 as translator/compressor

February 18, 2010

The problem with USB’s inherent latency due to the USB bus controller requiring a cycle of 1ms by definition (maybe USB3 will change this in the future), can be addressed by having long strings sent from the Robotis Dynamixel bus to the PC instead of probing the bus for every servo continuously.

So we will try to use the CM5 as a middle-man. The CM5 is the Bioloid controller board. It will peek/poke the servos continuously and send compressed strings to the PC over USB/FTDI at high speed. Theoretically we should be able to reach 100+ cycles/sec of reading all the servo positions and sending out target positions and torque commands from the PC assuming 1mbps emulated serial port speed.


PC -> Servo Communications issues

February 4, 2010

Robotis makes unique servo actuators specifically designed for building articulated robots. Their actuators range from AX12 ($40 12kg-cm plastic gear) to EX-106 ($500 120kg-cm titanium gear and magnetic encoder..). They all share one thing in common – the Dynamixel bus protocol.

In order to effectively create closed loop control between the PC and the robot, there are many timing considerations.

We debated quite a while about how to best create a situation whereby the PC is able to receive sensor data and send control data from/to the servos at maximum cycles/sec.

The following is stitched up (see picture of the brainstorm board taken as 4 pictures by an iPhone

Long Legs

February 3, 2010

The reason why hobby humanoids are so unstable and need those big feet is that they are short and their center of mass is at around 20cm height. meaning that upon any perturbation, they will very quickly loose balance and reach an angle where a disastrous full fall can not be prevented.  T=0.897 sec/cycle means that controlling the instability requires reaction at an order of T/4 = 0.22 Sec. Thats about the time it takes the servo to run through 45Deg. If that servo is on the hip of the humanoid, moving the whole leg whose length is about 15cm it can spread that leg about 10cm on the ground. Seems like enough to keep balance but I prefer to do our experiments in a less stressful predisposition.

If the CM is brought up to 35cm, T/4 = 0.297 Sec. Hence more time to react to instability. The downside is that when building this structure from Bioloid plastic parts, there’s now an additional flexibility and springiness to everything.

The reason for double jointed knees is so that the speed of folding and extending those knees is about double the speed of moving the whole leg from the torso.

Hello world!

January 21, 2010

ActuatedCharacter project proposal was submitted in end of 2007 to Eureka / Eurostars for funding. It was elected to be funded in April 2008. The money showed up in the bank in January 2010.

Our ambitious objective is to create cheap legged bipedal robots that can run and jump.

This is a cooperation between IST (Instituto Superiore Tecnico – University based in Lisbon/Portugal, RoboSavvy (hobby education robotics company based in UK), NoDNA (hobby education robotics company in Germany) and Move-Interactive (Video Game development company based in Portugal).