This page lists changes that are made in the 1.0.x series of geometry (Box Turtle).
Contents
1.0.4 (forthcoming)
change_notifier now waits after a TransformException occurs
1.0.3 (2010-06-14)
Fixed MessageFilter's behavior when messages arrive faster than its timer update rate (r28546, r28549, <<Ticket(ros-pkg 3810)>>)
tf_conversions Fixed <<Ticket(ros-pkg 3915)>>
fix for missing .pc file on Debian squeeze <<Ticket(ros-pkg 3867)>>
- pull kdl from tar instead of svn
1.0.2 (2010-03-08)
tf - Change to unreleased API
change_notifier supports multiple frames
change_notifier publishes tf/tfMessage instead of geometry_msgs/PoseStamped messages
1.0.1 (2010-02-09)
Patch TransformBroadcaster class to use searchParam properly for tf_prefix
- Update review status
- Patch quaternion validatation to not be over strict. #3758
1.0.0 (2010-01-12)
Notes about recent changes
- The topic "/tf_message" is no longer valid. If you are using bag files it is recommended to rebag them remapping the topic to "/tf".
- Playback can be remapped each time with "/tf_message:=/tf" on the commandline
- The bagfile can be rebagged with the following script at the bottom of this description
- Deprecated functions have been removed:
All tf::Stamped<tf::Transform> methods have been removed, there are drop in replacements supporting datatype tf::StampedTransform.
this includes variants of lookupTransform(), data converter methods, setTransform(), sendTransform()
tf::Stamped<T> no longer has a child_frame_id field
MessageNotifier has been removed.
TransformListener::canTransform() with timeout has been removed, (use waitForTransform())
transformStampedTFToMsg()
transformStampedMsgToTF()
- executable transform_sender is removed, it's replacement is static_transform_publisher (Exactly the same functionality)
- there are new helper functions in "tf/transform_datatypes.h" for working around Bullet deprecations
tf::createQuaternionFromYaw()
tf::createQuaternionFromRPY()
tf::createIdentityQuaternion()
New exception tf::InvalidArgument can be thrown for bad arguments, it still inherits from tf::TransformException. This is used for things like unnormalized quaternions which would produce nan results.
tf::remap() methods have been deprecated
replace them with tf::resolve() or tf::TransformListener::resolve()
There is a lot of new documentation on the wiki at tf
Rebagging script
1 #!/usr/bin/env python
2
3 NAME = 'tf_message_to_tf.py'
4 PKG = 'rosrecord'
5 import roslib; roslib.load_manifest(PKG)
6 import rospy
7 import rosrecord
8 import os
9
10 def split_rawstereo(inbags):
11 for b in inbags:
12 print "Trying to migrating file: %s"%b
13 outbag = b+'.tmp'
14 rebag = rosrecord.Rebagger(outbag)
15 try:
16 for (topic, msg, t) in rosrecord.logplayer(b, raw=True):
17 if topic == 'tf_message':
18 rebag.add('tf', msg, t, raw=True)
19 elif topic == '/tf_message':
20 rebag.add('/tf', msg, t, raw=True)
21 else:
22 rebag.add(topic, msg, t, raw=True)
23 rebag.close()
24 except rosrecord.ROSRecordException, e:
25 print " Migration failed: %s"%(e.message)
26 os.remove(outbag)
27 continue
28
29 oldnamebase = b+'.old'
30 oldname = oldnamebase
31 i = 1
32 while os.path.isfile(oldname):
33 i=i+1
34 oldname = oldnamebase + str(i)
35 os.rename(b, oldname)
36 os.rename(outbag, b)
37 print " Migration successful. Original stored as: %s"%oldname
38
39 if __name__ == '__main__':
40 import sys
41 if len(sys.argv) >= 2:
42 split_rawstereo(sys.argv[1:])
43 else:
44 print "usage: %s bag1 [bag2 bag3 ...]"%NAME