-
Notifications
You must be signed in to change notification settings - Fork 32
Description
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!