-
Notifications
You must be signed in to change notification settings - Fork 417
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
unify interp_motion to match linear_axis/vel the other motions #273
base: master
Are you sure you want to change the base?
unify interp_motion to match linear_axis/vel the other motions #273
Conversation
also added a first set of unit tests for interp_motion
hey - I see that some tests failed - basically Win32 and Debug version ... it's the equality test of transformations .... how you test for (near) equalities? |
Do you have access to a windows machine? In my limited history with FCL's CI, the times it failed on Windows I was able to reproduce locally (but only on a windows machine). |
Assuming it's only a rounding issue, you can use Eigen's isApprox method to apply a threshold. Although, I am curious why its equal to the last bit in unix but not windows.... |
Also, it might be worth stealing some code from Drake -- the gtest feedback on comparing matrices is a lot more helpful beyond a "nope...didn't match" |
No access to windows ... I'll check isApprox and Drake's code .. wonder if such essential code shouldn't be part of Eigen itself |
If I get a few cycles, I'll give it a stab on my windows VM. I'll let you know. But, certainly, the |
ouffff .. also isApprox does not give correct answers ... what's wrong on these installations? |
@geoynomous, the test failures appear to be attempts to do exact matches on floating point numbers, not isApprox(). For example, see the Travis log here (scroll down until after the tests execute to see the test output). |
For example:
|
CI looks much better. On Travis the only failures were the unresolved Mac problems that are independent of this PR. On Appveyor (Windows) there was a real test failure though:
|
I've been looking at this again .... there must be something with the configuration of the test instances - as most test (in particular on Linux and newer compilers) work well .... so it's worth to investigate whether the arithmetic performed on the failing (mostly windows) platforms is correctly installed - single vs double precision .. similar to #291 |
The Interpolation motion returns a
linearVelocity()
with is a vector, in contrast to other motions that split the value intolinearVelocity()
(a scalar) andlinearAxis()
which is a normalized vector. In this PR we're adapting the Interpolation motion to match the other motions.Also added a first set of unit tests.
Question: Most motions have a test whether
dt > 1
and if so they setdt = 1
. Why is this test one-sided? That is, why not testing fordt < 0
and settingdt = 0
then?This change is