Skip to content

adding low cost robot arm (koch v1.1) URDF #172

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

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

pweids
Copy link

@pweids pweids commented Jul 10, 2025

I wanted to use the Koch v1.1 URDF in projects with LeRobot and Rerun, which can ingest URDFs. I saw it was in awesome-robot-descriptions, but not here. So I just brought it into here.

I tested it by running directly:

>>> from robot_descriptions.loaders.yourdfpy import load_robot_description
>>> robot = load_robot_description("low_cost_robot_arm_description")
>>> robot.joint_names
['joint_1', 'joint_2', 'joint_3', 'joint_4', 'joint_5', 'joint_6']

(tox had a lot of unrelated failures that I didn't want to wade through for a small addition like this)

@coveralls
Copy link

coveralls commented Jul 11, 2025

Pull Request Test Coverage Report for Build 16225737099

Details

  • 6 of 6 (100.0%) changed or added relevant lines in 1 file are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.009%) to 98.105%

Totals Coverage Status
Change from base Build 16225601439: 0.009%
Covered Lines: 1191
Relevant Lines: 1214

💛 - Coveralls

@stephane-caron
Copy link
Member

Thank you for starting this PR 👍 It looks like the description does not load successfully in PyBullet:

   b3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:
  No inertial data for link, using mass=1, localinertiadiagonal = 1,1,1, identity local inertial frameb3Warning[examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp,126]:
  ...
  ======================================================================
  ERROR: test_low_cost_robot_arm_description (test_pybullet.TestPyBullet)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
    File "/home/runner/work/robot_descriptions.py/robot_descriptions.py/tests/loaders/test_pybullet.py", line 54, in test
      load_robot_description(description)
    File "/home/runner/work/robot_descriptions.py/robot_descriptions.py/.tox/loader-pybullet/lib/python3.9/site-packages/robot_descriptions/loaders/pybullet.py", line 50, in load_robot_description
      robot = pybullet.loadURDF(module.URDF_PATH, **kwargs)
  pybullet.error: Cannot load URDF file.

Does it happen as well if you try to load it in PyBullet on your machine?

@pweids
Copy link
Author

pweids commented Jul 14, 2025

unfortunately not. Looks like it's an issue with the URDF upstream. The error I get is:

b3Printf: /Users/paul/.cache/robot_descriptions/koch_description/simulation/follower.urdf:27: cannot find 'follower/meshes/base_link.STL' in any directory in urdf path

The URDF asks for filename="package://follower/meshes/base_link.STL"

But the URDF looks like directory looks like:

.
└── simulation
    ├── follower.urdf
    └── meshes
        ├── base_link_motor.STL
        ├── base_link.STL
        ├── link_1_motor.STL
        ├── link_1.STL
        ├── link_2_motor.STL
        ├── link_2.STL
        ├── link_3_motor.STL
        ├── link_3.STL
        ├── link_4_motor.STL
        ├── link_4.STL
        ├── link_5_motor.STL
        ├── link_5.STL
        └── link_6.STL

Odd that it works with yourdfpy, but not pybullet. Not sure where to go from here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants