Error creating rmp handler (omni.isaac.motion_planning: RMP Extension)


I have been created my own resources for a Kuka iiwa and Willow Garage PR2 robots, based on “lula/lula_franka” motion planning resources located in: /isaac-sim/_build/linux-x86_64/release/exts/omni.isaac.motion_planning/resources/lula/lula_franka

Kuka iiwa works nice (few joints and links)… With the registered RMP handler I can move it using the goLocal method.

But, for PR2 I get errors during the modification of the resources to create the handler using trial and error approach. This one doesn’t let me advance…

2020-08-02 18:59:44 [381,545ms] [Info] [omni.isaac.motion_planning.plugin] Register Articulation at /environments/env/WillowGarage/pr2
2020-08-02 18:59:44 [381,545ms] [Info] [omni.isaac.motion_planning.plugin] Creating rmp from
F0802 18:59:44.344962 19073 rigid_body.h:177] Joint bounds have not been set.
*** Check failure stack trace: ***
    @     0x7f8e77de669c  google::LogMessage::Fail()
    @     0x7f8e77de65f8  google::LogMessage::SendToLog()
    @     0x7f8e77de5f76  google::LogMessage::Flush()
    @     0x7f8e77de9491  google::LogMessageFatal::~LogMessageFatal()
    @     0x7f8e78ccf65f  lula::kinematics::Robot::Init()
    @     0x7f8e78ccfe30  lula::kinematics::Robot::Robot()
    @     0x7f8e79150c43  MotionPolicy::initialize()
    @     0x7f8e791499e8  MpRegisterRmp()
    @     0x7f8e774b99bf  _ZNSt17_Function_handlerIFmRN4omni5isaac15motion_planning14MotionPlanningESsSsSsSsSsbEZ21wrapInterfaceFunctionIS3_mJSsSsSsSsSsbEESt8functionIFT0_RT_DpT1_EEMS9_PFS8_SC_EEUlS4_SsSsSsSsSsbE_E9_M_invokeERKSt9_Any_dataS4_OSsSN_SN_SN_SN_Ob
    @     0x7f8e774d4112  _ZZN8pybind1112cpp_function10initializeISt8functionIFmRN4omni5isaac15motion_planning14MotionPlanningESsSsSsSsSsbEEmJS7_SsSsSsSsSsbEJNS_4nameENS_9is_methodENS_7siblingEEEEvOT_PFT0_DpT1_EDpRKT2_ENKUlRNS_6detail13function_callEE1_clESQ_
    @     0x7f8e774cfc1f  pybind11::cpp_function::dispatcher()
    @     0x7f910fd4d41a  _PyCFunction_FastCallDict
    @     0x7f910fdd8c49  (unknown)
    @     0x7f910fddcc3a  _PyEval_EvalFrameDefault
    @     0x7f910fdd8b0b  (unknown)
    @     0x7f910fde18c5  _PyFunction_FastCallDict
    @     0x7f910fce72ae  _PyObject_FastCallDict
    @     0x7f910fce73ad  _PyObject_Call_Prepend
    @     0x7f910fce7078  PyObject_Call
    @     0x7f910fd6a449  (unknown)
    @     0x7f910fd65782  (unknown)
    @     0x7f910fce71e9  _PyObject_FastCallDict
    @     0x7f910fdd8c49  (unknown)
    @     0x7f910fddcc3a  _PyEval_EvalFrameDefault
    @     0x7f910fdd8b0b  (unknown)
    @     0x7f910fdd8d82  (unknown)
    @     0x7f910fddcc3a  _PyEval_EvalFrameDefault
    @     0x7f910fd0d5fc  _PyGen_Send
    @     0x7f9105bde1d7  (unknown)
    @     0x7f9105bdf05a  (unknown)
    @     0x7f910fce7078  PyObject_Call
    @     0x7f910fddd136  _PyEval_EvalFrameDefault
Fatal Python error: Aborted

So, Is there any idea to solve this error? Where can I find more detailed documentation about the RMP Extension and its resources that help me understand how to build a specific RMP handler?

This is the modified resource for PR2. Note that it just tries to configure the manipulation for the right hand (19.6 KB)

Also, there is a detailed description of the PR2 urdf here

Thanks in advance…

Hi Tony,

Thanks for your interest in applying RMP to another robot.
Full RMP support will come in the future releases, and the RMP features in the current release are limited.


Finally, I was able to apply RMP (even with current featured limited) to PR2, at least for the right arm…
It was an interesting work that involved modifying the original URDF to adapt to RMP and the use of some Isaac Sim tools like Physx debug…

There is some vibration in the end-effector that maybe can be reduced modifying some values in the “rmpflow_common” configuration file… our using other strategies 😅


1 Like

Great job!