CHANGELOG

Changelog for package cras_cpp_common

2.5.1 (2025-02-18)

2.5.0 (2025-02-13)

2.4.8 (2025-01-07)

2.4.7 (2024-12-12)

  • Fixed installation of nodelet_manager_sharing_tf_buffer.

  • Contributors: Martin Pecka

2.4.6 (2024-12-12)

  • nodelet_utils: Allowed accessing the shared_ptr of the shared TF buffer.

  • node_from_nodelet: Worked around the bug where remapping private topics was impossible for anonymous nodes.

  • tf2_utils: Added TfMessageFilter compatible with log_utils.

  • time_utils: Added converters between ros::Time and struct tm.

  • Fixed a few printf format issues.

  • string_utils: Handle possible error in vsnprintf. Added printf-format attributes to cras::format() to enable compile-time checks of format strings.

  • string_utils: Added iconvConvert(), transliterateToAscii() and toValidRosName() functions.

  • Contributors: Martin Pecka

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