Open marekkopicki opened 9 years ago
Ok, I will take care of the kinematics and test it as well
Maxime, any progress with kinematics?
Marek, you told me on monday that you were going to take care of the driver!
Driver in general, yes, but kinematics I have no capacity right now.
Ok I take care of it
Guys, do you have CAD drawings of the hand? Possibly with kinematics description.
First of all, check if you already have it with the hand documents/CDs, since I was told customers are given this when they buy the hand. Then, in the natural machine motion initiative site, you have v0.1 freely available (it's not the one you have there, but can help).
My suggestion is to go with the URDF model given here soft_hand_description, so we will have the same models in Golem and ROS. In the file, you will find a macro for the kinematics of a finger at the top, then a macro for the thumb, and at the bottom, a macro for the full hand with the anchor transforms for all fingers and thumb, with some parts depending whether it is a right or a left hand. Unfortunatley, we don't have more documentation about this, however, I think that the XML tags and names are self-descriptive. If you have any doubts, let me know.
Thanks Carlos. As far as I can see it, each joint with gears can be modelled by 2 twists with the same angular velocity and zero pitch. Other joints are easy. I can update golem::Joint to allow more than one twist per joint, then all kinematics can be specified in xml, without writing any code. Maxime, have you done anything about kinematics already?
That is correct.
Hey Marek, I am on it I have just finish reading the twist part for the kinematic in the book and I am creating the kinematic and the simulation driver. I don't think that it will be ready tomorrow cause I can t work on it tomorrow. I will finish it over weekend and Monday it should be ready
OK thanks, but I will update some parts of the Pisa hand driver and golem::Joint and golem::Chain anyway. This is because there are specific requirements regarding the driver interface and behaviour we have not discuss yet. We will talk about it tomorrow.
I have updated multiple twists per joint feature. I am working now on a new driver and simulator structure, it should be ready today.
A new PISA softhand driver and simulator uploaded. IMO most of ugly work is done. TODO list:
1) Kinematics, however now it is easy - just edit a few lines in xml configs (the current are from DLR hand) - GolemDevicePISASoftHand.xml and GolemDevicePISASoftHandSim.xml. Create two twists per joint - i.e. two sections
2) Bounds or geometry of the hand (the current are from DLR hand).
3) Replace "a test synergy" with the real one - see golem::PISASoftHand::getSynergyMap(). Possibly load it from a resource file.
Great! I will update the different part today
@carlosjoserg How do you compute the synergies for the PISA Hand in ROS, I have seen that you have the synergy vectors in the urdf file. Is there a simple way of doing it?
@carlosjoserg I need to get the rotation matrix to position all the fingers. Which Euler angle convention is ROS using? Could you generate the rotation matrix for the base of all the fingers?
@maximeadjigble
For now, in there, there is a synergy joint that can take values in [0,1], and the rest mimic this value with a ratio specified by the synergy vector. So, I adjusted the vector to have a reasonable close/open motion. These values (synergy joint range and synergy vector) must match the real one, which I still have to do in order to keep simulation and real scenarios as close as possible. The way to do it is: for the first one, to look at the motor/encoder configuration, and for the vector, to look into the pulley radius. However, for simulation, you can replicate what's in there for now.
For the rotation matrix, you can use this python script, it will give you the correct rotation according to the ROS convention: https://github.com/ros/geometry/blob/indigo-devel/tf/src/tf/transformations.py
@maximeadjigble
Have you sorted out the thumb kinematics already? We have to make sure that the Golem kinematics is equivalent to the kinematics from ROS, including the joints' scale factor. In the meantime, you could upload your test version of kinematics and the hand geometry - it looks good as it is!
Hi Marek, I am going to finish it today + the synergies
Thanks Maxime! I have implemented "synergy vector", i.e. simple linear mapping synergy -> joint angles, compatible with the ROS driver. Only thumb kinematics is missing + it would be good to perform a final test of the real hand.
@marekkopicki @carlosjoserg, I have updated Golem with the right configuration of the bodies for the thumb which were not overlapping, but, there is still the transformation for the thumb which is missing. @carlosjoserg I am using the script that you sent but there is 24 possible euler angle configuration that can be used to generate the rotation matrix and i don't really want to go through all of them. Is it possible that we have a look together?
No, I should have pointed this link before as well: http://wiki.ros.org/urdf/XML/joint
Take a look at the rpy
tag, so it is euler_matrix(roll, pitch, yaw)
without axes, i.e. the default 'sxyz'.
Last question @carlosjoserg because I would like to make it right. Could you make me a small schematic even using paint of the configuration of your axis (base and thumb base axis), that is the only bit of information that i am missing
Let me know if this works:
(left hand at left, and right hand at right)
I assume https://github.com/pacman-project/Golem/commit/81edeb48efcc8a0d45cf6d19d04554109f187c3b closes the issue, so I'm doing it.
Tip: you can use commit messages to close issues automatically, see this
Thanks guys! We still have to test it with the robot in both Windows & Linux (just in case), but there is a progress, no doubt :)
Hi guys,
I'm reopening the issue since I recently realized that there was an error in the kinematic mount of the right thumb, proximal joint. Besides, there are more than one versions of the hand. I don't know which you got in the end, you can readily notice by the palm.
If it is like in the figure above (small), check https://github.com/CentroEPiaggio/pisa-iit-soft-hand/commit/882391ad204fa7d15eafdf03574b413f3dc01a26
If the palm is larger, then check thum kinematics, as well as updated mounting frames.
Let me know if you have further questions.
I have uploaded the driver - compiles in Windows and Linux, but has to be tested. Still without kinematics, synergy model and appropriate model of a body.