It is pain to decide where we should be: keeping all the existing libraries as they are, totally modifying them to fit our project, or somewhere in between. So I will be more prone to make the code efficient, since we will use it for dynamic manipulation.
It's also a tradeoff to make the code multifunctional/extendable versus to make the code as simple and efficient as possible. I prefer the later one since our devices, libraries are somehow out-dated and probably the firmware will be the last version after all my improvement.
Previously a crappy demo of the overall system is being developed, meaning that the code may be not modular, the data filtering may not be perfect, and the defined classes may be only partially functional.
src: saves all the files defining one or more systems of WAM RT control.
other packages: basically are listeners receiving data from other parts of the overall platform. Each of them at least includes several classes:
-
a listener class: handle the commuication to the corresponding device.
-
a filter: extrapolate the current status given the old data from the device, in order to compensate the potential time delay.
There's an extra sender in the hand package because we have to control the joints on the hand.
TBA...
2021/11/24: The core code of the Allegro Hand is being modified. From now on all the old executable are broken.
Allegro Hand:
Make the udp package work and integrate it into the current project.
Allegro Hand:
-
Mechanical torque resistance from each joint is tested out to be no more than 0.12 Nm. The max torque from each joint is given as 0.7 Nm. So a naive/simple/direct force control is impossible.
-
The desired torque for each joint in the code is actually the percentage of applied torque versus the max limit, not the actual torque value in Nm.
-
The hand manual in the lab is wrong while we can refer to manual for hand version 3.0 online. The kinematic from BHand lib is weird: the fingertip frames are set in some weird places.
-
We will create our own kinematic for the hand. BHand code will be used mainly for simple demos.