[ros-users] Bullet change in unstable for Fuerte -- EFFECTS ALL PACAKGES USING Bullet and tf

Tully Foote tfoote at willowgarage.com
Mon Jun 18 07:58:51 UTC 2012


Hi Pat,

Thanks for the suggestion. I've added it to the migration guide.

Tully

On Wed, Jun 13, 2012 at 5:23 PM, Patrick Bouffard <
bouffard at eecs.berkeley.edu> wrote:

> Could/should this perhaps be included in or linked to from the Fuerte
> migration guide (http://ros.org/wiki/fuerte/Migration)? It took me
> awhile to find this again, as I didn't recall that it was a ros-users
> post.
>
> Thanks,
> Pat
>
> On Mon, Nov 28, 2011 at 8:05 PM, Tully Foote <tfoote at willowgarage.com>
> wrote:
> > Hi everyone,
> >
> > If you are using Bullet datatypes this effects you! As we are approaching
> > the release of ROS Fuerte, please read!
> >
> > If you want the quick version jump to the = Updates to code = section
> below.
> >
> >
> > = Background =
> > As we build up the ROS ecosystem we are working hard to
> keep standardization
> > for as much code as possible.  When we started using Bullet we provided
> many
> > patches to bullet upstream for patches and consistency in the API.  We
> have
> > provided those patches to the ROS users of Bullet in the form of a
> patched
> > library.  Some of these patches have not been able to be accepted
> upstream.
> >  Although the patches make Bullet easier to use in robotics context,  as
> ROS
> > grows, we do not want to keep a divergent Bullet API in our repository.
> >  Unfortunately this sort of change is a painful one.
> >
> > We have discussed this change at length as part of the fuerte Planning
> > Thirdparty SIG http://www.ros.org/wiki/fuerte/Planning/Thirdparty and
> could
> > do a full tick-toc cycle and be done in 1.5 years, leave
> > things significantly out of date, and also wouldn't prevent nasty bugs in
> > unmigrated code.  The following method will provide most users with
> compile
> > errors, except for the people using significant amounts of bullet's API.
>  We
> > realize these changes are a pain, but we believe that the pain is worth
> it.
> >
> >
> > = The change =
> > The portion of the Bullet LinearMath library which was used by tf has
> been
> > copied into the tf namespace and renamed to avoid collisions.
> >
> > == Requirements to port your code ==
> > Datatype copies:
> > btMatrix3x3 -> tf::Matrix  (previously a typedef)
> > btVector3 -> tf::Vector3  (previously a typedef)
> > btScalar  -> tf::Scalar
> > btQuaternion -> tf::Quaternion  (previously a typedef)
> > btMinMax -> tf::MinMax
> > btQuadWord -> tf::QuadWord
> >
> > Include path changes:
> > LinearMath/bt*.h -> tf/LinearMath/*.h
> >
> >
> >
> > == Differences between the patched version and the unpatched version ==
> > If you have not made the above transition you will observe the following
> > differences, note some of these cannot be caught by the compiler.
> >
> > btTransform.setEulerZYX and getEulerZYX ROS version (Yaw pitch roll about
> > ZYX axes respectively, BT form are about respectively about XYZ)
>  (marked as
> > deprecated in ROS version)
> > btQuaternion(yaw, pitch, roll)  ROS version axes ZYX, BT version YXZ
> > btMatrix3x3 loses setRPY and getRPY methods do not exist in Bullet
> version
> > btQuaternion no longer has angleShortestPath method
> >
> >
> > = Updates to code =
> > Choose one of the following two sections
> >
> > == Packages not depending on bullet directly ==
> > If you are using the tf datatypes(previously typedefed) no changes are
> > needed.
> > If you are using the bullet datatypes listed above and no other bullet
> > datatypes the following command is expected to fix most stacks.
> >
> > In a package which you want to convert run the following:
> >
> > `rosrun tf bullet_migration_sed.py`
> >
> > This will attempt to fix all your include paths and type declarations to
> use
> > the new data types in that directory recursively.  If you make sure that
> > bullet is not in your manifest and then errors should be caught by the
> > compiler.
> >
> > == Packages using other bullet datatypes ==
> > If you are using more of the Bullet API you should not run this script.
>  And
> > you will need to audit all of your Euler angle methods to confirm their
> > order.  Please review every instance of the APIs listed above for usage.
> >
> > All of these changes are avoided if you use the new tf types.  For easier
> > interoperability, the tf types have a method toBt() and assignment
> operators
> > from the equivilant Bullet datatypes.  The above referenced sed script
> can
> > form a good basis for your own scripts if necessary.
> >
> > If you have any questions about how to update any portion of your code
> for
> > the API changes please ask with the snippet of code on answers.ros.orgwith
> > bullet_migration as the tag.
> >
> > The script is also attached.  The script has been used to successfully
> > completely convert several test packages so far.  If there are
> improvements
> > which can be made please ticket them and we will rerelease it such that
> > others can get the improvements quickly.
> >
> > Tully
> >
> >
> > --
> > Tully Foote
> > Systems Engineer
> > Willow Garage, Inc.
> > tfoote at willowgarage.com
> > (650) 475-2827
> >
> > _______________________________________________
> > ros-users mailing list
> > ros-users at code.ros.org
> > https://code.ros.org/mailman/listinfo/ros-users
> >
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>



-- 
Tully Foote
tfoote at willowgarage.com
(650) 475-2827
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-users/attachments/20120618/1519aafb/attachment-0004.html>


More information about the ros-users mailing list