-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NonLinear mimic joints #58
Comments
At the end I used numexpr. It should be safe to use (not like eval), any info about? |
Hi Dav, I d like to know why you are doing that in ordet to understand. thanks :) |
For example, I can say joint_mimic_pos = joint_father_pos ^ 2, simply indicating x^2 in the urdf, among the mimic tags. We will use this for HERI (not x^2 obviusly) |
perfect! I get it! |
Maybe I also have to remember to specifically put some tests for this part |
yes! I suggest you too to provide some usage examples and or some explanation of how to use it :) |
Updates:
|
I noticed that we can have problem if the father of a mimic joint is a mimic joint itself (i.e., there is a "grand-father" or more). This because we iterate the mimic map, and we do not know if the "children" will be updated BEFORE the "nephews", as it should be. |
I should add a check too see that all the "father" joints are effectively contained in the "activeJoint" list (ie not mimic, nor passive) |
I am working on providing a way to put a nonLinear relationship for mimic joints. With ROS standards, only mimicPos = multiplierfatherPos + offset and mimicVel = multiplierfatherVel is possible.
I added an attribute nlFunPos (bad name, proposal accepted) in the
<mimic>
tag like this:Things that ROSEE uses that need to be updated
joint_state_publisher (fork here) which we use to propagate position of actuated joints to their mimic joints, when using rviz only. (ROSEE correctly send commands to only actuated joints, not mimic ones). Easy to do, python code
sudo apt install python-numexpr
Also explain syntax for expression (like use ^ for power)October 2021 update : added this install in the rosendeffector package manager.
Move robot when looking for collisions. (branch nonLinear_moveit_col) For pinches, we use moveit and setRandomPosition() function, to then check for collisions.
With moveit, each time a joint pos is updated, mimic joints are updated also (with the linear standard params). There is no way to not call the updateMimic method, because of private function. So I simply solved first calling the setRandomPosition(), and then overwriting the nonLinearMimic joint position with the correct relation.
I used muparser to compute the equation, it seems nice
October 2021 update : prerelease tests shows that muparser is installed automagically thanks to package.xml and cmakelists.
Gazebo Plugin (fork here)
We should need to fork the mimic joint gazebo plugin, and modify also this to consider the nonlinear relation.
Pull request for ROSEE here #59
The text was updated successfully, but these errors were encountered: