-
Notifications
You must be signed in to change notification settings - Fork 212
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pass clock to tf2_ros::buffer #340
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tfoote
approved these changes
Jul 26, 2018
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to go with the associated change in tf2.
botteroa-si
added a commit
to bosch-io/rviz
that referenced
this pull request
Aug 9, 2018
-Necessary after PR ros2#340
wjwwood
pushed a commit
to bosch-io/rviz
that referenced
this pull request
Sep 6, 2018
-Necessary after PR ros2#340
wjwwood
pushed a commit
that referenced
this pull request
Sep 8, 2018
* Extract frame transformer from interface * Delete tf2 dependency from frame_manager * Improve interface * Fix uncrustify * Add tests for interface in frame_manager * Add frame_transform_tf test * Use weak_ptr instead of shared_ptr for internal object * Add visibility control * Fix linters * Delete superfluous code * Add missing include to fix build * Change name of FrameTransformer member of FrmeManager * Refactor frame_transformer_tf_test * Add methods to TFWrapper and make buffer_ private * Fix rviz_default_plugins after changes in TFWrapper * Change name of wrapper_ to tf_wrapper_ * Minor refactoring * Create TransformationManager class * Add getTypeId() method to FrameTransformer * Use TransformationManager class * Add structs and helpers for Time, PoseStamped and TransformationStamped * Remove ROS dependencies from frame_manager.hpp * Fix tests and mocks * Update and fix rviz_default_plugins mocks * Add visibility control to structs.hpp * Add visibility control to helper methods * Add unit tests for helper methods * Fix Windows warnings * Move FrameTransformer and TransformationManager to namespace transformation * Fix build * Make FrameTransformer::transform() return a PoseStamped and rename FrameTransformer::lastAvailableTransform() * Refactor frame_transformer.hpp * Refactor tf_wrapper and frame_transformer_tf * Add struct.cpp and make also structs ros-independent * Fix Windows build * Add tests for new conversion methods and refactor structs and tests * Fix uncrustify * Use rclcpp::Time instead of rviz_common::tranformation::time in FrameTransformer * Fix Windows warnings * Add TransformationPanel to change transformation plugin at runtime Note: The panel is not yet functional and requires the implementation of a TransformationManager * Better naming for init method * Remove unused imports * Use the TransformationManager in the TransformationPanel The TransformationManager is used to retrieve the available plugins and to set the transform after selecting it in the GUI * Move FrameTransformerTF to rviz_default_plugins * Add documentation to frame_transformer.hpp * Replace the button group by a PropertyTreeWidget with radio buttons Now the design fits better with the rest of the panels. Note: The QTreeView does not allow to place QWidgets into the column, thus the self implemented radio button group. * Cleanup: typos * Fix linters * Move TFWrapper and FrameTransformerTFTest to rviz_default_plugins * Extend TransformationManager to take ROS node in constructor * Correct namespaces and includes * Load FrameTransformerTF using pluginlib * Fix linters * Rename FrameTransformerTF to TFFrameTransformer Equivalent to naming scheme for Displays, Panels, etc. * Add DummyTransformer * Fix connection between TransformationManager and FrameManager * Add virtual destructor to FrameTransformer to avoid crash when changing transformer * Use shared_ptr instead of unique_ptr to be consistent with signal definition * Move transformation_manager.hpp to include folder (to be used in rviz_default_plugins) * Draw checkbox instead of radio button in RadioButtonProperty This prevents rendering issues on macOS, where the radio button would be cut off on the bottom. * Rename RadioButtonProperty into GroupedCheckboxProperty * Minor style fixes in TransformationManager * Store pointer to TransformationManager in TransformationPanel * Add tests for DummyTransformer * Minor refactoring * Add PluginInformation struct to rviz_common::Factory This allows a factory user to conveniently get all information for one plugin. * Improve interface of TransformationManager and its usage in TransformationPanel * Rename DummyTransformer into IdentityFrameTransformer * Omit "FrameManager" from TFFrameManager plugin name This is equivalent to how e.g. Displays are named * Add convenience base class for displays that only work with TFTransformer * Allow LaserScan display to handle changes of the FrameTransformer type * Add tests for LaserScanDisplay new functionality * Minor cleanup in Transformer user interface * Refactor factories to work with PluginInfo This improves the interaction with factories since all attributes of a plugin are immediately available and do not have to be retrieved separately. * Change design: from a base common class (OnlyTfCompatibleBaseDisplay) to a delegate object (TransformerHandlerDelegate) * Handle user triggered enable/disable events when using wrong transformer. * Expose a method to check if the current transformer is the correct one, to be used in the Display::update() method * Rename TransformerHandlerDelegate to TransformerGuard * Add tests for TransformerGuard * Remove no longer actual laser_scan_display_test.cpp and fix linters * Move TransformerGuard to namespace transformation * Use TransformerGuard in TFDisplay to make it handle changes of the FrameTransformer type * Add config loading and saving to TransformationManager Also improves error handling. * Use TransformGuard in RobotModelDisplay * Make TransformerGuard check the transformer when display is added * Harmonize comment style in frame_transformer.hpp and add TODO for commented out method * Add visibility control to the IdentityTransformer * Add a TransformerGuard test and fix broken one * Rename structs members without the final underscore * Use namespace ::testing in ros_conversion_helpers_test.cpp * Add new FrameManager tests and refactor old ones * Fix typo * Add visibility control to TFFrameTransformer and to TransformerGuard * Fix typo in filename q * Fix pluginlib icon loading crash on missing plugin This also fixes the segfault on startup when the transformer to load is not available * Refactor transformer_guard.hpp and relative tests * Cleanup naming in transformer_guard.hpp * Improve TransformerGuard tests * Use relative path to import identity_transformer.hpp * Always use TF transformer in visual tests * Reorder and fix includes in pluginlib_factory.hpp * Small refactorings in dialogs and display_factory * Rename dummy_transformer_test to identity_transformer_test * Add description to grouped checkbox property and group * Change name of class InternalFrameTransformer to TransformationLibraryConnector and of relative getters * Minor fixes * Refactor structs.cpp * Update README * Update plugins development guide * Fix typos in ros_conversion_helper_test.cpp * Fix points marker behavior on missing transform The old routine did not return when transformation fails, which resulted in strange visual behavior on Windows * Set focus policy in TransformationPanel to hide selection boxes * Refactor TransformerGuard so that it checks the type of the transformer itself rather than of the connector -To accomplish this modification the new method getTransformer had to be added to rviz_common::FrameManager * Add comment regarding transformer_name in TransformerGuard * Fix uncrustify and cpplint * Condense documentation, remove trailing whitespaces * Fix Copyrights * Fix transformer guard test * Update comment in transformer_guard.hpp and insert TF as default transformer in visual testing config * Pass clock to tf2::Buffer contructor -Necessary after PR #340 * Fix tests and uncrustify * Minor cleanups - use "::WeakPtr" convention - add missing visibility macro to TransformationManager - retain information about tf exceptions when re-throwing - fix documentation typo * Remove reset button from transformer panel - superfluous for small amount of checkboxes - Code-Style: reorder functions in transformer panel * style and whitespace fixes Signed-off-by: William Woodall <william@osrfoundation.org> * use ++ suffix in loop iterators (cppcheck) Signed-off-by: William Woodall <william@osrfoundation.org> * suppress Ogre warnings when interpreting single header (autocomplete) Signed-off-by: William Woodall <william@osrfoundation.org> * initialize member variable in constructor Signed-off-by: William Woodall <william@osrfoundation.org> * Implement workaround for missing Qt clicked event - Clicking on the transformers view, sometimes the clicked event is only sent to the underlying property, not the tree view - This results in weird behaviour of the gui - With this fix, it can only (rarely) happen that the click does nothing * doc style cleanup * fixup Signed-off-by: William Woodall <william@osrfoundation.org>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
connects to ros2/geometry2#67