CHANGELOG

Changelog for package rclcpp

29.3.0 (2024-12-20)

  • Fix transient local IPC publish (#2708)

  • apply actual QoS from rmw to the IPC publisher. (#2707)

  • Adding in topic name to logging on IPC issues (#2706)

  • fix TestTimeSource.ROS_time_valid_attach_detach. (#2700)

  • Update docstring for rclcpp::Node::now() (#2696)

  • Re-enable executor test on rmw_connextdds. (#2693)

  • Fix warnings on Windows. (#2692)

  • Omnibus fixes for running tests with Connext. (#2684)

  • fix(Executor): Fix segfault if callback group is deleted during rmw_wait (#2683)

  • Contributors: Chris Lalancette, Jeffery Hsu, Patrick Roncagliolo, Steve Macenski, Tomoya Fujita, jmachowinski

29.2.0 (2024-11-25)

  • accept custom allocator for LoanedMessage. (#2672)

  • Contributors: Tomoya Fujita

29.1.0 (2024-11-20)

  • a couple of typo fixes in doc section for LoanedMessage. (#2676)

  • Make sure callback_end tracepoint is triggered in AnyServiceCallback (#2670)

  • Correct the incorrect comments in generic_client.hpp (#2662)

  • Fix NodeOptions assignment operator (#2656)

  • set QoS History KEEP_ALL explicitly for statistics publisher. (#2650)

  • Fix test_intra_process_manager.cpp with rmw_zenoh_cpp (#2653)

  • Fixed test_events_executors in zenoh (#2643)

  • rmw_fastrtps supports service event gid uniqueness test. (#2638)

  • print warning if event callback is not supported instead of passing exception. (#2648)

  • Implement callback support of async_send_request for service generic client (#2614)

  • Contributors: Alejandro Hernández Cordero, Barry Xu, Chris Lalancette, Christophe Bedard, Romain DESILLE, Tomoya Fujita

29.0.0 (2024-10-03)

  • Fixed test qos rmw zenoh (#2639)

  • verify client gid uniqueness for a single service event. (#2636)

  • Skip some tests in test_qos_event and run others with event types supported by rmw_zenoh (#2626)

  • Shutdown the context before context’s destructor is invoked in tests (#2633)

  • Skip rmw zenoh content filtering tests (#2627)

  • Use InvalidServiceTypeError for unavailable service type in GenericClient (#2629)

  • Implement generic service (#2617)

  • fix events-executor warm-up bug and add unit-tests (#2591)

  • remove unnecessary gtest-skip in test_executors (#2600)

  • Correct node name in service test code (#2615)

  • Minor naming fixes for ParameterValue to_string() function (#2609)

  • Removed clang warnings (#2605)

  • Fix a couple of issues in the documentation. (#2608)

  • deprecate the static single threaded executor (#2598)

  • Fix name of ParameterEventHandler class in doc (#2604)

  • subscriber_statistics_collectors_ should be protected by mutex. (#2592)

  • Fix bug in timers lifecycle for events executor (#2586)

  • fix rclcpp/test/rclcpp/CMakeLists.txt to check for the correct targets existance (#2596)

  • Shut down context during init if logging config fails (#2594)

  • Make more of the Waitable API abstract (#2593)

  • Contributors: Alberto Soragna, Alejandro Hernández Cordero, Alexis Pojomovsky, Barry Xu, Chris Lalancette, Christophe Bedard, Kang, Hsin-Yi, Tomoya Fujita

28.3.3 (2024-07-29)

  • Only compile the tests once. (#2590)

  • Contributors: Chris Lalancette

28.3.2 (2024-07-24)

  • Updated rcpputils path API (#2579)

  • Make the subscriber_triggered_to_receive_message test more reliable. (#2584) * Make the subscriber_triggered_to_receive_message test more reliable. In the current code, inside of the timer we create the subscription and the publisher, publish immediately, and expect the subscription to get it immediately. But it may be the case that discovery hasn’t even happened between the publisher and the subscription by the time the publish call happens. To make this more reliable, create the subscription and publish before we ever create and spin on the timer. This at least gives 100 milliseconds for discovery to happen. That may not be quite enough to make this reliable on all platforms, but in my local testing this helps a lot. Prior to this change I can make this fail one out of 10 times, and after the change I’ve run 100 times with no failures.

  • Have the EventsExecutor use more common code (#2570) * move notify waitable setup to its own function * move mutex lock to retrieve_entity utility * use entities_need_rebuild_ atomic bool in events-executors * remove duplicated set_on_ready_callback for notify_waitable * use mutex from base class rather than a new recursive mutex * use current_collection_ member in events-executor * delay adding notify waitable to collection * postpone clearing the current collection * commonize notify waitable and collection * commonize add/remove node/cbg methods * fix linter errors ———

  • Removed deprecated methods and classes (#2575)

  • Release ownership of entities after spinning cancelled (#2556) * Release ownership of entities after spinning cancelled * Move release action to every exit point in different spin functions * Move wait_result_.reset() before setting spinning to false * Update test code * Move test code to test_executors.cpp ———

  • Split test_executors.cpp even further. (#2572) That’s because it is too large for Windows Debug to compile, so split into smaller bits. Even with this split, the file is too big; that’s likely because we are using TYPED_TEST here, which generates multiple symbols per test case. To deal with this, without further breaking up the file, also add in the /bigobj flag when compiling on Windows Debug.

  • avoid adding notify waitable twice to events-executor collection (#2564) * avoid adding notify waitable twice to events-executor entities collection * remove redundant mutex lock ———

  • Contributors: Alberto Soragna, Alejandro Hernández Cordero, Barry Xu, Chris Lalancette

28.3.1 (2024-06-25)

  • Remove unnecessary msg includes in tests (#2566)

  • Fix copy-paste errors in function docs (#2565)

  • Fix typo in function doc (#2563)

  • Contributors: Christophe Bedard

28.3.0 (2024-06-17)

  • Add test creating two content filter topics with the same topic name (#2546) (#2549)

  • add impl pointer for ExecutorOptions (#2523)

  • Fixup Executor::spin_all() regression fix (#2517)

  • Add ‘mimick’ label to tests which use Mimick (#2516)

  • Contributors: Alejandro Hernández Cordero, Scott K Logan, William Woodall

28.2.0 (2024-04-26)

  • Check for negative time in rclcpp::Time(int64_t nanoseconds, …) constructor (#2510)

  • Revise the description of service configure_introspection() (#2511)

  • Contributors: Barry Xu, Sharmin Ramli

28.1.0 (2024-04-16)

  • Remove references to index.ros.org. (#2504)

  • Reduce overhead for inheriting from rclcpp::Executor when base functionality is not reused (#2506)

  • Contributors: Chris Lalancette, William Woodall, jmachowinski

28.0.1 (2024-04-16)

  • [wjwwood] Updated “Data race fixes” (#2500) * Fix callback group logic in executor * fix: Fixed unnecessary copy of wait_set * fix(executor): Fixed race conditions with rebuild of wait_sets Before this change, the rebuild of wait set would be triggered after the wait set was waken up. With bad timing, this could lead to the rebuild not happening with multi threaded executor. * fix(Executor): Fixed lost of entities rebuild request * chore: Added assert for not set callback_group in execute_any_executable * Add test for cbg getting reset Co-authored-by: Janosch Machowinski <j.machowinski@nospam.org> * chore: renamed test cases to snake_case * style * fixup test to avoid polling and short timeouts * fix: Use correct notify_waitable_ instance * fix(StaticSingleThreadedExecutor): Added missing special case handling for current_notify_waitable_ * fix(TestCallbackGroup): Fixed test after change to timers ——— Co-authored-by: Janosch Machowinski <j.machowinski@cellumation.com> Co-authored-by: Michael Carroll <mjcarroll@intrinsic.ai> Co-authored-by: Janosch Machowinski <j.machowinski@nospam.org>

  • fixup var names to snake case (#2501)

  • Added optional TimerInfo to timer callback (#2343) Co-authored-by: Alexis Tsogias <a.tsogias@cellumation.com> Co-authored-by: Janosch Machowinski <J.Machowinski@cellumation.com>

  • Fix uninitialized memory in test (#2498) When I added in the tests for large messages, I made a mistake and reserved space in the strings, but didn’t actually expand it. Thus, we were writing into uninitialized memory. Fix this by just using the correct constructor for string, which will allocate and initialize the memory properly.

  • Ensure waitables handle guard condition retriggering (#2483) Co-authored-by: Michael Carroll <mjcarroll@intrinsic.ai>

  • fix: init concatenated_vector with begin() & end() (#2492) * this commit will fix the warning [-Wstringop-overflow=] #2461

  • Use the same context for the specified node in rclcpp::spin functions (#2433) * Use the same conext for the specified node in rclcpp::spin_xx functions * Add test for spinning with non-default-context * Format code ———

  • Disable compare-function-pointers in test_utilities (#2489)

  • address ambiguous auto variable. (#2481)

  • Increase the cppcheck timeout to 1200 seconds (#2484)

  • Removed test_timers_manager clang warning (#2479)

  • Flaky timer test fix (#2469) * fix(time_source): Fixed possible race condition * fix(test_executors_time_cancel_behaviour): Fixed multiple race conditions ——— Co-authored-by: Janosch Machowinski <j.machowinski@nospam.org>

  • Add tracepoint for generic publisher/subscriber (#2448)

  • update rclcpp::Waitable API to use references and const (#2467)

  • Utilize rclcpp::WaitSet as part of the executors (#2142) * Deprecate callback_group call taking context * Add base executor objects that can be used by implementors * Template common operations * Address reviewer feedback: * Add callback to EntitiesCollector constructor * Make function to check automatically added callback groups take a list * Lint * Address reviewer feedback and fix templates * Lint and docs * Make executor own the notify waitable * Add pending queue to collector, remove from waitable Also change node’s get_guard_condition to return shared_ptr * Change interrupt guard condition to shared_ptr Check if guard condition is valid before adding it to the waitable * Lint and docs * Utilize rclcpp::WaitSet as part of the executors * Don’t exchange atomic twice * Fix add_node and add more tests * Make get_notify_guard_condition follow API tick-tock * Improve callback group tick-tocking * Don’t lock twice * Address reviewer feedback * Add thread safety annotations and make locks consistent * @wip * Reset callback groups for multithreaded executor * Avoid many small function calls when building executables * Re-trigger guard condition if buffer has data * Address reviewer feedback * Trace points * Remove tracepoints * Reducing diff * Reduce diff * Uncrustify * Restore tests * Back to weak_ptr and reduce test time * reduce diff and lint * Restore static single threaded tests that weren’t working before * Restore more tests * Fix multithreaded test * Fix assert * Fix constructor test * Change ready_executables signature back * Don’t enforce removing callback groups before nodes * Remove the “add_valid_node” API * Only notify if the trigger condition is valid * Only trigger if valid and needed * Fix spin_some/spin_all implementation * Restore single threaded executor * Picking ABI-incompatible executor changes * Add PIMPL * Additional waitset prune * Fix bad merge * Expand test timeout * Introduce method to clear expired entities from a collection * Make sure to call remove_expired_entities(). * Prune queued work when callback group is removed * Prune subscriptions from dynamic storage * Styles fixes. * Re-trigger guard conditions * Condense to just use watiable.take_data * Lint * Address reviewer comments (nits) * Lock mutex when copying * Refactors to static single threaded based on reviewers * More small refactoring * Lint * Lint * Add ready executable accessors to WaitResult * Make use of accessors from wait_set * Fix tests * Fix more tests * Tidy up single threaded executor implementation * Don’t null out timer, rely on call * change how timers are checked from wait result in executors * peak -> peek * fix bug in next_waitable logic * fix bug in StaticSTE that broke the add callback groups to executor tests * style ——— Co-authored-by: Chris Lalancette <clalancette@gmail.com> Co-authored-by: William Woodall <william@osrfoundation.org>

  • fix flakiness in TestTimersManager unit-test (#2468) the previous version of the test was relying on the assumption that a timer with 1ms period gets called at least 6 times if the main thread waits 15ms. this is true most of the times, but it’s not guaranteed, especially when running the test on windows CI servers. the new version of the test makes no assumptions on how much time it takes for the timers manager to invoke the timers, but rather focuses on ensuring that they are called the right amount of times, which is what’s important for the purpose of the test

  • Contributors: Alberto Soragna, Alejandro Hernández Cordero, Chris Lalancette, Homalozoa X, Kotaro Yoshimoto, Michael Carroll, Tomoya Fujita, William Woodall, h-suzuki-isp, jmachowinski

28.0.0 (2024-03-28)

  • fix spin_some_max_duration unit-test for events-executor (#2465)

  • refactor and improve the parameterized spin_some tests for executors (#2460) * refactor and improve the spin_some parameterized tests for executors * disable spin_some_max_duration for the StaticSingleThreadedExecutor and EventsExecutor * fixup and clarify the docstring for Executor::spin_some() * style * review comments ———

  • enable simulation clock for timer canceling test. (#2458) * enable simulation clock for timer canceling test. * move MainExecutorTypes to test_executors_timer_cancel_behavior.cpp. ———

  • Revert “relax the test simulation rate for timer canceling tests. (#2453)” (#2456) This reverts commit 1c350d0d7fb9c7158e0a39057112486ddbd38e9a.

  • relax the test simulation rate for timer canceling tests. (#2453)

  • Fix TypeAdapted publishing with large messages. (#2443) Mostly by ensuring we aren’t attempting to store large messages on the stack. Also add in tests. I verified that before these changes, the tests failed, while after them they succeed.

  • Implement generic client (#2358) * Implement generic client * Fix the incorrect parameter declaration * Deleted copy constructor and assignment for FutureAndRequestId * Update codes after rebase * Address review comments * Address review comments from iuhilnehc-ynos * Correct an error in a description * Fix window build errors * Address review comments from William * Add doc strings to create_generic_client ———

  • Rule of five: implement move operators (#2425)

  • Various cleanups to deal with uncrustify 0.78. (#2439) These should also work with uncrustify 0.72.

  • Remove the set_deprecated signatures in any_subscription_callback. (#2431) These have been deprecated since April 2021, so it is safe to remove them now.

  • fix doxygen syntax for NodeInterfaces (#2428)

  • Set hints to find the python version we actually want. (#2426) The comment in the commit explains the reasoning behind it.

  • Update quality declaration documents (#2427)

  • feat: add/minus for msg::Time and rclcpp::Duration (#2419) * feat: add/minus for msg::Time and rclcpp::Duration

  • Contributors: Alberto Soragna, Barry Xu, Chris Lalancette, Christophe Bedard, HuaTsai, Jonas Otto, Tim Clephas, Tomoya Fujita, William Woodall

27.0.0 (2024-02-07)

  • Split test_executors up into smaller chunks. (#2421)

  • [events executor] - Fix Behavior with Timer Cancel (#2375)

  • Removed deprecated header (#2413)

  • Make sure to mark RingBuffer methods as ‘override’. (#2410)

  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Matt Condino

26.0.0 (2024-01-24)

  • Increase the cppcheck timeout to 600 seconds. (#2409)

  • Add transient local durability support to publisher and subscriptions when using intra-process communication (#2303)

  • Stop storing the context in the guard condition. (#2400)

  • Contributors: Chris Lalancette, Jeffery Hsu

25.0.0 (2023-12-26)

  • Updated GenericSubscription to AnySubscriptionCallback (#1928)

  • make type support helper supported for service (#2209)

  • Adding QoS to subscription options (#2323)

  • Switch to target_link_libraries. (#2374)

  • aligh with rcl that a rosout publisher of a node might not exist (#2357)

  • Fix data race in EventHandlerBase (#2349)

  • Support users holding onto shared pointers in the message memory pool (#2336)

  • Contributors: Chen Lihui, Chris Lalancette, DensoADAS, Lucas Wendland, mauropasse

24.0.0 (2023-11-06)

  • fix (signal_handler.hpp): spelling (#2356)

  • Updates to not use std::move in some places. (#2353)

  • rclcpp::Time::max() clock type support. (#2352)

  • Serialized Messages with Topic Statistics (#2274)

  • Add a custom deleter when constructing rcl_service_t (#2351)

  • Disable the loaned messages inside the executor. (#2335)

  • Use message_info in SubscriptionTopicStatistics instead of typed message (#2337)

  • Add missing ‘enable_rosout’ comments (#2345)

  • Adjust rclcpp usage of type description service (#2344)

  • address rate related flaky tests. (#2329)

  • Fixes pointed out by the clang analyzer. (#2339)

  • Remove useless ROSRate class (#2326)

  • Contributors: Alexey Merzlyakov, Chris Lalancette, Jiaqi Li, Lucas Wendland, Michael Carroll, Michael Orlov, Tomoya Fujita, Zard-C

23.2.0 (2023-10-09)

  • add clients & services count (#2072)

  • remove invalid sized allocation test for SerializedMessage. (#2330)

  • Adding API to copy all parameters from one node to another (#2304)

  • Contributors: Minju, Lee, Steve Macenski, Tomoya Fujita

23.1.0 (2023-10-04)

  • Add locking to protect the TimeSource::NodeState::node_base_ (#2320)

  • Update SignalHandler get_global_signal_handler to avoid complex types in static memory (#2316)

  • Removing Old Connext Tests (#2313)

  • Documentation for list_parameters (#2315)

  • Decouple rosout publisher init from node init. (#2174)

  • fix the depth to relative in list_parameters (#2300)

  • Contributors: Chris Lalancette, Lucas Wendland, Minju, Lee, Tomoya Fujita, Tully Foote

23.0.0 (2023-09-08)

  • Fix the return type of Rate::period. (#2301)

  • Update API docs links in package READMEs (#2302)

  • Cleanup flaky timers_manager tests. (#2299)

  • Contributors: Chris Lalancette, Christophe Bedard

22.2.0 (2023-09-07)

  • Topic correct typeadapter deduction (#2294)

  • Fix C++20 allocator construct deprecation (#2292)

  • Make Rate to select the clock to work with (#2123)

  • Correct the position of a comment. (#2290)

  • Remove unnecessary lambda captures in the tests. (#2289)

  • Add rcl_logging_interface as an explicit dependency. (#2284)

  • Revamp list_parameters to be more efficient and easier to read. (#2282)

  • Contributors: AiVerisimilitude, Alexey Merzlyakov, Chen Lihui, Chris Lalancette, Jiaqi Li

22.1.0 (2023-08-21)

  • Do not crash Executor when send_response fails due to client failure. (#2276)

  • Adding Custom Unknown Type Error (#2272)

  • Add a pimpl inside rclcpp::Node for future distro backports (#2228)

  • Remove an unused variable from the events executor tests. (#2270)

  • Add spin_all shortcut (#2246)

  • Adding Missing Group Exceptions (#2256)

  • Change associated clocks storage to unordered_set (#2257)

  • associated clocks should be protected by mutex. (#2255)

  • Instrument loaned message publication code path (#2240)

  • Contributors: Chris Lalancette, Christophe Bedard, Emerson Knapp, Luca Della Vedova, Lucas Wendland, Tomoya Fujita, Tony Najjar

22.0.0 (2023-07-11)

  • Implement get_node_type_descriptions_interface for lifecyclenode and add smoke test for it (#2237)

  • Add new node interface TypeDescriptionsInterface to provide GetTypeDescription service (#2224)

  • Move always_false_v to detail namespace (#2232)

  • Revamp the test_subscription.cpp tests. (#2227)

  • warning: comparison of integer expressions of different signedness (#2219)

  • Modifies timers API to select autostart state (#2005)

  • Enable callback group tests for connextdds (#2182)

  • Contributors: Chris Lalancette, Christopher Wecht, Eloy Briceno, Emerson Knapp, Nathan Wiebe Neufeldt, Tomoya Fujita

21.3.0 (2023-06-12)

  • Fix up misspellings of “receive”. (#2208)

  • Remove flaky stressAddRemoveNode test (#2206)

  • Use TRACETOOLS_ prefix for tracepoint-related macros (#2162)

  • Contributors: Chris Lalancette, Christophe Bedard, Michael Carroll

21.2.0 (2023-06-07)

  • remove nolint since ament_cpplint updated for the c++17 header (#2198)

  • Feature/available capacity of ipm (#2173)

  • add mutex to protect events_executor current entity collection (#2187)

  • Declare rclcpp callbacks before the rcl entities (#2024)

  • Contributors: Alberto Soragna, Chen Lihui, DensoADAS, mauropasse

21.1.1 (2023-05-11)

  • Fix race condition in events-executor (#2177)

  • Add missing stdexcept include (#2186)

  • Fix a format-security warning when building with clang (#2171)

  • Fix delivered message kind (#2175)

  • Contributors: Alberto Soragna, Chris Lalancette, methylDragon, Øystein Sture

21.1.0 (2023-04-27)

21.0.0 (2023-04-18)

  • Add support for logging service. (#2122)

  • Picking ABI-incompatible executor changes (#2170)

  • add events-executor and timers-manager in rclcpp (#2155)

  • Create common structures for executors to use (#2143)

  • Implement deliver message kind (#2168)

  • Contributors: Alberto Soragna, Lei Liu, Michael Carroll, methylDragon

20.0.0 (2023-04-13)

  • applied tracepoints for ring_buffer (#2091)

  • Dynamic Subscription (REP-2011 Subset): Stubs for rclcpp (#2165)

  • Add type_hash to cpp TopicEndpointInfo (#2137)

  • Trigger the intraprocess guard condition with data (#2164)

  • Minor grammar fix (#2149)

  • Fix unnecessary allocations in executor.cpp (#2135)

  • add Logger::get_effective_level(). (#2141)

  • Remove deprecated header (#2139)

  • Implement matched event (#2105)

  • use allocator via init_options argument. (#2129)

  • Fixes to silence some clang warnings. (#2127)

  • Documentation improvements on the executor (#2125)

  • Avoid losing waitable handles while using MultiThreadedExecutor (#2109)

  • Hook up the incompatible type event inside of rclcpp (#2069)

  • Update all rclcpp packages to C++17. (#2121)

  • Fix clang warning: bugprone-use-after-move (#2116)

  • Contributors: Barry Xu, Chris Lalancette, Christopher Wecht, Emerson Knapp, Michael Carroll, Tomoya Fujita, Yadu, mauropasse, methylDragon, ymski

19.3.0 (2023-03-01)

  • Fix memory leak in tracetools::get_symbol() (#2104)

  • Service introspection (#1985)

  • Allow publishing borrowed messages with intra-process enabled (#2108)

  • to fix flaky test about TestTimeSource.callbacks (#2111)

  • Contributors: Brian, Chen Lihui, Christophe Bedard, Miguel Company

19.2.0 (2023-02-24)

  • to create a sublogger while getting child of Logger (#1717)

  • Fix documentation of Context class (#2107)

  • fixes for rmw callbacks in qos_event class (#2102)

  • Contributors: Alberto Soragna, Chen Lihui, Silvio Traversaro

19.1.0 (2023-02-14)

  • Add support for timers on reset callback (#1979)

  • Topic node guard condition in executor (#2074)

  • Fix bug on the disorder of calling shutdown callback (#2097)

  • Contributors: Barry Xu, Chen Lihui, mauropasse

19.0.0 (2023-01-30)

  • Add default constructor to NodeInterfaces (#2094)

  • Fix clock state cached time to be a copy, not a reference. (#2092)

  • Fix -Wmaybe-uninitialized warning (#2081)

  • Fix the keep_last warning when using system defaults. (#2082)

  • Add in a fix for older compilers. (#2075)

  • Contributors: Alexander Hans, Chris Lalancette, Shane Loretz

18.0.0 (2022-12-29)

  • Implement Unified Node Interface (NodeInterfaces class) (#2041)

  • Do not throw exception if trying to dequeue an empty intra-process buffer (#2061)

  • Move event callback binding to PublisherBase and SubscriptionBase (#2066)

  • Implement validity checks for rclcpp::Clock (#2040)

  • Explicitly set callback type (#2059)

  • Fix logging macros to build with msvc and cpp20 (#2063)

  • Add clock type to node_options (#1982)

  • Fix nullptr dereference in prune_requests_older_than (#2008)

  • Remove templating on to_rcl_subscription_options (#2056)

  • Fix SharedFuture from async_send_request never becoming valid (#2044)

  • Add in a warning for a KeepLast depth of 0. (#2048)

  • Mark rclcpp::Clock::now() as const (#2050)

  • Fix a case that did not throw ParameterUninitializedException (#2036)

  • Update maintainers (#2043)

  • Contributors: Alberto Soragna, Audrow Nash, Chen Lihui, Chris Lalancette, Jeffery Hsu, Lei Liu, Mateusz Szczygielski, Shane Loretz, andrei, mauropasse, methylDragon

17.1.0 (2022-11-02)

  • MultiThreadExecutor number of threads is at least 2+ in default. (#2032)

  • Fix bug that a callback not reached (#1640)

  • Set the minimum number of threads of the Multithreaded executor to 2 (#2030)

  • check thread whether joinable before join (#2019)

  • Set cpplint test timeout to 3 minutes (#2022)

  • Make sure to include-what-you-use in the node_interfaces. (#2018)

  • Do not clear entities callbacks on destruction (#2002)

  • fix mismatched issue if using zero_allocate (#1995)

  • Contributors: Alexis Paques, Chen Lihui, Chris Lalancette, Cristóbal Arroyo, Tomoya Fujita, mauropasse, uupks

17.0.0 (2022-09-13)

  • Make ParameterService and Sync/AsyncParameterClient accept rclcpp::QoS (#1978)

  • support regex match for parameter client (#1992)

  • operator+= and operator-= for Duration (#1988)

  • Revert “Revert “Add a create_timer method to Node and LifecycleNode classes (#1975)” (#2009) (#2010)

  • force compiler warning if callback handles not captured (#2000)

  • Revert “Add a create_timer method to Node and LifecycleNode classes (#1975)” (#2009)

  • Add a create_timer method to Node and LifecycleNode classes (#1975)

  • [docs] add note about callback lifetime for {on, post}_set_parameter_callback (#1981)

  • fix memory leak (#1994)

  • Support pre-set and post-set parameter callbacks in addition to on-set-parameter-callback. (#1947)

  • Make create_service accept rclcpp::QoS (#1969)

  • Make create_client accept rclcpp::QoS (#1964)

  • Fix the documentation for rclcpp::ok to be accurate. (#1965)

  • use regex for wildcard matching (#1839)

  • Revert “Introduce executors new spin_for method, replace spin_until_future_complete with spin_until_complete. (#1821) (#1874)” (#1956)

  • Introduce executors new spin_for method, replace spin_until_future_complete with spin_until_complete. (#1821) (#1874)

  • test adjustment for LoanedMessage. (#1951)

  • fix virtual dispatch issues identified by clang-tidy (#1816)

  • Remove unused on_parameters_set_callback_ (#1945)

  • Fix subscription.is_serialized() for callbacks with message info (#1950)

  • wait for subscriptions on another thread. (#1940)

  • Fix documentation of RCLCPP_[INFO,WARN,…] (#1943)

  • Always trigger guard condition waitset (#1923)

  • Add statistics for handle_loaned_message (#1927)

  • Drop wrong template specialization (#1926)

  • Contributors: Alberto Soragna, Andrew Symington, Barry Xu, Brian, Chen Lihui, Chris Lalancette, Daniel Reuter, Deepanshu Bansal, Hubert Liberacki, Ivan Santiago Paunovic, Jochen Sprickerhof, Nikolai Morin, Shane Loretz, Tomoya Fujita, Tyler Weaver, William Woodall, schrodinbug

16.2.0 (2022-05-03)

  • Update get_parameter_from_event to follow the function description (#1922)

  • Add ‘best available’ QoS enum values and methods (#1920)

  • Contributors: Barry Xu, Jacob Perron

16.1.0 (2022-04-29)

  • use reinterpret_cast for function pointer conversion. (#1919)

  • Contributors: Tomoya Fujita

16.0.1 (2022-04-13)

  • remove DEFINE_CONTENT_FILTER cmake option (#1914)

  • Contributors: Chen Lihui

16.0.0 (2022-04-08)

  • remove things that were deprecated during galactic (#1913)

  • Contributors: William Woodall

15.4.0 (2022-04-05)

  • add take_data_by_entity_id API to waitable (#1892)

  • add content-filtered-topic interfaces (#1561)

  • Contributors: Alberto Soragna, Chen Lihui

15.3.0 (2022-03-30)

  • [NodeParameters] Set name in param info pre-check (#1908)

  • Add test-dep ament_cmake_google_benchmark (#1904)

  • Add publish by loaned message in GenericPublisher (#1856)

  • Contributors: Abrar Rahman Protyasha, Barry Xu, Gaël Écorchard

15.2.0 (2022-03-24)

  • Add missing ament dependency on rcl_interfaces (#1903)

  • Update data callback tests to account for all published samples (#1900)

  • Increase timeout for acknowledgments to account for slower Connext settings (#1901)

  • clang-tidy: explicit constructors (#1782)

  • Add client/service QoS getters (#1784)

  • Fix a bunch more rosdoc2 issues in rclcpp. (#1897)

  • time_until_trigger returns max time if timer is cancelled (#1893)

  • Micro-optimizations in rclcpp (#1896)

  • Contributors: Andrea Sorbini, Chris Lalancette, Mauro Passerino, Scott K Logan, William Woodall

15.1.0 (2022-03-01)

  • spin_all with a zero timeout. (#1878)

  • Add RMW listener APIs (#1579)

  • Remove fastrtps customization on tests (#1887)

  • Install headers to include/${PROJECT_NAME} (#1888)

  • Use ament_generate_version_header (#1886)

  • use universal reference to support rvalue. (#1883)

  • fix one subscription can wait_for_message twice (#1870)

  • Add return value version of get_parameter_or (#1813)

  • Cleanup time source object lifetimes (#1867)

  • add is_spinning() method to executor base class

  • Contributors: Alberto Soragna, Chen Lihui, Chris Lalancette, Kenji Miyake, Miguel Company, Shane Loretz, Tomoya Fujita, iRobot ROS

15.0.0 (2022-01-14)

  • Cleanup the TypeAdapt tests (#1858)

  • Cleanup includes (#1857)

  • Fix include order and relative paths for cpplint (#1859)

  • Rename stringstream in macros to a more unique name (#1862)

  • Add non transform capabilities for intra-process (#1849)

  • Fix rclcpp documentation build (#1779)

  • Contributors: Chris Lalancette, Doug Smith, Gonzo, Jacob Perron, Michel Hidalgo

14.1.0 (2022-01-05)

  • Use UninitializedStaticallyTypedParameterException (#1689)

  • Add wait_for_all_acked support (#1662)

  • Add tests for function templates of declare_parameter (#1747)

  • Contributors: Barry Xu, Bi0T1N, M. Mostafa Farzan

14.0.0 (2021-12-17)

  • Fixes for uncrustify 0.72 (#1844)

  • use private member to keep the all reference underneath. (#1845)

  • Make node base sharable (#1832)

  • Add Clock::sleep_for() (#1828)

  • Synchronize rcl and std::chrono steady clocks in Clock::sleep_until (#1830)

  • Use rclcpp::guard_condition (#1612)

  • Call CMake function to generate version header (#1805)

  • Use parantheses around logging macro parameter (#1820)

  • Remove author by request (#1818)

  • Update maintainers (#1817)

  • min_forward & min_backward thresholds must not be disabled (#1815)

  • Re-add Clock::sleep_until (#1814)

  • Fix lifetime of context so it remains alive while its dependent node handles are still in use (#1754)

  • Add the interface for pre-shutdown callback (#1714)

  • Take message ownership from moved LoanedMessage (#1808)

  • Suppress clang dead-store warnings in the benchmarks. (#1802)

  • Wait for publisher and subscription to match (#1777)

  • Fix unused QoS profile for clock subscription and make ClockQoS the default (#1801)

  • Contributors: Abrar Rahman Protyasha, Barry Xu, Chen Lihui, Chris Lalancette, Grey, Jacob Perron, Nikolai Morin, Shane Loretz, Tomoya Fujita, mauropasse

13.1.0 (2021-10-18)

  • Fix dangerous std::bind capture in TimeSource implementation. (#1768)

  • Fix dangerous std::bind capture in ParameterEventHandler implementation. (#1770)

  • Handle sigterm, in the same way sigint is being handled. (#1771)

  • rclcpp::Node copy constructor: make copy of node_waitables_ member. (#1799)

  • Extend NodeGraph to match what rcl provides. (#1484)

  • Context::sleep_for(): replace recursion with do-while to avoid potential stack-overflow. (#1765)

  • extend_sub_namespace(): Verify string::empty() before calling string::front(). (#1764)

  • Deprecate the void shared_ptr<MessageT> subscription callback signatures. (#1713)

  • Contributors: Abrar Rahman Protyasha, Chris Lalancette, Emerson Knapp, Geoffrey Biggs, Ivan Santiago Paunovic, Jorge Perez, Tomoya Fujita, William Woodall, Yong-Hao Zou, livanov93

13.0.0 (2021-08-23)

  • Remove can_be_nullptr assignment check for QNX case. (#1752)

  • Update client API to be able to remove pending requests. (#1734)

  • Fix: Allow to add a node while spinning in the StaticSingleThreadedExecutor. (#1690)

  • Add tracing instrumentation for executor and message taking. (#1738)

  • Fix: Reset timer trigger time before execute in StaticSingleThreadedExecutor. (#1739)

  • Use FindPython3 and make python3 dependency explicit. (#1745)

  • Use rosidl_get_typesupport_target(). (#1729)

  • Fix returning invalid namespace if sub_namespace is empty. (#1658)

  • Add free function to wait for a subscription message. (#1705)

  • Use rcpputils/scope_exit.hpp and remove rclcpp/scope_exit.hpp. (#1727)

  • Contributors: Ahmed Sobhy, Christophe Bedard, Ivan Santiago Paunovic, Karsten Knese, M. Hofstätter, Mauro Passerino, Shane Loretz, mauropasse

12.0.0 (2021-07-26)

  • Remove unsafe get_callback_groups API. Callers should change to using for_each_callback_group(), or store the callback groups they need internally.

  • Add in callback_groups_for_each. The main reason to add this method in is to make accesses to the callback_groups_ vector thread-safe. By having a callback_groups_for_each that accepts a std::function, we can just have the callers give us the callback they are interested in, and we can take care of the locking. The rest of this fairly large PR is cleaning up all of the places that use get_callback_groups() to instead use callback_groups_for_each().

  • Use a different mechanism to avoid timers being scheduled multiple times by the MultiThreadedExecutor (#1692)

  • Fix windows CI (#1726) Fix bug in AnyServiceCallback introduced in #1709.

  • Contributors: Chris Lalancette, Ivan Santiago Paunovic

11.2.0 (2021-07-21)

11.1.0 (2021-07-13)

  • Removed left over is_initialized() implementation (#1711) Leftover from https://github.com/ros2/rclcpp/pull/1622

  • Fixed declare parameter methods for int and float vectors (#1696)

  • Cleaned up implementation of the intra-process manager (#1695)

  • Added the node name to an executor runtime_error (#1686)

  • Fixed a typo “Attack” -> “Attach” (#1687)

  • Removed use of std::allocator<>::rebind (#1678) rebind is deprecated in c++17 and removed in c++20

  • Contributors: Alberto Soragna, Chen Lihui, Chris Lalancette, Petter Nilsson, Steve Macenski, William Woodall

11.0.0 (2021-05-18)

  • Allow declare uninitialized parameters (#1673)

  • Fix syntax issue with gcc (#1674)

  • [service] Don’t use a weak_ptr to avoid leaking (#1668)

  • Contributors: Ivan Santiago Paunovic, Jacob Perron, William Woodall

10.0.0 (2021-05-11)

  • Fix doc typo (#1663)

  • [rclcpp] Type Adaptation feature (#1557)

  • Do not attempt to use void allocators for memory allocation. (#1657)

  • Keep custom allocator in publisher and subscription options alive. (#1647)

  • Fix get_publishers_subscriptions_info_by_topic test in test_node.cpp (#1648)

  • Use OnShutdown callback handle instead of OnShutdown callback (#1639)

  • use dynamic_pointer_cast to detect allocator mismatch in intra process manager (#1643)

  • Increase cppcheck timeout to 500s (#1634)

  • Clarify node parameters docs (#1631)

  • Contributors: Audrow Nash, Barry Xu, Jacob Perron, Michel Hidalgo, Shane Loretz, William Woodall

9.0.2 (2021-04-14)

  • Avoid returning loan when none was obtained. (#1629)

  • Use a different implementation of mutex two priorities (#1628)

  • Do not test the value of the history policy when testing the get_publishers/subscriptions_info_by_topic() methods (#1626)

  • Check first parameter type and range before calling the user validation callbacks (#1627)

  • Contributors: Ivan Santiago Paunovic, Miguel Company

9.0.1 (2021-04-12)

  • Restore test exception for Connext (#1625)

  • Fix race condition in TimeSource clock thread setup (#1623)

  • Contributors: Andrea Sorbini, Michel Hidalgo

9.0.0 (2021-04-06)

  • remove deprecated code which was deprecated in foxy and should be removed in galactic (#1622)

  • Change index.ros.org -> docs.ros.org. (#1620)

  • Unique network flows (#1496)

  • Add spin_some support to the StaticSingleThreadedExecutor (#1338)

  • Add publishing instrumentation (#1600)

  • Create load_parameters and delete_parameters methods (#1596)

  • refactor AnySubscriptionCallback and add/deprecate callback signatures (#1598)

  • Add generic publisher and generic subscription for serialized messages (#1452)

  • use context from node_base_ for clock executor. (#1617)

  • updating quality declaration links (re: ros2/docs.ros2.org#52) (#1615)

  • Contributors: Ananya Muddukrishna, BriceRenaudeau, Chris Lalancette, Christophe Bedard, Nikolai Morin, Tomoya Fujita, William Woodall, mauropasse, shonigmann

8.2.0 (2021-03-31)

  • Initialize integers in test_parameter_event_handler.cpp to avoid undefined behavior (#1609)

  • Namespace tracetools C++ functions (#1608)

  • Revert “Namespace tracetools C++ functions (#1603)” (#1607)

  • Namespace tracetools C++ functions (#1603)

  • Clock subscription callback group spins in its own thread (#1556)

  • Contributors: Chris Lalancette, Christophe Bedard, Ivan Santiago Paunovic, anaelle-sw

8.1.0 (2021-03-25)

  • Remove rmw_connext_cpp references. (#1595)

  • Add API for checking QoS profile compatibility (#1554)

  • Document misuse of parameters callback (#1590)

  • use const auto & to iterate over parameters (#1593)

  • Contributors: Chris Lalancette, Jacob Perron, Karsten Knese

8.0.0 (2021-03-23)

  • Guard against integer overflow in duration conversion (#1584)

  • Contributors: Jacob Perron

7.0.1 (2021-03-22)

  • get_parameters service should return empty if undeclared parameters are allowed (#1514)

  • Made ‘Context::shutdown_reason’ function a const function (#1578)

  • Contributors: Tomoya Fujita, suab321321

7.0.0 (2021-03-18)

  • Document design decisions that were made for statically typed parameters (#1568)

  • Fix doc typo in CallbackGroup constructor (#1582)

  • Enable qos parameter overrides for the /parameter_events topic (#1532)

  • Add support for rmw_connextdds (#1574)

  • Remove ‘struct’ from the rcl_time_jump_t. (#1577)

  • Add tests for declaring statically typed parameters when undeclared parameters are allowed (#1575)

  • Quiet clang memory leak warning on “DoNotOptimize”. (#1571)

  • Add ParameterEventsSubscriber class (#829)

  • When a parameter change is rejected, the parameters map shouldn’t be updated. (#1567)

  • Fix when to throw the NoParameterOverrideProvided exception. (#1567)

  • Fix SEGV caused by order of destruction of Node sub-interfaces (#1469)

  • Fix benchmark test failure introduced in #1522 (#1564)

  • Fix documented example in create_publisher (#1558)

  • Enforce static parameter types (#1522)

  • Allow timers to keep up the intended rate in MultiThreadedExecutor (#1516)

  • Fix UBSAN warnings in any_subscription_callback. (#1551)

  • Fix runtime error: reference binding to null pointer of type (#1547)

  • Contributors: Andrea Sorbini, Chris Lalancette, Colin MacKenzie, Ivan Santiago Paunovic, Jacob Perron, Steven! Ragnarök, bpwilcox, tomoya

6.3.1 (2021-02-08)

  • Reference test resources directly from source tree (#1543)

  • clear statistics after window reset (#1531) (#1535)

  • Fix a minor string error in the topic_statistics test. (#1541)

  • Avoid Resource deadlock avoided if use intra_process_comms (#1530)

  • Avoid an object copy in parameter_value.cpp. (#1538)

  • Assert that the publisher_list size is 1. (#1537)

  • Don’t access objects after they have been std::move (#1536)

  • Update for checking correct variable (#1534)

  • Destroy msg extracted from LoanedMessage. (#1305)

  • Contributors: Chen Lihui, Chris Lalancette, Ivan Santiago Paunovic, Miaofei Mei, Scott K Logan, William Woodall, hsgwa

6.3.0 (2021-01-25)

  • Add instrumentation for linking a timer to a node (#1500)

  • Fix error when using IPC with StaticSingleThreadExecutor (#1520)

  • Change to using unique_ptrs for DummyExecutor. (#1517)

  • Allow reconfiguring ‘clock’ topic qos (#1512)

  • Allow to add/remove nodes thread safely in rclcpp::Executor (#1505)

  • Call rclcpp::shutdown in test_node for clean shutdown on Windows (#1515)

  • Reapply “Add get_logging_directory method to rclcpp::Logger (#1509)” (#1513)

  • use describe_parameters of parameter client for test (#1499)

  • Revert “Add get_logging_directory method to rclcpp::Logger (#1509)” (#1511)

  • Add get_logging_directory method to rclcpp::Logger (#1509)

  • Contributors: Chris Lalancette, Christophe Bedard, Ivan Santiago Paunovic, eboasson, mauropasse, tomoya

6.2.0 (2021-01-08)

  • Better documentation for the QoS class (#1508)

  • Modify excluding callback duration from topic statistics (#1492)

  • Make the test of graph users more robust. (#1504)

  • Make sure to wait for graph change events in test_node_graph. (#1503)

  • add timeout to SyncParametersClient methods (#1493)

  • Fix wrong test expectations (#1497)

  • Update create_publisher/subscription documentation, clarifying when a parameters interface is required (#1494)

  • Fix string literal warnings (#1442)

  • support describe_parameters methods to parameter client. (#1453)

  • Contributors: Audrow Nash, Chris Lalancette, Ivan Santiago Paunovic, Nikolai Morin, hsgwa, tomoya

6.1.0 (2020-12-10)

  • Add getters to rclcpp::qos and rclcpp::Policy enum classes (#1467)

  • Change nullptr checks to use ASSERT_TRUE. (#1486)

  • Adjust logic around finding and erasing guard_condition (#1474)

  • Update QDs to QL 1 (#1477)

  • Add performance tests for parameter transport (#1463)

  • Contributors: Chris Lalancette, Ivan Santiago Paunovic, Scott K Logan, Stephen Brawner

6.0.0 (2020-11-18)

  • Move ownership of shutdown_guard_condition to executors/graph_listener (#1404)

  • Add options to automatically declare qos parameters when creating a publisher/subscription (#1465)

  • Add take_data to Waitable and data to AnyExecutable (#1241)

  • Add benchmarks for node parameters interface (#1444)

  • Remove allocation from executor::remove_node() (#1448)

  • Fix test crashes on CentOS 7 (#1449)

  • Bump rclcpp packages to Quality Level 2 (#1445)

  • Added executor benchmark tests (#1413)

  • Add fully-qualified namespace to WeakCallbackGroupsToNodesMap (#1435)

  • Contributors: Alejandro Hernández Cordero, Audrow Nash, Chris Lalancette, Ivan Santiago Paunovic, Louise Poubel, Scott K Logan, brawner

5.1.0 (2020-11-02)

  • Deprecate Duration(rcl_duration_value_t) in favor of static Duration::from_nanoseconds(rcl_duration_value_t) (#1432)

  • Avoid parsing arguments twice in rclcpp::init_and_remove_ros_arguments (#1415)

  • Add service and client benchmarks (#1425)

  • Set CMakeLists to only use default rmw for benchmarks (#1427)

  • Update tracetools’ QL in rclcpp’s QD (#1428)

  • Add missing locking to the rclcpp_action::ServerBase. (#1421)

  • Initial benchmark tests for rclcpp::init/shutdown create/destroy node (#1411)

  • Refactor test CMakeLists in prep for benchmarks (#1422)

  • Add methods in topic and service interface to resolve a name (#1410)

  • Update deprecated gtest macros (#1370)

  • Clear members for StaticExecutorEntitiesCollector to avoid shared_ptr dependency (#1303)

  • Increase test timeouts of slow running tests with rmw_connext_cpp (#1400)

  • Avoid self dependency that not destoryed (#1301)

  • Update maintainers (#1384)

  • Add clock qos to node options (#1375)

  • Fix NodeOptions copy constructor (#1376)

  • Make sure to clean the external client/service handle. (#1296)

  • Increase coverage of WaitSetTemplate (#1368)

  • Increase coverage of guard_condition.cpp to 100% (#1369)

  • Add coverage statement (#1367)

  • Tests for LoanedMessage with mocked loaned message publisher (#1366)

  • Add unit tests for qos and qos_event files (#1352)

  • Finish coverage of publisher API (#1365)

  • Finish API coverage on executors. (#1364)

  • Add test for ParameterService (#1355)

  • Add time API coverage tests (#1347)

  • Add timer coverage tests (#1363)

  • Add in additional tests for parameter_client.cpp coverage.

  • Minor fixes to the parameter_service.cpp file.

  • reset rcl_context shared_ptr after calling rcl_init sucessfully (#1357)

  • Improved test publisher - zero qos history depth value exception (#1360)

  • Covered resolve_use_intra_process (#1359)

  • Improve test_subscription_options (#1358)

  • Add in more tests for init_options coverage. (#1353)

  • Test the remaining node public API (#1342)

  • Complete coverage of Parameter and ParameterValue API (#1344)

  • Add in more tests for the utilities. (#1349)

  • Add in two more tests for expand_topic_or_service_name. (#1350)

  • Add tests for node_options API (#1343)

  • Add in more coverage for expand_topic_or_service_name. (#1346)

  • Test exception in spin_until_future_complete. (#1345)

  • Add coverage tests graph_listener (#1330)

  • Add in unit tests for the Executor class.

  • Allow mimick patching of methods with up to 9 arguments.

  • Improve the error messages in the Executor class.

  • Add coverage for client API (#1329)

  • Increase service coverage (#1332)

  • Make more of the static entity collector API private.

  • Const-ify more of the static executor.

  • Add more tests for the static single threaded executor.

  • Many more tests for the static_executor_entities_collector.

  • Get one more line of code coverage in memory_strategy.cpp

  • Bugfix when adding callback group.

  • Fix typos in comments.

  • Remove deprecated executor::FutureReturnCode APIs. (#1327)

  • Increase coverage of publisher/subscription API (#1325)

  • Not finalize guard condition while destructing SubscriptionIntraProcess (#1307)

  • Expose qos setting for /rosout (#1247)

  • Add coverage for missing API (except executors) (#1326)

  • Include topic name in QoS mismatch warning messages (#1286)

  • Add coverage tests context functions (#1321)

  • Increase coverage of node_interfaces, including with mocking rcl errors (#1322)

  • Contributors: Ada-King, Alejandro Hernández Cordero, Audrow Nash, Barry Xu, Chen Lihui, Chris Lalancette, Christophe Bedard, Ivan Santiago Paunovic, Jorge Perez, Morgan Quigley, brawner

5.0.0 (2020-09-18)

  • Make node_graph::count_graph_users() const (#1320)

  • Add coverage for wait_set_policies (#1316)

  • Only exchange intra_process waitable if nonnull (#1317)

  • Check waitable for nullptr during constructor (#1315)

  • Call vector.erase with end iterator overload (#1314)

  • Use best effort, keep last, history depth 1 QoS Profile for ‘/clock’ subscriptions (#1312)

  • Add tests type_support module (#1308)

  • Replace std_msgs with test_msgs in executors test (#1310)

  • Add set_level for rclcpp::Logger (#1284)

  • Remove unused private function (rclcpp::Node and rclcpp_lifecycle::Node) (#1294)

  • Adding tests basic getters (#1291)

  • Adding callback groups in executor (#1218)

  • Refactor Subscription Topic Statistics Tests (#1281)

  • Add operator!= for duration (#1236)

  • Fix clock thread issue (#1266) (#1267)

  • Fix topic stats test, wait for more messages, only check the ones with samples (#1274)

  • Add get_domain_id method to rclcpp::Context (#1271)

  • Fixes for unit tests that fail under cyclonedds (#1270)

  • initialize_logging_ should be copied (#1272)

  • Use static_cast instead of C-style cast for instrumentation (#1263)

  • Make parameter clients use template constructors (#1249)

  • Ability to configure domain_id via InitOptions. (#1165)

  • Simplify and fix allocator memory strategy unit test for connext (#1252)

  • Use global namespace for parameter events subscription topic (#1257)

  • Increase timeouts for connext for long tests (#1253)

  • Adjust test_static_executor_entities_collector for rmw_connext_cpp (#1251)

  • Fix failing test with Connext since it doesn’t wait for discovery (#1246)

  • Fix node graph test with Connext and CycloneDDS returning actual data (#1245)

  • Warn about unused result of add_on_set_parameters_callback (#1238)

  • Unittests for memory strategy files, except allocator_memory_strategy (#1189)

  • EXPECT_THROW_EQ and ASSERT_THROW_EQ macros for unittests (#1232)

  • Add unit test for static_executor_entities_collector (#1221)

  • Parameterize test executors for all executor types (#1222)

  • Unit tests for allocator_memory_strategy.cpp part 2 (#1198)

  • Unit tests for allocator_memory_strategy.hpp (#1197)

  • Derive and throw exception in spin_some spin_all for StaticSingleThreadedExecutor (#1220)

  • Make ring buffer thread-safe (#1213)

  • Add missing RCLCPP_PUBLIC to ~StaticExecutorEntitiesCollector (#1227)

  • Document graph functions don’t apply remap rules (#1225)

  • Remove recreation of entities_collector (#1217)

  • Contributors: Audrow Nash, Chen Lihui, Christophe Bedard, Daisuke Sato, Devin Bonnie, Dirk Thomas, Ivan Santiago Paunovic, Jacob Perron, Jannik Abbenseth, Jorge Perez, Pedro Pena, Shane Loretz, Stephen Brawner, Tomoya Fujita

4.0.0 (2020-07-09)

  • Fix rclcpp::NodeOptions::operator= (#1211)

  • Link against thread library where necessary (#1210)

  • Unit tests for node interfaces (#1202)

  • Remove usage of domain id in node options (#1205)

  • Remove deprecated set_on_parameters_set_callback function (#1199)

  • Fix conversion of negative durations to messages (#1188)

  • Fix implementation of NodeOptions::use_global_arguments() (#1176)

  • Bump to QD to level 3 and fixed links (#1158)

  • Fix pub/sub count API tests (#1203)

  • Update tracetools’ QL to 2 in rclcpp’s QD (#1187)

  • Fix exception message on rcl_clock_init (#1182)

  • Throw exception if rcl_timer_init fails (#1179)

  • Unit tests for some header-only functions/classes (#1181)

  • Callback should be perfectly-forwarded (#1183)

  • Add unit tests for logging functionality (#1184)

  • Add create_publisher include to create_subscription (#1180)

  • Contributors: Alejandro Hernández Cordero, Christophe Bedard, Claire Wang, Dirk Thomas, Ivan Santiago Paunovic, Johannes Meyer, Michel Hidalgo, Stephen Brawner, tomoya

3.0.0 (2020-06-18)

  • Check period duration in create_wall_timer (#1178)

  • Fix get_node_time_source_interface() docstring (#988)

  • Add message lost subscription event (#1164)

  • Add spin_all method to Executor (#1156)

  • Reorganize test directory and split CMakeLists.txt (#1173)

  • Check if context is valid when looping in spin_some (#1167)

  • Add check for invalid topic statistics publish period (#1151)

  • Fix spin_until_future_complete: check spinning value (#1023)

  • Fix doxygen warnings (#1163)

  • Fix reference to rclcpp in its Quality declaration (#1161)

  • Allow spin_until_future_complete to accept any future like object (#1113)

  • Contributors: Alejandro Hernández Cordero, Christophe Bedard, Devin Bonnie, Dirk Thomas, DongheeYe, Ivan Santiago Paunovic, Jacob Perron, Sarthak Mittal, brawner, tomoya

2.0.0 (2020-06-01)

  • Added missing virtual destructors. (#1149)

  • Fixed a test which was using different types on the same topic. (#1150)

  • Made test_rate more reliable on Windows and improve error output when it fails (#1146)

  • Added Security Vulnerability Policy pointing to REP-2006. (#1130)

  • Added missing header in logging_mutex.cpp. (#1145)

  • Changed the WaitSet API to pass a shared pointer by value instead than by const reference when possible. (#1141)

  • Changed SubscriptionBase::get_subscription_handle() const to return a shared pointer to const value. (#1140)

  • Extended the lifetime of rcl_publisher_t by holding onto the shared pointer in order to avoid a use after free situation. (#1119)

  • Improved some docblocks (#1127)

  • Fixed a lock-order-inversion (potential deadlock) (#1135)

  • Fixed a potential Construction/Destruction order problem between global contexts vector and Context of static lifetime (#1132)

  • Contributors: Alejandro Hernández Cordero, Chris Lalancette, Ivan Santiago Paunovic, Michel Hidalgo, tomoya

1.1.0 (2020-05-26)

  • Deprecate set_on_parameters_set_callback (#1123)

  • Expose get_service_names_and_types_by_node from rcl in rclcpp (#1131)

  • Fix thread safety issues related to logging (#1125)

  • Make sure rmw_publisher_options is initialized in to_rcl_publisher_options (#1099)

  • Remove empty lines within method signatures (#1128)

  • Add API review March 2020 document (#1031)

  • Improve documentation (#1106)

  • Make test multi threaded executor more reliable (#1105)

  • Fixed rep links and added more details to dependencies in quality declaration (#1116)

  • Update quality declarations to reflect version 1.0 (#1115)

  • Contributors: Alejandro Hernández Cordero, ChenYing Kuo, Claire Wang, Dirk Thomas, Ivan Santiago Paunovic, William Woodall, Stephen Brawner

1.0.0 (2020-05-12)

  • Remove MANUAL_BY_NODE liveliness API (#1107)

  • Use rosidl_default_generators dependency in test (#1114)

  • Make sure to include what you use (#1112)

  • Mark flaky test with xfail: TestMultiThreadedExecutor (#1109)

  • Contributors: Chris Lalancette, Ivan Santiago Paunovic, Karsten Knese, Louise Poubel

0.9.1 (2020-05-08)

  • Fix tests that were not properly torn down (#1073)

  • Added docblock in rclcpp (#1103)

  • Added Quality declaration: rclcpp, rclpp_action, rclcpp_components andrclcpp_lifecycle (#1100)

  • Use RCL_RET_SERVICE_TAKE_FAILED and not RCL_RET_CLIENT_TAKE_FAILED when checking a request take (#1101)

  • Update comment about return value in Executor::get_next_ready_executable (#1085)

  • Contributors: Alejandro Hernández Cordero, Christophe Bedard, Devin Bonnie, Ivan Santiago Paunovic

0.9.0 (2020-04-29)

  • Serialized message move constructor (#1097)

  • Enforce a precedence for wildcard matching in parameter overrides. (#1094)

  • Add serialized_message.hpp header (#1095)

  • Add received message age metric to topic statistics (#1080)

  • Deprecate redundant namespaces (#1083)

  • Export targets in addition to include directories / libraries (#1088)

  • Ensure logging is initialized just once (#998)

  • Adapt subscription traits to rclcpp::SerializedMessage (#1092)

  • Protect subscriber_statistics_collectors_ with a mutex (#1084)

  • Remove unused test variable (#1087)

  • Use serialized message (#1081)

  • Integrate topic statistics (#1072)

  • Fix rclcpp interface traits test (#1086)

  • Generate node interfaces’ getters and traits (#1069)

  • Use composition for serialized message (#1082)

  • Dnae adas/serialized message (#1075)

  • Reflect changes in rclcpp API (#1079)

  • Fix build regression (#1078)

  • Add NodeDefault option for enabling topic statistics (#1074)

  • Topic Statistics: Add SubscriptionTopicStatistics class (#1050)

  • Add SubscriptionOptions for topic statistics (#1057)

  • Remove warning message from failing to register default callback (#1067)

  • Create a default warning for qos incompatibility (#1051)

  • Add WaitSet class and modify entities to work without executor (#1047)

  • Include what you use (#1059)

  • Rename rosidl_generator_cpp namespace to rosidl_runtime_cpp (#1060)

  • Changed rosidl_generator_c/cpp to rosidl_runtime_c/cpp (#1014)

  • Use constexpr for endpoint type name (#1055)

  • Add InvalidParameterTypeException (#1027)

  • Support for ON_REQUESTED_INCOMPATIBLE_QOS and ON_OFFERED_INCOMPATIBLE_QOS events (#924)

  • Fixup clang warning (#1040)

  • Adding a “static” single threaded executor (#1034)

  • Add equality operators for QoS profile (#1032)

  • Remove extra vertical whitespace (#1030)

  • Switch IntraProcessMessage to test_msgs/Empty (#1017)

  • Add new type of exception that may be thrown during creation of publisher/subscription (#1026)

  • Don’t check lifespan on publisher QoS (#1002)

  • Fix get_parameter_tyeps of AsyncPrameterClient results are always empty (#1019)

  • Cleanup node interfaces includes (#1016)

  • Add ifdefs to remove tracing-related calls if tracing is disabled (#1001)

  • Include missing header in node_graph.cpp (#994)

  • Add missing includes of logging.hpp (#995)

  • Zero initialize publisher GID in subscription intra process callback (#1011)

  • Removed ament_cmake dependency (#989)

  • Switch to using new rcutils_strerror (#993)

  • Ensure all rclcpp::Clock accesses are thread-safe

  • Use a PIMPL for rclcpp::Clock implementation

  • Replace rmw_implementation for rmw dependency in package.xml (#990)

  • Add missing service callback registration tracepoint (#986)

  • Rename rmw_topic_endpoint_info_array count to size (#996)

  • Implement functions to get publisher and subcription informations like QoS policies from topic name (#960)

  • Code style only: wrap after open parenthesis if not in one line (#977)

  • Accept taking an rvalue ref future in spin_until_future_complete (#971)

  • Allow node clock use in logging macros (#969) (#970)

  • Change order of deprecated and visibility attributes (#968)

  • Deprecated is_initialized() (#967)

  • Don’t specify calling convention in std::_Binder template (#952)

  • Added missing include to logging.hpp (#964)

  • Assigning make_shared result to variables in test (#963)

  • Fix unused parameter warning (#962)

  • Stop retaining ownership of the rcl context in GraphListener (#946)

  • Clear sub contexts when starting another init-shutdown cycle (#947)

  • Avoid possible UB in Clock jump callbacks (#954)

  • Handle unknown global ROS arguments (#951)

  • Mark get_clock() as override to fix clang warnings (#939)

  • Create node clock calls const (try 2) (#922)

  • Fix asserts on shared_ptr::use_count; expects long, got uint32 (#936)

  • Use absolute topic name for parameter events (#929)

  • Add enable_rosout into NodeOptions. (#900)

  • Removing “virtual”, adding “override” keywords (#897)

  • Use weak_ptr to store context in GraphListener (#906)

  • Complete published event message when declaring a parameter (#928)

  • Fix duration.cpp lint error (#930)

  • Intra-process subscriber should use RMW actual qos. (ros2`#913 <https://github.com/ros2/rclcpp/issues/913>`_) (#914)

  • Type conversions fixes (#901)

  • Add override keyword to functions

  • Remove unnecessary virtual keywords

  • Only check for new work once in spin_some (#471) (#844)

  • Add addition/subtraction assignment operators to Time (#748)

  • Contributors: Alberto Soragna, Alejandro Hernández Cordero, Barry Xu, Chris Lalancette, Christophe Bedard, Claire Wang, Dan Rose, DensoADAS, Devin Bonnie, Dino Hüllmann, Dirk Thomas, DongheeYe, Emerson Knapp, Ivan Santiago Paunovic, Jacob Perron, Jaison Titus, Karsten Knese, Matt Schickler, Miaofei Mei, Michel Hidalgo, Mikael Arguedas, Monika Idzik, Prajakta Gokhale, Roger Strain, Scott K Logan, Sean Kelly, Stephen Brawner, Steven Macenski, Steven! Ragnarök, Todd Malsbary, Tomoya Fujita, William Woodall, Zachary Michaels

0.8.3 (2019-11-19)

0.8.2 (2019-11-18)

  • Updated tracing logic to match changes in rclcpp’s intra-process system (#918)

  • Fixed a bug that prevented the shutdown_on_sigint option to not work correctly (#850)

  • Added support for STREAM logging macros (#926)

  • Relaxed multithreaded test constraint (#907)

  • Contributors: Anas Abou Allaban, Christophe Bedard, Dirk Thomas, alexfneves

0.8.1 (2019-10-23)

  • De-flake tests for rmw_connext (#899)

  • rename return functions for loaned messages (#896)

  • Enable throttling logs (#879)

  • New Intra-Process Communication (#778)

  • Instrumentation update (#789)

  • Zero copy api (#864)

  • Drop rclcpp remove_ros_arguments_null test case. (#894)

  • add mechanism to pass rmw impl specific payloads during pub/sub creation (#882)

  • make get_actual_qos return a rclcpp::QoS (#883)

  • Fix Compiler Warning (#881)

  • Add callback handler for use_sim_time parameter #802 (#875)

  • Contributors: Alberto Soragna, Brian Marchi, Hunter L. Allen, Ingo Lütkebohle, Karsten Knese, Michael Carroll, Michel Hidalgo, William Woodall

0.8.0 (2019-09-26)

  • clean up publisher and subscription creation logic (#867)

  • Take parameter overrides provided through the CLI. (#865)

  • add more context to exception message (#858)

  • remove features and related code which were deprecated in dashing (#852)

  • check valid timer handler 1st to reduce the time window for scan. (#841)

  • Add throwing parameter name if parameter is not set (#833)

  • Fix typo in deprecated warning. (#848)

  • Fail on invalid and unknown ROS specific arguments (#842)

  • Force explicit –ros-args in NodeOptions::arguments(). (#845)

  • Use of -r/–remap flags where appropriate. (#834)

  • Fix hang with timers in MultiThreadedExecutor (#835) (#836)

  • add mutex in add/remove_node and wait_for_work to protect concurrent use/change of memory_strategy_ (#837)

  • Crash in callback group pointer vector iterator (#814)

  • Wrap documentation examples in code blocks (#830)

  • add callback group as member variable and constructor arg (#811)

  • Fix get_node_interfaces functions taking a pointer (#821)

  • Delete unnecessary call for get_node_by_group (#823)

  • Allow passing logger by const ref (#820)

  • Explain return value of spin_until_future_complete (#792)

  • Adapt to ‘–ros-args … [–]’-based ROS args extraction (#816)

  • Add line break after first open paren in multiline function call (#785)

  • remove mock msgs from rclcpp (#800)

  • Make TimeSource ignore use_sim_time events coming from other nodes. (#799)

  • Allow registering multiple on_parameters_set_callback (#772)

  • Add free function for creating service clients (#788)

  • Include missing rcl headers in use. (#782)

  • Switch the NodeParameters lock to recursive. (#781)

  • changed on_parameter_event qos profile to rmw_qos_profile_parameter_events (#774)

  • Adding a factory method to create a Duration from seconds (#567)

  • Fix a comparison with a sign mismatch (#771)

  • delete superfluous spaces (#770)

  • Use params from node ‘/**’ from parameter YAML file (#762)

  • Add ignore override argument to declare parameter (#767)

  • use default parameter descriptor in parameters interface (#765)

  • Added support for const member functions (#763)

  • add get_actual_qos() feature to subscriptions (#754)

  • Ignore parameters overrides in set parameter methods when allowing undeclared parameters (#756)

  • Add rclcpp::create_timer() (#757)

  • checking origin of intra-process msg before taking them (#753)

  • Contributors: Alberto Soragna, Carl Delsey, Chris Lalancette, Dan Rose, Dirk Thomas, Esteve Fernandez, Guillaume Autran, Jacob Perron, Karsten Knese, Luca Della Vedova, M. M, Michel Hidalgo, Scott K Logan, Shane Loretz, Todd Malsbary, William Woodall, bpwilcox, fujitatomoya, ivanpauno

0.7.5 (2019-05-30)

  • Avoid ‘Intra process message no longer being stored when trying to handle it’ warning (#749)

  • Contributors: ivanpauno

0.7.4 (2019-05-29)

  • Rename parameter options (#745)

  • Bionic use of strerror_r (#742)

  • Enforce parameter ranges (#735)

  • removed not used parameter client (#740)

  • ensure removal of guard conditions of expired nodes from memory strategy (#741)

  • Fix typo in log warning message (#737)

  • Throw nice errors when creating a publisher with intraprocess communication and incompatible qos policy (#729)

  • Contributors: Alberto Soragna, Dirk Thomas, Jacob Perron, William Woodall, ivanpauno, roderick-koehle

0.7.3 (2019-05-20)

  • Fixed misspelling, volitile -> volatile (#724), and then fixed that since it is a C++ keyword to be durability_volatile (#725)

  • Fixed a clang warning (#723)

  • Added on_parameter_event static method to the AsyncParametersClient (#688)

  • Added a guard against ParameterNotDeclaredException throwing from within the parameter service callbacks. (#718)

  • Added missing template functionality to lifecycle_node. (#707)

  • Fixed heap-use-after-free and memory leaks reported from test_node.cpp (#719)

  • Contributors: Alberto Soragna, Dirk Thomas, Emerson Knapp, Jacob Perron, Michael Jeronimo, Prajakta Gokhale

0.7.2 (2019-05-08)

  • Added new way to specify QoS settings for publishers and subscriptions. (#713) * The new way requires that you specify a history depth when creating a publisher or subscription. * In the past it was possible to create one without specifying any history depth, but these signatures have been deprecated.

  • Deprecated shared_ptr and raw pointer versions of Publisher<T>::publish(). (#709)

  • Implemented API to set callbacks for liveliness and deadline QoS events for publishers and subscriptions. (#695)

  • Fixed a segmentation fault when publishing a parameter event when they ought to be disabled. (#714)

  • Changes required for upcoming pre-allocation API. (#711)

  • Changed Node::get_node_names() to return the full node names rather than just the base name. (#698)

  • Remove logic made redundant by the ros2/rcl#255 pull request. (#712)

  • Various improvements for rclcpp::Clock. (#696) * Fixed uninitialized bool in clock.cpp. * Fixed up includes of clock.hpp/cpp. * Added documentation for exceptions to clock.hpp. * Adjusted function signature of getters of clock.hpp/cpp. * Removed raw pointers to Clock::create_jump_callback. * Removed unnecessary rclcpp namespace reference from clock.cpp. * Changed exception to bad_alloc on JumpHandler allocation failure. * Fixed missing nullptr check in Clock::on_time_jump. * Added JumpHandler::callback types. * Added warning for lifetime of Clock and JumpHandler

  • Fixed bug left over from the pull request #495. (#708)

  • Changed the IntraProcessManager to be capable of storing shared_ptr<const T> in addition to unique_ptr<T>. (#690)

  • Contributors: Alberto Soragna, Dima Dorezyuk, M. M, Michael Carroll, Michael Jeronimo, Tully Foote, William Woodall, ivanpauno, jhdcs

0.7.1 (2019-04-26)

  • Added read only parameters. (#495)

  • Fixed a concurrency problem in the multithreaded executor. (#703)

  • Fixup utilities. (#692)

  • Added method to read timer cancellation. (#697)

  • Added Exception Generator function for implementing “from_rcl_error”. (#678)

  • Updated initialization of rmw_qos_profile_t struct instances. (#691)

  • Removed the const value from the logger before comparison. (#680)

  • Contributors: Devin Bonnie, Dima Dorezyuk, Guillaume Autran, M. M, Shane Loretz, Víctor Mayoral Vilches, William Woodall, jhdcs

0.7.0 (2019-04-14)

  • Added Options-struct interfaces for creating publishers/subscribers (pre-QoS, standalone). (#673)

  • Replaced strncpy with memcpy. (#684)

  • Replaced const char * with a std::array<char, TOPIC_NAME_LENGTH> as the key of IPM IDTopicMap. (#671)

  • Refactored SignalHandler logger to avoid race during destruction. (#682)

  • Introduce rclcpp_components to implement composition. (#665)

  • Added QoS policy check when configuring intraprocess, skip interprocess publish when possible. (#674)

  • Updated to use do { .. } while(0) around content of logging macros. (#681)

  • Added function to get publisher’s actual QoS settings. (#667)

  • Updated to avoid race that triggers timer too often. (#621)

  • Exposed get_fully_qualified_name in NodeBase API. (#662)

  • Updated to use ament_target_dependencies where possible. (#659)

  • Fixed wait for service memory leak bug. (#656)

  • Fixed test_time_source test. (#639)

  • Fixed hard-coded duration type representation so int64_t isn’t assumed. (#648)

  • Fixed cppcheck warning. (#646)

  • Added count matching api and intra-process subscriber count. (#628)

  • Added Sub Node alternative. (#581)

  • Replaced ‘auto’ with ‘const auto &’. (#630)

  • Set Parameter Event Publisher settings. #591 (#614)

  • Replaced node constructor arguments with NodeOptions. (#622)

  • Updated to pass context to wait set (#617)

  • Added API to get parameters in a map. (#575)

  • Updated Bind usage since it is is no longer in std::__1. (#618)

  • Fixed errors from uncrustify v0.68. (#613)

  • Added new constructors for SyncParameterClient. (#612)

  • Contributors: Alberto Soragna, Chris Lalancette, Dirk Thomas, Emerson Knapp, Francisco Martín Rico, Jacob Perron, Marko Durkovic, Michael Carroll, Peter Baughman, Shane Loretz, Wei Liu, William Woodall, Yutaka Kondo, ivanpauno, kuzai, rarvolt

0.6.2 (2018-12-13)

  • Updated to use signal safe synchronization with platform specific semaphores (#607)

  • Resolved startup race condition for sim time (#608) Resolves #595

  • Contributors: Tully Foote, William Woodall

0.6.1 (2018-12-07)

  • Added wait_for_action_server() for action clients (#598)

  • Added node path and time stamp to parameter event message (#584)

  • Updated to allow removing a waitable (#597)

  • Refactored init to allow for non-global init (#587)

  • Fixed wrong use of constructor and hanging test (#596)

  • Added class Waitable (#589)

  • Updated rcl_wait_set_add_* calls (#586)

  • Contributors: Dirk Thomas, Jacob Perron, Shane Loretz, William Woodall, bpwilcox

0.6.0 (2018-11-19)

  • Updated to use new error handling API from rcutils (#577)

  • Added a warning when publishing if publisher is not active (#574)

  • Added logging macro signature that accepts std::string (#573)

  • Added virtual destructors to classes with virtual functions. (#566)

  • Added semicolons to all RCLCPP and RCUTILS macros. (#565)

  • Removed std::binary_function usage (#561)

  • Updated to avoid auto-activating ROS time if clock topic is being published (#559)

  • Fixed cpplint on xenial (#556)

  • Added get_parameter_or_set_default. (#551)

  • Added max_duration to spin_some() (#558)

  • Updated to output rcl error message when yaml parsing fails (#557)

  • Updated to make sure timer is fini’d before clock (#553)

  • Get node names and namespaces (#545)

  • Fixed and improved documentation (#546)

  • Updated to use rcl_clock_t jump callbacks (#543)

  • Updated to use rcl consolidated wait set functions (#540)

  • Addeed TIME_MAX and DURATION_MAX functions (#538)

  • Updated to publish shared_ptr of rcl_serialized_message (#541)

  • Added Time::is_zero and Duration::seconds (#536)

  • Changed to log an error message instead of throwing exception in destructor (#535)

  • Updated to relax tolerance of now test because timing affected by OS scheduling (#533)

  • Removed incorrect exception on sec < 0 (#527)

  • Added rclcpp::Time::seconds() (#526)

  • Updated Timer API to construct TimerBase/GenericTimer with Clock (#523)

  • Added rclcpp::is_initialized() (#522)

  • Added support for jump handlers with only pre- or post-jump callback (#517)

  • Removed use of uninitialized CMake var (#512)

  • Updated for Uncrustify 0.67 (#510)

  • Added get_node_names API from node. (#508)

  • Contributors: Anis Ladram, Chris Lalancette, Dirk Thomas, Francisco Martín Rico, Karsten Knese, Michael Carroll, Mikael Arguedas, Sagnik Basu, Shane Loretz, Sriram Raghunathan, William Woodall, chapulina, dhood

0.5.0 (2018-06-25)

  • Fixed a bug in the multi-threaded executor which could cause it to take a timer (potentially other types of wait-able items) more than once to be worked one. (#383) * Specifically this could result in a timer getting called more often that it should when using the multi-threaded executor.

  • Added functions that allow you to publish serialized messages and received serialized messages in your subscription callback. (#388)

  • Changed code to always get the Service name from rcl to ensure the remapped name is returned. (#498)

  • Added previously missing set_parameters_atomically() method to the Service client interface. (#494)

  • Added ability to initialize parameter values in a Node via a YAML file passed on the command line. (#488)

  • Fixed the ROS parameter interface which got parameters that aren’t set. (#493)

  • Added ability to initialize parameter values in a node with an argument to the Node constructor. (#486)

  • Added a Subscription tests which uses std::bind to a class member callback. (#480)

  • Refactored the ParameterVariant class into the Parameter and ParameterValue classes. (#481)

  • Relaxed template matching rules for std::bind and GNU C++ >= 7.1. (#484)

  • Changed to use the new rosgraph_msgs/Clock message type for the /clock topic. (#474)

  • Fixed a flaky ROS time test due to not spinning before getting the time. (#483)

  • Nodes now autostart the ROS parameter services which let you get, set, and list parameters in a node. (#478)

  • Added support for arrays in Parameters. (#443)

  • Changed how executors use AnyExecutable objects so that they are a reference instead of a shared pointer, in order to avoid memory allocation in the “common case”. (#463)

  • Added ability to pass command line arguments to the Node constructor. (#461)

  • Added an argument to specify the number of threads a multithreaded executor should create. (#442)

  • Changed library export order for static linking. (#446)

  • Fixed some typos in the time unit tests. (#453) Obviously it mean RCL_SYSTEM_TIME but not RCL_ROS_TIME in some test cases * Signed-off-by: jwang <jing.j.wang@intel.com>

  • Added the scale operation to rclcpp::Duration. * Signed-off-by: jwang <jing.j.wang@intel.com>

  • Changed API of the log location parameter to be const. (#451)

  • Changed how the subscriber, client, service, and timer handles are stored to resolve shutdown order issues. (#431 and #448)

  • Updated to get the node’s logger name from rcl. (#433)

  • Now depends on ament_cmake_ros. (#444)

  • Updaed code to use logging macros rather than fprintf(). (#439)

  • Fixed a bug that was using an invalid iterator when erasing items using an iterator in a loop. (#436)

  • Changed code to support move of rcutils_time_point_value_t type from uint64_t to int64_t. (#429)

  • Renamed parameter byte type to byte_values from bytes_value. (#428)

  • Changed executor code to clear the wait set before resizing and waiting. (#427)

  • Fixed a potential dereference of nullptr in the topic name validation error string. (#405) * Signed-off-by: Ethan Gao <ethan.gao@linux.intel.com>

  • Changed to use rcl_count_publishers() like API’s rather than the lower level rmw_count_publishers() API. (#425) * Signed-off-by: Sriram Raghunathan <rsriram7@visteon.com>

  • Fix potential segmentation fault due to get_topic_name() or rcl_service_get_service_name() returning nullptr and that not being checked before access in rclcpp. (#426) * Signed-off-by: Ethan Gao <ethan.gao@linux.intel.com>

  • Contributors: Denise Eng, Dirk Thomas, Ernesto Corbellini, Esteve Fernandez, Ethan Gao, Guillaume Autran, Karsten Knese, Matthew, Michael Carroll, Mikael Arguedas, Shane Loretz, Sriram Raghunathan, Tom Moore, William Woodall, dhood, jwang, jwang11, serge-nikulin