Skip to content

Map_base::at error when parsing SRDF #156

@Mattolo4

Description

@Mattolo4

Im trying to setup roboplan working for robots with complex models (>40 joints). With these models the SRDF file becomes very large due to the extensive <disable_collisions> entries required (+1k for full coverage).

When trying to load the complete SRDF via ros topic (/robot_description_semantic), in order to initialize the Scene object; the ** Map_base::at error arise. I guess it was correlated to the lenght of the SRDF since to overcome this i created a minimal srdf with only few <disable_collisions> entries, finally leading me to init that object.
I'm having trouble replicating the exact srdf-too-long error, but im getting the Map_base::at error shown below for the long srdf but not the minimal version.

In my case the SRDF is quite dynamic, and changes everytime the robot configuration changes, so refactor to a minimal srdf everytime is not ideal (i cannot have a single srdf for every configuration). Ideally i would subscribe to that topic and feed the Scene with the msg data.

Could roboplan generate these automatically based on the kinematic chain (adjacent links)? Or is there a way, unknown to me, that let me config bigger srdf files to init the Scene?

To reproduce the error i did a simple script in a sourced roboplan environment (reproduce_error.py). This loads both the minimal and the whole SRDF and try to init the Scene firstly with the whole file, if it fails it retries with the minimal. I attach the files used by the script (the .srdf is not supported, i attach the file with the extension changed to .txt), and the script itself.

srdf_minimal.txt
urdf.txt
whole_srdf.txt
reproduce_error.py

The output log i retrieve is something like:
`~/exchange/roboplan_ws$ ros2 run roboplan_grasp_demo reproduce_error
URDF loaded, length: 102375 characters
SRDF loaded, length: 225821 characters
Minimal SRDF loaded, length: 8398 characters

Creating RoboPlan Scene using LONG SRDF...
Failed to create scene: _Map_base::at

Retrying with minimal SRDF...
Scene created successfully with minimal SRDF!`

Thanks a lot in advance!

Metadata

Metadata

Assignees

No one assigned

    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