Skip to content

Commit

Permalink
Switching to new xacros (#130)
Browse files Browse the repository at this point in the history
* F refactoring sr description multi (#126)

* 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>

* Migrating to dae and adding materials (#129)

* 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

* fixing test

* Fixing the color of wrist mesh (#131)

* updating

* testing

* testing

* testing

* fixing

* removing nosetests

* excluding copyright check

* acording 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>
  • Loading branch information
6 people authored Feb 24, 2022
1 parent 44d71c4 commit 2fb910d
Show file tree
Hide file tree
Showing 362 changed files with 4,278 additions and 10,168 deletions.
41 changes: 0 additions & 41 deletions sr_description/CHANGELOG.rst

This file was deleted.

9 changes: 2 additions & 7 deletions sr_description/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,8 @@ if (CATKIN_ENABLE_TESTING)
include_directories(${urdf_INCLUDE_DIRS})
catkin_add_gtest(test_sr_description_urdf test/test_sr_description_urdf.cpp)
target_link_libraries(test_sr_description_urdf ${urdf_LIBRARIES})
endif()

install(DIRECTORY arm/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/arm)
endif()

install(DIRECTORY hand/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/hand)
Expand All @@ -30,11 +28,8 @@ install(DIRECTORY meshes/
install(DIRECTORY loaders/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/loaders)

install(DIRECTORY other/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/other)

install(DIRECTORY robots/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/robots)

install(FILES materials.urdf.xacro
install(FILES other/xacro/materials.urdf.xacro
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
11 changes: 2 additions & 9 deletions sr_description/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
This package contains the description for Shadow Robot's Hand and Arm, as well as some additional models used in our robot (kinect, etc...).
This package contains the description for Shadow Robot's Hands.

You can find the different complete models in [robots](robots).

You can also find more information about the computation of the [arm kinematics](doc/ArmInertia.md) and of the [hand kinematics](doc/HandInertia.md).


*Tips: To automatically reformat the different xacro files you can use the following command:*

```bash
find . -name "*.urdf.xacro" -type f -exec tidy -xml -i -m -q "{}" \;
```
You can also find more information about the computation of the [hand kinematics](doc/HandInertia.md).
48 changes: 0 additions & 48 deletions sr_description/arm/config/arm_controller.yaml

This file was deleted.

115 changes: 0 additions & 115 deletions sr_description/arm/model/arm_base.dae

This file was deleted.

Binary file removed sr_description/arm/model/arm_base.mesh
Binary file not shown.
219 changes: 0 additions & 219 deletions sr_description/arm/model/arm_trunk.dae

This file was deleted.

Binary file removed sr_description/arm/model/arm_trunk.mesh
Binary file not shown.
125 changes: 0 additions & 125 deletions sr_description/arm/model/elbow_flex.dae

This file was deleted.

Binary file removed sr_description/arm/model/elbow_flex.mesh
Binary file not shown.
125 changes: 0 additions & 125 deletions sr_description/arm/model/elbow_rotate_motor.dae

This file was deleted.

Binary file removed sr_description/arm/model/elbow_rotate_motor.mesh
Binary file not shown.
Loading

0 comments on commit 2fb910d

Please sign in to comment.