Nothing is more savage than a SOIC. This is the personal website of Edgar Simo also known as “bobbens”. It handles projects, ambitions and control theory.
Latest journal entry:
libdq: Dual Quaternion Library
Haven’t written anything lately, but that’s because I’ve been pretty busy. What am I working on? Well in Spain to get your Superior Industrial Engineer degree you have to do a final project. So I’ve chosen one on Kinematic Model of the Hand using Computer Vision which I’m doing an the robotics institute at my university.
So what does it consist of? Well basically I am tracking the nails on a hand (with markers for now at least). By using the orientation and position of the nail I can then reconstruct the entire hand model precisely. At least in theory. It’s a bit complex in implementation because it touches computer vision in depth and especially robotic kinematics.
Anyway, as a result of all the reading up and research I’ve been doing on this, I’ve created a dual quaternion library. What is a dual quaternion? Well it’s sort of like two quaternions together where one represents rotation and another translation. This allows you to do any rigid body movement in 3d and use it to translate points, lines and planes. It’s pretty neat.
Anyway, the library can be found at the github page for libdq. It has some unit tests and a benchmark and so far is getting pretty good results. It takes about 20 microseconds to do a multiplication of two quaternions on my machine. It hasn’t been used in the real world yet, but in the next weeks I’m going to try to use it with MINPACK which is a solver for non-linear equations. I know this library may not be of much use to anyone else, but I felt obliged to make it. Soon I should try to make a projects page on it to give more details here. Maybe even host the very pretty doxygen.
To get started it’s as easy as:
git clone https://github.com/bobbens/libdq.git cd libdq make sudo make install
I recommend you look at the extensive documentation that is created in docs with “make docs”. However I am hosting a version of the libdq manual online that you can view if you rather not compile your own documentations.