[SRU] urdfdom-headers: critical numerical issues problem when converting angles

Bug #1471047 reported by Jose Luis Rivero
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
urdfdom-headers (Ubuntu)
Fix Released
Low
Unassigned
Trusty
Won't Fix
Undecided
Unassigned

Bug Description

[Impact]

* When using the urdfdom headers versions 0.2.3 (on Trusty) and 0.3.0-1
  (Utopic and Vivid) there is a problem in the maths which means that two
  very similar quaternions can result in different and non-equivalent roll
  pitch yaw angles. This is a severe bug for angles related to a severe bug
  in the mathematical calculations.

* Upstream bug: https://github.com/ros/urdfdom/issues/49

* urdfdom-headers is a package extensively use by probably the most famous
  open source robotics framework, ROS (Robot Operative System). So it
  potentially affects a big part of the robotics open source community.

* The patch is already hosted in the debian-science repository (waiting for
  mentor upload) and will land soon in Debian Sid and Ubuntu Wily after it:
  http://anonscm.debian.org/cgit/debian-science/packages/urdfdom-headers.git/commit/?id=c92c198a30d34a74abcf1905eeb484bfc76b0f5e

[Test Case]

* apt-get install libboost-test1.54-dev liburdfdom-headers-dev

* Download the urdf_unit_test.cpp from: https://raw.githubusercontent.com/ros/urdfdom/master/urdf_parser/test/urdf_unit_test.cpp

* g++ urdf_unit_test.cpp -lboost_unit_test_framework -o test

* ./test

* The expected result at the end of the test with the fixed version is:
  ...
  *** No errors detected
  The failing versions should report:
  ...
  urdf_unit_test.cpp(56): error in "test_rotation_get_set_rpy_idempotent":
  check quat_are_near(rot0, rot1) failed
  …
  *** 1 failure detected in test suite "URDF_UNIT_TEST"

[Regression Potential]

* urdfdom-headers is a header only package and we are not altering the
  ABI/API in any sense, just changing the way of computing maths.

* The dangerous computations (mostly asin and atan2) present in the patch
  were already present in the released code. That should minimize the
  possible regressions introduced by the patch. The computation of angles is
  already broken, so a possible bug in the new computation will not bring a
  worse state than current one.

[Other Info]

* I'm attaching the debdiff related to Trusty release, but I'm available to make any other needed, Vivid or Utopic.

Revision history for this message
Jose Luis Rivero (j-rivero) wrote :
Mathew Hodson (mhodson)
tags: added: patch utopic vivid
Changed in urdfdom-headers (Ubuntu):
importance: Undecided → Low
status: New → Fix Released
Mathew Hodson (mhodson)
description: updated
Revision history for this message
Jose Luis Rivero (j-rivero) wrote :

Thanks for handling the bug Mathew.

Just one question: I'm seeing the bug marked as "Fix Released" but can not find the new version in Trusty or Vivid.

Revision history for this message
Julian Andres Klode (juliank) wrote :

Trusty is eol, unsubscribing ubuntu-sponsors.

Changed in urdfdom-headers (Ubuntu Trusty):
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.