Skip to content

generate_sphere_urdf.py fails for some values of --branch or --depth #7

@mbrauckmann-bdai

Description

@mbrauckmann-bdai

I'm Attempting to generate a spherized urdf for the Boston Dynamics Spot robot. using the urdfs available here as the source.

when I invoke generate_sphere_urdf.py I get errors when attempting to increasing the number of spheres. for example
python generate_sphere_urdf.py --branch=1 standalone_arm.urdf works but produces a urdf with only 18 spheres. If I attempt to increase this
python generate_sphere_urdf.py --branch=2 standalone_arm.urdf I get the following error.

Spherizing arm_link_fngr::spot_description/meshes/arm/collision/right_tooth.obj
Processing pre-loaded mesh
Traceback (most recent call last):
File "/workspaces/no-crash/ext/foam/scripts/generate_sphere_urdf.py", line 144, in
Fire(main)
File "/home/mbrauckmann/.local/lib/python3.10/site-packages/fire/core.py", line 135, in Fire
component_trace = _Fire(component, args, parsed_flag_args, context, name)
File "/home/mbrauckmann/.local/lib/python3.10/site-packages/fire/core.py", line 468, in _Fire
component, remaining_args = _CallAndUpdateTrace(
File "/home/mbrauckmann/.local/lib/python3.10/site-packages/fire/core.py", line 684, in _CallAndUpdateTrace
component = fn(*varargs, **kwargs)
File "/workspaces/no-crash/ext/foam/scripts/generate_sphere_urdf.py", line 133, in main
mesh_spheres = {mesh.name: sh.get_spherization(mesh.name, depth, branch) for mesh in meshes}
File "/workspaces/no-crash/ext/foam/scripts/generate_sphere_urdf.py", line 133, in
mesh_spheres = {mesh.name: sh.get_spherization(mesh.name, depth, branch) for mesh in meshes}
File "/workspaces/no-crash/ext/foam/foam/init.py", line 256, in get_spherization
spherization = self.ps.get(name)
File "/workspaces/no-crash/ext/foam/foam/init.py", line 131, in get
return self.waiting[name].result()
KeyError: 'arm_link_sh0::spot_description/meshes/arm/collision/arm_link_sh0_left_motor.obj'

A similar issue occurs with the armless urdf. which has worked for branch value up to the default of 8, but fails when changing the depth value
python generate_sphere_urdf.py --depth=2 spot.urdf generates this error which indicated the mesh is invalid. but it works with the same mesh and --depth=1

Traceback (most recent call last):
  File "/workspaces/no-crash/ext/foam/foam/__init__.py", line 81, in spherize_mesh
    spheres = compute_spheres(loaded_mesh, **spherization_kwargs)
  File "/workspaces/no-crash/ext/foam/foam/external/__init__.py", line 225, in compute_spheres
    return compute_spheres_helper(mesh, command, method)
  File "/workspaces/no-crash/ext/foam/foam/external/__init__.py", line 63, in compute_spheres_helper
    raise RuntimeError(f"Failed to create spheres for mesh. Mesh is probably invalid. {sphere_output.stdout}")

see attached file for the rest of the output.

depth3_full_output.txt

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions