EXIT: Invalid number in NLP function or derivative detected.
(6.328051371, [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 … 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], SolverLog(Matrix{Float64}(undef, 5412, 0), Float64, Float64, Float64, Float64, Float64, -999))
This even happens for unconstrained optimization problems and simple constraints, like the end effector being constrained at a few knots to be close to its current location (via TORA.constrain_ee_position!).
The Invalid number in NLP function or derivative detected means that Ipopt tried to evaluate something like log(0) or 1 / 0.
But since TORA is constructing the problem, I’m not sure what the next step should be. Does your custom file lead to some singularity where there isn’t a feasible solution? You could try changing the initial starting point.
TORA.jl is a library for planning robot motion that takes into account the full-order system dynamics. I.e., it is not a kinematic motion planner, and instead considers the mass/inertia parameters of every link throughout the kinematic chain of a robot.
Your custom URDF file does not seem to have any of these dynamic quantities for each of your robot’s links.
EDIT: Having said that, I am definitely the one to blame for not having implemented a method to check whether the URDF being loaded has all the dynamics quantities required by the package, and then logging a more user-friendly message explaining the problem. Can you please open an issue on GitHub for this?