Understanding tf ROSCON 2012 Tully Foote

Slides:



Advertisements
Similar presentations
1 1999/Ph 514: Channel Access Concepts EPICS Channel Access Concepts Bob Dalesio LANL.
Advertisements

1 CHAPTER 8 BUFFER OVERFLOW. 2 Introduction One of the more advanced attack techniques is the buffer overflow attack Buffer Overflows occurs when software.
Concurrency CS 510: Programming Languages David Walker.
WSN Simulation Template for OMNeT++
CSE 486/586 CSE 486/586 Distributed Systems PA Best Practices Steve Ko Computer Sciences and Engineering University at Buffalo.
Multi-Robot Systems with ROS Lesson 1
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Module 7: Fundamentals of Administering Windows Server 2008.
The HDF Group Multi-threading in HDF5: Paths Forward Current implementation - Future directions May 30-31, 2012HDF5 Workshop at PSI 1.
Teaching Assistant: Roi Yehoshua
INDUSTRIAL PROJECT (234313) ULTRASOUND SCANNER EMBEDDED ONLINE PROFILER Students: Liat Peterfreund, Hagay Myr Supervisor: Mr. Tomer Gal (GE Healthcare)
Derek Wright Computer Sciences Department University of Wisconsin-Madison MPI Scheduling in Condor: An.
Department of Computer Science Internet Performance Measurements using Firefox Extensions Scot L. DeDeo Professor Craig Wills.
Client-Server Model of Interaction Chapter 20. We have looked at the details of TCP/IP Protocols Protocols Router architecture Router architecture Now.
SKYPIAX, how to add Skype capabilities to FreeSWITCH (and Asterisk) CHICAGO, USA, September 2009.
GLOBAL EDGE SOFTWERE LTD1 R EMOTE F ILE S HARING - Ardhanareesh Aradhyamath.
COMP 417 – Jan 12 th, 2006 Guest Lecturer: David Meger Topic: Camera Networks for Robot Localization.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
Core LIMS Training: Entering Experimental Data – Simple Data Entry.
Advanced Higher Computing Science
datalibweb – Stata module to access micro data
Development Environment
Information Systems and Network Engineering Laboratory II
Review Array Array Elements Accessing array elements
Delay-Tolerant Networks (DTNs)
WWW and HTTP King Fahd University of Petroleum & Minerals
15.1 – Introduction to physical-Query-plan operators
Mobile Application Development
Introduction to Wireless Sensor Networks
Open Source distributed document DB for an enterprise
Spark Presentation.
Java Beans Sagun Dhakhwa.
In-situ Visualization using VisIt
Intent To provide a framework to manage the process of software salvage and promote loose coupling through message passing. Salvage means recycling significant.
CSE451 I/O Systems and the Full I/O Path Autumn 2002
LCGAA nightlies infrastructure
Introduction to Operating System (OS)
CHAPTER 3 Architectures for Distributed Systems
Magento Technical Guidelines Eugene Shakhsuvarov, Software Magento
What is ROS? ROS is an open-source robot operating system
Discussions on group meeting
Switching Techniques In large networks there might be multiple paths linking sender and receiver. Information may be switched as it travels through various.
TIGERBOT 2 REJUVENATION
湖南大学-信息科学与工程学院-计算机与科学系
MPI-Message Passing Interface
Mixed Reality Server under Robot Operating System
CS703 - Advanced Operating Systems
M-Commerce Wireless Markup Language (WML) By Prof T.R. Vaidyanathan.
The Medium Access Control Sublayer
Distributed File Systems
Switching Techniques.
Unit 11- Computer Networks
Distributed File Systems
Ajay Vyasapeetam Brijesh Shetty Karol Gryczynski
CSE 451: Operating Systems Spring Module 21 Distributed File Systems
Chapter 2: Operating-System Structures
Distributed File Systems
Foundations for Highly-Available Content-based Publish/Subscribe Overlays Young Yoon, Vinod Muthusamy and Hans-Arno Jacobsen.
Quick Introduction to ROS
Robotics and Perception
Channel Access Concepts
Distributed File Systems
Chapter 2: Operating-System Structures
Distributed File Systems
Message Passing Systems Version 2
Lecture 10: Directory-Based Examples II
Channel Access Concepts
Multiprocessors and Multi-computers
How Applications (Will Hopefully Soon) Use the Internet
Message Passing Systems
Presentation transcript:

Understanding tf ROSCON 2012 Tully Foote

2 ROSCON 2012 Motivation for tf

3 ROSCON 2012 Goals of tf ● Do it well and never have to think about it again. ● Save others from thinking about it too ● Encode positional association in data to facilitate logging and playback and reprocessing. ● Preserve data in it's original form and only operate on it if required.

4 ROSCON 2012 What is tf? A library which keeps track of coordinate frames. ● A standardized protocol for publishing transform data to a distributed system ● Helper classes and methods for: – Publishing coordinate frame data – Collecting transform data and using it to manipulate data - Transformer, TransformListener, tf::MessageFilter,...

5 ROSCON 2012 How do I interact with tf? There are two main ways to interact with tf: ● Listeners – listen to /tf and cache all data heard up to cache limit in memory ● Publishers – publish transforms between coordinate frames on /tf

6 ROSCON 2012 tf is for distributed systems ● Distributed systems have latency. ● tf itself is designed to be distributed. ● There is no central source of tf information ● This means there is no history before a node started listening to /tf topic

7 ROSCON 2012 tf Data Model Each link in the tree is cached in memory 10 seconds is default cache time It will work with multiple disconnected trees Only for transforms within the same tree

8 ROSCON 2012 How to look up a transform? T = lookupTransform(“/robot1/laser”, “/robot2/base”, 123.4) T1T1 T2T2 T3T3 T4T4 T = T 1 x T 2 x T 3 x T 4 -1

9 ROSCON 2012 Looking up Time in a Chain Query Time Query Time Query Time Query Time Success Failure

10 ROSCON 2012 Looking up Time in a Chain Query Time = Latest Failure 1. This can also fail if you ask for the latest time using time 0 ● Which asks for the latest common time. No Common Time

11 ROSCON 2012 Inside the Cache 1. Each transform has a sorted linked list of the history of transforms for that link. 2. When looking up a transform in that link at time, the two closest points will be found on either side. 3. Spherical linear interpolation will be used to compute the best approximation of the value at the requested time.

12 ROSCON 2012 Values of tf Transform data only once No computational cost of intermediate data transformations No compounding rounding errors The user does not need to worry about which frame their data was collected They just transform it into the coordinate frame they want it in. Most users don't need to know anything about 3D transform math.

13 ROSCON 2012 Values of tf Information about past locations is also stored and accessible Capable of dealing with delayed data

14 ROSCON 2012 Core Methods of Transformer All methods are built on top of these two core methods. LookupTransform Get the transform between two coordinate frames CanTransform Test if a transform is possible between to coordinate frames

15 ROSCON 2012 Helper Methods 1. For common datatypes. ● TransformPoint ● TransformVector ● TransformPose ● TransformQuaternion ● transformPointcloud

16 ROSCON 2012 Dealing with latency 1. In distributed networks, transfering knowledge takes time 2. tf data may arrive first ● Then the cached data will allow transformations – A common failure is to not create the Listener and allow time to fill the buffer, or let it go out of scope. 3. tf data may arrive after the primary data ● How do we deal with this?

17 ROSCON 2012 Syncronization Methods There are two ways to wait for a transform to come available WaitForTransform Block until timeout or transform is available. tf::MessageFilter Subscribe to a topic an provide the callbacks only when there is enough tf messages to tansform the data.

18 ROSCON 2012 Transformer::waitForTransform Dangers No data coming in if in single thread Blocks all progress, can make all processing late Protection in Transformer class usingSeperateThread method Using this method can delay the whole system unnecessarily But it's very convenient for scripting/sequencing

19 ROSCON 2012 tf::MessageFilter Purpose Provide a non blocking way to queue data pending transform data availability Usage Register a target frame and an incoming topic Receive a callback when transforms are available

20 ROSCON 2012 Introduction to Time Travel

21 ROSCON 2012 Advanced API Time 5 seconds later the TurtleBot is asked to plan a path around all known obstacles. The TurtleBot observes an apple while driving past

22 ROSCON 2012 Advanced API 5 seconds later the TurtleBot is asked to plan a path around all known obstacles. An apple is observed falling on the TurtleBot Time

23 ROSCON 2012 Advanced API 1. Construct transform from first frame to fixed frame at data timestamp 2. Jump to query time in the fixed frame 3. Compute the transform from fixed frame to query frame at query time 4. Return the product of these transforms

24 ROSCON 2012 Avanced API Walk Through 1) Apple Observed in TurtleBot frame 2) Apple Transformed into Fixed Frame at Observation Time 3) Apple Assumed Static in Fixed Frame 4) Apple Transformed into Target Frame At Target Time 5) Apple available for obstacle avoidance in the Target Frame at Target Time World TurtleB ot T time=0 World TurtleB ot T time=5

25 ROSCON 2012 Debugging Tools 1. Command Line Tools ● tf_echo – Print a specific transform to the screen ● tf_monitor – Display statistics about transforms ● roswtf (tf_plugin) Debug common tf configuration errors

26 ROSCON 2012 Debugging Tools 1.Visualizations ● Rviz ● view_frames

27 ROSCON 2012 Coordinate Frames in a Robot Every Link has a frame_id the same name as in the URDF Each sensor has a frame_id in which it takes measurements Data is broadcast in the frame in which it was observed.

28 ROSCON 2012 Coordinate Frame Conventions Managing coordinate frames is a challenge. Some Standards: REP 105 Mobile Platforms REP 120 Humanoids Mostly by convention, please try to reuse existing names.

29 ROSCON 2012 Challenges with the current tf 1. Transmission over wifi 2. Disambiguation of frame_ids with multiple homogeneous robots 3. Infrequent queries without latency requirements still require a subscription to tf 4. It uses a lot of bandwidth in general 5. To make it easy to use it has a lot of dependencies.

30 ROSCON 2012 Goals for tf in the future 1. Rewrite the tf library ● Core C++ library with only message datatype dependencies ● Templated API to allow extensions to custom message data types 2. Fully featured Python library as well 3. Provide first class support to static transforms, no need to republish 4. Provide a server/client interface for querying remote buffers

31 ROSCON 2012 tf2 exists! 1. It is in geometry_experimental 2. We're using it in several projects already. 3. It's documented! (ros.org/wiki/tf2) 4. It has more unit tests than tf with better coverage. 5. All that remains to do is to merge it into the geometry stack and convert tf to call through to tf2 for backwards compatability.

32 ROSCON 2012 Shameless BOF Plugs 1. Over lunch, The Future of tf BOF. ● There are more possiblities, uncertainty has been discussed, so has graphs instead of trees. What are you interested in? 2. At 3:30, New build and release systems. ● We have a new build and release system beta tested in Fuerte on Willow maintained packages. Any requests or requirements while it's still in beta?

33 ROSCON 2012 Thank you! Questions?