robot-descriptions / robot_descriptions.py Goto Github PK
View Code? Open in Web Editor NEWAccess 85+ robot descriptions from the main Python robotics frameworks
License: Apache License 2.0
Access 85+ robot descriptions from the main Python robotics frameworks
License: Apache License 2.0
Reproduction steps:
robot_descriptions show jaxon
againOutcome: git.exc.InvalidGitRepositoryError
Currently we always clone the latest available description.
For repeatability, it would be nice to enable downstream dependencies to pin a description to the specific commit they are using.
The current build fail is caused by clemense/yourdfpy#49. PR submitted upstream with a fix.
It won't work in the long run, because multi-threading.
When loading a robot description from MuJoCo Menagerie, it seens it is more common to load the scene.xml
files for each description rather than the individual robot files (that have, notably, no ground).
The proposal is then to make all MJCF descriptions loaded via robot_descriptions
go for scene.xml
by default, with optionally a variant #62 for bare robots.
The following error happens when the repository hasn't pulled the required commit:
git.exc.GitCommandError: Cmd('git') failed due to: exit code(128)
cmdline: git checkout e946426aaaa56f59e14ad24ed2c22a3b1a04f124
stderr: 'fatal: reference is not a tree: e946426aaaa56f59e14ad24ed2c22a3b1a04f124'
We can use e.g. tox-conda to install iDynTree for conda and test that all descriptions load successfully with it.
Good Day,
This issue is just to call attention to a missing dependency during package build and install. Specifically, yourdfpy
package is missing as a description and throws an error when using the CLI.
I will submit a pull request with the change soon if it is not easily fixed.
PS: THANKS for this package, you save hours of pain in the ass to any newcomer in robotics.
RoboMeshCat looks like a nice alternative to yourdfpy with animation and video rendering.
The following test fails with the current code:
load_pinocchio("draco3_description", commit="5afd19733d7b3e9f1135ba93e0aad90ed1a24cc7")
load_pinocchio("baxter_description")
The first calls sets a custom commit environment variable, not cleared when processed by the second one.
This one is a blocker for stephane-caron/pink#80
All links under Examples give me a "Not found" page if I'm on the master branch. This does not occur if I switch to a tag, say, v0.2.0
.
Perhaps it is because the repository name ends with .py
?
Some URDF descriptions don't load properly in Pinocchio. At present, the descriptions that don't load properly are:
Description | Pinocchio 2.6.4 | Pinocchio 2.6.10 |
---|---|---|
cf2_description |
❌ | ✔️ |
laikago_description |
❌ | ✔️ |
mini_cheetah_description |
❌ | ❌ |
minitaur_description |
❌ | ❌ |
pr2_description |
❌ | ❌ |
Some of them were because of stack-of-tasks/pinocchio#1741. A fix was proposed by Pinocchio maintainers in stack-of-tasks/pinocchio#1742 which made it to 2.6.10.
This issue is here to keep track, and check that Pinocchio eventually loads all of these descriptions successfully.
This works:
robot_description show upkie
But calling the command line tool with no argument yields:
TypeError: unsupported operand type(s) for %: 'tuple' and 'dict'
The README specifies there's wheeled robots but the hyperlink does not show any. Why is this?
The URDF does not load with Pinocchio 2.6.10:
$ python examples/load_in_pinocchio.py mini_cheetah_description
Traceback (most recent call last):
File "examples/load_in_pinocchio.py", line 35, in <module>
robot = load_robot_description(args.name)
File "~/.local/lib/python3.8/site-packages/robot_descriptions/loaders/pinocchio.py", line 69, in load_robot_description
robot = pin.RobotWrapper.BuildFromURDF(
File "~/.local/lib/python3.8/site-packages/cmeel.prefix/lib/python3.8/site-packages/pinocchio/robot_wrapper.py", line 17, in BuildFromURDF
robot.initFromURDF(filename, package_dirs, root_joint, verbose, meshLoader)
File "~/.local/lib/python3.8/site-packages/cmeel.prefix/lib/python3.8/site-packages/pinocchio/robot_wrapper.py", line 21, in initFromURDF
model, collision_model, visual_model = buildModelsFromUrdf(filename, package_dirs, root_joint, verbose, meshLoader)
File "~/.local/lib/python3.8/site-packages/cmeel.prefix/lib/python3.8/site-packages/pinocchio/shortcuts.py", line 45, in buildModelsFromUrdf
geom_model = pin.buildGeomFromUrdf(model, filename, geometry_type, package_dirs = package_dirs)
ValueError: Mesh meshes/mini_body.obj could not be found.
This seems related to stack-of-tasks/pinocchio#1747. Perhaps "meshes/mini_body.obj"
is not considered a relative path in parsers/utils.hpp?
Checks:
package_dirs[0] + "meshes/mini_body.obj
exists on my filesystemmeshes/
by ./meshes/
in the URDF, the description loads properlyA previous commit of the Stretch description failed:
ValueError: Could not load resource ./meshes/base_link.STL
Unable to open file "./meshes/base_link.STL".
Hint: the mesh directory may be wrong.
This error was not caught by the CI 🤔
We could use xacrodoc by @adamheins to import Xacro descriptions, converting them in-cache to URDF.
There's an iiwa7 and an iiwa14 so we should ideally have separate description files for each.
There is a NAO description distributed in https://github.com/ros-naoqi/nao_robot.
However, it does not distribute meshes, see: https://github.com/ros-naoqi/nao_meshes.
This licensing issue makes it impossible to distribute a NAO description in robot_descriptions
for now.
From @Danfoa at #6 (comment):
STL: ASCII file is empty or invalid; no data loaded
Hint: the mesh directory may be wrong.
...
File ".../envs/robotics/lib/python3.7/site-packages/pinocchio/robot_wrapper.py", line 21, in initFromURDF
model, collision_model, visual_model = buildModelsFromUrdf(filename, package_dirs, root_joint, verbose, meshLoader)
File ".../envs/robotics/lib/python3.7/site-packages/pinocchio/shortcuts.py", line 45, in buildModelsFromUrdf
geom_model = pin.buildGeomFromUrdf(model, filename, geometry_type, package_dirs)
ValueError: Argument geometry_model should be a GeometryModel
First of all, thank you so much for maintaining this valuable repository!
It would be possible to bump the version of example-robot-data in
robot_descriptions.py/robot_descriptions/_repositories.py
Lines 89 to 93 in ae81aed
d0d9098d752014aec3725b07766962acf06c5418
)?
Unfortunately, the version v4.0.3 does not include the inertial parameters in the Franka panda robot, limiting the usage of the URDF file for some applications.
Some descriptions have variants (like the "left" and "right" versions of the Allegro hand) that are currently only available when importing submodules. We could add a variant
keyword argument to load_robot_description
so that users can access it from there as well.
An XML error has appeared in the yourdfpy CI workflow:
2024-01-02T10:08:46.0517945Z File "/home/runner/work/robot_descriptions.py/robot_descriptions.py/.tox/loader-yourdfpy/lib/python3.8/site-packages/collada/__init__.py", line 210, in __init__
2024-01-02T10:08:46.0519697Z self.xmlnode = ElementTree.ElementTree(element=None,
2024-01-02T10:08:46.0520666Z File "src/lxml/etree.pyx", line 3183, in lxml.etree.ElementTree
2024-01-02T10:08:46.0521806Z File "src/lxml/parser.pxi", line 1955, in lxml.etree._parseDocument
2024-01-02T10:08:46.0522961Z File "src/lxml/parser.pxi", line 1975, in lxml.etree._parseMemoryDocument
2024-01-02T10:08:46.0524057Z File "src/lxml/parser.pxi", line 1862, in lxml.etree._parseDoc
2024-01-02T10:08:46.0525564Z File "src/lxml/parser.pxi", line 1145, in lxml.etree._BaseParser._parseDoc
2024-01-02T10:08:46.0526850Z File "src/lxml/parser.pxi", line 618, in lxml.etree._ParserContext._handleParseResultDoc
2024-01-02T10:08:46.0528089Z File "src/lxml/parser.pxi", line 728, in lxml.etree._handleParseResult
2024-01-02T10:08:46.0529191Z File "src/lxml/parser.pxi", line 657, in lxml.etree._raiseParseError
2024-01-02T10:08:46.0529995Z File "<string>", line 83
2024-01-02T10:08:46.0530832Z lxml.etree.XMLSyntaxError: xmlSAX2Characters: huge text node, line 83, column 10000427
This error coincides with the release of lxml 5.0.0.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.