Comments (3)
Good question. Exactly, this is also related to the way rviz shapes are being used to approximate the actual height map used by the optimizer. If you look at
towr/towr_ros/src/height_map_examples.cc
Line 112 in dee989c
you see that for the optimizer the gap is modeled as a parabola. This parabola cannot be easily represented with rviz shapes, but the foothold you show is placed exactly on this parabola.
PS: You can also model the gap directly as the rviz picture, with non-continuous heights. This can work as well, however having the gradient information of the parabola available helps the solver converge quicker.
from towr.
Hi @ferrolho, yes, this looks good, i think the optimizer is doing exactly as it's supposed to and only the visualization in rviz is off.
The height map the optimizer user internally, with a width of 1m is encoded here:
The class that tries to replicate the internal height map with rviz shapes is faultily using only 0.5m and is coded here:
towr/towr_ros/src/rviz_terrain_builder.cc
Line 163 in dee989c
So for now just make sure these coincide and I'm actually working on how not to duplicate that information, but at the same time introduce no dependencies on rviz in the core solver class. I'll also fix this bug in that PR and update this issue then.
from towr.
Hey @awinkler, thank you for the prompt reply!
This was indeed an issue and after setting double l_gap = 1.0;
result looks better:
However, I am still a bit confused... This is the log of the optimiser I get on my slow laptop:
Number of Iterations....: 69
(scaled) (unscaled)
Objective...............: 0.0000000000000000e+00 0.0000000000000000e+00
Dual infeasibility......: 7.9408063850289635e-06 7.9408063850289635e-06
Constraint violation....: 5.2894000180652583e-12 1.2967404927621828e-11
Complementarity.........: 1.8847416957485208e-06 1.8847416957485208e-06
Overall NLP error.......: 7.9408063850289635e-06 7.9408063850289635e-06
Number of objective function evaluations = 225
Number of objective gradient evaluations = 64
Number of equality constraint evaluations = 225
Number of inequality constraint evaluations = 225
Number of equality constraint Jacobian evaluations = 71
Number of inequality constraint Jacobian evaluations = 71
Number of Lagrangian Hessian evaluations = 0
Total CPU secs in IPOPT (w/o function evaluations) = 1.221
Total CPU secs in NLP function evaluations = 25.192
EXIT: Optimal Solution Found.
It says "Optimal Solution Found" and does not report any constraint to have been violated. However, in the animation above we can see that, at least visually, this does not seem to be the case:
from towr.
Related Issues (20)
- Obtain some status information of the robot HOT 2
- CMake for other projects
- Advice on how to decrease unrealistic contact forces between spline nodes HOT 5
- how to increase leg lift height when swing phase? HOT 2
- How to implement this formulation symbolically (eg. in CasADi) HOT 3
- Integrating existing height map(Grid map) with Towr HOT 3
- link for "Add your own robot" dead HOT 1
- derivative check with IPOPT HOT 1
- an Error
- add cool terrains/height-maps
- Phase duration optimization under a specified gait
- Broken link in readme file HOT 1
- nonlinear trajectory optimization for quadruped robot
- ROS noetic
- Calculate forces during standing HOT 1
- ROS 2 Foxy Release HOT 2
- Assertion failed
- Experiencing a strange behaviour HOT 1
- A small bug in HeightMap::GetDerivativeOfNormalizedBasisWrt()
- Optimization reporting infeasibility on simple terrains
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from towr.