Changelog for package cras_cpp_common
2.4.5 (2024-11-02)
- string_utils: Added date/time parsing methods.
- string_utils: Added methods for parsing integers with known radix.
- diag_utils: Added tests for offline diag updater.
- diag_utils: Added offline diag updater.
- node_from_nodelet: Added support for stopping the node when requestStop() has been called in the nodelet code.
- Contributors: Martin Pecka
2.4.4 (2024-09-14)
- Fixed roslint.
- Contributors: Martin Pecka
2.4.3 (2024-09-14)
- Fixed build with ros_comm 1.17.0 .
- Contributors: Martin Pecka
2.4.2 (2024-09-05)
2.4.1 (2024-09-04)
- Fixed roslint
- Contributors: Martin Pecka
2.4.0 (2024-09-04)
- Added small_map and fixed concurrency problems in log_utils.
- Updated fast_float to 6.1.5.
- node_from_nodelet: Fixed error message
- Contributors: Martin Pecka
2.3.9 (2024-02-27)
- Removed catkin_lint buildfarm hacks.
- Updated to fast_float 6.1.0 .
- Contributors: Martin Pecka
2.3.8 (2024-01-12)
- Fixed FindFilesystem CMake module usage of try_compile
- Contributors: Martin Pecka
2.3.7 (2024-01-09)
- node_from_nodelet: Fix syntax for Melodic.
- Contributors: Martin Pecka
2.3.6 (2024-01-09)
- node_from_nodelet: Implemented a simplified version that doesn't need the nodelet header file.
- node_from_nodelet: Fixed a bug with missing return 0 at the end of main.
- Contributors: Martin Pecka
2.3.5 (2023-11-21)
- param_utils: Added getParam() specialization for geometry_msgs/Pose messages.
- nodelet_utils: Added Resettable interface to NodeletWithSharedTfBuffer.
- Added Resettable interface compatible with cras_py_common.
- time_utils: Added saturateAdd().
- Contributors: Martin Pecka
2.3.4 (2023-10-25)
- Do not use -march=native optimizations for cras_tf2_sensor_msgs. More generic platform-specific optimizations are used.
- Contributors: Martin Pecka
2.3.3 (2023-10-06)
2.3.2 (2023-10-06)
- Fix finding std::filesystem in CMake if a non-default launguage standard is used.
- Contributors: Martin Pecka
2.3.1 (2023-07-13)
2.3.0 (2023-07-12)
- Increased minimum CMake version to 3.10.2.
- log_utils: Fixed a potential segfault when instances of MemoryLogHelper get recycled.
- Contributors: Martin Pecka
2.2.3 (2023-06-16)
- Install node_from_nodelet targets in PACKAGE_BIN and not GLOBAL_BIN
- Contributors: Martin Pecka
2.2.2 (2023-05-15)
2.2.1 (2023-05-15)
2.2.0 (2023-04-09)
- Fixed parseFloat()/parseDouble() tests to reflect the behavior change in fast_float library.
- Update fast_float to v4.0.
- Update fast_float to v3.10.0.
- Update tl/expected.
- Update tl/optional to v1.1.0.
- string_utils: Added toLower/toUpper.
- Added std::span shim.
- Contributors: Martin Pecka
2.1.2 (2023-02-10)
2.1.1 (2023-02-08)
2.1.0 (2023-02-08)
- log_utils: Added a method to set logger to HasLogger class.
- c_api: Added outputRosMessage() method that directly serializes ROS messages into allocated buffers.
- log_utils: Added MemoryLogHelper, reworked the interface of LogHelper a bit.
- Completely reworked log_utils to use macros instead of functions.
This was needed because of the static log_location variables inside ROS_ macros - e.g. _ONCE was only triggered once regardless of where was it called from. There were also not so helpful file:line data in the logged messages.
Backwards compatibility was kept 99%, but there are subtle cases where it will fail - e.g. if there was this->log->logError() right after an if or else without braces.
- Added c_api.h.
- Added cras::expected.
- Fixed doxygen configuration and a few documentation errors.
To get a clean rosdoc_lite run, set
INPUT_FILTER = "sed 's/([ <])::/1/g'"
in doxy.template in rosdoc_lite .
- xmlrpc_value_utils: Added conversion to dynamic_reconfigure/Config message.
- string_utils: Added cras::strip().
- Added std::any shim.
- Contributors: Martin Pecka
2.0.10 (2022-11-24)
2.0.9 (2022-11-24)
2.0.8 (2022-11-24)
2.0.7 (2022-11-24)
2.0.6 (2022-11-24)
2.0.5 (2022-10-23)
- Added support for std::array parameters.
- Contributors: Martin Pecka
2.0.4 (2022-10-14)
2.0.3 (2022-10-07)
- cras_py_common: Extended functionality to get closer to cras_cpp_common.
- Improved readmes and added more badges to them.
- Contributors: Martin Pecka
2.0.2 (2022-08-29)
- De-flake throttle test and enable catkin_lint when it has chance to run correctly.
- Add linters and licenses.
- Set up roslaunch-check for test files.
- added catkin_lint
- added roslint, fixed issues.
- catkin_lint, moved external folder inside include/project to avoid collisions with other projects.
- Avoid threading errors when stopping nodes created by node_from_nodelet.
- time_utils: Fix build on 32bit armhf.
- Contributors: Martin Pecka
2.0.1 (2022-08-26)
- Added LICENSE file.
- Improved node_from_nodelet to use node logger instead of nodelet logger.
- Added Github Actions CI.
- Increased test coverage, fixed bug in filter diagnostics.
- tf2_utils: Added convenience methods getRoll(), getPitch() and getYaw().
- filter_utils: Adapt to upstream changes adding FilterChain::getFilters() method.
- string_utils: Allowed to limit replace() only to the beginning or end of the string.
- string_utils: Added parseDouble() and friends.
- node_from_nodelet.cmake: Made autogenerated target names less prone to naming conflicts.
- Added more logging function variants.
- Added support for std::string format in LogHelper.
- Fix logging macros to log under correct rosconsole logger.
- Added cras_node_from_nodelet() CMake function.
- Better support for custom data types in getParam() functions.
- Rename test targets so that their names do not conflict with other projects.
- Compatibility with GCC 9+.
- Fixed invalid rate conversion.
- Backwards compatibility for StatefulNodelet::shutdown().
- Improved CMakeLists.txt and header guard placement.
- Merged cras_nodelet_topic_tools with cras_topic_tools, moved repeater and joy_repeater from cras_cpp_common to cras_topic_tools.
- Implemented rate limiters.
- Refactored nodelet_manager_sharing_tf_buffer and added tests for it.
- Added urdf_utils.h.
- Improved tf2_sensor_msgs.h and added test.
- Improved set_utils.hpp.
- Added better shim for std::optional. It now provides all relevant features.
- Added more diagnostics to filter_chain_nodelet.hpp.
- Added shim for std::bind_front into functional.hpp.
- Added running_stats.hpp implementing Welford's running mean and variance computation.
- Improved filter_chain_nodelet.hpp, added tests.
- Improved cloud.hpp, added tests.
- Reorganize filter_utils directory structure.
- Improved the interface of diag_utils and node_utils, added tests. Added message_utils.
- Improved the interface of nodelet_utils, added tests. Added thread_utils with tests.
- XmlRpcValue docs and code reliability.
- Better test coverage of param_utils. Improved Eigen getParam() interface.
- Improved getParam() behavior, added test_param_utils.
- First part of upgrade: log_utils, param_utils, filter_utils, node_utils, xmlrpc, cloud.
1.0.0
- Added XmlRpcValueTraits and issue an error when getParam() finds a parameter value but it has an incompatible type.
- Made FilterBase getParam() functions const.
Allowed by https://github.com/ros/filters/pull/35 (released in Melodic filters 1.8.2 (October 2021) and Noetic filters 1.9.1 (September 2021)).
- Fixed diagnosed publisher creation scripts
- Little fixes, added pool allocator helpers.
- Improved diagnostics
- Fix compilation with gcc 8
- Fix for systems with old versions of diagnostic_updater
- Compatibility with diagnostic_updater 1.9.6 and newer.
- Fixed memory corruption by cras::transformOnlyChannels().
- Improve lazy subscription behavior in filter_chain_nodelet.hpp
- Fixed SEVERE_WARNING in nodelet_manager_sharing_tf_buffer.
- Fixed segfaults when unloading NodeletWithDiagnostics.
- node_utils: added paramsForNodeHandle()
- Moved filter_chain_nodelet from nifti_laser_filtering to here.
- Added missing diag functions.
- Added missing nodelet logging macros.
- Refactored param_utils to be also usable in filters.
- Small refactoring of CMakeLists.txt and related stuff, modernize header guards.
- Fixed reading of hierarchical parameters in diag_utils.hpp.
- Added diagnostics utils.
- Reworked getParam helpers, added some more utility functions.
- Added NodeletWithDiagnostics trait.
- Added utilities for working with pointclouds - generic iterator, transformOnlyChannels() and more utility functions.
- Added docs.
- Added NodeletWithSharedTfBuffer::usesSharedBuffer().
- Little fixes, verified that Eigen compiles using AVX instructions.
- Added a mixin for nodelets which share a tf buffer with their nodelet manager (and added that custom manager, too).
- Forced tf2_sensor_msgs cloud transform tools to utilize SIMD instructions.
- Improved nodelet_utils, converted all convenience functions into mixins that can be side-loaded to any class.
- Separated nodelet param loading to a separate class so that it can be utilized even in nodelets that are not descendants of cras::Nodelet().
- Added tf2_sensor_msgs with transformWithChannels() function to help correctly transforming pointclouds.
- Remove build warning.
- Fixed to_string() for collections so that it doesn't include the separator after the last item.
- Added getParamVerboseSet() to filter_utils.hpp
- Repeater and specific joy repeater.
- Topic repeater node (every period, instant republish option).
- Added CMake module for using the most modern C++ filesystem API available.
- Added to_string(bool) to string_utils.hpp
- filter_utils: Added support for disabling filters during runtime.
- Added to_string<std::set>()
- Added tf2_utils.
- Added ros::Time to_string.
- filter_utils: Added a possibility to specify a callback in FilterChain that is called after application of each filter.
- nodelet_utils: Added shutdown() method meant to be called from destructors.
- nodelet_utils: Added option to use nodelet-aware canTransform
- nodelet_utils: Added updateThreadName().
- Added nodelet utils.
- Added set utils.
- Added math utils.
- Added inline modifiers to avoid multiple definitions issues.
- Added std::string - const char* interop overload to getParam.
- Moved cras_cpp_common from subt/tradr-robot/tradr-resources.
- added string_utils::to_string(XmlRpc::XmlRpcValue)
- topic_utils -> string_utils, added string_utils::to_string
- Fixed bad design of filter_utils.
- added ros::Duration specializations for node_utils::getParam() and filter_utils::getParam().
- Added filter_utils, time_utils, topic_utils, added unsigned specializations for node_utils::getParam().
- Added cras_cpp_common.
- Contributors: Martin Pecka, Tomas Petricek