unitreerobotics / unitree_mujoco

BSD 3-Clause "New" or "Revised" License
211 stars 49 forks source link

MPR solver is removed from Mujoco, resulting c++ compiling failed #22

Open Revindell opened 2 months ago

Revindell commented 2 months ago

Hi,

in the newest Mujoco release, the MPR solver is removed from mjOption (see link), which will result in an error when compiling the C++ library.

/unitree_mujoco/simulate/src/mujoco/simulate.cc: In function ‘void {anonymous}::MakePhysicsSection(mujoco::Simulate*, int)’: /home/deyu.fu/unitree_mujoco/simulate/src/mujoco/simulate.cc:748:48: error: ‘mjOption’ {aka ‘struct mjOption_’} has no member named ‘mpr_iterations’; did you mean ‘ls_iterations’? 748 | {mjITEM_EDITINT, "MPR Iter", 2, &(opt->mpr_iterations), "1 0 1000"}, | ^~~~~~~~~~~~~~ | ls_iterations

toushei commented 2 months ago

Try using the older version of Mujoco 3.2.1. It seems like the developers used this version specifically since otherwise it gives library/header version mismatches.

KanonWY commented 2 months ago

I made some modifications according to the error report, and it can run successfully. I hope it helps. maybe you can use Mujoco3.2.1 just like @toushei des. link

ZMcc18 commented 1 month ago

The newly installed mujuco version should be 3.2.4, and the error is found to say that there is no such member under the mjOpetion, you can find the mjOption class in mjmodel.h under /usr/local/include/mujuco, and found that the ccd_iterations has been added, and mpr has been deleted, maybe you can try to unitree_mujoco/simulate/src/ Where the mujoco/simulation.cc error is reported, change the corresponding MPR to ccd