Package Summary

Tags No category tags.
Version 0.25.12
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros2/geometry2.git
VCS Type git
VCS Version humble
Last Updated 2025-04-24
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Chris Lalancette
  • Alejandro Hernandez Cordero

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.25.12 (2025-01-17)

  • Fixing Scalar Header Guards (#755)
  • Contributors: Lucas Wendland

0.25.11 (2025-01-14)

0.25.10 (2024-12-19)

  • Humble "Backport" of #720 (#722)
  • Removed unused var in tf2 (#735) (#737) (cherry picked from commit e791b58f8826a31d8ea11f45b7bf3026f26eab8a) Co-authored-by: Alejandro Hernández Cordero <<ahcorde@gmail.com>>
  • Contributors: Lucas Wendland, mergify[bot]

0.25.9 (2024-11-20)

0.25.8 (2024-08-29)

  • Enable Twist interpolator (backport #646) (#684) * Enable Twist interpolator (#646) Co-authored-by: Tully Foote <<tullyfoote@intrinsic.ai>> (cherry picked from commit 62322b8fa74c90d144dfe32294f6670bf6cfe786) # Conflicts: # tf2/include/tf2/buffer_core.h # tf2_ros/test/test_buffer.cpp Co-authored-by: Alejandro Hernández Cordero <<ahcorde@gmail.com>>

  • Contributors: mergify[bot]

0.25.7 (2024-05-29)

  • [TimeCache] Improve performance for insertData() and pruneList() (backport #680) (#693)
    • Nacho/minor fixes tf2 cache (#658)
    • Remove unused parameter

    * Make use of API function to improve redability `cpp TimePoint TimeCache::getLatestTimestamp() { return storage\_.front().stamp\_; }[ And std::list<T>::front() is(gcclib): ]{.title-ref}cpp reference front() _GLIBCXX_NOEXCEPT { return *begin(); }[ * Same argument as 321bd225afb5c ]{.title-ref}cpp TimePoint TimeCache::getLatestTimestamp() { // empty list case // ... return storage\_.front().stamp\_; }[ and std::list<T>::front(): ]{.title-ref}cpp reference front() _GLIBCXX_NOEXCEPT { return *begin(); }[ * Improve readbility by relying on STL functions By now reading to this block I can tell that we are preventing to inserting a new element in the list, that has a timestamp that is actually older than the max_storage_time_ we allow for * Remove hardcoded algorithmg for STL one The intent of the code is now more clear, instead of relying on raw loops, we "find if" there is any element in the list that has a stamp older than the incoming one. With this we find the position in the list where we should insert the current timestamp: `storage_it]{.title-ref}

    • Remove to better express what this pointer is represetngin

    * Replace raw loop for STL algorithm Remove if any element is older thant the max_storage_time_ allowed, relative to the latest(sooner) time seems clear npw * [TimeCache] Improve performance for insertData() and pruneList() (#680) Co-authored-by: Chris Lalancette <<clalancette@gmail.com>> * Don't break ABI ---------Co-authored-by: Ignacio Vizzo <<ignacio@dexory.com>> Co-authored-by: Eric Cousineau <<eric.cousineau@tri.global>> Co-authored-by: Chris Lalancette <<clalancette@gmail.com>> Co-authored-by: Alejandro Hernández Cordero <<ahcorde@gmail.com>>

  • Add cache_benchmark (backport #679) (#691) Co-authored-by: Eric Cousineau <<eric.cousineau@tri.global>> Co-authored-by: Alejandro Hernández Cordero <<ahcorde@gmail.com>>
  • [cache_unittest] Add direct implementation testing on ordering, pruning (backport #678) (#688) Co-authored-by: Eric Cousineau <<eric.cousineau@tri.global>> Co-authored-by: Alejandro Hernández Cordero <<ahcorde@gmail.com>>
  • Contributors: mergify[bot]

0.25.6 (2024-02-16)

  • Fix constantly increasing memory in std::list (#648)
  • Contributors: Ignacio Vizzo

0.25.5 (2023-11-13)

0.25.4 (2023-09-19)

0.25.3 (2023-07-17)

0.25.2 (2023-01-10)

  • Include required header Scalar.h (#559) (#562)
  • Contributors: mergify[bot]

0.25.1 (2022-08-05)

0.25.0 (2022-04-05)

  • Install includes to include/${PROJECT_NAME} and use modern CMake (#493)
  • Contributors: Shane Loretz

0.24.0 (2022-03-31)

0.23.0 (2022-03-28)

  • forward declare fromMsg to avoid missing symbols in downstream libraries (#485)
  • Contributors: João C. Monteiro

0.22.0 (2022-03-01)

0.21.0 (2022-01-14)

  • tf2: Enable common linter tests (#469)
  • Contributors: Abrar Rahman Protyasha

0.20.0 (2021-12-17)

  • Move time functions into time.cpp.
  • Change a for loop to a while loop.
  • Switch to C++-style casts.
  • Remove totally unused (and unreachable) code.
  • Replace NULL with nullptr.
  • Fix up some comments.
  • Use std::make_shared where we can.
  • Replace two comparisons with empty string to empty().
  • Make sure to include-what-you-use.
  • Remove unnecessary internal method.
  • Remove long-deprecated walkToTopParent overload.
  • Contributors: Chris Lalancette

0.19.0 (2021-10-15)

  • Remove unnecessary test dependencies.
  • Remove some references to the ROS 1 wiki.
  • Add rosidl_runtime_cpp as build_depend and build_export_depend.
  • Minor cleanups in CMakeLists.txt.
  • Remove include directory that doesn't exist.
  • Remove completely unnecessary target_link_libraries.
  • Remove unused speed_test from tf2.
  • Suppress clang warnings about enumerator attributes. (#463)
  • Change TF2Error names to be a bit more descriptive. (#349)
  • Fixed errors due to missing header link. (#432)
  • Contributors: Chris Lalancette, Shivam Pandey

0.18.0 (2021-06-01)

  • Deprecate tf2_geometry_msgs.h (#418)
  • Speedup covariance unwrapping (#399)
  • Contributors: Chris Lalancette, Dima Dorezyuk

0.17.1 (2021-04-06)

  • Change index.ros.org -> docs.ros.org. (#394)
  • Contributors: Chris Lalancette

0.17.0 (2021-03-19)

0.16.0 (2021-01-25)

0.15.1 (2020-12-08)

0.15.0 (2020-11-02)

  • Update maintainers of the ros2/geometry2 fork. (#328)
  • Contributors: Chris Lalancette

0.14.1 (2020-09-21)

  • Active usual compiler warnings in tf2 (#322)
  • Cleanups in buffer_core.cpp. (#301)
  • Add PoseWithCovarianceStamped transform support (#312)
  • Contributors: Chris Lalancette, Ivan Santiago Paunovic, Joshua Whitley

0.14.0 (2020-08-14)

  • Fix a TOCTTOU race in tf2. (#307)
  • Fixed memory leak in Buffer::waitForTransform (#281)
  • Add common linters to tf2. (#258)
  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Martin Ganeff

0.13.4 (2020-06-03)

  • Add missing virtual destructors (#272)
  • Contributors: Ivan Santiago Paunovic

0.13.3 (2020-05-26)

0.13.2 (2020-05-18)

  • Modify error message to not match the pattern for Jenkins MSBuild errors (#265)
  • Contributors: Dirk Thomas

0.13.1 (2020-05-08)

  • export modern CMake interface target (#263)
  • Contributors: Dirk Thomas

0.13.0 (2020-04-30)

  • Added doxyfiles and sphinx Makefiles (#257)
  • Fix displayTimePoint truncation error (#253)
  • rename rosidl_generator_cpp namespace to rosidl_runtime_cpp (#248)
  • Use the new rcutils_strerror function. (#239)
  • Remove unnecessary semicolons. (#235)
  • Export all tf2 dependencies. (#238)
  • Fix a deprecated copy warning by implementing the assignment operator (#201)
  • tf2 add windows cmath constants (#217)
  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Hunter L. Allen, Michel Hidalgo, brawner

0.12.4 (2019-11-19)

0.12.3 (2019-11-18)

  • Provide more available error messaging for nonexistent and invalid frames in canTransform (ros2 #187)
  • Contributors: Emerson Knapp

0.12.2 (2019-11-18)

  • Fix up -Wcast-qual warning (#193) (#197)
  • Contributors: Chris Lalancette

0.12.1 (2019-10-23)

  • Overwrite TimeCacheInterface type with a current input (#151)
  • [tf2] Use ament_target_dependencies where possible
  • Restore conversion via message traits (#167)
  • Contributors: Jacob Perron, Michael Carroll, Vinnam Kim

0.12.0 (2019-09-26)

  • Add pure virtual interface tf2::BufferCoreInterface
  • Guard against invalid iterator (#127)
  • Contributors: Jacob Perron

0.11.3 (2019-05-24)

0.11.2 (2019-05-20)

0.11.1 (2019-05-09)

0.11.0 (2019-04-14)

0.10.1 (2018-12-06)

0.10.0 (2018-11-22)

  • Merge pull request #65 from bsinno/bugfix/fix_identity_transform_behaviour Fix bug in lookupTransform()
  • Fix lookupTransform() behaviour when transforming from a frame to itself
  • revert now unnecessary message initializations (#64)
  • use console_bridge_vendor (#63)
  • Contributors: Alessandro Bottero, Mikael Arguedas, Tully Foote

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
aruco_ros
cartographer_ros
depthai_bridge
find_object_2d
geometry2
test_tf2
tf2_bullet
tf2_eigen
tf2_eigen_kdl
tf2_geometry_msgs
tf2_kdl
tf2_py
tf2_ros
tf2_sensor_msgs
turtle_tf2_cpp
grid_map_ros
depth_image_proc
image_rotate
imu_complementary_filter
rviz_imu_plugin
interactive_marker_twist_server
interactive_markers
laser_filters
laser_geometry
hri
lms1xx
mapviz
mapviz_plugins
multires_image
tile_map
swri_geometry_util
swri_image_util
swri_transform_util
microstrain_inertial_driver
moveit_core
moveit_kinematics
pilz_industrial_motion_planner
moveit_ros_move_group
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_robot_interaction
mrpt_map_server
mrpt_msgs_bridge
mrpt_pf_localization
mrpt_pointcloud_pipeline
mrpt_reactivenav2d
mrpt_tps_astar_planner
mrpt_generic_sensor
mrpt_sensor_bumblebee_stereo
mrpt_sensor_gnss_nmea
mrpt_sensor_gnss_novatel
mrpt_sensor_imu_taobotics
mrpt_sensorlib
mvsim
nonpersistent_voxel_layer
novatel_gps_driver
octomap_server
octomap_ros
pcl_ros
pointcloud_to_laserscan
pose_cov_ops
realsense2_camera
robot_localization
rtabmap_conversions
rtabmap_rviz_plugins
rtabmap_slam
rtabmap_util
rtabmap_viz
rviz_common
rviz_default_plugins
rviz_visual_tools
septentrio_gnss_driver
slam_toolbox
turtlebot3_node
turtlebot3_fake_node
turtlebot3_gazebo
ublox_gps
velodyne_pointcloud
warehouse_ros
moveit2z_client
backward_global_planner
backward_local_planner
forward_global_planner
forward_local_planner
nav2z_planners_common
pure_spinning_local_planner
undo_path_global_planner
sm_dance_bot
sm_dance_bot_warehouse
sm_dance_bot_warehouse_2
sm_dance_bot_warehouse_3
beluga_ros
etsi_its_rviz_plugins
lidar_situational_graphs
message_tf_frame_transformer
mola_bridge_ros2
mrpt_apps
mrpt_libros_bridge
nav2_amcl
nav2_behavior_tree
nav2_behaviors
nav2_collision_monitor
nav2_costmap_2d
nav_2d_utils
nav2_graceful_controller
nav2_map_server
nav2_mppi_controller
nav2_regulated_pure_pursuit_controller
nav2_rotation_shim_controller
nav2_util
nerian_stereo
admittance_controller
diff_drive_controller
mecanum_drive_controller
steering_controllers_library
tricycle_controller
sick_scan_xd
unitree_ros
vrpn_mocap
raspimouse
irobot_create_nodes
irobot_create_gz_toolbox
kobuki_node
adi_3dtof_image_stitching
autoware_lanelet2_extension
dual_laser_merger
as2_core
as2_realsense_interface
as2_map_server
as2_state_estimator
as2_external_object_to_tf
as2_platform_tello
autoware_utils_geometry
clearpath_mecanum_drive_controller
homing_local_planner
off_highway_premium_radar_sample
psdk_wrapper
robotont_driver
vector_pursuit_controller
adi_3dtof_adtf31xx

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.36.10
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros2/geometry2.git
VCS Type git
VCS Version jazzy
Last Updated 2025-04-24
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Alejandro Hernandez Cordero
  • Chris Lalancette

Authors

  • Eitan Marder-Eppstein
  • Tully Foote
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.36.10 (2025-04-24)

  • Backport: Do not clobber callback handles when cancelling pending transformable requests (#782)
  • Contributors: Timo Röhling

0.36.9 (2025-04-02)

0.36.8 (2025-01-15)

0.36.7 (2024-12-27)

  • Jazzy "Backport" of #720 (#723)
  • Contributors: Lucas Wendland

0.36.6 (2024-12-18)

  • Removed unused var in tf2 (#735) (#736) (cherry picked from commit e791b58f8826a31d8ea11f45b7bf3026f26eab8a) Co-authored-by: Alejandro Hernández Cordero <<ahcorde@gmail.com>>
  • Contributors: mergify[bot]

0.36.5 (2024-11-20)

0.36.4 (2024-05-29)

  • Removed warning (#682) (#683) Co-authored-by: Alejandro Hernández Cordero <<ahcorde@gmail.com>>
  • [TimeCache] Improve performance for insertData() and pruneList() (#680) (#686) Co-authored-by: Chris Lalancette <<clalancette@gmail.com>> (cherry picked from commit d700d78611ca2f2a56128ee71dd157961a1f4fb4) Co-authored-by: Eric Cousineau <<eric.cousineau@tri.global>>
  • Add cache_benchmark (#679) (#690) * Add cache_benchmark Co-authored-by: Chris Lalancette <<clalancette@gmail.com>> (cherry picked from commit 381d381739d008f83c2ebdf39034d46a19ea364e) Co-authored-by: Eric Cousineau <<eric.cousineau@tri.global>>

  • [cache_unittest] Add direct implementation testing on ordering, pruning (#678) (#687)
    • [cache_unittest] Add direct implementation testing on ordering, pruning
    • do getAllItems() approach
    • Return a reference instead.
    • mark getAllItems as internal

    * Fix warning on Windows. Co-authored-by: Chris Lalancette <<clalancette@gmail.com>> (cherry picked from commit a17a2bf8297052d2c6a404f9799bfe3b81040482) Co-authored-by: Eric Cousineau <<eric.cousineau@tri.global>>

  • Contributors: mergify[bot]

0.36.3 (2024-05-13)

0.36.2 (2024-04-10)

  • Enable Twist interpolator (#646) Co-authored-by: Tully Foote <<tullyfoote@intrinsic.ai>>
  • Warning Message Intervals for canTransform (#663)
  • Contributors: Alejandro Hernández Cordero, Lucas Wendland

0.36.1 (2024-03-28)

  • Nacho/minor fixes tf2 cache (#658)
  • Removing console_bridge (#655)
  • Contributors: Ignacio Vizzo, Lucas Wendland

0.36.0 (2024-02-07)

0.35.1 (2024-01-24)

  • Fix constantly increasing memory in std::list (#636)
  • Contributors: Ignacio Vizzo

0.35.0 (2023-12-26)

  • Update the tf2 documentation (#638)
  • Contributors: Chris Lalancette

0.34.0 (2023-11-06)

0.33.2 (2023-10-04)

0.33.1 (2023-09-07)

0.33.0 (2023-08-21)

0.32.2 (2023-07-11)

0.32.1 (2023-05-11)

  • Fix error code returned in BufferCore::walkToTopParent (#601)
  • Contributors: Patrick Roncagliolo

0.32.0 (2023-04-27)

0.31.2 (2023-04-13)

0.31.1 (2023-04-12)

0.31.0 (2023-04-11)

  • Depend on ament_cmake_ros to default SHARED to ON (#591)
  • Fix a potential crash in TimeCache::findClosest (#592)
  • Extend TimeCache API to provide rich ExtrapolationException infos (#586)
  • Contributors: Chris Lalancette, Patrick Roncagliolo, Tyler Weaver

0.30.0 (2023-02-14)

  • Update geometry2 to C++17 (#584)
  • Contributors: Chris Lalancette

0.29.0 (2022-11-21)

  • Include required header Scalar.h (#559)
  • Update maintainers (#560)
  • Contributors: Audrow Nash, Shane Loretz

0.28.0 (2022-11-02)

0.27.0 (2022-09-13)

0.26.2 (2022-08-15)

0.26.1 (2022-06-24)

0.26.0 (2022-04-29)

0.25.0 (2022-04-05)

  • Install includes to include/${PROJECT_NAME} and use modern CMake (#493)
  • Contributors: Shane Loretz

0.24.0 (2022-03-31)

0.23.0 (2022-03-28)

  • forward declare fromMsg to avoid missing symbols in downstream libraries (#485)
  • Contributors: João C. Monteiro

0.22.0 (2022-03-01)

0.21.0 (2022-01-14)

  • tf2: Enable common linter tests (#469)
  • Contributors: Abrar Rahman Protyasha

0.20.0 (2021-12-17)

  • Move time functions into time.cpp.
  • Change a for loop to a while loop.
  • Switch to C++-style casts.
  • Remove totally unused (and unreachable) code.
  • Replace NULL with nullptr.
  • Fix up some comments.
  • Use std::make_shared where we can.
  • Replace two comparisons with empty string to empty().
  • Make sure to include-what-you-use.
  • Remove unnecessary internal method.
  • Remove long-deprecated walkToTopParent overload.
  • Contributors: Chris Lalancette

0.19.0 (2021-10-15)

  • Remove unnecessary test dependencies.
  • Remove some references to the ROS 1 wiki.
  • Add rosidl_runtime_cpp as build_depend and build_export_depend.
  • Minor cleanups in CMakeLists.txt.
  • Remove include directory that doesn't exist.
  • Remove completely unnecessary target_link_libraries.
  • Remove unused speed_test from tf2.
  • Suppress clang warnings about enumerator attributes. (#463)
  • Change TF2Error names to be a bit more descriptive. (#349)
  • Fixed errors due to missing header link. (#432)
  • Contributors: Chris Lalancette, Shivam Pandey

0.18.0 (2021-06-01)

  • Deprecate tf2_geometry_msgs.h (#418)
  • Speedup covariance unwrapping (#399)
  • Contributors: Chris Lalancette, Dima Dorezyuk

0.17.1 (2021-04-06)

  • Change index.ros.org -> docs.ros.org. (#394)
  • Contributors: Chris Lalancette

0.17.0 (2021-03-19)

0.16.0 (2021-01-25)

0.15.1 (2020-12-08)

0.15.0 (2020-11-02)

  • Update maintainers of the ros2/geometry2 fork. (#328)
  • Contributors: Chris Lalancette

0.14.1 (2020-09-21)

  • Active usual compiler warnings in tf2 (#322)
  • Cleanups in buffer_core.cpp. (#301)
  • Add PoseWithCovarianceStamped transform support (#312)
  • Contributors: Chris Lalancette, Ivan Santiago Paunovic, Joshua Whitley

0.14.0 (2020-08-14)

  • Fix a TOCTTOU race in tf2. (#307)
  • Fixed memory leak in Buffer::waitForTransform (#281)
  • Add common linters to tf2. (#258)
  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Martin Ganeff

0.13.4 (2020-06-03)

  • Add missing virtual destructors (#272)
  • Contributors: Ivan Santiago Paunovic

0.13.3 (2020-05-26)

0.13.2 (2020-05-18)

  • Modify error message to not match the pattern for Jenkins MSBuild errors (#265)
  • Contributors: Dirk Thomas

0.13.1 (2020-05-08)

  • export modern CMake interface target (#263)
  • Contributors: Dirk Thomas

0.13.0 (2020-04-30)

  • Added doxyfiles and sphinx Makefiles (#257)
  • Fix displayTimePoint truncation error (#253)
  • rename rosidl_generator_cpp namespace to rosidl_runtime_cpp (#248)
  • Use the new rcutils_strerror function. (#239)
  • Remove unnecessary semicolons. (#235)
  • Export all tf2 dependencies. (#238)
  • Fix a deprecated copy warning by implementing the assignment operator (#201)
  • tf2 add windows cmath constants (#217)
  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Hunter L. Allen, Michel Hidalgo, brawner

0.12.4 (2019-11-19)

0.12.3 (2019-11-18)

  • Provide more available error messaging for nonexistent and invalid frames in canTransform (ros2 #187)
  • Contributors: Emerson Knapp

0.12.2 (2019-11-18)

  • Fix up -Wcast-qual warning (#193) (#197)
  • Contributors: Chris Lalancette

0.12.1 (2019-10-23)

  • Overwrite TimeCacheInterface type with a current input (#151)
  • [tf2] Use ament_target_dependencies where possible
  • Restore conversion via message traits (#167)
  • Contributors: Jacob Perron, Michael Carroll, Vinnam Kim

0.12.0 (2019-09-26)

  • Add pure virtual interface tf2::BufferCoreInterface
  • Guard against invalid iterator (#127)
  • Contributors: Jacob Perron

0.11.3 (2019-05-24)

0.11.2 (2019-05-20)

0.11.1 (2019-05-09)

0.11.0 (2019-04-14)

0.10.1 (2018-12-06)

0.10.0 (2018-11-22)

  • Merge pull request #65 from bsinno/bugfix/fix_identity_transform_behaviour Fix bug in lookupTransform()
  • Fix lookupTransform() behaviour when transforming from a frame to itself
  • revert now unnecessary message initializations (#64)
  • use console_bridge_vendor (#63)
  • Contributors: Alessandro Bottero, Mikael Arguedas, Tully Foote

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
aruco_ros
cartographer_ros
control_toolbox
depthai_bridge
find_object_2d
fuse_models
fuse_publishers
geometry2
test_tf2
tf2_bullet
tf2_eigen
tf2_eigen_kdl
tf2_geometry_msgs
tf2_kdl
tf2_py
tf2_ros
tf2_sensor_msgs
turtle_tf2_cpp
grid_map_ros
depth_image_proc
image_proc
image_rotate
imu_complementary_filter
rviz_imu_plugin
interactive_marker_twist_server
interactive_markers
laser_filters
laser_geometry
mapviz
mapviz_plugins
multires_image
tile_map
swri_geometry_util
swri_image_util
swri_transform_util
microstrain_inertial_driver
moveit_core
moveit_kinematics
pilz_industrial_motion_planner
moveit_ros_move_group
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_robot_interaction
mrpt_map_server
mrpt_msgs_bridge
mrpt_pf_localization
mrpt_pointcloud_pipeline
mrpt_reactivenav2d
mrpt_tps_astar_planner
mrpt_generic_sensor
mrpt_sensor_bumblebee_stereo
mrpt_sensor_gnss_nmea
mrpt_sensor_gnss_novatel
mrpt_sensor_imu_taobotics
mrpt_sensorlib
mvsim
nonpersistent_voxel_layer
novatel_gps_driver
octomap_server
octomap_ros
pcl_ros
pointcloud_to_laserscan
pose_cov_ops
realsense2_camera
robot_localization
rtabmap_conversions
rtabmap_rviz_plugins
rtabmap_slam
rtabmap_util
rtabmap_viz
rviz_common
rviz_default_plugins
rviz_visual_testing_framework
rviz_visual_tools
septentrio_gnss_driver
slam_toolbox
tf2_2d
turtlebot3_node
turtlebot3_fake_node
turtlebot3_gazebo
ublox_gps
velodyne_pointcloud
warehouse_ros
move_group_interface_client
backward_global_planner
backward_local_planner
forward_global_planner
forward_local_planner
nav2z_planners_common
pure_spinning_local_planner
undo_path_global_planner
nav2z_client
sm_aws_warehouse_navigation
sm_dance_bot
sm_dance_bot_strikes_back
sm_dance_bot_warehouse
sm_dance_bot_warehouse_2
sm_dance_bot_warehouse_3
beluga_ros
etsi_its_rviz_plugins
message_tf_frame_transformer
mola_bridge_ros2
mrpt_apps
mrpt_libros_bridge
nav2_amcl
nav2_behavior_tree
nav2_behaviors
nav2_collision_monitor
nav2_costmap_2d
nav_2d_utils
nav2_graceful_controller
nav2_map_server
nav2_mppi_controller
nav2_regulated_pure_pursuit_controller
nav2_rotation_shim_controller
nav2_util
admittance_controller
diff_drive_controller
mecanum_drive_controller
steering_controllers_library
tricycle_controller
sick_scan_xd
vrpn_mocap
raspimouse
irobot_create_nodes
irobot_create_gz_toolbox
autoware_lanelet2_extension
dual_laser_merger
multisensor_calibration

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.42.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros2/geometry2.git
VCS Type git
VCS Version rolling
Last Updated 2025-04-26
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Alejandro Hernandez Cordero
  • Chris Lalancette

Authors

  • Eitan Marder-Eppstein
  • Tully Foote
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.42.0 (2025-04-25)

0.41.0 (2025-04-25)

  • Add isnan support (#780)
  • Overflow Issue in durationFromSec() Function when Handling Extremely Large or Small Values (#785)
  • Do not clobber callback handles when cancelling pending transformable requests (#779)
  • Uniform cmake min version (#764)
  • Contributors: Michael Carlstrom, Timo Röhling, cramke, mosfet80

0.40.1 (2025-01-15)

  • Remove many extra conversions from Matrix3x3 to Quaternion (#741) Co-authored-by: jmachowinski <<jmachowinski@users.noreply.github.com>> Co-authored-by: Katherine Scott <<katherineAScott@gmail.com>>
  • Cleanup deprecation warnings. (#744) The deprecation warnings were not printing out properly on GCC, at least; it would warn that #warning was not standard, and it would also not print out the actual warning. Also "deprecated" was spelled wrong. Fix all of these issues here.
  • Contributors: Chris Lalancette, kyle-basis

0.40.0 (2024-12-20)

  • Deprecate C Headers (#720)
  • Removed unused var in tf2 (#735)
  • Contributors: Alejandro Hernández Cordero, Lucas Wendland

0.39.3 (2024-11-25)

0.39.2 (2024-11-20)

0.39.1 (2024-10-15)

  • Error String Filled (#715)
  • Contributors: Lucas Wendland

0.39.0 (2024-10-03)

0.38.2 (2024-07-19)

0.38.1 (2024-07-09)

  • Removed deprecated enuns (#699)
  • Contributors: Alejandro Hernández Cordero

0.38.0 (2024-06-17)

0.37.1 (2024-05-29)

  • [TimeCache] Improve performance for insertData() and pruneList() (#680) Co-authored-by: Chris Lalancette <<clalancette@gmail.com>>
  • Removed warning (#682)
  • Add cache_benchmark (#679) * Add cache_benchmark Co-authored-by: Chris Lalancette <<clalancette@gmail.com>>

  • [cache_unittest] Add direct implementation testing on ordering, pruning (#678)
    • [cache_unittest] Add direct implementation testing on ordering, pruning
    • do getAllItems() approach
    • Return a reference instead.
    • mark getAllItems as internal

    * Fix warning on Windows. Co-authored-by: Chris Lalancette <<clalancette@gmail.com>>

  • Contributors: Alejandro Hernández Cordero, Eric Cousineau

0.37.0 (2024-04-26)

0.36.2 (2024-04-10)

  • Enable Twist interpolator (#646) Co-authored-by: Tully Foote <<tullyfoote@intrinsic.ai>>
  • Warning Message Intervals for canTransform (#663)
  • Contributors: Alejandro Hernández Cordero, Lucas Wendland

0.36.1 (2024-03-28)

  • Nacho/minor fixes tf2 cache (#658)
  • Removing console_bridge (#655)
  • Contributors: Ignacio Vizzo, Lucas Wendland

0.36.0 (2024-02-07)

0.35.1 (2024-01-24)

  • Fix constantly increasing memory in std::list (#636)
  • Contributors: Ignacio Vizzo

0.35.0 (2023-12-26)

  • Update the tf2 documentation (#638)
  • Contributors: Chris Lalancette

0.34.0 (2023-11-06)

0.33.2 (2023-10-04)

0.33.1 (2023-09-07)

0.33.0 (2023-08-21)

0.32.2 (2023-07-11)

0.32.1 (2023-05-11)

  • Fix error code returned in BufferCore::walkToTopParent (#601)
  • Contributors: Patrick Roncagliolo

0.32.0 (2023-04-27)

0.31.2 (2023-04-13)

0.31.1 (2023-04-12)

0.31.0 (2023-04-11)

  • Depend on ament_cmake_ros to default SHARED to ON (#591)
  • Fix a potential crash in TimeCache::findClosest (#592)
  • Extend TimeCache API to provide rich ExtrapolationException infos (#586)
  • Contributors: Chris Lalancette, Patrick Roncagliolo, Tyler Weaver

0.30.0 (2023-02-14)

  • Update geometry2 to C++17 (#584)
  • Contributors: Chris Lalancette

0.29.0 (2022-11-21)

  • Include required header Scalar.h (#559)
  • Update maintainers (#560)
  • Contributors: Audrow Nash, Shane Loretz

0.28.0 (2022-11-02)

0.27.0 (2022-09-13)

0.26.2 (2022-08-15)

0.26.1 (2022-06-24)

0.26.0 (2022-04-29)

0.25.0 (2022-04-05)

  • Install includes to include/${PROJECT_NAME} and use modern CMake (#493)
  • Contributors: Shane Loretz

0.24.0 (2022-03-31)

0.23.0 (2022-03-28)

  • forward declare fromMsg to avoid missing symbols in downstream libraries (#485)
  • Contributors: João C. Monteiro

0.22.0 (2022-03-01)

0.21.0 (2022-01-14)

  • tf2: Enable common linter tests (#469)
  • Contributors: Abrar Rahman Protyasha

0.20.0 (2021-12-17)

  • Move time functions into time.cpp.
  • Change a for loop to a while loop.
  • Switch to C++-style casts.
  • Remove totally unused (and unreachable) code.
  • Replace NULL with nullptr.
  • Fix up some comments.
  • Use std::make_shared where we can.
  • Replace two comparisons with empty string to empty().
  • Make sure to include-what-you-use.
  • Remove unnecessary internal method.
  • Remove long-deprecated walkToTopParent overload.
  • Contributors: Chris Lalancette

0.19.0 (2021-10-15)

  • Remove unnecessary test dependencies.
  • Remove some references to the ROS 1 wiki.
  • Add rosidl_runtime_cpp as build_depend and build_export_depend.
  • Minor cleanups in CMakeLists.txt.
  • Remove include directory that doesn't exist.
  • Remove completely unnecessary target_link_libraries.
  • Remove unused speed_test from tf2.
  • Suppress clang warnings about enumerator attributes. (#463)
  • Change TF2Error names to be a bit more descriptive. (#349)
  • Fixed errors due to missing header link. (#432)
  • Contributors: Chris Lalancette, Shivam Pandey

0.18.0 (2021-06-01)

  • Deprecate tf2_geometry_msgs.h (#418)
  • Speedup covariance unwrapping (#399)
  • Contributors: Chris Lalancette, Dima Dorezyuk

0.17.1 (2021-04-06)

  • Change index.ros.org -> docs.ros.org. (#394)
  • Contributors: Chris Lalancette

0.17.0 (2021-03-19)

0.16.0 (2021-01-25)

0.15.1 (2020-12-08)

0.15.0 (2020-11-02)

  • Update maintainers of the ros2/geometry2 fork. (#328)
  • Contributors: Chris Lalancette

0.14.1 (2020-09-21)

  • Active usual compiler warnings in tf2 (#322)
  • Cleanups in buffer_core.cpp. (#301)
  • Add PoseWithCovarianceStamped transform support (#312)
  • Contributors: Chris Lalancette, Ivan Santiago Paunovic, Joshua Whitley

0.14.0 (2020-08-14)

  • Fix a TOCTTOU race in tf2. (#307)
  • Fixed memory leak in Buffer::waitForTransform (#281)
  • Add common linters to tf2. (#258)
  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Martin Ganeff

0.13.4 (2020-06-03)

  • Add missing virtual destructors (#272)
  • Contributors: Ivan Santiago Paunovic

0.13.3 (2020-05-26)

0.13.2 (2020-05-18)

  • Modify error message to not match the pattern for Jenkins MSBuild errors (#265)
  • Contributors: Dirk Thomas

0.13.1 (2020-05-08)

  • export modern CMake interface target (#263)
  • Contributors: Dirk Thomas

0.13.0 (2020-04-30)

  • Added doxyfiles and sphinx Makefiles (#257)
  • Fix displayTimePoint truncation error (#253)
  • rename rosidl_generator_cpp namespace to rosidl_runtime_cpp (#248)
  • Use the new rcutils_strerror function. (#239)
  • Remove unnecessary semicolons. (#235)
  • Export all tf2 dependencies. (#238)
  • Fix a deprecated copy warning by implementing the assignment operator (#201)
  • tf2 add windows cmath constants (#217)
  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Hunter L. Allen, Michel Hidalgo, brawner

0.12.4 (2019-11-19)

0.12.3 (2019-11-18)

  • Provide more available error messaging for nonexistent and invalid frames in canTransform (ros2 #187)
  • Contributors: Emerson Knapp

0.12.2 (2019-11-18)

  • Fix up -Wcast-qual warning (#193) (#197)
  • Contributors: Chris Lalancette

0.12.1 (2019-10-23)

  • Overwrite TimeCacheInterface type with a current input (#151)
  • [tf2] Use ament_target_dependencies where possible
  • Restore conversion via message traits (#167)
  • Contributors: Jacob Perron, Michael Carroll, Vinnam Kim

0.12.0 (2019-09-26)

  • Add pure virtual interface tf2::BufferCoreInterface
  • Guard against invalid iterator (#127)
  • Contributors: Jacob Perron

0.11.3 (2019-05-24)

0.11.2 (2019-05-20)

0.11.1 (2019-05-09)

0.11.0 (2019-04-14)

0.10.1 (2018-12-06)

0.10.0 (2018-11-22)

  • Merge pull request #65 from bsinno/bugfix/fix_identity_transform_behaviour Fix bug in lookupTransform()
  • Fix lookupTransform() behaviour when transforming from a frame to itself
  • revert now unnecessary message initializations (#64)
  • use console_bridge_vendor (#63)
  • Contributors: Alessandro Bottero, Mikael Arguedas, Tully Foote

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
aruco_ros
cartographer_ros
control_toolbox
find_object_2d
fuse_models
fuse_publishers
geometry2
test_tf2
tf2_bullet
tf2_eigen
tf2_eigen_kdl
tf2_geometry_msgs
tf2_kdl
tf2_py
tf2_ros
tf2_sensor_msgs
turtle_tf2_cpp
depth_image_proc
image_proc
image_rotate
imu_complementary_filter
rviz_imu_plugin
interactive_marker_twist_server
interactive_markers
laser_filters
laser_geometry
mapviz
mapviz_plugins
multires_image
tile_map
swri_geometry_util
swri_image_util
swri_transform_util
microstrain_inertial_driver
moveit_core
moveit_kinematics
pilz_industrial_motion_planner
moveit_ros_move_group
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_robot_interaction
mrpt_map_server
mrpt_msgs_bridge
mrpt_pf_localization
mrpt_pointcloud_pipeline
mrpt_reactivenav2d
mrpt_tps_astar_planner
mrpt_generic_sensor
mrpt_sensor_bumblebee_stereo
mrpt_sensor_gnss_nmea
mrpt_sensor_gnss_novatel
mrpt_sensor_imu_taobotics
mrpt_sensorlib
mvsim
novatel_gps_driver
octomap_server
octomap_ros
pcl_ros
pointcloud_to_laserscan
pose_cov_ops
robot_localization
rviz_common
rviz_default_plugins
rviz_visual_testing_framework
rviz_visual_tools
septentrio_gnss_driver
tf2_2d
turtlebot3_node
turtlebot3_fake_node
turtlebot3_gazebo
ublox_gps
velodyne_pointcloud
warehouse_ros
move_group_interface_client
backward_global_planner
backward_local_planner
forward_global_planner
forward_local_planner
nav2z_planners_common
pure_spinning_local_planner
undo_path_global_planner
nav2z_client
sm_aws_warehouse_navigation
sm_dance_bot
sm_dance_bot_strikes_back
sm_dance_bot_warehouse
sm_dance_bot_warehouse_2
sm_dance_bot_warehouse_3
message_tf_frame_transformer
mola_bridge_ros2
mrpt_apps
mrpt_libros_bridge
admittance_controller
diff_drive_controller
mecanum_drive_controller
steering_controllers_library
tricycle_controller
ros_gz_sim
vrpn_mocap
raspimouse
autoware_lanelet2_extension
dual_laser_merger
lidar_mirror_fov_reshaper_calibration

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.5.20
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description This ROS workspace is created on Raspbian OS. Here I have installed ROS Kinetic from source using cross-compilation and worked on projects like Surveilling Robot.
Checkout URI https://github.com/iamrajee/roskinetic_catkin_ws.git
VCS Type git
VCS Version master
Last Updated 2022-03-04
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags cmake ros raspbian catkin raspberry-pi-3 realsense ros-kinetic gmapping-slam realsense-camera
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Tully Foote

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. See repository README.
CHANGELOG

Changelog for package tf2

0.5.20 (2018-11-16)

0.5.19 (2018-11-06)

  • fix issue #315
  • fixed nan interpoaltion issue
  • Contributors: Keller Fabian Rudolf (CC-AD/EYC3), Kuang Fangjun

0.5.18 (2018-07-10)

  • preserve constness of const argument to avoid warnings (#307)
  • Change comment style for unused doxygen (#297)
  • Contributors: Jacob Perron, Tully Foote

0.5.17 (2018-01-01)

  • Merge pull request #278 from ros/chain_as_vec_test2 Clean up results of _chainAsVector
  • Simple test to check BufferCore::_chainAsVector. Unit tests for walk and chain passing now.
  • Merge pull request #267 from at-wat/speedup-timecache-for-large-buffer Speed-up TimeCache search for large cache time.
  • Merge pull request #265 from vsherrod/interpolation_fix Corrected time output on interpolation function.
  • Add time_interval option to tf2 speed-test.
  • Merge pull request #269 from ros/frames_as_yaml allFrameAsYaml consistently outputting a dict
  • resolve https://github.com/ros/geometry/pull/153 at the source instead of needing the workaround.
  • Speed-up TimeCache search for large cache time.
  • Modified tests for correct time in interpolation to existing tests.
  • Corrected time output on interpolation function. Added unit test to check for this.
  • Contributors: Atsushi Watanabe, Miguel Prada, Tully Foote, Vallan Sherrod

0.5.16 (2017-07-14)

  • remove explicit templating to standardize on overloading. But provide backwards compatibility with deprecation.
  • Merge pull request #144 from clearpathrobotics/dead_lock_fix Solve a bug that causes a deadlock in MessageFilter
  • Resolve 2 places where the error_msg would not be propogated. Fixes #198
  • Remove generate_rand_vectors() from a number of tests. (#227)
  • fixing include directory order to support overlays (#231)
  • replaced dependencies on tf2_msgs_gencpp by exported dependencies
  • Document the lifetime of the returned reference for getFrameId getTimestamp
  • relax normalization tolerance. #196 was too strict for some use cases. (#220)
  • Solve a bug that causes a deadlock in MessageFilter
  • Contributors: Adel Fakih, Chris Lalancette, Christopher Wecht, Tully Foote, dhood

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Name Deps
mesh_msgs_transform
turtlebot3_node
turtlebot3_node
turtlebot3_node
turtlebot3_node
turtlebot3_fake_node
turtlebot3_fake_node
turtlebot3_fake_node
turtlebot3_fake_node
turtlebot3_fake_node
turtlebot3_fake_node
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
frontier_exploration
learned_frontier_detector
nav2_amcl
nav2_amcl
nav2_amcl
nav2_amcl
nav2_amcl
nav2_amcl
nav2_amcl
nav2_amcl
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behaviors
nav2_behaviors
nav2_behaviors
nav2_behaviors
nav2_behaviors
nav2_behaviors
nav2_collision_monitor
nav2_collision_monitor
nav2_collision_monitor
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
opennav_docking
nav_2d_utils
nav_2d_utils
nav_2d_utils
nav_2d_utils
nav_2d_utils
nav_2d_utils
nav_2d_utils
nav2_graceful_controller
nav2_graceful_controller
nav2_map_server
nav2_map_server
nav2_map_server
nav2_map_server
nav2_map_server
nav2_map_server
nav2_mppi_controller
nav2_mppi_controller
nav2_planner
nav2_regulated_pure_pursuit_controller
nav2_regulated_pure_pursuit_controller
nav2_regulated_pure_pursuit_controller
nav2_regulated_pure_pursuit_controller
nav2_regulated_pure_pursuit_controller
nav2_regulated_pure_pursuit_controller
nav2_regulated_pure_pursuit_controller
nav2_rotation_shim_controller
nav2_rotation_shim_controller
nav2_rotation_shim_controller
nav2_rotation_shim_controller
nav2_rotation_shim_controller
nav2_rotation_shim_controller
nav2_rotation_shim_controller
nav2_smac_planner
nav2_smoother
nav2_system_tests
nav2_util
nav2_util
nav2_util
nav2_util
nav2_util
nav2_util
nav2_util
mppic
ffastllamaa
hdl_localization
radar_odom
acdc_launchpack
definitions
lidar_detection
trajectory_planner
carla_gnss_emulator
tf_broadcaster
camera_based_semantic_grid_mapping_r2
localization
mbot_bringup
ackermann_steering_controller
map_tf_generator
map_tf_generator
map_tf_generator
map_tf_generator
map_tf_generator
simple_planning_simulator
simple_planning_simulator
simple_planning_simulator
simple_planning_simulator
dummy_perception_publisher
dummy_perception_publisher
dummy_perception_publisher
limo_bringup
gyro_odometer
gyro_odometer
gyro_odometer
imu_corrector
imu_corrector
obstacle_stop_planner_custom
odom2tf
airstack_common
mavros_interface
robot_interface
cost_map_interface
disparity_expansion
disparity_graph
disparity_graph_cost_map
droan_local_planner
trajectory_library
trajectory_controller
ensemble_global_planner
random_walk_planner
behavior_tree_example
realsense2_camera
realsense2_camera
realsense2_camera
realsense2_camera
realsense2_camera
apriltag_docking
arduinobot_utils
arduinobot_utils
arm_api2
mujoco
mujoco
mujoco
atos_rviz_plugins
atr_examples
auna_cacc
auna_comm
auna_gazebo
auna_omnet
auna_physical
auna_pure_pursuit
carla_ros_bridge
carla_ros_bridge
carla_ros_bridge
autonomous_emergency_braking
control_performance_analysis
lane_departure_checker
mpc_lateral_controller
obstacle_collision_checker
pid_longitudinal_controller
predicted_path_checker
pure_pursuit
pure_pursuit
trajectory_follower_base
kinematic_evaluator
localization_evaluator
planning_evaluator
ekf_localizer
ekf_localizer
ekf_localizer
ekf_localizer
localization_error_monitor
localization_error_monitor
localization_util
ndt_scan_matcher
ndt_scan_matcher
pose_instability_detector
stop_filter
stop_filter
twist2accel
twist2accel
yabloc_particle_filter
yabloc_particle_filter
detected_object_validation
detection_by_tracker
ground_segmentation
heatmap_visualizer
image_projection_based_fusion
map_based_prediction
multi_object_tracker
object_merger
occupancy_grid_map_outlier_filter
probabilistic_occupancy_grid_map
radar_crossing_objects_noise_filter
radar_object_clustering
radar_object_tracker
radar_tracks_msgs_converter
shape_estimation
tracking_object_merger
traffic_light_map_based_detector
traffic_light_occlusion_predictor
behavior_path_avoidance_module
behavior_path_planner
behavior_path_planner_common
behavior_velocity_blind_spot_module
behavior_velocity_detection_area_module
behavior_velocity_no_drivable_lane_module
behavior_velocity_no_stopping_area_module
behavior_velocity_occlusion_spot_module
behavior_velocity_out_of_lane_module
behavior_velocity_planner
behavior_velocity_planner_common
behavior_velocity_run_out_module
behavior_velocity_speed_bump_module
behavior_velocity_template_module
behavior_velocity_traffic_light_module
costmap_generator
freespace_planner
freespace_planning_algorithms
motion_velocity_smoother
obstacle_cruise_planner
obstacle_stop_planner
scenario_selector
surround_obstacle_checker
gnss_poser
pointcloud_preprocessor
pointcloud_preprocessor
radar_static_pointcloud_filter
autoware_auto_tf2
autoware_auto_tf2
lanelet2_extension
lanelet2_extension
fake_test_node
fake_test_node
motion_utils
motion_utils
object_recognition_utils
tier4_automatic_goal_rviz_plugin
tier4_automatic_goal_rviz_plugin
tier4_autoware_utils
tier4_autoware_utils
eagleye_rt
pointcloud_to_laserscan
pointcloud_to_laserscan
pointcloud_to_laserscan
pointcloud_to_laserscan
pointcloud_to_laserscan
awapi_awiv_adapter
grid_map_ros
grid_map_ros
grid_map_ros
pcl_ros
pcl_ros
pcl_ros
rviz_common
rviz_default_plugins
multi_lidar_calibration
multi_lidar_calibration
autonav_controller
pacsim
depth_image_proc
depth_image_proc
image_rotate
image_rotate
local_planner
local_planner
local_planner
sensor_scan_generation
sensor_scan_generation
sensor_scan_generation
sensor_scan_generation
sensor_scan_generation
terrain_analysis
terrain_analysis
terrain_analysis
terrain_analysis
terrain_analysis
terrain_analysis_ext
terrain_analysis_ext
terrain_analysis_ext
terrain_analysis_ext
terrain_analysis_ext
vehicle_simulator
vehicle_simulator
vehicle_simulator
visualization_tools
visualization_tools
visualization_tools
visualization_tools
waypoint_example
waypoint_example
waypoint_example
tare_planner
tare_planner
far_planner
far_planner
far_planner
arise_slam_mid360
arise_slam_mid360
point_lio_unilidar
autorobo_localization
autorobo_simulation
autoware_practice_course
autoware_practice_lidar_simulator
autoware_practice_simulator
map_height_fitter
cartographer_ros
cartographer_ros
cartographer_ros
cartographer_ros
cartographer_ros
lio_sam
lio_sam
lio_sam
lio_sam
carla_pointcloud
carla_pointcloud
autoware_interpolation
autoware_motion_utils
autoware_object_recognition_utils
autoware_trajectory
autoware_ekf_localizer
autoware_localization_util
autoware_stop_filter
autoware_twist2accel
autoware_ground_filter
autoware_velocity_smoother
autoware_behavior_velocity_planner
autoware_behavior_velocity_planner_common
autoware_motion_velocity_obstacle_stop_module
autoware_motion_velocity_planner
autoware_gnss_poser
driving_environment_analyzer
deviation_estimator
deviation_evaluator
calibration_adapter
pitch_checker
autoware_fake_test_node
autoware_universe_utils
autoware_autonomous_emergency_braking
autoware_collision_detector
autoware_control_performance_analysis
autoware_lane_departure_checker
autoware_mpc_lateral_controller
autoware_obstacle_collision_checker
autoware_pid_longitudinal_controller
autoware_predicted_path_checker
autoware_pure_pursuit
autoware_trajectory_follower_base
autoware_control_evaluator
autoware_kinematic_evaluator
autoware_localization_evaluator
autoware_perception_online_evaluator
autoware_planning_evaluator
autoware_gyro_odometer
autoware_lidar_marker_localizer
autoware_localization_error_monitor
autoware_ndt_scan_matcher
autoware_pose_instability_detector
autoware_map_tf_generator
autoware_detection_by_tracker
autoware_ground_segmentation
autoware_map_based_prediction
autoware_multi_object_tracker
autoware_object_merger
autoware_radar_crossing_objects_noise_filter
autoware_radar_object_clustering
autoware_radar_object_tracker
autoware_radar_tracks_msgs_converter
autoware_raindrop_cluster_filter
autoware_shape_estimation
autoware_tracking_object_merger
autoware_traffic_light_map_based_detector
autoware_traffic_light_occlusion_predictor
autoware_costmap_generator
autoware_freespace_planner
autoware_freespace_planning_algorithms
autoware_obstacle_cruise_planner
autoware_obstacle_stop_planner
autoware_scenario_selector
autoware_surround_obstacle_checker
autoware_behavior_path_dynamic_obstacle_avoidance_module
autoware_behavior_path_planner
autoware_behavior_path_planner_common
autoware_behavior_path_sampling_planner_module
autoware_behavior_path_static_obstacle_avoidance_module
autoware_behavior_velocity_blind_spot_module
autoware_behavior_velocity_detection_area_module
autoware_behavior_velocity_no_drivable_lane_module
autoware_behavior_velocity_occlusion_spot_module
autoware_behavior_velocity_run_out_module
autoware_behavior_velocity_speed_bump_module
autoware_behavior_velocity_template_module
autoware_behavior_velocity_traffic_light_module
autoware_motion_velocity_dynamic_obstacle_stop_module
autoware_motion_velocity_obstacle_cruise_module
autoware_motion_velocity_obstacle_slow_down_module
autoware_motion_velocity_out_of_lane_module
autoware_cuda_pointcloud_preprocessor
autoware_imu_corrector
autoware_pointcloud_preprocessor
autoware_radar_static_pointcloud_filter
autoware_carla_interface
autoware_dummy_perception_publisher
autoware_simple_planning_simulator
reaction_analyzer
measurement_conversion
state_estimation_nodes
controller_common_nodes
trajectory_follower
lgsvl_interface
localization_common
localization_nodes
lanelet2_map_provider
point_cloud_filter_transform_nodes
behavior_planner_nodes
lane_planner
lanelet2_global_planner_nodes
object_collision_estimator_nodes
parking_planner_nodes
recordreplay_planner_nodes
autoware_state_monitor
cluster_projection_node
gnss_conversion_nodes
localization_system_tests
autoware_v2x
axebot_control
b1py_calib
bs_constraints
bs_models
bs_publishers
ackermann_drive_controller
beetle_msg_forwarder
map_odom_static_broadcaster
sim
bitbots_blackboard
bitbots_body_behavior
bitbots_extrinsic_calibration
bitbots_dynamic_kick
bitbots_dynup
bitbots_quintic_walk
bitbots_localization
bitbots_odometry
bitbots_path_planning
wolfgang_description
bitbots_team_communication
blue_localization
bonxai_ros
botanbot_gazebo
cyberdog_grpc
cyberdog_grpc
crowd_nav
crowd_nav
pedestrian_tracking
pedestrian_tracking
simple_bts
tour_bts
bumperbot_controller
bumperbot_controller
bumperbot_controller
bumperbot_cpp_examples
bumperbot_cpp_examples
bumperbot_cpp_examples
bumperbot_localization
bumperbot_localization
bumperbot_mapping
bumperbot_mapping
autocore_camera_lidar_calib
ground_plane_calibrator
lidar_to_lidar_2d_calibrator
mapping_based_calibrator
marker_radar_lidar_calibrator
tag_based_pnp_calibrator
tag_based_sfm_calibrator
tier4_ground_plane_utils
tier4_tag_utils
tunable_static_tf_broadcaster
my_pnc
my_pnc
arbitrator
basic_autonomy
carma_wm
gnss_to_map_convertor
inlanecruising_plugin
lci_strategic_plugin
motion_computation
object_detection_tracking
plan_delegator
platooning_strategic_ihp
platooning_tactical_plugin
roadway_objects
route
route_following_plugin
stop_and_wait_plugin
stop_controlled_intersection_tactical_plugin
yield_plugin
cddp_mpc
orbbec_camera
orbbec_camera
orbbec_camera
rf2o_laser_odometry
rf2o_laser_odometry
rf2o_laser_odometry
clearpath_hardware_interfaces
cloisim_ros_base
co_lrio
cmcl_ros
crs_motion_planning
constrained_manipulability
conveyor_belt
fast_lio
fast_lio
fast_lio
fast_lio
icp_registration
icp_registration
costmap_converter
costmap_converter
costmap_converter
costmap_converter
costmap_converter
teb_local_planner
teb_local_planner
teb_local_planner
teb_local_planner
teb_local_planner
teb_local_planner
teb_local_planner
imu_complementary_filter
imu_complementary_filter
imu_complementary_filter
imu_complementary_filter
cugo_ros2_control
algorithm_manager
nav2_recoveries
nav2_recoveries
nav2_recoveries
navigation_bringup
cyberdog_decisionmaker
cyberdog_visual
mcr_tracking_components
nav2_pure_pursuit_controller
nav2_pure_pursuit_controller
nav2_pure_pursuit_controller
driver_motor
diff_bot_description
differential_bot_controller
velodyne_gazebo_plugins
velodyne_gazebo_plugins
dynamic_object_removal
emd_grasp_execution
emd_grasp_planner
easy_perception_deployment
ed
ed_localization
eddiebot_odom
elfin_basic_api
elfin_ethercat_driver
elfin_ros_control
emcl2
emcl2
joystick_control_esp32
extended_map_server
waypoint_generator
fastlio2
flex_nav_flexbe_states
armor_detector
rune_detector
rune_solver
gaden_preprocessing
simulated_anemometer
simulated_gas_sensor
simulated_tdlas
gsl_server
darknet_ros_3d
gmrf_gas_mapping
cam_laser_calib
h6x_internship_gazebo
hadabot_nav2
hadabot_tf2
hunav_gazebo_wrapper
hunav_agent_manager
hunav_rviz2_panel
hunter_base
dubins_hybrid_star
path_generator
reeds_shepp_hybrid_astar
iahrs_driver
rviz_imu_plugin
rviz_imu_plugin
ike_localization
imu_estimator
imu_zupt
lesson_perception
py_perception
cyberdog_interactive
cyberdog_vp_abilityset
interbotix_tf_tools
ipm_image_node
ipm_image_node
ipm_library
ipm_library
isaac_ros_bi3d_freespace
robot_decision
kalman_filter_localization
kalman_pos
kitti_to_ros2bag
kmr_behaviortree
kmr_communication
kmr_moveit2
lego_loam_sr
lego_loam_sr
leo_explorer
libsurvive_ros2
lidar_auto_docking
lidar_cluster
lidar_feature_extraction
graph_based_slam
lidar_graph_slam_utils
lidar_scan_matcher
limo_base
lpslam
slam_toolbox
manymove_cpp_trees
manymove_msgs
manymove_object_manager
autoware_local_mission_planner
autoware_local_mission_planner_common
mapora
marathon_ros2_wp_manager
marsupial_simulator_ros2
mcap_editor
mep3_navigation
mh_amcl
slam_gmapping
slam_gmapping
mickrobot_bringup
imu_100d4_node
minimec_control
minimec_driver
qualisys_driver
moveit_core
moveit_core
moveit_kinematics
moveit_kinematics
pilz_industrial_motion_planner
moveit_ros_move_group
moveit_ros_move_group
moveit_ros_perception
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_planning_interface
moveit_ros_robot_interaction
moveit_ros_robot_interaction
hello
examples
mtrx3760
go2_exploration
unitree_nav
unitree_nav
decomp_ros_utils
decomp_ros_utils
robot_sim
robot
robot_debug
robot_gazebo
nav2_mpc_controller
nav_drone_bt_navigator
nav_drone_controller
nav_drone_costmap_3d
nav_drone_dumb_planner
nav_drone_mpc_controller
nav_drone_pid_controller
nav_drone_planner
nav_drone_regulated_pure_pursuit_controller
nav_drone_theta_star_planner
nav_drone_util
map_management
onboard_detector
neuronbot2_bringup
neuronbot2_gazebo
nexus_calibration
nexus_capabilities
nexus_common
nexus_workcell_orchestrator
servo_control
stepper_control
norlab_icp_mapper_ros
octomap_ros
octomap_server
octomap_server
omnidirectional_controllers
omo_r1mini_gazebo
openbot_driver
openbot_driver
openbot_ros
openbot_ros
openbot_simulator
openbot_simulator
open_mower_next
ros2_quadrotor
rviz
tf2_demos
timer
nav2_linear_quadratic_regulator_controller
motion_model
mpc_controller
ros2_controller
behavior_tree
gridmap_ros
nav2_demos
voronoi_layer
quad_global_planner
quad_local_planner
quad_nmpc_controller
quad_gazebo
quad_utils
map_image_generator
openvmp_control_interactive
orange_sensor_tools
orca_base
orca_shared
quad_control
vicon
bio_ik
fake_vel_transform
loam_interface
pcl_tutorial
perception_msgs_rviz_plugins
tf2_perception_msgs
uuv_assistants
uuv_thruster_manager
uuv_trajectory_control
uuv_gazebo_ros_plugins
uuv_sensor_ros_plugins
main_function
pointcloud_to_grid
march_state_estimator
march_vision
psd_perception
px4_vslam
px4_offboard_lowlevel
map_creation
vehicle_bringup
lmpc_transform_helper
img_recognizer
pc_aligner
pc_detector
ranger_base
realsense_ros2
rm_gimbal_controller
point_lio_cxr
rmcs_core
segwayrmp
roboteq_ros2_driver
urscript_bridge
robovision_rgbd
robovision_services
rw_common_util
motiodom
tailoc_ros2
depth_merger
detect_ar_marker
mission_manager
path_follower
rw_simple_planning_simulator
wp2wp_planner
tracking_pid
tracking_pid
lms1xx
husky_base
husky_navigation
kobuki_node
tf2_rclcpp_example
ublox_gps
ublox_gps
ros2_amr_interface
astra_camera
dc_measurements
ch5_tf2_cpp
turtle_tf2_cpp
ros2_knowledge_graph
ros2_laser_scan_matcher
leg_detector
metafly_control
ros2_stm32_bridge
ex02_gazebo_simulation
whill_auto_stop
demo_cpp_tf
sport_control
learning_tf2
simple_sensor_simulator
scout_base
icp_relocalization
behavior_ext_plugins
costmap_intensity
rm_decision_cpp
sim_wayp_plan_tools
lidar_odometry
spl_lio_sam
slicer_ros2_module
small_gicp_relocalization
social_force_window_planner
social_nav2_plugins
geometry_tf
steam_icp
stella_vslam_ros
stretch_calibration
stretch_deep_perception
stretch_demos
stretch_funmap
stretch_octomap
stretch_rtabmap
okvis_ros
swerve_robot_description
tdt_vision
rosbag_player
tide_gimbal_controller
tide_shooter_controller
torcs_ros_client
tracer_base
triton_controls
triton_gate
triton_pid_controller
planner
route_follower
waypoint_follower
buff
robot_localization
tutorial_pkg
transforms
explore_lite
explore_lite
ugv_base_node
adx_data_ros
unitree_inspection
ur5e_gripper_control
dual_ur_robotiq_rs_description
ur_robotiq_rs_description
dual_plan
find_hole
pick_and_place
urc_gazebo
path_planning
trajectory_following
urc_perception
ros2_control_blue_reach_5
usv_comms
usv_control
usv_localization
usv_missions
vdb_mapping_ros2
vehicle_gateway_px4
vidu_ros2_wrapper
vidu_ros_wrapper
vins
vins_estimator
controller_pkg
dp_adapt_backs_controller
pid_controller_dp
pid_controller_dp_euler
ekf_pose_filtering
los_guidance
reference_filter_dp
vtr_navigation
vtr_path_planning
vtr_tactic
vtr_torch
odometry_spoof
wayp_plan_tools
wiln
debug_tool_package
dynamic_model_simulator_package
emlanes_simulator_package
perception_simulator_package
mecanum_drive_controller
yolact_ros2_3d
zed_aruco_localization
zed_depth_to_laserscan
zed_tutorial_pos_tracking
zed_components
tum_type_conversions_ros_cpp
tum_type_conversions_ros_cpp
ssa_estimation_node_cpp
state_estimation_node_cpp
base_local_planner
base_local_planner
base_local_planner
base_local_planner
base_local_planner
base_local_planner
base_local_planner
base_local_planner
base_local_planner
base_local_planner
costmap_2d
costmap_2d
costmap_2d
costmap_2d
costmap_2d
costmap_2d
costmap_2d
costmap_2d
costmap_2d
costmap_2d
dwa_local_planner
dwa_local_planner
dwa_local_planner
dwa_local_planner
dwa_local_planner
dwa_local_planner
dwa_local_planner
dwa_local_planner
dwa_local_planner
dwa_local_planner
map_server
map_server
map_server
map_server
map_server
map_server
map_server
map_server
map_server
map_server
map_server
rotate_recovery
rotate_recovery
rotate_recovery
rotate_recovery
rotate_recovery
rotate_recovery
rotate_recovery
rotate_recovery
rotate_recovery
carrot_planner
carrot_planner
carrot_planner
carrot_planner
carrot_planner
carrot_planner
carrot_planner
carrot_planner
tf
tf2_geometry_msgs
tf2_geometry_msgs
tf2_geometry_msgs
tf2_kdl
tf2_kdl
tf2_py
tf2_py
tf2_py
tf2_ros
tf2_ros
tf2_ros
tf2_sensor_msgs
tf2_sensor_msgs
amathutils_lib
lidar_shape_estimation
points_preprocessor
ll2_global_planner
mpc_follower
vehicle_gazebo_simulation_interface
wf_simulator
calibration_publisher
kitti_player
microstrain_driver
geometry2
test_tf2
tf2_bullet
tf2_eigen
tf2_tools
amcl
amcl
amcl
amcl
amcl
amcl
amcl
amcl
amcl
loop_closer_check
hybrid_local_planner
icp_localization_ros2
multirobot_map_merge
map_creator
tms_ss_ibs
azure_kinect_ros_driver
picky_robot
race
srv_client_plugin
dwa_controller
sloam
sloam
aruco_detect
fiducial_slam

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.7.9
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros/geometry2.git
VCS Type git
VCS Version noetic-devel
Last Updated 2025-04-25
Dev Status MAINTAINED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Tully Foote

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.7.9 (2025-04-25)

0.7.8 (2025-04-10)

  • Longer char array for null termination needed (#514)
  • Fixed error message when fixed_frame is not found (#559)
  • Add missing #include to buffer_core.cpp (#558)
  • Contributors: Lucas Walter, Martin Pecka, vslashg

0.7.7 (2023-10-13)

  • fix extra comma that gives annoying build warnings with -Wall and -Wpedantic with g++-9 and assuming most other compilers (#550)
  • Add parent frame to warning logs (#533)
  • Contributors: Jack Zender, Stephan

0.7.6 (2022-10-11)

  • Fix dead loop in message filter (#532)
  • Restore time difference order so future extrapolation exceptions don't show non-sensical negative seconds into the future (#522)
  • Contributors: Feng Zhaolin, Lucas Walter

0.7.5 (2020-09-01)

  • restore buffer sizes
  • Contributors: Tully Foote

0.7.4 (2020-09-01)

  • Fix potential buffer overrun of snprintf (#479)
  • Contributors: Atsushi Watanabe

0.7.3 (2020-08-25)

  • Use snprintf instead of stringstream to increase performance of lookupTransform() in error cases.
  • Do not waste time constructing error string if nobody is interested in it in canTransform(). (#469)
  • Output time difference of extrapolation exceptions (#477)
  • Cherry-picking various commits from Melodic (#471)
    • Revert "rework Eigen functions namespace hack" (#436)

    * Fixed warnings in message_filter.h (#434) the variables are not used in function body and caused -Wunused-parameter to trigger with -Wall

    • Fix ambiguous call for tf2::convert on MSVC (#444)
    • rework ambiguous call on MSVC.
  • Contributors: Lucas Walter, Martin Pecka, Robert Haschke

0.7.2 (2020-06-08)

0.7.1 (2020-05-13)

  • Fix to improper ring_45 test, where 'anchor' frame for both inverse and normal transform was frame 'b' instead of frame 'a', thus creating a problem
  • Don't insert a TF frame is one of the same timestamp already exists, instead just overwrite it.
  • [Noetic] Add tf2::Stamped<T>::operator=() to fix warnings downstream (#453)
    • Add tf2::Stamped<T>::operator=()
  • [noetic] cherry-pick Windows fixes from melodic-devel (#450)
    • [Windows][melodic-devel] Fix install locations (#442)
    • fixed install locations of tf2
    • [windows][melodic] more portable fixes. (#443)
    • more portable fixes.
  • Contributors: Patrick Beeson, Robert Haschke, Sean Yen, Shane Loretz

0.7.0 (2020-03-09)

  • Bump CMake version to avoid CMP0048 warning (#445) Signed-off-by: Shane Loretz <<sloretz@osrfoundation.org>>
  • Fix compile error missing ros/ros.h (#400) * ros/ros.h -> ros/time.h tf2 package depends on rostime * tf2_bullet doesn't need ros.h Signed-off-by: Shane Loretz <<sloretz@osrfoundation.org>> * tf2_eigen doesn't need ros/ros.h Signed-off-by: Shane Loretz <<sloretz@osrfoundation.org>>

  • Merge pull request #367 from kejxu/add_tf2_namespace_to_avoid_name_collision rework Eigen functions namespace hack
  • separate transform function declarations into transform_functions.h
  • use ROS_DEPRECATED macro for portability (#362)
    • use ROS_DEPRECATED for better portability
    • change ROS_DEPRECATED position (#5)
  • Remove [signals]{.title-ref} from find_package(Boost COMPONENTS ...). tf2 is using signals2, which is not the same library. Additionally, signals2 has always been header only, and header only libraries must not be listed in find_package. Boost 1.69 removed the old signals library entirely, so the otherwise useless [COMPONENTS signals]{.title-ref} actually breaks the build.
  • Remove legacy inclusion in CMakeLists of tf2.
  • Contributors: James Xu, Maarten de Vries, Marco Tranzatto, Shane Loretz, Tully Foote

0.6.5 (2018-11-16)

0.6.4 (2018-11-06)

  • Resolved pedantic warnings
  • fix issue #315
  • fixed nan interpoaltion issue
  • Contributors: Keller Fabian Rudolf (CC-AD/EYC3), Kuang Fangjun, Martin Ganeff

0.6.3 (2018-07-09)

  • preserve constness of const argument to avoid warnings (#307)
  • Change comment style for unused doxygen (#297)
  • Contributors: Jacob Perron, Tully Foote

0.6.2 (2018-05-02)

0.6.1 (2018-03-21)

  • Replaced deprecated console_bridge macro calls (tests)
  • Contributors: Johannes Meyer, Tully Foote

0.6.0 (2018-03-21)

  • Replaced deprecated log macro calls
  • Contributors: Tim Rakowski, Tully Foote

0.5.17 (2018-01-01)

  • Merge pull request #278 from ros/chain_as_vec_test2 Clean up results of _chainAsVector
  • Simple test to check BufferCore::_chainAsVector. Unit tests for walk and chain passing now.
  • Merge pull request #267 from at-wat/speedup-timecache-for-large-buffer Speed-up TimeCache search for large cache time.
  • Merge pull request #265 from vsherrod/interpolation_fix Corrected time output on interpolation function.
  • Add time_interval option to tf2 speed-test.
  • Merge pull request #269 from ros/frames_as_yaml allFrameAsYaml consistently outputting a dict
  • resolve https://github.com/ros/geometry/pull/153 at the source instead of needing the workaround.
  • Speed-up TimeCache search for large cache time.
  • Modified tests for correct time in interpolation to existing tests.
  • Corrected time output on interpolation function. Added unit test to check for this.
  • Contributors: Atsushi Watanabe, Miguel Prada, Tully Foote, Vallan Sherrod

0.5.16 (2017-07-14)

  • remove explicit templating to standardize on overloading. But provide backwards compatibility with deprecation.
  • Merge pull request #144 from clearpathrobotics/dead_lock_fix Solve a bug that causes a deadlock in MessageFilter
  • Resolve 2 places where the error_msg would not be propogated. Fixes #198
  • Remove generate_rand_vectors() from a number of tests. (#227)
  • fixing include directory order to support overlays (#231)
  • replaced dependencies on tf2_msgs_gencpp by exported dependencies
  • Document the lifetime of the returned reference for getFrameId getTimestamp
  • relax normalization tolerance. #196 was too strict for some use cases. (#220)
  • Solve a bug that causes a deadlock in MessageFilter
  • Contributors: Adel Fakih, Chris Lalancette, Christopher Wecht, Tully Foote, dhood

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Name Deps
dock
perch
handrail_detect
interest_point
localization_node
choreographer
msg_conversions
astrobee_gazebo
interactive_marker_teleop
cob_base_controller_utils
cob_omni_drive_controller
points_preprocessor
cras_cpp_common
depthai_bridge
ensenso_camera
ess_imu_ros1_uart_driver
aruco_detect
fiducial_slam
stag_detect
find_object_2d
floam
fuse_models
fuse_publishers
geometry2
test_tf2
tf2_bullet
tf2_eigen
tf2_geometry_msgs
tf2_kdl
tf2_py
tf2_ros
tf2_sensor_msgs
tf2_tools
turtle_tf2
hfl_driver
depth_image_proc
image_rotate
imu_transformer
imu_filter_madgwick
innopolis_vtol_dynamics
jsk_footstep_controller
checkerboard_detector
laser_geometry
hri
mcl_3dl
microstrain_inertial_driver
mbf_simple_nav
mbf_utility
move_basic
moveit_kinematics
moveit_planners_ompl
pilz_industrial_motion_planner
moveit_ros_move_group
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_robot_interaction
movie_publisher
mpc_local_planner
mrpt_local_obstacles
mrpt_localization
mrpt_msgs_bridge
mrpt_rawlog
mrpt_reactivenav2d
mrpt_tutorials
mrpt_ekf_slam_2d
mrpt_ekf_slam_3d
mrpt_graphslam_2d
mrpt_icp_slam_2d
mrpt_rbpf_slam
multisense_ros
mvsim
amcl
base_local_planner
carrot_planner
costmap_2d
dwa_local_planner
map_server
rotate_recovery
sbpl_lattice_planner
map_organizer
planner_cspace
track_odometry
trajectory_tracker
nerian_stereo
outsight_alb_driver
pcl_ros
pilz_control
prbt_hardware_support
pointcloud_to_laserscan
pose_cov_ops
qb_chain_controllers
qb_move_hardware_interface
rc_hand_eye_calibration_client
rc_silhouettematch_client
robot_body_filter
robot_localization
rviz_satellite
sciurus17_vision
septentrio_gnss_driver
sick_scan
slam_toolbox
teb_local_planner
tf2_2d
tf2_client
witmotion_ros
ypspur_ros
dnn_detect
beluga_ros
etsi_its_rviz_plugins
bosch_locator_bridge
message_tf_frame_transformer
mrpt_apps
mrpt_libros_bridge
sick_scan_xd
clpe_ros
adi_3dtof_image_stitching
compass_conversions
magnetometer_compass
ergodic_exploration
ess_imu_driver
flatland_server
gmcl
imu_from_ios_sensorlog
moveit_calibration_plugins
pyhri
xsens_mti_driver
adi_3dtof_adtf31xx

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.8.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros2/geometry2.git
VCS Type git
VCS Version ardent
Last Updated 2017-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Tully Foote

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.9.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros2/geometry2.git
VCS Type git
VCS Version bouncy
Last Updated 2018-12-06
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Tully Foote

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.10.1
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros2/geometry2.git
VCS Type git
VCS Version crystal
Last Updated 2018-12-07
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Tully Foote

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.10.1 (2018-12-06)

0.10.0 (2018-11-22)

  • Merge pull request #65 from bsinno/bugfix/fix_identity_transform_behaviour Fix bug in lookupTransform()
  • Fix lookupTransform() behaviour when transforming from a frame to itself
  • revert now unnecessary message initializations (#64)
  • use console_bridge_vendor (#63)
  • Contributors: Alessandro Bottero, Mikael Arguedas, Tully Foote

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.12.6
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros2/geometry2.git
VCS Type git
VCS Version eloquent
Last Updated 2020-12-04
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Chris Lalancette
  • Alejandro Hernandez Cordero

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.12.6 (2020-12-04)

  • Update maintainers of the ros2/geometry2 fork. (#328) (#331)
  • tf2 add windows cmath constants (#217) (#220)
  • Contributors: Alejandro Hernández Cordero

0.12.5 (2020-01-17)

0.12.4 (2019-11-19)

0.12.3 (2019-11-18)

  • Provide more available error messaging for nonexistent and invalid frames in canTransform (#187)
  • Contributors: Emerson Knapp

0.12.2 (2019-11-18)

  • Fix up -Wcast-qual warning (#193) (#197)
  • Contributors: Chris Lalancette

0.12.1 (2019-10-23)

  • Overwrite TimeCacheInterface type with a current input (#151)
  • [tf2] Use ament_target_dependencies where possible
  • Restore conversion via message traits (#167)
  • Contributors: Jacob Perron, Michael Carroll, Vinnam Kim

0.12.0 (2019-09-26)

  • Add pure virtual interface tf2::BufferCoreInterface
  • Guard against invalid iterator (#127)
  • Contributors: Jacob Perron

0.11.3 (2019-05-24)

0.11.2 (2019-05-20)

0.11.1 (2019-05-09)

0.11.0 (2019-04-14)

0.10.1 (2018-12-06)

0.10.0 (2018-11-22)

  • Merge pull request #65 from bsinno/bugfix/fix_identity_transform_behaviour Fix bug in lookupTransform()
  • Fix lookupTransform() behaviour when transforming from a frame to itself
  • revert now unnecessary message initializations (#64)
  • use console_bridge_vendor (#63)
  • Contributors: Alessandro Bottero, Mikael Arguedas, Tully Foote

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.11.6
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros2/geometry2.git
VCS Type git
VCS Version dashing
Last Updated 2019-12-10
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Tully Foote

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.11.6 (2019-12-10)

  • Fix up -Wcast-qual warning (#193)
  • Contributors: Yu, Yan

0.11.5 (2019-09-06)

0.11.4 (2019-07-31)

0.11.3 (2019-05-24)

0.11.2 (2019-05-20)

0.11.1 (2019-05-09)

0.11.0 (2019-04-14)

0.10.1 (2018-12-06)

0.10.0 (2018-11-22)

  • Merge pull request #65 from bsinno/bugfix/fix_identity_transform_behaviour Fix bug in lookupTransform()
  • Fix lookupTransform() behaviour when transforming from a frame to itself
  • revert now unnecessary message initializations (#64)
  • use console_bridge_vendor (#63)
  • Contributors: Alessandro Bottero, Mikael Arguedas, Tully Foote

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.17.5
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros2/geometry2.git
VCS Type git
VCS Version galactic
Last Updated 2022-12-03
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Chris Lalancette
  • Alejandro Hernandez Cordero

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.17.5 (2022-12-02)

  • Include required header Scalar.h (#563)
  • Contributors: Shane Loretz

0.17.4 (2022-06-30)

0.17.3 (2022-04-28)

  • Workaround with pragma push and pop for NO_ERROR collison (#456) (#458)
  • Contributors: Abrar Rahman Protyasha

0.17.2 (2021-05-10)

0.17.1 (2021-04-06)

  • Change index.ros.org -> docs.ros.org. (#394)
  • Contributors: Chris Lalancette

0.17.0 (2021-03-19)

0.16.0 (2021-01-25)

0.15.1 (2020-12-08)

0.15.0 (2020-11-02)

  • Update maintainers of the ros2/geometry2 fork. (#328)
  • Contributors: Chris Lalancette

0.14.1 (2020-09-21)

  • Active usual compiler warnings in tf2 (#322)
  • Cleanups in buffer_core.cpp. (#301)
  • Add PoseWithCovarianceStamped transform support (#312)
  • Contributors: Chris Lalancette, Ivan Santiago Paunovic, Joshua Whitley

0.14.0 (2020-08-14)

  • Fix a TOCTTOU race in tf2. (#307)
  • Fixed memory leak in Buffer::waitForTransform (#281)
  • Add common linters to tf2. (#258)
  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Martin Ganeff

0.13.4 (2020-06-03)

  • Add missing virtual destructors (#272)
  • Contributors: Ivan Santiago Paunovic

0.13.3 (2020-05-26)

0.13.2 (2020-05-18)

  • Modify error message to not match the pattern for Jenkins MSBuild errors (#265)
  • Contributors: Dirk Thomas

0.13.1 (2020-05-08)

  • export modern CMake interface target (#263)
  • Contributors: Dirk Thomas

0.13.0 (2020-04-30)

  • Added doxyfiles and sphinx Makefiles (#257)
  • Fix displayTimePoint truncation error (#253)
  • rename rosidl_generator_cpp namespace to rosidl_runtime_cpp (#248)
  • Use the new rcutils_strerror function. (#239)
  • Remove unnecessary semicolons. (#235)
  • Export all tf2 dependencies. (#238)
  • Fix a deprecated copy warning by implementing the assignment operator (#201)
  • tf2 add windows cmath constants (#217)
  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Hunter L. Allen, Michel Hidalgo, brawner

0.12.4 (2019-11-19)

0.12.3 (2019-11-18)

  • Provide more available error messaging for nonexistent and invalid frames in canTransform (ros2 #187)
  • Contributors: Emerson Knapp

0.12.2 (2019-11-18)

  • Fix up -Wcast-qual warning (#193) (#197)
  • Contributors: Chris Lalancette

0.12.1 (2019-10-23)

  • Overwrite TimeCacheInterface type with a current input (#151)
  • [tf2] Use ament_target_dependencies where possible
  • Restore conversion via message traits (#167)
  • Contributors: Jacob Perron, Michael Carroll, Vinnam Kim

0.12.0 (2019-09-26)

  • Add pure virtual interface tf2::BufferCoreInterface
  • Guard against invalid iterator (#127)
  • Contributors: Jacob Perron

0.11.3 (2019-05-24)

0.11.2 (2019-05-20)

0.11.1 (2019-05-09)

0.11.0 (2019-04-14)

0.10.1 (2018-12-06)

0.10.0 (2018-11-22)

  • Merge pull request #65 from bsinno/bugfix/fix_identity_transform_behaviour Fix bug in lookupTransform()
  • Fix lookupTransform() behaviour when transforming from a frame to itself
  • revert now unnecessary message initializations (#64)
  • use console_bridge_vendor (#63)
  • Contributors: Alessandro Bottero, Mikael Arguedas, Tully Foote

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.13.14
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros2/geometry2.git
VCS Type git
VCS Version foxy
Last Updated 2023-03-16
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Chris Lalancette
  • Alejandro Hernandez Cordero

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.13.14 (2023-03-16)

  • Include required header Scalar.h (#559) (#564)
  • Contributors: mergify[bot], Shane Loretz

0.13.13 (2022-01-31)

0.13.12 (2021-10-05)

  • Workaround with pragma push and pop for NO_ERROR collison (#456)
  • Contributors: Lior Lustgarten

0.13.11 (2021-08-31)

  • Fix a TOCTTOU race in tf2 (#307) (#449)
  • Contributors: Chris Lalancette, Louise Poubel

0.13.10 (2021-04-14)

0.13.9 (2020-12-09)

0.13.8 (2020-12-08)

0.13.7 (2020-11-18)

  • [Foxy backport] Fixed memory leak in Buffer::waitForTransform (#281) (#330)
  • Contributors: Matthijs den Toom

0.13.6 (2020-10-28)

  • [Foxy backport] Add PoseWithCovarianceStamped transform support (#336)
  • Update maintainers of the ros2/geometry2 fork. (#328) (#332)
  • Contributors: Alejandro Hernández Cordero, Nikolai Morin

0.13.5 (2020-08-05)

0.13.4 (2020-06-03)

  • Add missing virtual destructors (#272)
  • Contributors: Ivan Santiago Paunovic

0.13.3 (2020-05-26)

0.13.2 (2020-05-18)

  • Modify error message to not match the pattern for Jenkins MSBuild errors (#265)
  • Contributors: Dirk Thomas

0.13.1 (2020-05-08)

  • export modern CMake interface target (#263)
  • Contributors: Dirk Thomas

0.13.0 (2020-04-30)

  • Added doxyfiles and sphinx Makefiles (#257)
  • Fix displayTimePoint truncation error (#253)
  • rename rosidl_generator_cpp namespace to rosidl_runtime_cpp (#248)
  • Use the new rcutils_strerror function. (#239)
  • Remove unnecessary semicolons. (#235)
  • Export all tf2 dependencies. (#238)
  • Fix a deprecated copy warning by implementing the assignment operator (#201)
  • tf2 add windows cmath constants (#217)
  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Hunter L. Allen, Michel Hidalgo, brawner

0.12.4 (2019-11-19)

0.12.3 (2019-11-18)

  • Provide more available error messaging for nonexistent and invalid frames in canTransform (#187)
  • Contributors: Emerson Knapp

0.12.2 (2019-11-18)

  • Fix up -Wcast-qual warning (#193) (#197)
  • Contributors: Chris Lalancette

0.12.1 (2019-10-23)

  • Overwrite TimeCacheInterface type with a current input (#151)
  • [tf2] Use ament_target_dependencies where possible
  • Restore conversion via message traits (#167)
  • Contributors: Jacob Perron, Michael Carroll, Vinnam Kim

0.12.0 (2019-09-26)

  • Add pure virtual interface tf2::BufferCoreInterface
  • Guard against invalid iterator (#127)
  • Contributors: Jacob Perron

0.11.3 (2019-05-24)

0.11.2 (2019-05-20)

0.11.1 (2019-05-09)

0.11.0 (2019-04-14)

0.10.1 (2018-12-06)

0.10.0 (2018-11-22)

  • Merge pull request #65 from bsinno/bugfix/fix_identity_transform_behaviour Fix bug in lookupTransform()
  • Fix lookupTransform() behaviour when transforming from a frame to itself
  • revert now unnecessary message initializations (#64)
  • use console_bridge_vendor (#63)
  • Contributors: Alessandro Bottero, Mikael Arguedas, Tully Foote

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.31.8
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros2/geometry2.git
VCS Type git
VCS Version iron
Last Updated 2024-08-30
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Alejandro Hernandez Cordero
  • Chris Lalancette

Authors

  • Eitan Marder-Eppstein
  • Tully Foote
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.31.8 (2024-08-29)

  • Enable Twist interpolator (backport #646) (#685)
  • Contributors: mergify[bot]

0.31.7 (2024-05-29)

  • [TimeCache] Improve performance for insertData() and pruneList() (backport #680) (#694)
    • Nacho/minor fixes tf2 cache (#658)
    • Remove unused parameter

    * Make use of API function to improve redability `cpp TimePoint TimeCache::getLatestTimestamp() { return storage\_.front().stamp\_; }[ And std::list<T>::front() is(gcclib): ]{.title-ref}cpp reference front() _GLIBCXX_NOEXCEPT { return *begin(); }[ * Same argument as 321bd225afb5c ]{.title-ref}cpp TimePoint TimeCache::getLatestTimestamp() { // empty list case // ... return storage\_.front().stamp\_; }[ and std::list<T>::front(): ]{.title-ref}cpp reference front() _GLIBCXX_NOEXCEPT { return *begin(); }[ * Improve readbility by relying on STL functions By now reading to this block I can tell that we are preventing to inserting a new element in the list, that has a timestamp that is actually older than the max_storage_time_ we allow for * Remove hardcoded algorithmg for STL one The intent of the code is now more clear, instead of relying on raw loops, we "find if" there is any element in the list that has a stamp older than the incoming one. With this we find the position in the list where we should insert the current timestamp: `storage_it]{.title-ref}

    • Remove to better express what this pointer is represetngin

    * Replace raw loop for STL algorithm Remove if any element is older thant the max_storage_time_ allowed, relative to the latest(sooner) time seems clear npw * [TimeCache] Improve performance for insertData() and pruneList() (#680) Co-authored-by: Chris Lalancette <<clalancette@gmail.com>> * Don't break ABI ---------Co-authored-by: Ignacio Vizzo <<ignacio@dexory.com>> Co-authored-by: Eric Cousineau <<eric.cousineau@tri.global>> Co-authored-by: Chris Lalancette <<clalancette@gmail.com>> Co-authored-by: Alejandro Hernández Cordero <<ahcorde@gmail.com>>

  • Add cache_benchmark (backport #679) (#692) Co-authored-by: Eric Cousineau <<eric.cousineau@tri.global>> Co-authored-by: Alejandro Hernández Cordero <<ahcorde@gmail.com>>
  • [cache_unittest] Add direct implementation testing on ordering, pruning (backport #678) (#689) Co-authored-by: Eric Cousineau <<eric.cousineau@tri.global>> Co-authored-by: Alejandro Hernández Cordero <<ahcorde@gmail.com>>
  • Contributors: mergify[bot]

0.31.6 (2024-04-19)

  • Fix constantly increasing memory in std::list (#649)
  • Contributors: Ignacio Vizzo <<ignaciovizzo@gmail.com>>

0.31.5 (2023-09-08)

0.31.4 (2023-07-14)

0.31.3 (2023-05-11)

  • Fix error code returned in BufferCore::walkToTopParent (#602)
  • Contributors: Patrick Roncagliolo

0.31.2 (2023-04-13)

0.31.1 (2023-04-12)

0.31.0 (2023-04-11)

  • Depend on ament_cmake_ros to default SHARED to ON (#591)
  • Fix a potential crash in TimeCache::findClosest (#592)
  • Extend TimeCache API to provide rich ExtrapolationException infos (#586)
  • Contributors: Chris Lalancette, Patrick Roncagliolo, Tyler Weaver

0.30.0 (2023-02-14)

  • Update geometry2 to C++17 (#584)
  • Contributors: Chris Lalancette

0.29.0 (2022-11-21)

  • Include required header Scalar.h (#559)
  • Update maintainers (#560)
  • Contributors: Audrow Nash, Shane Loretz

0.28.0 (2022-11-02)

0.27.0 (2022-09-13)

0.26.2 (2022-08-15)

0.26.1 (2022-06-24)

0.26.0 (2022-04-29)

0.25.0 (2022-04-05)

  • Install includes to include/${PROJECT_NAME} and use modern CMake (#493)
  • Contributors: Shane Loretz

0.24.0 (2022-03-31)

0.23.0 (2022-03-28)

  • forward declare fromMsg to avoid missing symbols in downstream libraries (#485)
  • Contributors: João C. Monteiro

0.22.0 (2022-03-01)

0.21.0 (2022-01-14)

  • tf2: Enable common linter tests (#469)
  • Contributors: Abrar Rahman Protyasha

0.20.0 (2021-12-17)

  • Move time functions into time.cpp.
  • Change a for loop to a while loop.
  • Switch to C++-style casts.
  • Remove totally unused (and unreachable) code.
  • Replace NULL with nullptr.
  • Fix up some comments.
  • Use std::make_shared where we can.
  • Replace two comparisons with empty string to empty().
  • Make sure to include-what-you-use.
  • Remove unnecessary internal method.
  • Remove long-deprecated walkToTopParent overload.
  • Contributors: Chris Lalancette

0.19.0 (2021-10-15)

  • Remove unnecessary test dependencies.
  • Remove some references to the ROS 1 wiki.
  • Add rosidl_runtime_cpp as build_depend and build_export_depend.
  • Minor cleanups in CMakeLists.txt.
  • Remove include directory that doesn't exist.
  • Remove completely unnecessary target_link_libraries.
  • Remove unused speed_test from tf2.
  • Suppress clang warnings about enumerator attributes. (#463)
  • Change TF2Error names to be a bit more descriptive. (#349)
  • Fixed errors due to missing header link. (#432)
  • Contributors: Chris Lalancette, Shivam Pandey

0.18.0 (2021-06-01)

  • Deprecate tf2_geometry_msgs.h (#418)
  • Speedup covariance unwrapping (#399)
  • Contributors: Chris Lalancette, Dima Dorezyuk

0.17.1 (2021-04-06)

  • Change index.ros.org -> docs.ros.org. (#394)
  • Contributors: Chris Lalancette

0.17.0 (2021-03-19)

0.16.0 (2021-01-25)

0.15.1 (2020-12-08)

0.15.0 (2020-11-02)

  • Update maintainers of the ros2/geometry2 fork. (#328)
  • Contributors: Chris Lalancette

0.14.1 (2020-09-21)

  • Active usual compiler warnings in tf2 (#322)
  • Cleanups in buffer_core.cpp. (#301)
  • Add PoseWithCovarianceStamped transform support (#312)
  • Contributors: Chris Lalancette, Ivan Santiago Paunovic, Joshua Whitley

0.14.0 (2020-08-14)

  • Fix a TOCTTOU race in tf2. (#307)
  • Fixed memory leak in Buffer::waitForTransform (#281)
  • Add common linters to tf2. (#258)
  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Martin Ganeff

0.13.4 (2020-06-03)

  • Add missing virtual destructors (#272)
  • Contributors: Ivan Santiago Paunovic

0.13.3 (2020-05-26)

0.13.2 (2020-05-18)

  • Modify error message to not match the pattern for Jenkins MSBuild errors (#265)
  • Contributors: Dirk Thomas

0.13.1 (2020-05-08)

  • export modern CMake interface target (#263)
  • Contributors: Dirk Thomas

0.13.0 (2020-04-30)

  • Added doxyfiles and sphinx Makefiles (#257)
  • Fix displayTimePoint truncation error (#253)
  • rename rosidl_generator_cpp namespace to rosidl_runtime_cpp (#248)
  • Use the new rcutils_strerror function. (#239)
  • Remove unnecessary semicolons. (#235)
  • Export all tf2 dependencies. (#238)
  • Fix a deprecated copy warning by implementing the assignment operator (#201)
  • tf2 add windows cmath constants (#217)
  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Dirk Thomas, Hunter L. Allen, Michel Hidalgo, brawner

0.12.4 (2019-11-19)

0.12.3 (2019-11-18)

  • Provide more available error messaging for nonexistent and invalid frames in canTransform (ros2 #187)
  • Contributors: Emerson Knapp

0.12.2 (2019-11-18)

  • Fix up -Wcast-qual warning (#193) (#197)
  • Contributors: Chris Lalancette

0.12.1 (2019-10-23)

  • Overwrite TimeCacheInterface type with a current input (#151)
  • [tf2] Use ament_target_dependencies where possible
  • Restore conversion via message traits (#167)
  • Contributors: Jacob Perron, Michael Carroll, Vinnam Kim

0.12.0 (2019-09-26)

  • Add pure virtual interface tf2::BufferCoreInterface
  • Guard against invalid iterator (#127)
  • Contributors: Jacob Perron

0.11.3 (2019-05-24)

0.11.2 (2019-05-20)

0.11.1 (2019-05-09)

0.11.0 (2019-04-14)

0.10.1 (2018-12-06)

0.10.0 (2018-11-22)

  • Merge pull request #65 from bsinno/bugfix/fix_identity_transform_behaviour Fix bug in lookupTransform()
  • Fix lookupTransform() behaviour when transforming from a frame to itself
  • revert now unnecessary message initializations (#64)
  • use console_bridge_vendor (#63)
  • Contributors: Alessandro Bottero, Mikael Arguedas, Tully Foote

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
aruco_ros
cartographer_ros
control_toolbox
depthai_bridge
find_object_2d
fuse_models
fuse_publishers
geometry2
test_tf2
tf2_bullet
tf2_eigen
tf2_eigen_kdl
tf2_geometry_msgs
tf2_kdl
tf2_py
tf2_ros
tf2_sensor_msgs
turtle_tf2_cpp
grid_map_ros
depth_image_proc
image_rotate
imu_complementary_filter
rviz_imu_plugin
interactive_marker_twist_server
interactive_markers
laser_filters
laser_geometry
mapviz
mapviz_plugins
multires_image
tile_map
swri_geometry_util
swri_image_util
swri_transform_util
microstrain_inertial_driver
moveit_core
moveit_kinematics
pilz_industrial_motion_planner
moveit_ros_move_group
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_robot_interaction
mrpt_map_server
mrpt_msgs_bridge
mrpt_pf_localization
mrpt_pointcloud_pipeline
mrpt_reactivenav2d
mrpt_tps_astar_planner
mrpt_generic_sensor
mrpt_sensor_bumblebee_stereo
mrpt_sensor_gnss_nmea
mrpt_sensor_gnss_novatel
mrpt_sensor_imu_taobotics
mrpt_sensorlib
mvsim
nonpersistent_voxel_layer
novatel_gps_driver
octomap_server
octomap_ros
pcl_ros
pointcloud_to_laserscan
pose_cov_ops
realsense2_camera
robot_localization
rtabmap_conversions
rtabmap_rviz_plugins
rtabmap_slam
rtabmap_util
rtabmap_viz
rviz_common
rviz_default_plugins
rviz_visual_testing_framework
rviz_visual_tools
septentrio_gnss_driver
slam_toolbox
tf2_2d
ublox_gps
velodyne_pointcloud
warehouse_ros
netft_utils
move_group_interface_client
backward_global_planner
backward_local_planner
forward_global_planner
forward_local_planner
nav2z_planners_common
pure_spinning_local_planner
undo_path_global_planner
nav2z_client
sm_aws_warehouse_navigation
sm_dance_bot
sm_dance_bot_strikes_back
sm_dance_bot_warehouse
sm_dance_bot_warehouse_2
sm_dance_bot_warehouse_3
beluga_ros
etsi_its_rviz_plugins
lidar_situational_graphs
message_tf_frame_transformer
mola_bridge_ros2
mrpt_apps
mrpt_libros_bridge
nav2_amcl
nav2_behavior_tree
nav2_behaviors
nav2_collision_monitor
nav2_costmap_2d
nav_2d_utils
nav2_map_server
nav2_mppi_controller
nav2_regulated_pure_pursuit_controller
nav2_rotation_shim_controller
nav2_util
nerian_stereo
admittance_controller
diff_drive_controller
steering_controllers_library
tricycle_controller
sick_scan_xd
unitree_ros
vrpn_mocap

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.5.20
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros/geometry2.git
VCS Type git
VCS Version indigo-devel
Last Updated 2018-11-16
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Tully Foote

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.5.20 (2018-11-16)

0.5.19 (2018-11-06)

  • fix issue #315
  • fixed nan interpoaltion issue
  • Contributors: Keller Fabian Rudolf (CC-AD/EYC3), Kuang Fangjun

0.5.18 (2018-07-10)

  • preserve constness of const argument to avoid warnings (#307)
  • Change comment style for unused doxygen (#297)
  • Contributors: Jacob Perron, Tully Foote

0.5.17 (2018-01-01)

  • Merge pull request #278 from ros/chain_as_vec_test2 Clean up results of _chainAsVector
  • Simple test to check BufferCore::_chainAsVector. Unit tests for walk and chain passing now.
  • Merge pull request #267 from at-wat/speedup-timecache-for-large-buffer Speed-up TimeCache search for large cache time.
  • Merge pull request #265 from vsherrod/interpolation_fix Corrected time output on interpolation function.
  • Add time_interval option to tf2 speed-test.
  • Merge pull request #269 from ros/frames_as_yaml allFrameAsYaml consistently outputting a dict
  • resolve https://github.com/ros/geometry/pull/153 at the source instead of needing the workaround.
  • Speed-up TimeCache search for large cache time.
  • Modified tests for correct time in interpolation to existing tests.
  • Corrected time output on interpolation function. Added unit test to check for this.
  • Contributors: Atsushi Watanabe, Miguel Prada, Tully Foote, Vallan Sherrod

0.5.16 (2017-07-14)

  • remove explicit templating to standardize on overloading. But provide backwards compatibility with deprecation.
  • Merge pull request #144 from clearpathrobotics/dead_lock_fix Solve a bug that causes a deadlock in MessageFilter
  • Resolve 2 places where the error_msg would not be propogated. Fixes #198
  • Remove generate_rand_vectors() from a number of tests. (#227)
  • fixing include directory order to support overlays (#231)
  • replaced dependencies on tf2_msgs_gencpp by exported dependencies
  • Document the lifetime of the returned reference for getFrameId getTimestamp
  • relax normalization tolerance. #196 was too strict for some use cases. (#220)
  • Solve a bug that causes a deadlock in MessageFilter
  • Contributors: Adel Fakih, Chris Lalancette, Christopher Wecht, Tully Foote, dhood

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.5.20
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros/geometry2.git
VCS Type git
VCS Version indigo-devel
Last Updated 2018-11-16
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Tully Foote

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.5.20 (2018-11-16)

0.5.19 (2018-11-06)

  • fix issue #315
  • fixed nan interpoaltion issue
  • Contributors: Keller Fabian Rudolf (CC-AD/EYC3), Kuang Fangjun

0.5.18 (2018-07-10)

  • preserve constness of const argument to avoid warnings (#307)
  • Change comment style for unused doxygen (#297)
  • Contributors: Jacob Perron, Tully Foote

0.5.17 (2018-01-01)

  • Merge pull request #278 from ros/chain_as_vec_test2 Clean up results of _chainAsVector
  • Simple test to check BufferCore::_chainAsVector. Unit tests for walk and chain passing now.
  • Merge pull request #267 from at-wat/speedup-timecache-for-large-buffer Speed-up TimeCache search for large cache time.
  • Merge pull request #265 from vsherrod/interpolation_fix Corrected time output on interpolation function.
  • Add time_interval option to tf2 speed-test.
  • Merge pull request #269 from ros/frames_as_yaml allFrameAsYaml consistently outputting a dict
  • resolve https://github.com/ros/geometry/pull/153 at the source instead of needing the workaround.
  • Speed-up TimeCache search for large cache time.
  • Modified tests for correct time in interpolation to existing tests.
  • Corrected time output on interpolation function. Added unit test to check for this.
  • Contributors: Atsushi Watanabe, Miguel Prada, Tully Foote, Vallan Sherrod

0.5.16 (2017-07-14)

  • remove explicit templating to standardize on overloading. But provide backwards compatibility with deprecation.
  • Merge pull request #144 from clearpathrobotics/dead_lock_fix Solve a bug that causes a deadlock in MessageFilter
  • Resolve 2 places where the error_msg would not be propogated. Fixes #198
  • Remove generate_rand_vectors() from a number of tests. (#227)
  • fixing include directory order to support overlays (#231)
  • replaced dependencies on tf2_msgs_gencpp by exported dependencies
  • Document the lifetime of the returned reference for getFrameId getTimestamp
  • relax normalization tolerance. #196 was too strict for some use cases. (#220)
  • Solve a bug that causes a deadlock in MessageFilter
  • Contributors: Adel Fakih, Chris Lalancette, Christopher Wecht, Tully Foote, dhood

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.5.20
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros/geometry2.git
VCS Type git
VCS Version indigo-devel
Last Updated 2018-11-16
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Tully Foote

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.5.20 (2018-11-16)

0.5.19 (2018-11-06)

  • fix issue #315
  • fixed nan interpoaltion issue
  • Contributors: Keller Fabian Rudolf (CC-AD/EYC3), Kuang Fangjun

0.5.18 (2018-07-10)

  • preserve constness of const argument to avoid warnings (#307)
  • Change comment style for unused doxygen (#297)
  • Contributors: Jacob Perron, Tully Foote

0.5.17 (2018-01-01)

  • Merge pull request #278 from ros/chain_as_vec_test2 Clean up results of _chainAsVector
  • Simple test to check BufferCore::_chainAsVector. Unit tests for walk and chain passing now.
  • Merge pull request #267 from at-wat/speedup-timecache-for-large-buffer Speed-up TimeCache search for large cache time.
  • Merge pull request #265 from vsherrod/interpolation_fix Corrected time output on interpolation function.
  • Add time_interval option to tf2 speed-test.
  • Merge pull request #269 from ros/frames_as_yaml allFrameAsYaml consistently outputting a dict
  • resolve https://github.com/ros/geometry/pull/153 at the source instead of needing the workaround.
  • Speed-up TimeCache search for large cache time.
  • Modified tests for correct time in interpolation to existing tests.
  • Corrected time output on interpolation function. Added unit test to check for this.
  • Contributors: Atsushi Watanabe, Miguel Prada, Tully Foote, Vallan Sherrod

0.5.16 (2017-07-14)

  • remove explicit templating to standardize on overloading. But provide backwards compatibility with deprecation.
  • Merge pull request #144 from clearpathrobotics/dead_lock_fix Solve a bug that causes a deadlock in MessageFilter
  • Resolve 2 places where the error_msg would not be propogated. Fixes #198
  • Remove generate_rand_vectors() from a number of tests. (#227)
  • fixing include directory order to support overlays (#231)
  • replaced dependencies on tf2_msgs_gencpp by exported dependencies
  • Document the lifetime of the returned reference for getFrameId getTimestamp
  • relax normalization tolerance. #196 was too strict for some use cases. (#220)
  • Solve a bug that causes a deadlock in MessageFilter
  • Contributors: Adel Fakih, Chris Lalancette, Christopher Wecht, Tully Foote, dhood

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.4.12
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros/geometry2.git
VCS Type git
VCS Version hydro-devel
Last Updated 2014-12-16
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Tully Foote

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.4.12 (2014-09-18)

0.4.11 (2014-06-04)

  • Fix format string
  • Contributors: Austin

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.5.20
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/ros/geometry2.git
VCS Type git
VCS Version indigo-devel
Last Updated 2018-11-16
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Tully Foote

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. No README in repository either.
CHANGELOG

Changelog for package tf2

0.5.20 (2018-11-16)

0.5.19 (2018-11-06)

  • fix issue #315
  • fixed nan interpoaltion issue
  • Contributors: Keller Fabian Rudolf (CC-AD/EYC3), Kuang Fangjun

0.5.18 (2018-07-10)

  • preserve constness of const argument to avoid warnings (#307)
  • Change comment style for unused doxygen (#297)
  • Contributors: Jacob Perron, Tully Foote

0.5.17 (2018-01-01)

  • Merge pull request #278 from ros/chain_as_vec_test2 Clean up results of _chainAsVector
  • Simple test to check BufferCore::_chainAsVector. Unit tests for walk and chain passing now.
  • Merge pull request #267 from at-wat/speedup-timecache-for-large-buffer Speed-up TimeCache search for large cache time.
  • Merge pull request #265 from vsherrod/interpolation_fix Corrected time output on interpolation function.
  • Add time_interval option to tf2 speed-test.
  • Merge pull request #269 from ros/frames_as_yaml allFrameAsYaml consistently outputting a dict
  • resolve https://github.com/ros/geometry/pull/153 at the source instead of needing the workaround.
  • Speed-up TimeCache search for large cache time.
  • Modified tests for correct time in interpolation to existing tests.
  • Corrected time output on interpolation function. Added unit test to check for this.
  • Contributors: Atsushi Watanabe, Miguel Prada, Tully Foote, Vallan Sherrod

0.5.16 (2017-07-14)

  • remove explicit templating to standardize on overloading. But provide backwards compatibility with deprecation.
  • Merge pull request #144 from clearpathrobotics/dead_lock_fix Solve a bug that causes a deadlock in MessageFilter
  • Resolve 2 places where the error_msg would not be propogated. Fixes #198
  • Remove generate_rand_vectors() from a number of tests. (#227)
  • fixing include directory order to support overlays (#231)
  • replaced dependencies on tf2_msgs_gencpp by exported dependencies
  • Document the lifetime of the returned reference for getFrameId getTimestamp
  • relax normalization tolerance. #196 was too strict for some use cases. (#220)
  • Solve a bug that causes a deadlock in MessageFilter
  • Contributors: Adel Fakih, Chris Lalancette, Christopher Wecht, Tully Foote, dhood

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.6.9
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description A set of ROS packages for keeping track of coordinate transforms.
Checkout URI https://github.com/jsk-ros-pkg/geometry2_python3.git
VCS Type git
VCS Version melodic-devel
Last Updated 2022-06-23
Dev Status MAINTAINED
CI status
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

tf2 is the second generation of the transform library, which lets the user keep track of multiple coordinate frames over time. tf2 maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.

Additional Links

Maintainers

  • Tully Foote

Authors

  • Tully Foote
  • Eitan Marder-Eppstein
  • Wim Meeussen
README
No README found. See repository README.
CHANGELOG

Changelog for package tf2

0.6.7 (2020-03-09)

  • [windows][melodic] more portable fixes. (#443)
  • [Windows][melodic-devel] Fix install locations (#442)
  • Revert "rework Eigen functions namespace hack" (#436)
  • Contributors: Sean Yen, Tully Foote

0.6.6 (2020-01-09)

  • Fix compile error missing ros/ros.h (#400)
    • ros/ros.h -> ros/time.h
    • tf2_eigen doesn't need ros/ros.h
  • rework Eigen functions namespace hack
  • separate transform function declarations into transform_functions.h
  • use ROS_DEPRECATED macro for portability (#362)
  • Remove [signals]{.title-ref} from find_package(Boost COMPONENTS ...).
  • Remove legacy inclusion in CMakeLists of tf2.
  • Contributors: James Xu, Maarten de Vries, Marco Tranzatto, Shane Loretz, Tully Foote

0.6.5 (2018-11-16)

0.6.4 (2018-11-06)

  • Resolved pedantic warnings
  • fix issue #315
  • fixed nan interpoaltion issue
  • Contributors: Keller Fabian Rudolf (CC-AD/EYC3), Kuang Fangjun, Martin Ganeff

0.6.3 (2018-07-09)

  • preserve constness of const argument to avoid warnings (#307)
  • Change comment style for unused doxygen (#297)
  • Contributors: Jacob Perron, Tully Foote

0.6.2 (2018-05-02)

0.6.1 (2018-03-21)

  • Replaced deprecated console_bridge macro calls (tests)
  • Contributors: Johannes Meyer, Tully Foote

0.6.0 (2018-03-21)

  • Replaced deprecated log macro calls
  • Contributors: Tim Rakowski, Tully Foote

0.5.17 (2018-01-01)

  • Merge pull request #278 from ros/chain_as_vec_test2 Clean up results of _chainAsVector
  • Simple test to check BufferCore::_chainAsVector. Unit tests for walk and chain passing now.
  • Merge pull request #267 from at-wat/speedup-timecache-for-large-buffer Speed-up TimeCache search for large cache time.
  • Merge pull request #265 from vsherrod/interpolation_fix Corrected time output on interpolation function.
  • Add time_interval option to tf2 speed-test.
  • Merge pull request #269 from ros/frames_as_yaml allFrameAsYaml consistently outputting a dict
  • resolve https://github.com/ros/geometry/pull/153 at the source instead of needing the workaround.
  • Speed-up TimeCache search for large cache time.
  • Modified tests for correct time in interpolation to existing tests.
  • Corrected time output on interpolation function. Added unit test to check for this.
  • Contributors: Atsushi Watanabe, Miguel Prada, Tully Foote, Vallan Sherrod

0.5.16 (2017-07-14)

  • remove explicit templating to standardize on overloading. But provide backwards compatibility with deprecation.
  • Merge pull request #144 from clearpathrobotics/dead_lock_fix Solve a bug that causes a deadlock in MessageFilter
  • Resolve 2 places where the error_msg would not be propogated. Fixes #198
  • Remove generate_rand_vectors() from a number of tests. (#227)
  • fixing include directory order to support overlays (#231)
  • replaced dependencies on tf2_msgs_gencpp by exported dependencies
  • Document the lifetime of the returned reference for getFrameId getTimestamp
  • relax normalization tolerance. #196 was too strict for some use cases. (#220)
  • Solve a bug that causes a deadlock in MessageFilter
  • Contributors: Adel Fakih, Chris Lalancette, Christopher Wecht, Tully Foote, dhood

0.5.15 (2017-01-24)

0.5.14 (2017-01-16)

  • fixes #194 check for quaternion normalization before inserting into storage (#196)
    • check for quaternion normalization before inserting into storage
    • Add test to check for transform failure on invalid quaternion input
  • updating getAngleShortestPath() (#187)
  • Move internal cache functions into a namespace Fixes https://github.com/ros/geometry2/issues/175
  • Link properly to convert.h
  • Landing page for tf2 describing the conversion interface
  • Fix comment on BufferCore::MAX_GRAPH_DEPTH.
  • Contributors: Jackie Kay, Phil Osteen, Tully Foote, alex, gavanderhoorn

0.5.13 (2016-03-04)

0.5.12 (2015-08-05)

  • add utilities to get yaw, pitch, roll and identity transform
  • provide more conversions between types The previous conversion always assumed that it was converting a non-message type to a non-message type. Now, one, both or none can be a message or a non-message.
  • Contributors: Vincent Rabaud

0.5.11 (2015-04-22)

0.5.10 (2015-04-21)

  • move lct_cache into function local memoryfor #92
  • Clean up range checking. Re: #92
  • Fixed chainToVector
  • release lock before possibly invoking user callbacks. Fixes #91
  • Contributors: Jackie Kay, Tully Foote

0.5.9 (2015-03-25)

  • fixing edge case where two no frame id lookups matched in getLatestCommonTime
  • Contributors: Tully Foote

0.5.8 (2015-03-17)

  • change from default argument to overload to avoid linking issue #84
  • remove useless Makefile files
  • Remove unused assignments in max/min functions
  • change _allFramesAsDot() -> _allFramesAsDot(double current_time)
  • Contributors: Jon Binney, Kei Okada, Tully Foote, Vincent Rabaud

0.5.7 (2014-12-23)

0.5.6 (2014-09-18)

0.5.5 (2014-06-23)

0.5.4 (2014-05-07)

0.5.3 (2014-02-21)

0.5.2 (2014-02-20)

0.5.1 (2014-02-14)

0.5.0 (2014-02-14)

0.4.10 (2013-12-26)

  • updated error message. fixes #38
  • tf2: add missing console bridge include directories (fix #48)
  • Fix const correctness of tf2::Vector3 rotate() method The method does not modify the class thus should be const. This has already been fixed in Bullet itself.
  • Contributors: Dirk Thomas, Timo Rohling, Tully Foote

0.4.9 (2013-11-06)

0.4.8 (2013-11-06)

  • moving python documentation to tf2_ros from tf2 to follow the code
  • removing legacy rospy dependency. implementation removed in 0.4.0 fixes #27

0.4.7 (2013-08-28)

  • switching to use allFramesAsStringNoLock inside of getLatestCommonTime and walkToParent and locking in public API _getLatestCommonTime instead re #23
  • Fixes a crash in tf's view_frames related to dot code generation in allFramesAsDot

0.4.6 (2013-08-28)

  • cleaner fix for #19
  • fix pointer initialization. Fixes #19
  • fixes #18 for hydro
  • package.xml: corrected typo in description

0.4.5 (2013-07-11)

0.4.4 (2013-07-09)

  • making repo use CATKIN_ENABLE_TESTING correctly and switching rostest to be a test_depend with that change.
  • tf2: Fixes a warning on OS X, but generally safer Replaces the use of pointers with shared_ptrs, this allows the polymorphism and makes it so that the compiler doesn't yell at us about calling delete on a class with a public non-virtual destructor.
  • tf2: Fixes compiler warnings on OS X This exploited a gcc specific extension and is not C++ standard compliant. There used to be a "fix" for OS X which no longer applies. I think it is ok to use this as an int instead of a double, but another way to fix it would be to use a define.
  • tf2: Fixes linkedit errors on OS X

0.4.3 (2013-07-05)

0.4.2 (2013-07-05)

  • adding getCacheLength() to parallel old tf API
  • removing legacy static const variable MAX_EXTRAPOLATION_DISTANCE copied from tf unnecessesarily

0.4.1 (2013-07-05)

  • adding old style callback notifications to BufferCore to enable backwards compatability of message filters
  • exposing dedicated thread logic in BufferCore and checking in Buffer
  • more methods to expose, and check for empty cache before getting latest timestamp
  • adding methods to enable backwards compatability for passing through to tf::Transformer

0.4.0 (2013-06-27)

  • splitting rospy dependency into tf2_py so tf2 is pure c++ library.
  • switching to console_bridge from rosconsole
  • moving convert methods back into tf2 because it does not have any ros dependencies beyond ros::Time which is already a dependency of tf2
  • Cleaning up unnecessary dependency on roscpp
  • Cleaning up packaging of tf2 including: removing unused nodehandle fixing overmatch on search and replace cleaning up a few dependencies and linking removing old backup of package.xml making diff minimally different from tf version of library
  • suppressing bullet LinearMath copy inside of tf2, so it will not collide, and should not be used externally.
  • Restoring test packages and bullet packages. reverting 3570e8c42f9b394ecbfd9db076b920b41300ad55 to get back more of the packages previously implemented reverting 04cf29d1b58c660fdc999ab83563a5d4b76ab331 to fix #7
  • fixing includes in unit tests
  • Make PythonLibs find_package python2 specific On systems with python 3 installed and default, find_package(PythonLibs) will find the python 3 paths and libraries. However, the c++ include structure seems to be different in python 3 and tf2 uses includes that are no longer present or deprecated. Until the includes are made to be python 3 compliant, we should specify that the version of python found must be python 2.

0.3.6 (2013-03-03)

0.3.5 (2013-02-15 14:46)

  • 0.3.4 -> 0.3.5

0.3.4 (2013-02-15 13:14)

  • 0.3.3 -> 0.3.4
  • moving LinearMath includes to include/tf2

0.3.3 (2013-02-15 11:30)

  • 0.3.2 -> 0.3.3
  • fixing include installation of tf2

0.3.2 (2013-02-15 00:42)

  • 0.3.1 -> 0.3.2
  • fixed missing include export & tf2_ros dependecy

0.3.1 (2013-02-14)

  • 0.3.0 -> 0.3.1
  • fixing PYTHON installation directory

0.3.0 (2013-02-13)

  • switching to version 0.3.0
  • adding setup.py to tf2 package
  • fixed tf2 exposing python functionality
  • removed line that was killing tf2_ros.so
  • fixing catkin message dependencies
  • removing packages with missing deps
  • adding missing package.xml
  • adding missing package.xml
  • adding missing package.xml
  • catkinizing geometry-experimental
  • removing bullet headers from use in header files
  • removing bullet headers from use in header files
  • merging my recent changes
  • setting child_frame_id overlooked in revision 6a0eec022be0 which fixed failing tests
  • allFramesAsString public and internal methods seperated. Public method is locked, private method is not
  • fixing another scoped lock
  • fixing one scoped lock
  • fixing test compilation
  • merge
  • Error message fix, ros-pkg5085
  • Check if target equals to source before validation
  • When target_frame == source_frame, just returns an identity transform.
  • adding addition ros header includes for strictness
  • Fixed optimized lookups with compound transforms
  • Fixed problem in tf2 optimized branch. Quaternion multiplication order was incorrect
  • fix compilation on 32-bit
  • Josh fix: Final inverse transform composition (missed multiplying the sourcd->top vector by the target->top inverse orientation). b44877d2b054
  • Josh change: fix first/last time case. 46bf33868e0d
  • fix transform accumulation to parent
  • fix parent lookup, now works on the real pr2's tree
  • move the message filter to tf2_ros
  • tf2::MessageFilter + tests. Still need to change it around to pass in a callback queue, since we're being triggered directly from the tf2 buffer
  • Don't add the request if the transform is already available. Add some new tests
  • working transformable callbacks with a simple (incomplete) test case
  • first pass at a transformable callback api, not tested yet
  • add interpolation cases
  • fix getLatestCommonTime -- no longer returns the latest of any of the times
  • Some more optimization -- allow findClosest to inline
  • another minor speedup
  • Minorly speed up canTransform by not requiring the full data lookup, and only looking up the parent
  • Add explicit operator= so that we can see the time in it on a profile graph. Also some minor cleanup
  • minor cleanup
  • add 3 more cases to the speed test
  • Remove use of btTransform at all from transform accumulation, since the conversion to/from is unnecessary, expensive, and can introduce floating point error
  • Don't use btTransform as an intermediate when accumulating transforms, as constructing them takes quite a bit of time
  • Completely remove lookupLists(). canTransform() now uses the same walking code as lookupTransform(). Also fixed a bug in the static transform publisher test
  • Genericise the walk-to-top-parent code in lookupTransform so that it will be able to be used by canTransform as well (minus the cost of actually computing the transform)
  • remove id lookup that wasn't doing anything
  • Some more optimization:
    • Reduce # of TransformStorage copies made in TimeCache::getData()
    • Remove use of lookupLists from getLatestCommonTime
  • lookupTransform() no longer uses lookupLists unless it's called with Time(0). Removes lots of object construction/destruction due to removal of pushing back on the lists
  • Remove CompactFrameID in favor of a typedef
  • these mode checks are no longer necessary
  • Fix crash when testing extrapolation on the forward transforms
  • Update cache unit tests to work with the changes TransformStorage. Also make sure that BT_USE_DOUBLE_PRECISION is set for tf2.
  • remove exposure of time_cache.h from buffer_core.h
  • Removed the mutex from TimeCache, as it's unnecessary (BufferCore needs to have its own mutex locked anyway), and this speeds things up by about 20% Also fixed a number of thread-safety problems
  • Optimize test_extrapolation a bit, 25% speedup of lookupTransform
  • use a hash map for looking up frame numbers, speeds up lookupTransform by ~8%
  • Cache vectors used for looking up transforms. Speeds up lookupTransform by another 10%
  • speed up lookupTransform by another 25%
  • speed up lookupTransform by another 2x. also reduces the memory footprint of the cache significantly
  • sped up lookupTransform by another 2x
  • First add of a simple speed test Sped up lookupTransform 2x
  • roscpp dependency explicit, instead of relying on implicit
  • static transform tested and working
  • tests passing and all throw catches removed too!
  • validating frame_ids up front for lookup exceptions
  • working with single base class vector
  • tests passing for static storage
  • making method private for clarity
  • static cache implementation and test
  • cleaning up API doc typos
  • sphinx docs for Buffer
  • new dox mainpage
  • update tf2 manifest
  • commenting out twist
  • Changed cache_time to cache_time to follow C++ style guide, also initialized it to actually get things to work
  • no more rand in cache tests
  • Changing tf2_py.cpp to use underscores instead of camelCase
  • removing all old converter functions from transform_datatypes.h
  • removing last references to transform_datatypes.h in tf2
  • transform conversions internalized
  • removing unused datatypes
  • copying bullet transform headers into tf2 and breaking bullet dependency
  • merge
  • removing dependency on tf
  • removing include of old tf from tf2
  • update doc
  • merge
  • kdl unittest passing
  • Spaces instead of tabs in YAML grrrr
  • Adding quotes for parent
  • canTransform advanced ported
  • Hopefully fixing YAML syntax
  • new version of view_frames in new tf2_tools package
  • testing new argument validation and catching bug
  • Python support for debugging
  • merge
  • adding validation of frame_ids in queries with warnings and exceptions where appropriate
  • Exposing ability to get frames as a string
  • A compiling version of YAML debugging interface for BufferCore
  • placeholder for tf debug
  • fixing tf:: to tf2:: ns issues and stripping slashes on set in tf2 for backwards compatiabily
  • Adding a python version of the BufferClient
  • moving test to new package
  • merging
  • working unit test for BufferCore::lookupTransform
  • removing unused method test and converting NO_PARENT test to new API
  • Adding some comments
  • Moving the python bindings for tf2 to the tf2 package from the tf2_py package
  • buffercore tests upgraded
  • porting tf_unittest while running incrmentally instead of block copy
  • BufferCore::clear ported forward
  • successfully changed lookupTransform advanced to new version
  • switching to new implementation of lookupTransform tests still passing
  • compiling lookupTransform new version
  • removing tf_prefix from BufferCore. BuferCore is independent of any frame_ids. tf_prefix should be implemented at the ROS API level.
  • initializing tf_prefix
  • adding missing initialization
  • suppressing warnings
  • more tests ported
  • removing tests for apis not ported forward
  • setTransform tests ported
  • old tests in new package passing due to backwards dependency. now for the fun, port all 1500 lines :-)
  • setTransform working in new framework as well as old
  • porting more methods
  • more compatability
  • bringing in helper functions for buffer_core from tf.h/cpp
  • rethrowing to new exceptions
  • converting Storage to geometry_msgs::TransformStamped
  • removing deprecated useage
  • cleaning up includes
  • moving all implementations into cpp file
  • switching test to new class from old one
  • Compiling version of the buffer client
  • moving listener to tf_cpp
  • removing listener, it should be in another package
  • most of listener
  • add cantransform implementation
  • removing deprecated API usage
  • initial import of listener header
  • move implementation into library
  • 2 tests of buffer
  • moving executables back into bin
  • compiling again with new design
  • rename tfcore to buffercore
  • almost compiling version of template code
  • compiling tf2_core simple test
  • add test to start compiling
  • copying in tf_unittest for tf_core testing template
  • prototype of tf2_core implemented using old tf.
  • first version of template functions
  • remove timeouts
  • properly naming tf2_core.h from tf_core.h
  • working cache test with tf2 lib
  • first unit test passing, not yet ported
  • tf_core api
  • tf2 v2
  • aborting port
  • moving across time cache tf and datatypes headers
  • copying exceptions from tf
  • switching to tf2 from tf_core

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Dependant Packages

Name Deps
ar_track_alvar
dock
perch
handrail_detect
interest_point
localization_node
choreographer
msg_conversions
astrobee_gazebo
interactive_marker_teleop
ati_force_torque
cartographer_ros
aruco_pose
clover
cob_base_controller_utils
cob_omni_drive_controller
points_preprocessor
cras_cpp_common
distance_map_core
ensenso_camera
ess_imu_ros1_uart_driver
fetch_simple_linear_controller
aruco_detect
fiducial_slam
find_object_2d
floam
force_torque_sensor
fuse_models
fuse_publishers
geometry2
geometry2
test_tf2
test_tf2
tf2_bullet
tf2_bullet
tf2_eigen
tf2_eigen
tf2_geometry_msgs
tf2_geometry_msgs
tf2_kdl
tf2_kdl
tf2_py
tf2_ros
tf2_ros
tf2_sensor_msgs
tf2_sensor_msgs
tf2_tools
tf2_tools
turtle_tf2
hfl_driver
depth_image_proc
image_rotate
imu_transformer
imu_filter_madgwick
innopolis_vtol_dynamics
jsk_footstep_controller
jsk_tf2_py_python3
checkerboard_detector
laser_geometry
hri
mcl_3dl
microstrain_inertial_driver
microstrain_mips
mbf_simple_nav
mbf_utility
move_basic
moveit_kinematics
pilz_industrial_motion_planner
moveit_ros_move_group
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_robot_interaction
movie_publisher
mpc_local_planner
mrpt_local_obstacles
mrpt_localization
mrpt_msgs_bridge
mrpt_rawlog
mrpt_reactivenav2d
mrpt_tutorials
mrpt_ekf_slam_2d
mrpt_ekf_slam_3d
mrpt_icp_slam_2d
mrpt_rbpf_slam
multisense_ros
mvsim
amcl
base_local_planner
carrot_planner
costmap_2d
dwa_local_planner
map_server
rotate_recovery
sbpl_lattice_planner
map_organizer
planner_cspace
track_odometry
trajectory_tracker
nerian_stereo
outsight_alb_driver
pcl_ros
pilz_trajectory_generation
pilz_control
prbt_hardware_support
pointcloud_to_laserscan
pose_cov_ops
qb_chain_controllers
qb_move_hardware_interface
rail_segmentation
rc_cloud_accumulator
rc_hand_eye_calibration_client
rc_silhouettematch_client
robot_body_filter
robot_localization
rsm_additions
rr_openrover_driver
rviz_satellite
sciurus17_vision
septentrio_gnss_driver
sick_scan
slam_toolbox
teb_local_planner
tf2_2d
tf2_client
tf2_urdf
uuv_gazebo_ros_plugins
uuv_sensor_ros_plugins
witmotion_ros
ypspur_ros
zivid_camera
zivid_samples

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged tf2 at Robotics Stack Exchange