-
Notifications
You must be signed in to change notification settings - Fork 16
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
Xacros refactored #133
Merged
Merged
Xacros refactored #133
+4,278
−10,168
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Remove redundant definition of pi pi is available globally in xacro as python's math.pi * Delete unused meshes in ubi_tactiles * Remove use of ubi param * Remove ubi params * Replace $(find xacro)/xacro -> xacro * Remove deprecated --inorder option * Fix missing xacro namespace prefixes * Fix typo * Improved xacro for modularity and to permit sensor selection Modern xacro allows to automatically forward macro arguments when they are defined with the arg:=^ syntax. Using this feature simplifies macro calling. Also, instead of specifying hand attributes with an ever-growing set of binary parameters, this commit introduces parameters hand_type and (palm|prox|mid|tip)_sensor to modularize parameterization. This allows for more flexible definition of the (tactile) sensors used across the hand. Using a value of 'none' for those sensors allows to deactivate (Gazebo) sensors. Backward compatibility for old parameters is maintained via file backward_compat.urdf.xacro, which translates from old to new parameters. * Add compatibility test Cloned all files from robots/*.urdf.xacro prior to this PR into test/robots.old. Run xacro on all corresponding files and compare their content. * Fix backward compatibility - Restore deleted files required by compatibility test - Fix use of deprecated properties - Fix use of deprecated parameters - Undo unrelated changes w.r.t. upstream - Fix extra_lite hands: it is missing MF not FF * More simplifications - Simpify one_finger_unit.urdf.xacro There is only one finger. No need to pass *_sensors. A single one is sufficient. Also, a fingers parameter doesn't make sense. - Reduce number of xacro:if in fingers.urdf.xacro - Plain string default parameters don't need to be quoted * More specific variable tests Using `'text' in variable` is a rather sloppy equivalence check. This commit attempts to harden these checks using the following regexp replacements: - More specific test of hand_type ('hand.+?') in ([a-z_]+) -> $2.startswith($1) - More specific variable tests ('.+') in ([a-z_]+) -> $2 == $1 * Simplify if-else clauses Improve extensibility (adding more sensors) by emloying an exclusive-if-and-final-else strategy, utilizing a helper variable. This way we avoid augmenting the list in the 'sensor in [...]' tests. * Issue deprecation warning Use python's None value as default to know whether old parameters were specified. * Deprecate specific hand.urdf.xacro files * More readable hand_types: muscle, muscletrans, motor, motor+ - hand_mt -> muscletrans - hand_m -> muscle, regexp: (["' ])hand_m -> $1muscle - hand_e_plus -> motor+ - hand_e -> motor * Make fingers parameter a string * Python 2.x compatibility As xacro returns unicode objects from property evaluations we cannot apply str.lower to them in Python 2.x In Python 3.x str and unicode is essentially the same. * Simplify syntax for sensor specification Use textual sensor specifications: - tip_sensors=bio - tip_sensors='th=bio, ff=bio, mf=std, rf=std, lf=none' - tip_sensors='bio, bio, std, std, none' - Rename backward_compat.urdf.xacro -> process_sensor_parameters.xacro - Introduce macro validate_tokens * Apply new sensor specification * Internally use dotified dict for *_sensors * hand e working with versions and hand type * distal refactored * Deleted deprecated changelog * Replaced std * Replaced muscletrans with hand_c * Fixed finger * Fixed Thumb plus a few issues from finger forearm and palm * Fixed wrist * Moved files to legacy folder for now * Replaced full_hand with hand xacro and updated hand_g * Fixed hand lite and extra lite * Removed arm and old meshes * Moved gazebo and materials to a common folder * Fixed xacro errors * Added mucle hand * Reformated load files * Refactored meshes to use only components * Added all robots to legacy folder for now. And left only two robots: unimanual and bimanual * Adapting test script after xacro refactoring * Refactoring sr_description: adapted test and added more parameters validation (#124) * Removing robots.old folder * Lint fixes * Fixing CMakeLists * Removing whitespace * Applying changes from ubi-agni#2 * Adapting tests to refactored sr_description * Adding validation xacro * Update process_hand_type_parameter.xacro * Updated validation xacro and small fixes * Update test_models.sh * Fixed validation of parameters * Fixing formtating and deleted unnecessary files * Work in progress * Removed unnecessary files Co-authored-by: Beatriz Leon <beatriz@shadowrobot.com> * Update process_hand_type_version_side_parameters.xacro * refactoring * cleaning * according to review Co-authored-by: Robert Haschke <rhaschke@techfak.uni-bielefeld.de> Co-authored-by: Guillaume Walck <gwalck@techfak.uni-bielefeld.de> Co-authored-by: Beatriz Leon <beatriz@shadowrobot.com> Co-authored-by: maxzieba <max@shadowrobot.com> Co-authored-by: maxzieba <77073326+maxzieba@users.noreply.github.com>
* testing * migrating to daes * removing stl reference * all changed to dae * adding material to palm * Revert "adding material to palm" This reverts commit 9330265. * removing redundant dae elements * all meshes colored * fixing hand c colors
* updating * testing * testing * testing * fixing
…n into F_new_xacros_ready
BenStarmerSmith
approved these changes
Feb 24, 2022
beatrizleon
approved these changes
Feb 24, 2022
Closed
It's nice of you to do so much work on improving the urdf of shadow hand. But, I am confused with all these new parameters introduced by the new urdf. Could you also document the use of new urdfs? Thank you! |
Hi @lianghongzhuo you will find documentation under this link |
Thank you! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed changes
Adding new modularized xacros.
Checklist
Before posting a PR ensure that from each of the below categories AT LEAST ONE BOX HAS BEEN CHECKED. If more than one category is applicable then more can be checked. Also ensure that the proposed changes have been filled out with relevant information for reviewers.
Tests
Documentation