Package Summary

Tags No category tags.
Version 16.0.12
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rclcpp.git
VCS Type git
VCS Version humble
Last Updated 2025-03-31
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The ROS client library in C++.

Additional Links

No additional links.

Maintainers

  • Ivan Paunovic
  • Jacob Perron
  • William Woodall

Authors

  • Dirk Thomas

rclcpp

The ROS client library in C++.

Visit the rclcpp API documentation for a complete list of its main components and features.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

CHANGELOG

Changelog for package rclcpp

16.0.12 (2025-03-25)

  • doc: Added warning to not instantiate Clock directly with RCL_ROS_TIME (#2768) (#2770)
  • apply actual QoS from rmw to the IPC publisher. (backport #2707) (#2711)
  • Adding in topic name to logging on IPC issues (#2706) (#2709)
  • Contributors: mergify[bot]

16.0.11 (2024-11-25)

  • Fix subscription.is_serialized() for callbacks with message info (#1950) (#2622)
  • Use the same context for the specified node in rclcpp::spin functions… (#2618) (#2620)
  • Contributors: mergify[bot], roscan-tech

16.0.10 (2024-07-26)

  • Add test creating two content filter topics with the same topic name (#2546) (#2549) (#2551)
  • Contributors: mergify[bot]

16.0.9 (2024-05-15)

  • Fix logging macros to build with msvc and cpp20 (#2063) (#2529)
  • address ambiguous auto variable. (#2481) (#2485)
  • Fix clang warning: bugprone-use-after-move (#2116) (#2459)
  • Contributors: Tamaki Nishino, mergify[bot]

16.0.8 (2024-01-24)

  • Add missing stdexcept include (#2186) (#2394)
  • Contributors: gentoo90

16.0.7 (2023-11-13)

  • Disable the loaned messages inside the executor. (backport #2335) (#2364)
  • Add missing 'enable_rosout' comments (#2345) (#2347)
  • address rate related flaky tests. (#2329) (#2342)
  • Update SignalHandler get_global_signal_handler to avoid complex types in static memory (#2316) (#2321)
  • Fix C++20 allocator construct deprecation (#2292) (#2319)
  • Contributors: mergify[bot]

16.0.6 (2023-09-19)

  • Topic correct typeadapter deduction (#2294) (#2297)
  • check thread whether joinable before join (#2019) (#2275)
  • Do not crash Executor when send_response fails due to client failure. (#2276) (#2280)
  • Contributors: mergify[bot]

16.0.5 (2023-07-17)

  • warning: comparison of integer expressions of different signedness (#2219) (#2223)
  • Trigger the intraprocess guard condition with data (#2164) (#2167)
  • Implement validity checks for rclcpp::Clock (#2040) (#2210)
  • Contributors: Tomoya Fujita, mergify[bot]

16.0.4 (2023-04-25)

  • use allocator via init_options argument. (#2129) (#2131)
  • Contributors: mergify[bot]

16.0.3 (2023-01-10)

  • Fix SharedFuture from async_send_request never becomes valid (#2044) (#2076)
  • do not throw exception if trying to dequeue an empty intra-process buffer (#2061) (#2070)
  • fix nullptr dereference in prune_requests_older_than (#2008) (#2065)
  • Fix bug that a callback not reached (#1640) (#2033)
  • Contributors: mergify[bot]

16.0.2 (2022-11-07)

  • fix mismatched issue if using zero_allocate (#1995) (#2026)
  • use regex for wildcard matching (backport #1839) (#1986)
  • Drop wrong template specialization (#1926) (#1937)
  • Add statistics for handle_loaned_message (#1927) (#1932)
  • Contributors: mergify[bot]

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>]{.title-ref} 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)

  • Support to defer to send a response in services. (#1709) Signed-off-by: Ivan Santiago Paunovic <<ivanpauno@ekumenlabs.com>>
  • Fix documentation bug. (#1719) Signed-off-by: William Woodall <<william@osrfoundation.org>>
  • Contributors: Ivan Santiago Paunovic, William Woodall

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_]{.title-ref} 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]{.title-ref} 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]{.title-ref} to [Waitable]{.title-ref} and [data]{.title-ref} to [AnyExecutable]{.title-ref} (#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]{.title-ref} (#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) (#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

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
apriltag_ros
aruco_ros
avt_vimba_camera
behaviortree_cpp
bondcpp
test_bond
cartographer_ros
cartographer_rviz
control_toolbox
create_driver
dataspeed_can_msg_filters
dataspeed_can_tools
dataspeed_can_usb
depthai_bridge
depthai_examples
depthai_filters
depthai_ros_driver
depthai_ros_msgs
depthimage_to_laserscan
diagnostic_aggregator
diagnostic_updater
self_test
dynamixel_workbench_toolbox
dynamixel_sdk_examples
fadecandy_driver
filters
find_object_2d
fkie_message_filters
flexbe_app
fmi_adapter
foxglove_bridge
gazebo_plugins
gazebo_ros
gazebo_video_monitor_plugins
geometric_shapes
test_tf2
tf2_geometry_msgs
tf2_kdl
tf2_ros
tf2_sensor_msgs
turtle_tf2_cpp
gps_tools
gpsd_client
grid_map_cv
grid_map_demos
grid_map_msgs
grid_map_pcl
grid_map_ros
grid_map_rviz_plugin
grid_map_visualization
gscam
hls_lfcd_lds_driver
camera_calibration_parsers
camera_info_manager
image_transport
depth_image_proc
image_proc
image_publisher
image_rotate
image_view
stereo_image_proc
theora_image_transport
imu_processors
imu_transformer
imu_complementary_filter
imu_filter_madgwick
rviz_imu_plugin
interactive_marker_twist_server
interactive_markers
joy
joy_linux
spacenav
wiimote
laser_filters
laser_geometry
laser_proc
leo_fw
hri
pyhri
lms1xx
log_view
mapviz
mapviz_plugins
multires_image
tile_map
swri_console_util
swri_geometry_util
swri_image_util
swri_math_util
swri_roscpp
swri_route_util
swri_system_util
swri_transform_util
mavros
mavros_extras
mocap_optitrack
moveit_core
moveit_planners_chomp
chomp_motion_planner
moveit_planners_ompl
pilz_industrial_motion_planner
pilz_industrial_motion_planner_testutils
moveit_resources_prbt_ikfast_manipulator_plugin
moveit_simple_controller_manager
moveit_py
moveit_ros_benchmarks
moveit_hybrid_planning
moveit_ros_move_group
moveit_ros_occupancy_map_monitor
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_robot_interaction
moveit_ros_tests
moveit_ros_trajectory_cache
moveit_ros_visualization
moveit_ros_warehouse
moveit_setup_app_plugins
moveit_setup_assistant
moveit_setup_controllers
moveit_setup_core_plugins
moveit_setup_framework
moveit_setup_simulation
moveit_visual_tools
mrpt_msgs_bridge
mrpt_pf_localization
mrpt_pointcloud_pipeline
mrpt_reactivenav2d
mrpt_tps_astar_planner
mrpt_generic_sensor
mrpt_sensor_bumblebee_stereo
mrpt_sensor_gnss_nmea
mrpt_sensor_gnss_novatel
mrpt_sensor_imu_taobotics
mrpt_sensorlib
naoqi_driver
nonpersistent_voxel_layer
novatel_gps_driver
novatel_oem7_driver
ntpd_driver
octomap_server
octomap_rviz_plugins
open_manipulator_x_gui
open_manipulator_x_playground
open_manipulator_x_teleop
openni2_camera
pal_statistics
pcl_conversions
pcl_ros
phidgets_accelerometer
phidgets_analog_inputs
phidgets_analog_outputs
phidgets_digital_inputs
phidgets_digital_outputs
phidgets_gyroscope
phidgets_high_speed_encoder
phidgets_magnetometer
phidgets_motors
phidgets_spatial
phidgets_temperature
plotjuggler
plotjuggler_ros
point_cloud_transport
point_cloud_transport_py
draco_point_cloud_transport
zlib_point_cloud_transport
zstd_point_cloud_transport
pointcloud_to_laserscan
pose_cov_ops
qb_device_driver
qb_device_ros2_control
quaternion_operation
raspimouse_fake
rc_genicam_driver
realsense2_camera
realsense2_description
realtime_tools
robot_calibration
robot_controllers
robot_controllers_interface
robot_localization
robot_state_publisher
ros_babel_fish
turtlesim
rplidar_ros
rqt_gui_cpp
rqt_image_view
rt_usb_9axisimu_driver
rtabmap_conversions
rtabmap_odom
rtabmap_rviz_plugins
rtabmap_slam
rtabmap_sync
rtabmap_util
rtabmap_viz
rviz2
rviz_common
rviz_default_plugins
rviz_satellite
rviz_visual_tools
sbg_driver
septentrio_gnss_driver
simple_grasping
slam_toolbox
spatio_temporal_voxel_layer
swri_console
teleop_twist_joy
turtlebot3_node
turtlebot3_fake_node
turtlebot3_gazebo
tuw_geometry
tuw_msgs
twist_mux
ublox_gps
ur_calibration
ur_robot_driver
urg_node
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
velodyne_gazebo_plugins
vision_msgs_rviz_plugins
warehouse_ros
warehouse_ros_mongo
warehouse_ros_sqlite
web_video_server
zbar_ros
spinnaker_camera_driver
spinnaker_synchronized_camera_driver
puma_motor_driver
smacc2
lifecyclenode_client
nav2z_planners_common
undo_path_global_planner
sm_advanced_recovery_1
sm_multi_stage_1
sm_pack_ml
sm_panda_moveit2z_cb_inventory
sm_three_some
adaptive_component
apriltag_detector
apriltag_detector_mit
apriltag_detector_umich
apriltag_draw
apriltag_tools
aruco_opencv
bag2_to_image
beluga_amcl
boost_geometry_util
camera_aravis2
cascade_lifecycle_msgs
rclcpp_cascade_lifecycle
catch_ros2
classic_bags
action_tutorials_cpp
composition
demo_nodes_cpp
demo_nodes_cpp_native
dummy_map_server
dummy_sensors
image_tools
intra_process_demo
logging_demo
pendulum_control
quality_of_service_demo_cpp
topic_statistics_demo
dolly_follow
domain_bridge
dynamixel_hardware
etsi_its_conversion
etsi_its_rviz_plugins
event_camera_codecs
event_camera_renderer
examples_rclcpp_minimal_action_client
examples_rclcpp_minimal_action_server
examples_rclcpp_minimal_composition
examples_rclcpp_cbg_executor
examples_rclcpp_multithreaded_executor
examples_rclcpp_async_client
examples_rclcpp_minimal_client
examples_rclcpp_minimal_service
examples_rclcpp_minimal_timer
examples_rclcpp_minimal_publisher
examples_rclcpp_minimal_subscriber
examples_rclcpp_wait_set
ffmpeg_encoder_decoder
ffmpeg_image_transport
ffmpeg_image_transport_tools
flex_sync
fluent_rviz
foxglove_compressed_video_transport
gazebo_ros2_control
gazebo_ros2_control_demos
generate_parameter_library_example
generate_parameter_library_example_external
generate_parameter_library
parameter_traits
gz_ros2_control
gz_ros2_control_demos
hatchbed_common
ign_rviz
ign_rviz_common
ign_rviz_plugins
kobuki_velocity_smoother
libcaer_driver
lidar_situational_graphs
bosch_locator_bridge
bosch_locator_bridge_utils
message_filters
message_tf_frame_transformer
metavision_driver
micro_ros_diagnostic_bridge
mola_bridge_ros2
motion_capture_tracking
mqtt_client
mrpt_libapps
mrpt_libbase
mrpt_libgui
mrpt_libhwdrivers
mrpt_libmaps
mrpt_libmath
mrpt_libnav
mrpt_libobs
mrpt_libopengl
mrpt_libposes
mrpt_libros_bridge
mrpt_libslam
mrpt_libtclap
nao_lola
nav2_amcl
nav2_behavior_tree
nav2_behaviors
nav2_bt_navigator
nav2_collision_monitor
nav2_constrained_smoother
nav2_controller
nav2_core
nav2_costmap_2d
costmap_queue
dwb_core
dwb_critics
dwb_plugins
nav2_graceful_controller
nav2_map_server
nav2_mppi_controller
nav2_msgs
nav2_navfn_planner
nav2_planner
nav2_regulated_pure_pursuit_controller
nav2_rotation_shim_controller
nav2_rviz_plugins
nav2_smac_planner
nav2_smoother
nav2_system_tests
nav2_theta_star_planner
nav2_util
nav2_velocity_smoother
nav2_voxel_grid
nav2_waypoint_follower
nmea_hardware_interface
nobleo_socketcan_bridge
odom_to_tf_ros2
open3d_conversions
performance_test
pick_ik
picknik_reset_fault_controller
picknik_twist_controller
polygon_demos
popf
py_binding_tools
python_mrpt
rclc
rclc_parameter
rclcpp_action
rclcpp_components
rclcpp_lifecycle
rcss3d_agent
tlsf_cpp
rig_reconfigure
rmf_fleet_adapter
rmf_task_ros2
rmf_traffic_ros2
rmf_websocket
rmf_building_sim_common
rmf_building_sim_gz_classic_plugins
rmf_building_sim_gz_plugins
rmf_robot_sim_common
rmf_robot_sim_gz_classic_plugins
rmf_robot_sim_gz_plugins
rmf_visualization_fleet_states
rmf_visualization_floorplans
rmf_visualization_navgraphs
rmf_visualization_obstacles
rmf_visualization_rviz2_plugins
rmf_visualization_schedule
ros1_bridge
controller_manager
joint_limits
joint_limits_interface
ackermann_steering_controller
admittance_controller
bicycle_steering_controller
diff_drive_controller
effort_controllers
force_torque_sensor_broadcaster
forward_command_controller
gpio_controllers
gripper_controllers
imu_sensor_broadcaster
joint_state_broadcaster
joint_trajectory_controller
mecanum_drive_controller
pid_controller
pose_broadcaster
position_controllers
range_sensor_broadcaster
steering_controllers_library
tricycle_controller
tricycle_steering_controller
velocity_controllers
kortex_driver
plansys2_bringup
plansys2_bt_actions
plansys2_core
plansys2_domain_expert
plansys2_executor
plansys2_lifecycle_manager
plansys2_msgs
plansys2_pddl_parser
plansys2_planner
plansys2_popf_plan_solver
plansys2_problem_expert
plansys2_terminal
plansys2_tests
plansys2_tools
robotiq_driver
ros2_socketcan
test_tracetools
ros2lifecycle_test_fixtures
ros2launch_security_examples
ros_gz_bridge
ros_gz_image
ros_gz_sim
rosbag2_compression
rosbag2_compression_zstd
rosbag2_cpp
rosbag2_performance_benchmarking
rosbag2_test_common
rosbag2_tests
rosbag2_transport
rosbag2_bag_v2_plugins
rosx_introspection
rqt_image_overlay
rqt_image_overlay_layer
rsl
rt_manipulators_examples
sick_safetyscanners2
sick_safevisionary_driver
simple_actions
soccer_marker_generation
system_modes
system_modes_examples
test_launch_system_modes
test_cli
test_cli_remapping
test_communication
test_quality_of_service
test_rclcpp
test_security
topic_based_ros2_control
topic_tools
io_context
serial_driver
udp_driver
ntrip_client_node
ublox_dgnss_node
ublox_nav_sat_fix_hp_node
unitree_ros
v4l2_camera
ros_core
vrpn_mocap
webots_ros2_control
webots_ros2_driver
crane_plus_control
crane_plus_examples
ds_dbw_can
ds_dbw_joystick_demo
dynamixel_hardware_interface
lsc_ros2_driver
raspimouse
raspimouse_ros2_examples
ros2_ouster
stubborn_buddies
turtlebot3_manipulation_hardware
turtlebot3_manipulation_teleop
irobot_create_nodes
irobot_create_toolbox
irobot_create_gz_toolbox
foros
foros_examples
foros_inspector
turtlebot4_node
turtlebot4_base
turtlebot4_ignition_toolbox
turtlebot4_cpp_tutorials
adi_tmc_coe_core
adi_tmcl
boeing_gazebo_model_attachment_plugin
boeing_gazebo_model_attachment_plugin_msgs
gazebo_set_joint_positions_plugin
hri_rviz
qb_softhand_industry_driver
qb_softhand_industry_ros2_control
vizanti_cpp
vizanti_demos
vizanti_server
adi_iio
automatika_ros_sugar
autoware_lanelet2_extension
autoware_lanelet2_extension_python
camera_ros
data_tamer_cpp
dual_laser_merger
feetech_ros2_driver
laser_segmentation
ld08_driver
mola_gnss_to_markers
qml_ros2_plugin
canopen_402_driver
canopen_base_driver
canopen_core
canopen_fake_slaves
canopen_master_driver
canopen_proxy_driver
canopen_ros2_control
canopen_ros2_controllers
sicks300_ros2
soar_ros
synapticon_ros2_control
yasmin_demos
yasmin_ros
yasmin_viewer
clearpath_ros2_socketcan_interface
create3_coverage
create3_republisher
ess_imu_driver2
heightmap_spawner
robosoft_openai
scenario_execution_rviz
gazebo_tf_publisher
as2_platform_gazebo
as2_platform_multirotor_simulator
as2_behavior_tree
as2_behavior
as2_behaviors_motion
as2_behaviors_path_planning
as2_behaviors_perception
as2_behaviors_platform
as2_behaviors_trajectory_generation
as2_core
as2_realsense_interface
as2_usb_camera_interface
as2_map_server
as2_motion_controller
as2_motion_reference_handlers
as2_msgs
as2_gazebo_assets
as2_state_estimator
as2_alphanumeric_viewer
as2_rviz_plugins
as2_external_object_to_tf
as2_geozones
agnocast_e2e_test
agnocast_ioctl_wrapper
agnocast_sample_application
agnocastlib
andino_base
as2_platform_crazyflie
as2_platform_dji_osdk
as2_platform_dji_psdk
as2_platform_mavlink
as2_platform_pixhawk
as2_platform_tello
autoware_utils_debug
autoware_utils_diagnostics
autoware_utils_logging
autoware_utils_rclcpp
autoware_utils_system
autoware_utils_tf
autoware_utils_visualization
caret_trace
clearpath_mecanum_drive_controller
extrinsic_calibrator_core
extrinsic_calibrator_examples
franka_example_controllers
franka_ign_ros2_control
franka_gripper
franka_hardware
franka_robot_state_broadcaster
franka_semantic_components
gazebo_no_physics_plugin
gazebo_planar_move_plugin
grid_map_geo
homing_local_planner
hri_face_body_matcher
kuka_drivers_core
marvelmind_ros2
metro_benchmark_pub
base2d_kinematics
mocap4r2_control
mocap4r2_control_msgs
rqt_mocap4r2_control
mocap4r2_dummy_driver
mocap4r2_marker_publisher
mocap4r2_robot_gt
mocap4r2_robot_gt_msgs
mocap4r2_msgs
off_highway_can
off_highway_general_purpose_radar
off_highway_premium_radar_sample
off_highway_radar
off_highway_sensor_drivers_examples
off_highway_uss
opennav_docking
opennav_docking_bt
opennav_docking_core
opennav_docking_msgs
pal_gazebo_plugins
pal_robotiq_gripper
play_motion2
proto2ros
proto2ros_tests
psdk_wrapper
robotont_driver
stcamera_components
stcamera_grabber
stcamera_launch
sync_parameter_server
tiago_gazebo
vector_pursuit_controller
vimbax_camera
vimbax_camera_events
vimbax_camera_examples
vmbc_interface
wall_follower_ros2
whill_driver

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rclcpp at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 28.1.8
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rclcpp.git
VCS Type git
VCS Version jazzy
Last Updated 2025-04-02
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The ROS client library in C++.

Additional Links

No additional links.

Maintainers

  • Ivan Paunovic
  • Michel Hidalgo
  • William Woodall

Authors

  • Dirk Thomas
  • Jacob Perron

rclcpp

The ROS client library in C++.

The link to the latest rclcpp API documentation, which includes a complete list of its main components and features, can be found on the rclcpp package info page.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

CHANGELOG

Changelog for package rclcpp

28.1.8 (2025-04-02)

28.1.7 (2025-03-26)

  • fix(ClockConditionalVariable): Fixed potential crash on shutdown (#2762)
  • doc: Added warning to not instantiate Clock directly with RCL_ROS_TIME (#2769)
  • Use rmw_event_type_is_supported in test_qos_event (#2766)
  • fix: Fixed expiring of goals if events executor is used (#2674)
  • Executor strong reference fix (#2754)
  • Double gc executor fix (#2753)
  • Fix typo in doc section for get_service_typesupport_handle (#2752)
  • Test case and fix for for https://github.com/ros2/rclcpp/issues/2652 (#2740)
  • fix(timer): Delete node, after executor thread terminated (#2738)
  • fix(Executor): Fixed entities not beeing executed after just beeing added (#2729)
  • Fix transient local IPC publish (#2722)
  • Contributors: Janosch Machowinski, Jeffery Hsu, Tomoya Fujita, Francisco Martín Rico

28.1.6 (2024-12-18)

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

    * address uncrustify warning. ---------(cherry picked from commit 016cfeac99e4b67f58abdf247e57f05b85c09ec4) Co-authored-by: Tomoya Fujita <<Tomoya.Fujita@sony.com>>

  • Adding in topic name to logging on IPC issues (#2706) (#2710)
    • Adding in topic name to logging on IPC issues
    • Update test matching output logging

    * adding in single quotes ---------(cherry picked from commit a13e16e2cbaeacb14ff31272d01cbb21bd8ac037) Co-authored-by: Steve Macenski <<stevenmacenski@gmail.com>>

  • enable testRaceConditionAddNode for rmw_connextdds. (#2698)
  • Re-enable executor test on rmw_connextdds. (#2693) (#2695) It supports the events executor now, so re-enable the test. (cherry picked from commit d7245365ed867db9b309ed3efbfb0391bda09bd5) Co-authored-by: Chris Lalancette <<clalancette@gmail.com>>
  • Fix warnings on Windows. (backport #2692) (#2694) * Fix warnings on Windows. (#2692) For reasons I admit I do not understand, the deprecation warnings for StaticSingleThreadedExecutor on Windows happen when we construct a shared_ptr for it in the tests. If we construct a regular object, then it is fine. Luckily this test does not require a shared_ptr, so just make it a regular object here, which rixes the warning. While we are in here, make all of the tests camel case to be consistent. (cherry picked from commit 3310f9eaed967e0c18d17bb2f82d2def838bb7a5) # Conflicts: # rclcpp/test/rclcpp/executors/test_executors.cpp * resolve backport conflict. ---------Co-authored-by: Chris Lalancette <<clalancette@gmail.com>> Co-authored-by: Tomoya Fujita <<Tomoya.Fujita@sony.com>>

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

    * Omnibus fixes for running tests with Connext. When running the tests with RTI Connext as the default RMW, some of the tests are failing. There are three different failures fixed here: 1. Setting the liveliness duration to a value smaller than a microsecond causes Connext to throw an error. Set it to a millisecond. 2. Using the SystemDefaultsQoS sets the QoS to KEEP_LAST 1. Connext is somewhat slow in this regard, so it can be the case that we are overwriting a previous service introspection event with the next one. Switch to the ServicesDefaultQoS in the test, which ensures we will not lose events. 3. Connext is slow to match publishers and subscriptions. Thus, when creating a subscription "on-the-fly", we should wait for the publisher to match it before expecting the subscription to actually receive data from it. With these fixes in place, the test_client_common, test_generic_service, test_service_introspection, and test_executors tests all pass for me with rmw_connextdds.

    • Fixes for executors.
    • One more fix for services.
    • More fixes for service_introspection.

    * More fixes for introspection. ---------(cherry picked from commit 9984197c292d6c5ae0e7661aaea245ffb0fea057) # Conflicts: # rclcpp/test/rclcpp/executors/test_executors.cpp # rclcpp/test/rclcpp/test_generic_service.cpp * address backport merge conflicts. ---------Co-authored-by: Chris Lalancette <<clalancette@gmail.com>> Co-authored-by: Tomoya Fujita <<Tomoya.Fujita@sony.com>>

  • fix(Executor): Fix segfault if callback group is deleted during rmw_wait (#2682)
  • Fix NodeOptions assignment operator (#2656) (#2660) * Fix NodeOptions assignment operator Also copy the enable_logger_service_ member during the assignment operation
    • Add more checks for NodeOptions copy test

    * Set non default values by avoiding the copy-assignement Co-authored-by: Christophe Bedard <<bedard.christophe@gmail.com>> (cherry picked from commit 9b654942f99f17850e0e95480958abdbb508bc00) Co-authored-by: Romain DESILLE <<r.desille@gmail.com>>

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

    * test_subscription_options adjustment. Co-authored-by: Tomoya Fujita <<Tomoya.Fujita@sony.com>>

  • Contributors: Cristóbal Arroyo, Tomoya Fujita, jmachowinski, mergify[bot]

28.1.5 (2024-09-19)

  • backport fix events-executor warm-up bug and add unit-tests (#2591) (#2628)
  • Contributors: Alberto Soragna

28.1.4 (2024-09-06)

  • Split test_executors.cpp even further. (#2572) (#2619) 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. (cherry picked from commit c743c173e68d92af872cf163e10721a8dbe51dd0) Co-authored-by: Chris Lalancette <<clalancette@gmail.com>>
  • Correct node name in service test code (#2615) (#2616) (cherry picked from commit e846f56224a39b93f1c609e7ee03fff0662b7453) Co-authored-by: Barry Xu <<barry.xu@sony.com>>
  • Release ownership of entities after spinning cancelled (backport #2556) (#2580)
    • 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 ---------(cherry picked from commit 069a0018935b33a14632a1cdf4074984a1cf80fe) # Conflicts: # rclcpp/test/rclcpp/executors/test_executors.cpp * Fix backport issue (#2581) ---------Co-authored-by: Barry Xu <<barry.xu@sony.com>>

  • Contributors: mergify[bot]

28.1.3 (2024-06-27)

  • Add test creating two content filter topics with the same topic name (#2546) (#2549) (#2552) Co-authored-by: Mario Domínguez López <<116071334+Mario-DL@users.noreply.github.com>> (cherry picked from commit 7c096888caf92aa7557e1d3efc5448b56d8ce81c) Co-authored-by: Alejandro Hernández Cordero <<ahcorde@gmail.com>>
  • Contributors: mergify[bot]

28.1.2 (2024-05-13)

  • add impl pointer for ExecutorOptions (#2523) (#2525) * add impl pointer for ExecutorOptions (cherry picked from commit 343b29b617b163ad72b9fe3f6441dd4ed3d3af09) Co-authored-by: William Woodall <<william@osrfoundation.org>>

  • Fixup Executor::spin_all() regression fix (#2517) (#2521) * test(Executors): Added tests for busy waiting Checks if executors are busy waiting while they should block in spin_some or spin_all. * fix: Reworked spinAll test This test was strange. It looked like, it assumed that spin_all did not return instantly. Also it was racy, as the thread could terminate instantly.
    • fix(Executor): Fixed spin_all not returning instantly is no work was available
    • Update rclcpp/test/rclcpp/executors/test_executors.cpp
    • test(executors): Added test for busy waiting while calling spin

    * fix(executor): Reset wait_result on every call to spin_some_impl Before, the method would not recollect available work in case of spin_some, spin_all. This would lead to the method behaving differently than to what the documentation states.

    • restore previous test logic for now
    • refactor spin_some_impl's logic and improve busy wait tests

    * added some more comments about the implementation ---------Co-authored-by: Janosch Machowinski <<J.Machowinski@cellumation.com>> Co-authored-by: jmachowinski <<jmachowinski@users.noreply.github.com>> Co-authored-by: Tomoya Fujita <<Tomoya.Fujita@sony.com>> Co-authored-by: William Woodall <<william@osrfoundation.org>>

  • Contributors: mergify[bot]

28.1.1 (2024-04-24)

  • Revise the description of service configure_introspection() (#2511) (#2513)
  • Contributors: mergify[bot]

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]{.title-ref} classes (#1975)" (#2009) (#2010)
  • force compiler warning if callback handles not captured (#2000)
  • Revert "Add a [create_timer]{.title-ref} method to [Node]{.title-ref} and [LifecycleNode]{.title-ref} classes (#1975)" (#2009)
  • Add a [create_timer]{.title-ref} method to [Node]{.title-ref} and [LifecycleNode]{.title-ref} 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,...]]{.title-ref} (#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>]{.title-ref} 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)

  • Support to defer to send a response in services. (#1709) Signed-off-by: Ivan Santiago Paunovic <<ivanpauno@ekumenlabs.com>>
  • Fix documentation bug. (#1719) Signed-off-by: William Woodall <<william@osrfoundation.org>>
  • Contributors: Ivan Santiago Paunovic, William Woodall

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_]{.title-ref} 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]{.title-ref} 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]{.title-ref} to [Waitable]{.title-ref} and [data]{.title-ref} to [AnyExecutable]{.title-ref} (#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]{.title-ref} (#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) (#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

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
apriltag_ros
aruco_ros
avt_vimba_camera
behaviortree_cpp
bondcpp
test_bond
cartographer_ros
cartographer_rviz
control_toolbox
dataspeed_can_msg_filters
dataspeed_can_tools
dataspeed_can_usb
depthai_bridge
depthai_examples
depthai_filters
depthai_ros_driver
depthai_ros_msgs
depthimage_to_laserscan
diagnostic_aggregator
diagnostic_updater
self_test
dynamixel_workbench_toolbox
dynamixel_sdk_examples
filters
find_object_2d
fkie_message_filters
fmi_adapter
foxglove_bridge
fuse_constraints
fuse_core
fuse_graphs
fuse_loss
fuse_models
fuse_optimizers
fuse_publishers
fuse_tutorials
fuse_variables
gazebo_plugins
gazebo_ros
geometric_shapes
test_tf2
tf2_geometry_msgs
tf2_kdl
tf2_ros
tf2_sensor_msgs
turtle_tf2_cpp
gps_tools
gpsd_client
grid_map_cv
grid_map_demos
grid_map_msgs
grid_map_pcl
grid_map_ros
grid_map_rviz_plugin
grid_map_visualization
gscam
hls_lfcd_lds_driver
camera_calibration_parsers
camera_info_manager
image_transport
depth_image_proc
image_proc
image_publisher
image_rotate
image_view
stereo_image_proc
theora_image_transport
imu_processors
imu_transformer
imu_complementary_filter
imu_filter_madgwick
rviz_imu_plugin
interactive_marker_twist_server
interactive_markers
joy
joy_linux
spacenav
wiimote
laser_filters
laser_geometry
laser_proc
leo_fw
log_view
mapviz
mapviz_plugins
multires_image
tile_map
swri_console_util
swri_geometry_util
swri_image_util
swri_math_util
swri_roscpp
swri_route_util
swri_system_util
swri_transform_util
mavros
mavros_extras
moveit_core
moveit_planners_chomp
chomp_motion_planner
moveit_planners_ompl
pilz_industrial_motion_planner
pilz_industrial_motion_planner_testutils
moveit_resources_prbt_ikfast_manipulator_plugin
moveit_simple_controller_manager
moveit_py
moveit_ros_benchmarks
moveit_hybrid_planning
moveit_ros_move_group
moveit_ros_occupancy_map_monitor
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_robot_interaction
moveit_ros_tests
moveit_ros_trajectory_cache
moveit_ros_visualization
moveit_ros_warehouse
moveit_setup_app_plugins
moveit_setup_assistant
moveit_setup_controllers
moveit_setup_core_plugins
moveit_setup_framework
moveit_setup_simulation
moveit_visual_tools
mrpt_msgs_bridge
mrpt_pf_localization
mrpt_pointcloud_pipeline
mrpt_reactivenav2d
mrpt_tps_astar_planner
mrpt_generic_sensor
mrpt_sensor_bumblebee_stereo
mrpt_sensor_gnss_nmea
mrpt_sensor_gnss_novatel
mrpt_sensor_imu_taobotics
mrpt_sensorlib
nonpersistent_voxel_layer
novatel_gps_driver
novatel_oem7_driver
ntpd_driver
octomap_server
octomap_rviz_plugins
open_manipulator_gui
open_manipulator_playground
open_manipulator_teleop
om_gravity_compensation_controller
om_joint_trajectory_command_broadcaster
om_spring_actuator_controller
openni2_camera
pal_statistics
pcl_conversions
pcl_ros
phidgets_accelerometer
phidgets_analog_inputs
phidgets_analog_outputs
phidgets_digital_inputs
phidgets_digital_outputs
phidgets_gyroscope
phidgets_high_speed_encoder
phidgets_magnetometer
phidgets_motors
phidgets_spatial
phidgets_temperature
plotjuggler
plotjuggler_ros
point_cloud_transport
point_cloud_transport_py
draco_point_cloud_transport
template_point_cloud_transport
zlib_point_cloud_transport
zstd_point_cloud_transport
pointcloud_to_laserscan
pose_cov_ops
quaternion_operation
raspimouse_fake
rc_genicam_driver
realsense2_camera
realsense2_description
realtime_tools
robot_calibration
robot_localization
robot_state_publisher
ros_babel_fish
turtlesim
rplidar_ros
rqt_gui_cpp
rqt_image_view
rslidar_sdk
rt_usb_9axisimu_driver
rtabmap_conversions
rtabmap_odom
rtabmap_rviz_plugins
rtabmap_slam
rtabmap_sync
rtabmap_util
rtabmap_viz
rviz2
rviz_common
rviz_default_plugins
rviz_visual_testing_framework
rviz_satellite
rviz_visual_tools
sbg_driver
septentrio_gnss_driver
simple_grasping
slam_toolbox
spatio_temporal_voxel_layer
swri_console
teleop_twist_joy
tf2_2d
trac_ik_kinematics_plugin
trac_ik_lib
turtlebot3_node
turtlebot3_fake_node
turtlebot3_gazebo
tuw_geometry
tuw_msgs
twist_mux
ublox_gps
ur_calibration
ur_robot_driver
urg_node
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
vision_msgs_rviz_plugins
cv_bridge
warehouse_ros
warehouse_ros_sqlite
web_video_server
wireless_watcher
zbar_ros
spinnaker_camera_driver
spinnaker_synchronized_camera_driver
smacc2
nav2z_planners_common
undo_path_global_planner
sm_advanced_recovery_1
sm_husky_barrel_search_1
sm_multi_stage_1
sm_pack_ml
sm_respira_1
sm_three_some
adaptive_component
apriltag_detector
apriltag_detector_mit
apriltag_detector_umich
apriltag_draw
apriltag_tools
aruco_opencv
bag2_to_image
beluga_amcl
boost_geometry_util
camera_aravis2
rclcpp_cascade_lifecycle
catch_ros2
classic_bags
action_tutorials_cpp
composition
demo_nodes_cpp
demo_nodes_cpp_native
dummy_map_server
dummy_sensors
image_tools
intra_process_demo
lifecycle
logging_demo
pendulum_control
quality_of_service_demo_cpp
topic_statistics_demo
dolly_follow
domain_bridge
dynamixel_hardware
etsi_its_conversion
etsi_its_rviz_plugins
event_camera_codecs
event_camera_renderer
examples_rclcpp_minimal_action_client
examples_rclcpp_minimal_action_server
examples_rclcpp_minimal_composition
examples_rclcpp_cbg_executor
examples_rclcpp_multithreaded_executor
examples_rclcpp_async_client
examples_rclcpp_minimal_client
examples_rclcpp_minimal_service
examples_rclcpp_minimal_timer
examples_rclcpp_minimal_publisher
examples_rclcpp_minimal_subscriber
examples_rclcpp_wait_set
ffmpeg_encoder_decoder
ffmpeg_image_transport
ffmpeg_image_transport_tools
flex_sync
fluent_rviz
foxglove_compressed_video_transport
generate_parameter_library_example
generate_parameter_library_example_external
generate_parameter_library
parameter_traits
gz_ros2_control
gz_ros2_control_demos
hatchbed_common
ign_rviz
ign_rviz_common
ign_rviz_plugins
kobuki_velocity_smoother
libcaer_driver
message_filters
message_tf_frame_transformer
metavision_driver
micro_ros_diagnostic_bridge
mola_bridge_ros2
motion_capture_tracking
mqtt_client
mrpt_libapps
mrpt_libbase
mrpt_libgui
mrpt_libhwdrivers
mrpt_libmaps
mrpt_libmath
mrpt_libnav
mrpt_libobs
mrpt_libopengl
mrpt_libposes
mrpt_libros_bridge
mrpt_libslam
mrpt_libtclap
nao_lola
nao_lola_client
nav2_amcl
nav2_behavior_tree
nav2_behaviors
nav2_bt_navigator
nav2_collision_monitor
nav2_constrained_smoother
nav2_controller
nav2_core
nav2_costmap_2d
opennav_docking
opennav_docking_bt
opennav_docking_core
costmap_queue
dwb_core
dwb_critics
dwb_plugins
nav2_graceful_controller
nav2_map_server
nav2_mppi_controller
nav2_msgs
nav2_navfn_planner
nav2_planner
nav2_regulated_pure_pursuit_controller
nav2_rotation_shim_controller
nav2_rviz_plugins
nav2_smac_planner
nav2_smoother
nav2_system_tests
nav2_theta_star_planner
nav2_util
nav2_velocity_smoother
nav2_voxel_grid
nav2_waypoint_follower
nmea_hardware_interface
nobleo_socketcan_bridge
odom_to_tf_ros2
opensw_ros
ouster_ros
open3d_conversions
performance_test
pick_ik
picknik_reset_fault_controller
picknik_twist_controller
polygon_demos
popf
py_binding_tools
python_mrpt
rclc
rclc_parameter
rclcpp_action
rclcpp_components
rclcpp_lifecycle
rcss3d_agent
tlsf_cpp
rig_reconfigure
rmf_fleet_adapter
rmf_task_ros2
rmf_traffic_ros2
rmf_websocket
rmf_building_sim_gz_plugins
rmf_robot_sim_common
rmf_robot_sim_gz_plugins
rmf_visualization_fleet_states
rmf_visualization_floorplans
rmf_visualization_navgraphs
rmf_visualization_obstacles
rmf_visualization_rviz2_plugins
rmf_visualization_schedule
ros1_bridge
controller_manager
joint_limits
ackermann_steering_controller
admittance_controller
bicycle_steering_controller
diff_drive_controller
effort_controllers
force_torque_sensor_broadcaster
forward_command_controller
gpio_controllers
gripper_controllers
imu_sensor_broadcaster
joint_state_broadcaster
joint_trajectory_controller
mecanum_drive_controller
parallel_gripper_controller
pid_controller
pose_broadcaster
position_controllers
range_sensor_broadcaster
steering_controllers_library
tricycle_controller
tricycle_steering_controller
velocity_controllers
kortex_driver
plansys2_bringup
plansys2_bt_actions
plansys2_core
plansys2_domain_expert
plansys2_executor
plansys2_lifecycle_manager
plansys2_msgs
plansys2_pddl_parser
plansys2_planner
plansys2_popf_plan_solver
plansys2_problem_expert
plansys2_terminal
plansys2_tests
plansys2_tools
robotiq_driver
ros2_socketcan
test_tracetools
ros2lifecycle_test_fixtures
ros2launch_security_examples
battery_state_rviz_overlay
ros_gz_bridge
ros_gz_image
ros_gz_sim
rosbag2_compression
rosbag2_compression_zstd
rosbag2_cpp
rosbag2_examples_cpp
rosbag2_performance_benchmarking
rosbag2_storage
rosbag2_test_common
rosbag2_tests
rosbag2_transport
rosbag2_bag_v2_plugins
rosx_introspection
rqt_image_overlay
rqt_image_overlay_layer
rsl
rt_manipulators_examples
sick_safetyscanners2
sick_safevisionary_driver
simple_actions
system_modes
system_modes_examples
test_launch_system_modes
test_cli
test_cli_remapping
test_communication
test_quality_of_service
test_rclcpp
test_security
topic_based_ros2_control
topic_tools
io_context
serial_driver
udp_driver
ntrip_client_node
ublox_dgnss_node
ublox_nav_sat_fix_hp_node
v4l2_camera
ros_core
vrpn_mocap
webots_ros2_control
webots_ros2_driver
crane_plus_control
crane_plus_examples
ds_dbw_can
ds_dbw_joystick_demo
dynamixel_hardware_interface
raspimouse
raspimouse_ros2_examples
ros2_ouster
turtlebot3_manipulation_hardware
turtlebot3_manipulation_teleop
irobot_create_nodes
irobot_create_toolbox
irobot_create_gz_toolbox
rslidar_msg
turtlebot4_node
turtlebot4_base
turtlebot4_gz_toolbox
depth_obstacle_detect_ros
vizanti_cpp
vizanti_demos
vizanti_server
adi_iio
automatika_ros_sugar
autoware_lanelet2_extension
autoware_lanelet2_extension_python
camera_ros
data_tamer_cpp
dual_laser_merger
feetech_ros2_driver
laser_segmentation
ld08_driver
mola_gnss_to_markers
point_cloud_transport_tutorial
qml_ros2_plugin
canopen_402_driver
canopen_base_driver
canopen_core
canopen_fake_slaves
canopen_master_driver
canopen_proxy_driver
canopen_ros2_control
canopen_ros2_controllers
sicks300_ros2
soar_ros
synapticon_ros2_control
yasmin_demos
yasmin_ros
yasmin_viewer
annin_ar4_driver
clearpath_ros2_socketcan_interface
create3_coverage
create3_republisher
ess_imu_driver2
heightmap_spawner
multisensor_calibration
network_bridge
robosoft_openai
scenario_execution_rviz
gazebo_tf_publisher
tuw
tuw_json
tuw_rviz

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rclcpp at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 29.3.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rclcpp.git
VCS Type git
VCS Version rolling
Last Updated 2025-03-31
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The ROS client library in C++.

Additional Links

No additional links.

Maintainers

  • Ivan Paunovic
  • Michel Hidalgo
  • William Woodall

Authors

  • Dirk Thomas
  • Jacob Perron

rclcpp

The ROS client library in C++.

The link to the latest rclcpp API documentation, which includes a complete list of its main components and features, can be found on the rclcpp package info page.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

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()]{.title-ref} (#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]{.title-ref} classes (#1975)" (#2009) (#2010)
  • force compiler warning if callback handles not captured (#2000)
  • Revert "Add a [create_timer]{.title-ref} method to [Node]{.title-ref} and [LifecycleNode]{.title-ref} classes (#1975)" (#2009)
  • Add a [create_timer]{.title-ref} method to [Node]{.title-ref} and [LifecycleNode]{.title-ref} 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,...]]{.title-ref} (#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>]{.title-ref} 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)

  • Support to defer to send a response in services. (#1709) Signed-off-by: Ivan Santiago Paunovic <<ivanpauno@ekumenlabs.com>>
  • Fix documentation bug. (#1719) Signed-off-by: William Woodall <<william@osrfoundation.org>>
  • Contributors: Ivan Santiago Paunovic, William Woodall

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_]{.title-ref} 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]{.title-ref} 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]{.title-ref} to [Waitable]{.title-ref} and [data]{.title-ref} to [AnyExecutable]{.title-ref} (#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]{.title-ref} (#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) (#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

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
apriltag_ros
aruco_ros
avt_vimba_camera
behaviortree_cpp
bondcpp
test_bond
cartographer_ros
cartographer_rviz
control_toolbox
depthimage_to_laserscan
diagnostic_aggregator
diagnostic_updater
self_test
dynamixel_workbench_toolbox
dynamixel_sdk_examples
filters
find_object_2d
fkie_message_filters
fmi_adapter
foxglove_bridge
fuse_constraints
fuse_core
fuse_graphs
fuse_loss
fuse_models
fuse_optimizers
fuse_publishers
fuse_tutorials
fuse_variables
geometric_shapes
test_tf2
tf2_geometry_msgs
tf2_kdl
tf2_ros
tf2_sensor_msgs
turtle_tf2_cpp
gps_tools
gpsd_client
gscam
hls_lfcd_lds_driver
camera_calibration_parsers
camera_info_manager
image_transport
image_transport_py
depth_image_proc
image_proc
image_publisher
image_rotate
image_view
stereo_image_proc
theora_image_transport
imu_processors
imu_transformer
imu_complementary_filter
imu_filter_madgwick
rviz_imu_plugin
interactive_marker_twist_server
interactive_markers
joy
joy_linux
spacenav
wiimote
laser_filters
laser_geometry
laser_proc
leo_fw
log_view
mapviz
mapviz_plugins
multires_image
tile_map
swri_console_util
swri_geometry_util
swri_image_util
swri_math_util
swri_roscpp
swri_route_util
swri_system_util
swri_transform_util
mavros
mavros_extras
moveit_core
moveit_planners_chomp
chomp_motion_planner
moveit_planners_ompl
pilz_industrial_motion_planner
pilz_industrial_motion_planner_testutils
moveit_resources_prbt_ikfast_manipulator_plugin
moveit_simple_controller_manager
moveit_py
moveit_ros_benchmarks
moveit_hybrid_planning
moveit_ros_move_group
moveit_ros_occupancy_map_monitor
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_robot_interaction
moveit_ros_tests
moveit_ros_trajectory_cache
moveit_ros_visualization
moveit_ros_warehouse
moveit_setup_app_plugins
moveit_setup_assistant
moveit_setup_controllers
moveit_setup_core_plugins
moveit_setup_framework
moveit_setup_simulation
moveit_visual_tools
mrpt_msgs_bridge
mrpt_pf_localization
mrpt_pointcloud_pipeline
mrpt_reactivenav2d
mrpt_tps_astar_planner
mrpt_generic_sensor
mrpt_sensor_bumblebee_stereo
mrpt_sensor_gnss_nmea
mrpt_sensor_gnss_novatel
mrpt_sensor_imu_taobotics
mrpt_sensorlib
novatel_gps_driver
ntpd_driver
octomap_server
octomap_rviz_plugins
open_manipulator_gui
open_manipulator_playground
open_manipulator_teleop
om_gravity_compensation_controller
om_joint_trajectory_command_broadcaster
om_spring_actuator_controller
openni2_camera
pal_statistics
pcl_conversions
pcl_ros
phidgets_accelerometer
phidgets_analog_inputs
phidgets_analog_outputs
phidgets_digital_inputs
phidgets_digital_outputs
phidgets_gyroscope
phidgets_high_speed_encoder
phidgets_magnetometer
phidgets_motors
phidgets_spatial
phidgets_temperature
plotjuggler
plotjuggler_ros
point_cloud_transport
point_cloud_transport_py
draco_point_cloud_transport
template_point_cloud_transport
zlib_point_cloud_transport
zstd_point_cloud_transport
pointcloud_to_laserscan
pose_cov_ops
quaternion_operation
rc_genicam_driver
realtime_tools
robot_calibration
robot_localization
robot_state_publisher
ros_babel_fish
turtlesim
rplidar_ros
rqt_gui_cpp
rqt_image_view
rt_usb_9axisimu_driver
rviz2
rviz_common
rviz_default_plugins
rviz_visual_testing_framework
rviz_visual_tools
septentrio_gnss_driver
simple_grasping
swri_console
teleop_twist_joy
tf2_2d
trac_ik_kinematics_plugin
trac_ik_lib
turtlebot3_node
turtlebot3_fake_node
turtlebot3_gazebo
tuw_geometry
tuw_msgs
twist_mux
ublox_gps
ur_calibration
ur_robot_driver
urg_node
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
vision_msgs_rviz_plugins
cv_bridge
warehouse_ros
warehouse_ros_sqlite
web_video_server
zbar_ros
spinnaker_camera_driver
spinnaker_synchronized_camera_driver
smacc2
nav2z_planners_common
undo_path_global_planner
sm_advanced_recovery_1
sm_husky_barrel_search_1
sm_multi_stage_1
sm_pack_ml
sm_respira_1
sm_three_some
adaptive_component
apriltag_detector
apriltag_detector_mit
apriltag_detector_umich
apriltag_draw
apriltag_tools
aruco_opencv
bag2_to_image
boost_geometry_util
rclcpp_cascade_lifecycle
catch_ros2
classic_bags
action_tutorials_cpp
composition
demo_nodes_cpp
demo_nodes_cpp_native
dummy_map_server
dummy_sensors
image_tools
intra_process_demo
lifecycle
logging_demo
pendulum_control
quality_of_service_demo_cpp
topic_statistics_demo
dolly_follow
domain_bridge
dynamixel_hardware
event_camera_codecs
event_camera_renderer
examples_rclcpp_minimal_action_client
examples_rclcpp_minimal_action_server
examples_rclcpp_minimal_composition
examples_rclcpp_cbg_executor
examples_rclcpp_multithreaded_executor
examples_rclcpp_async_client
examples_rclcpp_minimal_client
examples_rclcpp_minimal_service
examples_rclcpp_minimal_timer
examples_rclcpp_minimal_publisher
examples_rclcpp_minimal_subscriber
examples_rclcpp_wait_set
ffmpeg_encoder_decoder
ffmpeg_image_transport
ffmpeg_image_transport_tools
flex_sync
fluent_rviz
foxglove_compressed_video_transport
generate_parameter_library_example
generate_parameter_library_example_external
generate_parameter_library
parameter_traits
gz_ros2_control
gz_ros2_control_demos
hatchbed_common
ign_rviz
ign_rviz_common
ign_rviz_plugins
kobuki_velocity_smoother
libcaer_driver
message_filters
message_tf_frame_transformer
metavision_driver
micro_ros_diagnostic_bridge
mola_bridge_ros2
motion_capture_tracking
mqtt_client
mrpt_libapps
mrpt_libbase
mrpt_libgui
mrpt_libhwdrivers
mrpt_libmaps
mrpt_libmath
mrpt_libnav
mrpt_libobs
mrpt_libopengl
mrpt_libposes
mrpt_libros_bridge
mrpt_libslam
mrpt_libtclap
nao_lola
nao_lola_client
nmea_hardware_interface
nobleo_socketcan_bridge
odom_to_tf_ros2
opensw_ros
ouster_ros
open3d_conversions
performance_test
pick_ik
picknik_reset_fault_controller
picknik_twist_controller
polygon_demos
py_binding_tools
python_mrpt
rclc
rclc_parameter
rclcpp_action
rclcpp_components
rclcpp_lifecycle
rcss3d_agent
tlsf_cpp
rig_reconfigure
rmf_fleet_adapter
rmf_task_ros2
rmf_traffic_ros2
rmf_websocket
rmf_building_sim_gz_plugins
rmf_robot_sim_common
rmf_robot_sim_gz_plugins
rmf_visualization_fleet_states
rmf_visualization_floorplans
rmf_visualization_navgraphs
rmf_visualization_obstacles
rmf_visualization_rviz2_plugins
rmf_visualization_schedule
ros1_bridge
controller_manager
joint_limits
ackermann_steering_controller
admittance_controller
bicycle_steering_controller
diff_drive_controller
effort_controllers
force_torque_sensor_broadcaster
forward_command_controller
gpio_controllers
gripper_controllers
imu_sensor_broadcaster
joint_state_broadcaster
joint_trajectory_controller
mecanum_drive_controller
parallel_gripper_controller
pid_controller
pose_broadcaster
position_controllers
range_sensor_broadcaster
steering_controllers_library
tricycle_controller
tricycle_steering_controller
velocity_controllers
kortex_driver
robotiq_driver
ros2_socketcan
test_tracetools
ros2lifecycle_test_fixtures
ros2launch_security_examples
battery_state_rviz_overlay
ros_gz_bridge
ros_gz_image
ros_gz_sim
rosbag2_compression
rosbag2_compression_zstd
rosbag2_cpp
rosbag2_examples_cpp
rosbag2_performance_benchmarking
rosbag2_storage
rosbag2_test_common
rosbag2_tests
rosbag2_transport
rosbag2_bag_v2_plugins
rosx_introspection
rqt_image_overlay
rqt_image_overlay_layer
rsl
rt_manipulators_examples
sick_safetyscanners2
sick_safevisionary_driver
simple_actions
system_modes
system_modes_examples
test_launch_system_modes
test_cli
test_cli_remapping
test_communication
test_quality_of_service
test_rclcpp
test_security
topic_based_ros2_control
topic_tools
io_context
serial_driver
udp_driver
ntrip_client_node
ublox_dgnss_node
ublox_nav_sat_fix_hp_node
v4l2_camera
ros_core
vrpn_mocap
webots_ros2_control
webots_ros2_driver
dynamixel_hardware_interface
raspimouse
turtlebot3_manipulation_hardware
turtlebot3_manipulation_teleop
adi_iio
automatika_ros_sugar
autoware_lanelet2_extension
autoware_lanelet2_extension_python
camera_ros
data_tamer_cpp
dual_laser_merger
feetech_ros2_driver
laser_segmentation
ld08_driver
lidar_mirror_fov_reshaper_calibration
lidar_mirror_fov_reshaper_runtime
lidar_mirror_fov_reshaper_transformation
mola_gnss_to_markers
point_cloud_transport_tutorial
qml_ros2_plugin
canopen_402_driver
canopen_base_driver
canopen_core
canopen_fake_slaves
canopen_master_driver
canopen_proxy_driver
canopen_ros2_control
canopen_ros2_controllers
service_load_balancing
sicks300_ros2
soar_ros
synapticon_ros2_control
yasmin_demos
yasmin_ros
yasmin_viewer

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rclcpp at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 9.2.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/rtenlab/ros2-picas.git
VCS Type git
VCS Version main
Last Updated 2023-02-21
Dev Status UNMAINTAINED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The ROS client library in C++.

Additional Links

No additional links.

Maintainers

  • Ivan Paunovic
  • Mabel Zhang
  • William Woodall

Authors

  • Dirk Thomas

rclcpp

The ROS client library in C++.

Visit the rclcpp API documentation for a complete list of its main components and features.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

CHANGELOG

Changelog for package rclcpp

9.1.0 (2021-05-20)

  • Allow declaring uninitialized statically typed parameters. (#1673) (#1681)
  • [service] Don't use a weak_ptr to avoid leaking. (#1668) (#1670)
  • Contributors: Jacob Perron, Ivan Santiago Paunovic

9.0.3 (2021-05-10)

  • Use OnShutdown callback handle instead of OnShutdown callback (#1639) (#1650)
  • use dynamic_pointer_cast to detect allocator mismatch in intra process manager (#1643) (#1644)
  • Increase cppcheck timeout to 500s (#1634)
  • Clarify node parameters docs (#1631)
  • Contributors: 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_]{.title-ref} 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]{.title-ref} 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]{.title-ref} to [Waitable]{.title-ref} and [data]{.title-ref} to [AnyExecutable]{.title-ref} (#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]{.title-ref} (#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) (#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

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
apriltag_ros
apriltag_ros
apriltag_ros
label_manager
mesh_msgs_conversions
mesh_msgs_transform
rviz_mesh_tools_plugins
ros_babel_fish
schunk_svh_driver
schunk_svh_simulation
dynamixel_sdk_examples
dynamixel_sdk_examples
turtlebot3_node
turtlebot3_node
turtlebot3_node
turtlebot3_node
turtlebot3_fake_node
turtlebot3_fake_node
turtlebot3_fake_node
turtlebot3_fake_node
turtlebot3_fake_node
turtlebot3_fake_node
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
turtlebot3_gazebo
frontier_exploration
behavior_tree
behavior_tree
behavior_tree
remote_modbus
ros2_control_utils
rws_clients
sg_control
yumi_robot_manager
yumi_launch
parameter_server
yumi_test
canadarm_demo
curiosity_gazebo
curiosity_rover_demo
space_ros_memory_allocation_demo
nav2_amcl
nav2_amcl
nav2_amcl
nav2_amcl
nav2_amcl
nav2_amcl
nav2_amcl
nav2_amcl
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behavior_tree
nav2_behaviors
nav2_behaviors
nav2_behaviors
nav2_behaviors
nav2_behaviors
nav2_behaviors
nav2_bt_navigator
nav2_bt_navigator
nav2_bt_navigator
nav2_bt_navigator
nav2_bt_navigator
nav2_bt_navigator
nav2_bt_navigator
nav2_bt_navigator
nav2_collision_monitor
nav2_collision_monitor
nav2_collision_monitor
nav2_constrained_smoother
nav2_constrained_smoother
nav2_constrained_smoother
nav2_controller
nav2_controller
nav2_controller
nav2_controller
nav2_controller
nav2_controller
nav2_controller
nav2_controller
nav2_core
nav2_core
nav2_core
nav2_core
nav2_core
nav2_core
nav2_core
nav2_core
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
nav2_costmap_2d
opennav_docking
opennav_docking_bt
costmap_queue
costmap_queue
costmap_queue
costmap_queue
costmap_queue
costmap_queue
costmap_queue
dwb_core
dwb_core
dwb_core
dwb_core
dwb_core
dwb_core
dwb_core
dwb_critics
dwb_critics
dwb_critics
dwb_critics
dwb_critics
dwb_critics
dwb_critics
dwb_plugins
dwb_plugins
dwb_plugins
dwb_plugins
dwb_plugins
dwb_plugins
dwb_plugins
nav_2d_utils
nav2_graceful_controller
nav2_graceful_controller
nav2_lifecycle_manager
nav2_map_server
nav2_map_server
nav2_map_server
nav2_map_server
nav2_map_server
nav2_map_server
nav2_mppi_controller
nav2_mppi_controller
nav2_msgs
nav2_msgs
nav2_msgs
nav2_msgs
nav2_msgs
nav2_msgs
nav2_msgs
nav2_msgs
nav2_navfn_planner
nav2_navfn_planner
nav2_navfn_planner
nav2_navfn_planner
nav2_navfn_planner
nav2_navfn_planner
nav2_navfn_planner
nav2_planner
nav2_planner
nav2_planner
nav2_planner
nav2_planner
nav2_planner
nav2_planner
nav2_planner
nav2_regulated_pure_pursuit_controller
nav2_regulated_pure_pursuit_controller
nav2_regulated_pure_pursuit_controller
nav2_regulated_pure_pursuit_controller
nav2_regulated_pure_pursuit_controller
nav2_regulated_pure_pursuit_controller
nav2_regulated_pure_pursuit_controller
nav2_rotation_shim_controller
nav2_rotation_shim_controller
nav2_rotation_shim_controller
nav2_rotation_shim_controller
nav2_rotation_shim_controller
nav2_rotation_shim_controller
nav2_rotation_shim_controller
nav2_rviz_plugins
nav2_rviz_plugins
nav2_rviz_plugins
nav2_rviz_plugins
nav2_rviz_plugins
nav2_rviz_plugins
nav2_smac_planner
nav2_smac_planner
nav2_smac_planner
nav2_smac_planner
nav2_smac_planner
nav2_smac_planner
nav2_smac_planner
nav2_smoother
nav2_smoother
nav2_smoother
nav2_smoother
nav2_system_tests
nav2_system_tests
nav2_system_tests
nav2_system_tests
nav2_system_tests
nav2_system_tests
nav2_theta_star_planner
nav2_theta_star_planner
nav2_theta_star_planner
nav2_theta_star_planner
nav2_theta_star_planner
nav2_theta_star_planner
nav2_theta_star_planner
nav2_util
nav2_util
nav2_util
nav2_util
nav2_util
nav2_util
nav2_util
nav2_velocity_smoother
nav2_velocity_smoother
nav2_velocity_smoother
nav2_voxel_grid
nav2_voxel_grid
nav2_voxel_grid
nav2_voxel_grid
nav2_voxel_grid
nav2_voxel_grid
nav2_voxel_grid
nav2_waypoint_follower
nav2_waypoint_follower
nav2_waypoint_follower
nav2_waypoint_follower
nav2_waypoint_follower
nav2_waypoint_follower
nav2_waypoint_follower
performance_test
performance_test
mppic
rover_driver
jackal_3d_slam
radar_odom
abb_bringup
abb_hardware_interface
abb_rws_client
racing
carla_gnss_emulator
tf_broadcaster
cpp_pubsub_tutorial
localization
localization
localization
localization
mbot_bringup
sllidar_ros2
sllidar_ros2
ackermann_steering_controller
raw_tof
ros2_utils
limo_bringup
limo_learnning
learnning_piper
goal_pose_setter
goal_pose_setter
gyro_odometer
gyro_odometer
gyro_odometer
imu_corrector
imu_corrector
imu_gnss_poser
path_to_trajectory
path_to_trajectory
simple_pure_pursuit
simple_pure_pursuit
aichallenge_awsim_adapter
aichallenge_eval
obstacle_stop_planner_custom
sample_code_cpp
aichallenge_scoring
aichallenge_scoring_result
initialpose_publisher
initialpose_publisher
pose_initializer_custom
pose_initializer_custom
self_driving_controller
self_driving_controller
odom2tf
dallara_interface
airspeed_services
airstack_common
mission_manager
mission_manager
drone_safety_monitor
robot_interface
cost_map_interface
disparity_expansion
disparity_graph
disparity_graph_cost_map
droan_local_planner
takeoff_landing_planner
trajectory_library
mav_msgs
mav_planning_msgs
trajectory_controller
ensemble_global_planner
random_walk_planner
waypoint_interface
behavior_executive
behavior_tree_example
allan_ros2
alpha_driver
alpha_hardware
go2_driver
realsense2_camera
realsense2_camera
realsense2_camera
realsense2_camera
realsense2_description
realsense2_description
realsense2_description
realsense2_description
unitree_ros2_example
scoutbot
apriltag_docking
ar3_hardware
ar3_hardware_driver
arctos_hardware_interface
arduinobot_controller
arduinobot_controller
arduinobot_cpp_examples
arduinobot_cpp_examples
arduinobot_firmware
arduinobot_firmware
arduinobot_remote
arduinobot_remote
arduinobot_utils
arduinobot_utils
arena_camera_node
ariac_controllers
ariac_gazebo
ariac_plugins
ariac_sensors
arm_api2
ars548_driver
ars_40X
ars_40X
image_sub_cpp
px4_missions
px4_ros_com
px4_ros_com
px4_ros_com
socket
face_recognition
samples_recognition
my_package
my_package
br2_basics
br2_basics
br2_fsm_bumpgo_cpp
br2_fsm_bumpgo_cpp
br2_tf2_detector
br2_tf2_detector
br2_tracking
br2_tracking
br2_tracking_msgs
br2_tracking_msgs
br2_vff_avoidance
br2_vff_avoidance
br2_bt_bumpgo
br2_bt_bumpgo
br2_bt_patrolling
br2_bt_patrolling
avoid_obstacle_forocoches
seek_and_capture_forocoches
recepcionist_forocoches
asv_bridge
recorder
mujoco
mujoco
mujoco
atos
atos_rviz_plugins
atr_examples
aubo_ros2_common
aubo_ros2_demo
aubo_ros2_driver
aubo_ros2_driver
aubo_ros2_trajectory_action
ros_joints_plan
audio_utils
auna_cacc
auna_comm
auna_common
auna_gazebo
auna_mqtt
auna_nav2
auna_omnet
auna_physical
auna_pure_pursuit
auna_rviz_plugins
auna_scenarios
auna_teleoperation
auto_apms_behavior_tree
auto_apms_behavior_tree_core
auto_apms_util
autocar_description
autocar_gazebo
autocar_map
carla_l5player_lqr_pid_controller
carla_l5player_lqr_pid_controller_waypoint
carla_l5player_mpc_controller
carla_l5player_pid_controller
carla_l5player_pid_new_controller
carla_l5player_stanley_pid_controller
carla_l5player_aeb_with_python_script
carla_l5player_nop_with_python_script
pcl_recorder
rviz_carla_plugin
autonomous_emergency_braking
control_performance_analysis
control_validator
external_cmd_selector
joy_controller
lane_departure_checker
mpc_lateral_controller
obstacle_collision_checker
operation_mode_transition_manager
pid_longitudinal_controller
predicted_path_checker
pure_pursuit
pure_pursuit
pure_pursuit
pure_pursuit
shift_decider
trajectory_follower_base
trajectory_follower_node
vehicle_cmd_gate
diagnostic_converter
kinematic_evaluator
localization_evaluator
planning_evaluator
ekf_localizer
ekf_localizer
ekf_localizer
geo_pose_projector
ar_tag_based_localizer
landmark_manager
localization_util
ndt_scan_matcher
ndt_scan_matcher
pose2twist
pose2twist
pose_initializer
pose_initializer
pose_instability_detector
stop_filter
stop_filter
twist2accel
twist2accel
yabloc_common
yabloc_common
yabloc_image_processing
yabloc_image_processing
yabloc_monitor
yabloc_monitor
yabloc_particle_filter
yabloc_particle_filter
yabloc_pose_initializer
yabloc_pose_initializer
map_height_fitter
map_height_fitter
map_loader
map_loader
map_projection_loader
map_tf_generator
map_tf_generator
map_tf_generator
lanelet2_map_preprocessor
lanelet2_map_preprocessor
ros2_bevdet
bevfusion
bytetrack
cluster_merger
compare_map_segmentation
crosswalk_traffic_light_estimator
detected_object_feature_remover
detected_object_validation
detection_by_tracker
elevation_map_loader
euclidean_cluster
front_vehicle_velocity_estimator
ground_segmentation
heatmap_visualizer
image_projection_based_fusion
lidar_apollo_instance_segmentation
lidar_apollo_segmentation_tvm
lidar_apollo_segmentation_tvm_nodes
lidar_centerpoint
lidar_centerpoint_tvm
map_based_prediction
multi_object_tracker
object_merger
object_range_splitter
object_velocity_splitter
occupancy_grid_map_outlier_filter
probabilistic_occupancy_grid_map
radar_crossing_objects_noise_filter
radar_fusion_to_detected_object
radar_object_clustering
radar_object_tracker
radar_tracks_msgs_converter
shape_estimation
simple_object_merger
tensorrt_classifier
tensorrt_yolo
tensorrt_yolox
tracking_object_merger
traffic_light_arbiter
traffic_light_classifier
traffic_light_fine_detector
traffic_light_map_based_detector
traffic_light_multi_camera_fusion
traffic_light_occlusion_predictor
traffic_light_ssd_fine_detector
traffic_light_visualization
behavior_path_avoidance_by_lane_change_module
behavior_path_avoidance_module
behavior_path_external_request_lane_change_module
behavior_path_goal_planner_module
behavior_path_lane_change_module
behavior_path_planner
behavior_path_planner_common
behavior_path_side_shift_module
behavior_path_start_planner_module
behavior_velocity_blind_spot_module
behavior_velocity_crosswalk_module
behavior_velocity_detection_area_module
behavior_velocity_intersection_module
behavior_velocity_no_drivable_lane_module
behavior_velocity_no_stopping_area_module
behavior_velocity_occlusion_spot_module
behavior_velocity_out_of_lane_module
behavior_velocity_planner
behavior_velocity_planner_common
behavior_velocity_run_out_module
behavior_velocity_speed_bump_module
behavior_velocity_stop_line_module
behavior_velocity_template_module
behavior_velocity_traffic_light_module
behavior_velocity_virtual_traffic_light_module
behavior_velocity_walkway_module
costmap_generator
external_velocity_limit_selector
freespace_planner
mission_planner
motion_velocity_smoother
objects_of_interest_marker_interface
obstacle_avoidance_planner
obstacle_cruise_planner
obstacle_stop_planner
obstacle_velocity_limiter
path_smoother
planning_debug_tools
planning_debug_tools
planning_test_utils
planning_topic_converter
planning_validator
route_handler
rtc_interface
rtc_replayer
path_sampler
scenario_selector
static_centerline_optimizer
surround_obstacle_checker
gnss_poser
image_diagnostics
image_transport_decompressor
livox_tag_filter
pointcloud_preprocessor
pointcloud_preprocessor
radar_scan_to_pointcloud2
radar_static_pointcloud_filter
radar_threshold_filter
radar_tracks_noise_filter
vehicle_velocity_converter
vehicle_velocity_converter
autoware_auto_msgs_adapter
bluetooth_monitor
component_state_monitor
default_ad_api
ad_api_adaptors
automatic_pose_initializer
automatic_pose_initializer
diagnostic_graph_aggregator
dummy_diag_publisher
dummy_infrastructure
duplicated_node_checker
emergency_handler
emergency_handler
mrm_comfortable_stop_operator
mrm_emergency_stop_operator
system_error_monitor
system_monitor
topic_state_monitor
velodyne_monitor
accel_brake_map_calibrator
external_cmd_converter
raw_vehicle_cmd_converter
steer_offset_estimator
vehicle_info_util
autoware_utils
autoware_utils
lanelet2_extension
lanelet2_extension
bag_time_manager_rviz_plugin
component_interface_specs
component_interface_tools
component_interface_utils
component_interface_utils
fake_test_node
fake_test_node
glog_component
goal_distance_calculator
motion_utils
motion_utils
motion_utils
object_recognition_utils
osqp_interface
osqp_interface
path_distance_calculator
perception_utils
perception_utils
perception_utils
qp_interface
rtc_manager_rviz_plugin
rtc_manager_rviz_plugin
signal_processing
signal_processing
tensorrt_common
tier4_adapi_rviz_plugin
tier4_adapi_rviz_plugin
tier4_api_utils
tier4_api_utils
tier4_automatic_goal_rviz_plugin
tier4_automatic_goal_rviz_plugin
tier4_autoware_utils
tier4_autoware_utils
tier4_camera_view_rviz_plugin
tier4_camera_view_rviz_plugin
tier4_datetime_rviz_plugin
tier4_datetime_rviz_plugin
tier4_debug_rviz_plugin
tier4_debug_rviz_plugin
tier4_debug_tools
tier4_debug_tools
tier4_localization_rviz_plugin
tier4_localization_rviz_plugin
tier4_planning_rviz_plugin
tier4_planning_rviz_plugin
tier4_screen_capture_rviz_plugin
tier4_screen_capture_rviz_plugin
tier4_simulated_clock_rviz_plugin
tier4_simulated_clock_rviz_plugin
tier4_state_rviz_plugin
tier4_state_rviz_plugin
tier4_target_object_type_rviz_plugin
tier4_target_object_type_rviz_plugin
tier4_traffic_light_rviz_plugin
tier4_traffic_light_rviz_plugin
traffic_light_recognition_marker_publisher
dma_transfer
eagleye_coordinate
eagleye_navigation
eagleye_msgs
eagleye_rt
eagleye_can_velocity_converter
eagleye_fix2kml
eagleye_geo_pose_converter
eagleye_geo_pose_fusion
eagleye_gnss_converter
pointcloud_to_laserscan
pointcloud_to_laserscan
pointcloud_to_laserscan
pointcloud_to_laserscan
rtklib_bridge
autoware_iv_external_api_adaptor
autoware_iv_internal_api_adaptor
awapi_awiv_adapter
io_opt
behaviortree_cpp_v3
bondcpp
test_bond
diagnostic_aggregator
diagnostic_updater
self_test
filters
grid_map_cv
grid_map_cv
grid_map_cv
grid_map_demos
grid_map_demos
grid_map_demos
grid_map_msgs
grid_map_msgs
grid_map_msgs
grid_map_pcl
grid_map_pcl
grid_map_pcl
grid_map_ros
grid_map_ros
grid_map_ros
grid_map_rviz_plugin
grid_map_rviz_plugin
grid_map_rviz_plugin
grid_map_visualization
grid_map_visualization
grid_map_visualization
pcl_conversions
pcl_conversions
pcl_conversions
pcl_conversions
pcl_ros
pcl_ros
pcl_ros
topic_tools
cv_bridge
rviz2
rviz_common
rviz_default_plugins
dummy_perception_publisher
fault_injection
simple_planning_simulator
simple_planning_simulator
node_v2x
image_view
image_view
v4l2_camera
v4l2_camera
v4l2_camera
v4l2_camera
can_interface_custom
cgi430_can_driver
cgi610_driver
ARS408_driver
lidar_centerpoint_collect
lidar_saver
message_sync
message_sync
time_cal
direct_visual_lidar_calibration
multi_lidar_calibration
multi_lidar_calibration
autonav_controller
autonav_firmware
ydlidar_ros2_driver
ydlidar_ros2_driver
common_lib
control
control
inspection
mocker_node
pacsim
perception
perception
planning
planning
hagen_gazebo
hagen_control
depth_image_proc
image_proc
image_publisher
image_rotate
stereo_image_proc
camera_calibration_parsers
camera_calibration_parsers
camera_info_manager
camera_info_manager
image_transport
image_transport
theora_image_transport
theora_image_transport
darknet_ros
darknet_ros_msgs
local_planner
local_planner
local_planner
sensor_scan_generation
sensor_scan_generation
sensor_scan_generation
sensor_scan_generation
sensor_scan_generation
terrain_analysis
terrain_analysis
terrain_analysis
terrain_analysis
terrain_analysis_ext
terrain_analysis_ext
terrain_analysis_ext
terrain_analysis_ext
vehicle_simulator
vehicle_simulator
vehicle_simulator
visualization_tools
visualization_tools
visualization_tools
waypoint_example
waypoint_example
waypoint_example
tare_planner
tare_planner
boundary_handler
boundary_handler
boundary_handler
far_planner
far_planner
far_planner
graph_decoder
graph_decoder
graph_decoder
visibility_graph_msg
visibility_graph_msg
visibility_graph_msg
arise_slam_mid360
arise_slam_mid360
diablo_body
diablo_body
diablo_utils
diablo_utils
diablo_ctrl
diablo_ctrl
diablo_teleop_joy
domain_bridge
domain_bridge
goalpoint_rviz_plugin
goalpoint_rviz_plugin
goalpoint_rviz_plugin
livox_ros_driver2
livox_ros_driver2
livox_ros_driver2
livox_ros_driver2
livox_ros_driver2
livox_ros_driver2
receive_theta
teleop_rviz_plugin
teleop_rviz_plugin
teleop_rviz_plugin
teleop_rviz_plugin_plus
teleop_rviz_plugin_plus
teleop_rviz_plugin_plus
waypoint_rviz_plugin
waypoint_rviz_plugin
waypoint_rviz_plugin
point_lio_unilidar
calibrate_imu
go2_h264_repub
go2_sport_api
serial
teleop_joy_controller
autorobo_visualization
autorobo_control
autorobo_localization
autorobo_map
autorobo_planner
autorobo_simulation
autoware_practice_course
autoware_practice_dummy_localizer
autoware_practice_evaluator
autoware_practice_gnss_poser
autoware_practice_gyro_odometer
autoware_practice_lidar_simulator
autoware_practice_simulator
autoware_practice_visualization
lane_detection_data_loader
lane_detection_projection
lane_detection_visualization
radar_conti_ars408
ros2socketcan_bridge
webots_ros2_driver
cartographer_ros
cartographer_rviz
dolly_follow
ndt_omp_ros2
ndt_omp_ros2
ndt_omp_ros2
ndt_omp_ros2
graph_based_slam
graph_based_slam
graph_based_slam
graph_based_slam
graph_based_slam
lidarslam
lidarslam
lidarslam
scanmatcher
scanmatcher
scanmatcher
scanmatcher
lio_sam
lio_sam
lio_sam
lio_sam
velodyne_gazebo_plugins
velodyne_gazebo_plugins
velodyne_gazebo_plugins
velodyne_gazebo_plugins
velodyne_gazebo_plugins
velodyne_gazebo_plugins
carla_pointcloud
carla_pointcloud
autoware_component_interface_specs
autoware_lanelet2_utils
autoware_motion_utils
autoware_node
autoware_object_recognition_utils
autoware_osqp_interface
autoware_qp_interface
autoware_signal_processing
autoware_trajectory
autoware_vehicle_info_utils
autoware_simple_pure_pursuit
autoware_ekf_localizer
autoware_localization_util
autoware_stop_filter
autoware_twist2accel
autoware_map_loader
autoware_map_projection_loader
autoware_ground_filter
autoware_mission_planner
autoware_objects_of_interest_marker_interface
autoware_path_generator
autoware_planning_factor_interface
autoware_planning_topic_converter
autoware_route_handler
autoware_velocity_smoother
autoware_behavior_velocity_planner
autoware_behavior_velocity_planner_common
autoware_behavior_velocity_stop_line_module
autoware_motion_velocity_obstacle_stop_module
autoware_motion_velocity_planner
autoware_motion_velocity_planner_common
autoware_crop_box_filter
autoware_gnss_poser
autoware_vehicle_velocity_converter
autoware_planning_test_manager
autoware_test_node
autoware_test_utils
autoware_nova_carter_interface
mission_planner_rviz_plugin
tier4_logging_level_configure_rviz_plugin
tier4_string_viewer_rviz_plugin
vehicle_cmd_analyzer
driving_environment_analyzer
tier4_metrics_rviz_plugin
deviation_estimator
deviation_evaluator
autoware_lanelet2_map_utils
autoware_pointcloud_divider
autoware_planning_data_analyzer
autoware_rtc_replayer
autoware_static_centerline_generator
calibration_adapter
estimator_utils
parameter_estimator
pitch_checker
time_delay_estimator
autoware_agnocast_wrapper
autoware_component_interface_specs_universe
autoware_component_interface_tools
autoware_component_interface_utils
autoware_fake_test_node
autoware_glog_component
autoware_goal_distance_calculator
autoware_path_distance_calculator
autoware_traffic_light_recognition_marker_publisher
autoware_universe_utils
autoware_autonomous_emergency_braking
autoware_collision_detector
autoware_control_performance_analysis
autoware_control_validator
autoware_external_cmd_selector
autoware_joy_controller
autoware_lane_departure_checker
autoware_mpc_lateral_controller
autoware_obstacle_collision_checker
autoware_operation_mode_transition_manager
autoware_pid_longitudinal_controller
autoware_predicted_path_checker
autoware_pure_pursuit
autoware_shift_decider
autoware_smart_mpc_trajectory_follower
autoware_trajectory_follower_base
autoware_trajectory_follower_node
autoware_vehicle_cmd_gate
autoware_control_evaluator
autoware_kinematic_evaluator
autoware_localization_evaluator
autoware_perception_online_evaluator
autoware_planning_evaluator
autoware_scenario_simulator_v2_adapter
autoware_geo_pose_projector
autoware_gyro_odometer
autoware_ar_tag_based_localizer
autoware_landmark_manager
autoware_lidar_marker_localizer
autoware_ndt_scan_matcher
autoware_pose2twist
autoware_pose_covariance_modifier
autoware_pose_initializer
autoware_pose_instability_detector
autoware_lanelet2_map_visualizer
autoware_map_height_fitter
autoware_map_tf_generator
autoware_bytetrack
autoware_cluster_merger
autoware_compare_map_segmentation
autoware_crosswalk_traffic_light_estimator
autoware_detected_object_feature_remover
autoware_detected_object_validation
autoware_detection_by_tracker
autoware_elevation_map_loader
autoware_euclidean_cluster
autoware_ground_segmentation
autoware_image_projection_based_fusion
autoware_lidar_apollo_instance_segmentation
autoware_lidar_centerpoint
autoware_lidar_transfusion
autoware_map_based_prediction
autoware_multi_object_tracker
autoware_object_merger
autoware_object_range_splitter
autoware_object_velocity_splitter
autoware_occupancy_grid_map_outlier_filter
autoware_probabilistic_occupancy_grid_map
autoware_radar_crossing_objects_noise_filter
autoware_radar_fusion_to_detected_object
autoware_radar_object_clustering
autoware_radar_object_tracker
autoware_radar_tracks_msgs_converter
autoware_raindrop_cluster_filter
autoware_shape_estimation
autoware_simple_object_merger
autoware_tensorrt_classifier
autoware_tensorrt_common
autoware_tensorrt_yolox
autoware_tracking_object_merger
autoware_traffic_light_arbiter
autoware_traffic_light_category_merger
autoware_traffic_light_classifier
autoware_traffic_light_fine_detector
autoware_traffic_light_map_based_detector
autoware_traffic_light_multi_camera_fusion
autoware_traffic_light_occlusion_predictor
autoware_traffic_light_selector
autoware_traffic_light_visualization
autoware_costmap_generator
autoware_external_velocity_limit_selector
autoware_freespace_planner
autoware_mission_planner_universe
autoware_obstacle_cruise_planner
autoware_obstacle_stop_planner
autoware_path_optimizer
autoware_path_smoother
autoware_planning_validator
autoware_remaining_distance_time_calculator
autoware_rtc_interface
autoware_scenario_selector
autoware_surround_obstacle_checker
autoware_behavior_path_avoidance_by_lane_change_module
autoware_behavior_path_dynamic_obstacle_avoidance_module
autoware_behavior_path_external_request_lane_change_module
autoware_behavior_path_goal_planner_module
autoware_behavior_path_lane_change_module
autoware_behavior_path_planner
autoware_behavior_path_planner_common
autoware_behavior_path_sampling_planner_module
autoware_behavior_path_side_shift_module
autoware_behavior_path_start_planner_module
autoware_behavior_path_static_obstacle_avoidance_module
autoware_behavior_velocity_blind_spot_module
autoware_behavior_velocity_crosswalk_module
autoware_behavior_velocity_detection_area_module
autoware_behavior_velocity_intersection_module
autoware_behavior_velocity_no_drivable_lane_module
autoware_behavior_velocity_no_stopping_area_module
autoware_behavior_velocity_occlusion_spot_module
autoware_behavior_velocity_rtc_interface
autoware_behavior_velocity_run_out_module
autoware_behavior_velocity_speed_bump_module
autoware_behavior_velocity_template_module
autoware_behavior_velocity_traffic_light_module
autoware_behavior_velocity_virtual_traffic_light_module
autoware_behavior_velocity_walkway_module
autoware_motion_velocity_dynamic_obstacle_stop_module
autoware_motion_velocity_obstacle_cruise_module
autoware_motion_velocity_obstacle_slow_down_module
autoware_motion_velocity_obstacle_velocity_limiter_module
autoware_motion_velocity_out_of_lane_module
autoware_path_sampler
autoware_cuda_pointcloud_preprocessor
autoware_image_diagnostics
autoware_image_transport_decompressor
autoware_imu_corrector
autoware_pointcloud_preprocessor
autoware_radar_scan_to_pointcloud2
autoware_radar_static_pointcloud_filter
autoware_radar_threshold_filter
autoware_radar_tracks_noise_filter
autoware_livox_tag_filter
autoware_dummy_perception_publisher
autoware_fault_injection
autoware_simple_planning_simulator
autoware_vehicle_door_simulator
autoware_bluetooth_monitor
autoware_component_monitor
autoware_component_state_monitor
autoware_default_adapi
autoware_adapi_adaptors
autoware_automatic_pose_initializer
autoware_diagnostic_graph_aggregator
autoware_diagnostic_graph_utils
autoware_dummy_diag_publisher
autoware_dummy_infrastructure
autoware_duplicated_node_checker
autoware_hazard_status_converter
autoware_mrm_comfortable_stop_operator
autoware_mrm_emergency_stop_operator
autoware_mrm_handler
autoware_processing_time_checker
autoware_system_monitor
autoware_topic_relay_controller
autoware_topic_state_monitor
autoware_velodyne_monitor
reaction_analyzer
autoware_accel_brake_map_calibrator
autoware_external_cmd_converter
autoware_raw_vehicle_cmd_converter
autoware_steer_offset_estimator
autoware_bag_time_manager_rviz_plugin
covariance_insertion_nodes
had_map_utils
measurement_conversion
state_estimation_nodes
vehicle_constants_manager
controller_common_nodes
motion_testing_nodes
pure_pursuit_nodes
trajectory_follower
trajectory_follower_nodes
lgsvl_interface
ne_raptor_interface
spinnaker_camera_nodes
ssc_interface
vehicle_interface
velodyne_nodes
localization_common
localization_common
localization_nodes
ndt_nodes
lanelet2_map_provider
ndt_mapping_nodes
filter_node_base
off_map_obstacles_filter
off_map_obstacles_filter_nodes
outlier_filter
outlier_filter_nodes
point_cloud_filter_transform_nodes
point_cloud_fusion_nodes
polygon_remover_nodes
ray_ground_classifier_nodes
voxel_grid_nodes
apollo_lidar_segmentation
apollo_lidar_segmentation_nodes
euclidean_cluster_nodes
ground_truth_detections
tracking_nodes
tracking_test_framework
behavior_planner_nodes
lane_planner_nodes
lanelet2_global_planner_nodes
object_collision_estimator_nodes
parking_planner_nodes
recordreplay_planner_nodes
trajectory_planner_node_base
trajectory_smoother
trajectory_spoofer
prediction_nodes
autoware_state_monitor
cluster_projection_node
detection_2d_visualizer
gnss_conversion_nodes
joystick_vehicle_interface_nodes
lidar_integration
point_type_adapter
autoware_v2x
thruster_allocation_matrix_controller
thruster_controllers
velocity_controllers
deepracer_drive_plugin
ctrl_pkg
ctrl_pkg
sensor_fusion_pkg
axebot_control
rslidar_msg
rslidar_sdk
bandwidth_measurererer
baxter_bridge
ackermann_drive_controller
beetle_msg_forwarder
map_odom_static_broadcaster
a1_perception_2nodes
a3_stereo_image_proc
a4_depth_image_proc
estimation
sim
bitbots_buttons
bitbots_ros_control
bitbots_basler_camera
bitbots_dynamic_kick
bitbots_dynup
bitbots_head_mover
bitbots_quintic_walk
bitbots_splines
bitbots_localization
bluesea2
bob_auxiliary
bob_camera
bob_image_processing
bob_recorder
bob_tracking
bob_visualizers
bob_simulator
bonxai_ros
matlab_bridge
botanbot_gazebo
botanbot_gui
ros2_full_sensor_suite
vox_nav_msgs
vox_nav_msgs
cyberdog_grpc
cyberdog_grpc
protocol
crowd_nav
crowd_nav
pedestrian_tracking
pedestrian_tracking
bt_ros2
simple_bts
tour_bts
bt_validator
bumperbot_controller
bumperbot_controller
bumperbot_controller
bumperbot_cpp_examples
bumperbot_cpp_examples
bumperbot_cpp_examples
bumperbot_firmware
bumperbot_firmware
bumperbot_firmware
bumperbot_localization
bumperbot_localization
bumperbot_localization
bumperbot_mapping
bumperbot_mapping
bumperbot_utils
bumperbot_utils
bytetrack_cpp_node
bytetrack_viewer
lidar_cam_reader
multi_lidar_calib
rviz2_capture_plugin_node
ground_plane_calibrator
ceres_intrinsic_camera_calibrator
lidar_to_lidar_2d_calibrator
mapping_based_calibrator
marker_radar_lidar_calibrator
tag_based_pnp_calibrator
tag_based_sfm_calibrator
point_cloud_accumulator
tier4_ground_plane_utils
tier4_tag_utils
tunable_static_tf_broadcaster
camera
car_sim_gazebo
lidar_to_grid
carla_ad_agent_cpp
carla_ad_agent_cpp
controller_modules
controller_modules
general_modules
general_modules
my_pnc
my_pnc
planner_modules
planner_modules
approaching_emergency_vehicle_plugin
arbitrator
basic_autonomy
bsm_generator
carma_cloud_client
carma_cooperative_perception
carma_guidance_plugins
carma_wm
carma_wm_ctrl
cooperative_lanechange
frame_transformer
gnss_to_map_convertor
guidance
inlanecruising_plugin
intersection_transit_maneuvering
lci_strategic_plugin
light_controlled_intersection_tactical_plugin
lightbar_manager
localization_manager
mobilitypath_publisher
mobilitypath_visualizer
mock_controller_driver
motion_computation
motion_prediction_visualizer
object_detection_tracking
object_visualizer
plan_delegator
platooning_control
platooning_strategic_ihp
platooning_tactical_plugin
points_map_filter
port_drayage_plugin
pure_pursuit_wrapper
roadway_objects
route
route_following_plugin
sci_strategic_plugin
stop_and_dwell_strategic_plugin
stop_and_wait_plugin
stop_controlled_intersection_tactical_plugin
subsystem_controllers
system_controller
traffic_incident_parser
trajectory_executor
trajectory_follower_wrapper
trajectory_visualizer
yield_plugin
cartesian_compliance_controller
cartesian_controller_base
cartesian_controller_handles
cartesian_controller_simulation
cartesian_controller_utilities
cartesian_force_controller
cartesian_motion_controller
cddp_mpc
centerpoint
orbbec_camera
orbbec_camera
realsense_gazebo_plugin
realsense_gazebo_plugin
realsense_gazebo_plugin
realsense_gazebo_plugin
realsense_gazebo_plugin
xarm_api
xarm_api
xarm_controller
xarm_controller
xarm_gazebo
xarm_gazebo
xarm_moveit_servo
xarm_moveit_servo
xarm_planner
xarm_planner
rf2o_laser_odometry
rf2o_laser_odometry
rf2o_laser_odometry
clearpath_diagnostics
clearpath_hardware_interfaces
lynx_motor_driver
puma_motor_driver
cloisim_ros_base
cloisim_ros_bringup
cloisim_ros_bringup_param
robolaunch_cloudy_hardware
robolaunch_cloudy_navigation
co_lrio
cmcl_ros
crs_application
crs_area_selection
crs_gazebo_plugins
crs_gui
crs_perception
simple_distrib
simple_s
turtlesim
turtlesim
dynamic_offloading
consai_robot_controller
consai_vision_tracker
robocup_ssl_comm
constrained_manipulability
lip_walking_trot_planner
static_walk_planner
teleoperate_robot
hqp_controller
gpio_caterpillar
action_tutorials_cpp_co
demo_nodes_cpp_co
costmap_depth_camera
cslam_experiments
fast_lio
fast_lio
fast_lio
fast_lio
icp_registration
icp_registration
point_lio
costmap_converter
costmap_converter
costmap_converter
costmap_converter
costmap_converter
teb_local_planner
teb_local_planner
teb_local_planner
teb_local_planner
teb_local_planner
imu_complementary_filter
imu_complementary_filter
imu_complementary_filter
imu_complementary_filter
linefit_ground_segmentation_ros
linefit_ground_segmentation_ros
linefit_ground_segmentation_ros
cuUKF
cuda_blackboard
cugo_ros2_control
myviz
audio_demos
audio_test
camera_picture
motion_action
motion_action
moto_contor_test
my_launch
my_weakup
nav2_control_demo
nav2_test
ptz_camera
skin_manager
skin_manager
stair_find
talk_something
wifi_ip
wifi_test
camera_base
camera_service
camera_utils
cyberdog_locomotion
cyberdog_miloc
mivins
algorithm_manager
behavior_manager
cyberdog_emergency_stop
cyberdog_trajectory_checker
cyberdog_rosbag_recorder
lidar_obstacle_layer
map_label_server
nav2_recoveries
nav2_recoveries
nav2_recoveries
navigation_bringup
positionchecker
velocity_adaptor
cyberdog_occmap
cyberdog_bms
cyberdog_bms
cyberdog_body_state
cyberdog_lightsensor
cyberdog_obstacle_detection
cyberdog_scene_detection
cyberdog_utils
cyberdog_utils
cyberdog_decisionmaker
cyberdog_decisionutils
audio_assistant
audio_interaction
cyberdog_audio
cyberdog_audio
cyberdog_camera
cyberdog_led
cyberdog_touch
cascade_lifecycle_msgs
cyberdog_rviz2_control_plugin
cyber_guide
ros_bridge
sim_base
cyberdog_example
cyberdog_gazebo
cyberdog_description
cyberdog_description
cyberdog_visual
bt_navigators
mcr_controller
mcr_global_planner
mcr_msgs
mcr_planner
mcr_tracking_components
mcr_uwb
mcr_voice
cybergear_m5_driver
cybergear_maintenance_tools
cybergear_socketcan_driver
cyberrunner_camera
cyberrunner_dynamixel
example_cpp
example_interfaces_rclcpp
example_interfaces_rclpy
example_service_rclcpp
example_topic_rclcpp
example_action_rclcpp
example_action_rclpy
example_parameters_rclcpp
nav2_pure_pursuit_controller
nav2_pure_pursuit_controller
nav2_pure_pursuit_controller
mara_gazebo_plugins
bcap_service
bcap_service_interfaces
denso_robot_control
denso_robot_core
denso_robot_core_interfaces
monocular_depth
dero
detector_msg
cyberdog_uwb
device_manager
dgl_ros
dgl_ros_interfaces
dgl_ros_models
dgl_ros_moveit
diablo_rviz2_control_plugin
diablo_simpose_trans
driver_motor
differential_bot_controller
republisher_cpp
dobot_msgs_v3
cr_robot_ros2
dobot_msgs_v4
armors_choose_node
info_separate
armor_detector_first
armor_detector_second
armor_tracker
armor_tracker
rm_serial_driver
rm_serial_driver
rm_serial_driver
hik_camera_first
hik_camera_second
mindvision_camera
hesai_ros_driver
hesai_ros_driver
hesai_ros_driver
controls
sjtu_drone_description
sjtu_drone_description
sjtu_drone_description
drone_pose_estimation
cro_control
dual_ur_moveit_api
ur_calibration
ur_calibration
ur_robot_driver
ur_robot_driver
ur_robot_driver
print_trajectory
receive_command
robot_control
rtde_driver
dynamic_object_removal
gravity_compensation
eagle_mpc_2_control
eagle_mpc_2_interfaces
run_grasp_execution
run_grasp_planner
run_waypoint_execution
emd_dynamic_safety
emd_grasp_execution
emd_grasp_planner
emd_waypoint_execution
easy_perception_deployment
controller
controller
ecat_pkg
gui_pkg
input_pkg
log_pkg
safety_pkg
move_joint
lab2_mirror
lab3_puppet
"package name"
eddiebot_bringup
eddiebot_odom
eddiebot_vel_controller
edgeyolo_ros_cpp
rplidar_ros
eeuv_sim
bridge_test
ekf_cal
elfin_basic_api
elfin_description
elfin_ethercat_driver
elfin_ros_control
emcl2
emcl2
epuck_ros2_camera
epuck_ros2_driver
esc_move_base_mapping
esc_move_base_msgs
esc_move_base_planning
eskf_gnss_imu_localization
eskf_lio
joystick_control_esp32
ethercat_driver
ethercat_driver
navigation_package
explore_ros2
extended_map_server
extended_mapping_msgs
ebot_description
ebot_description
ebot_nav2
ebot_nav2
gazebo_ros2_control
dummy_car
lane_follow
opponent_predictor
gap_follow
safety_node
scan_matching
stanley_avoidance
wall_follow
waypoint_generator
waypoint_generator
fast_livo
bspline
bspline
fast_planner
path_searching
plan_env
plan_manage
poly_traj
quadrotor_msgs
quadrotor_msgs
fastlio2
hba
pgo
arm_controller
feetech_scs_hardware
feetech_scs_interface
feetech_sts_interface
field_occupy_slam_2d
example_fish_protocol
fixed_size_image_transport
flex_nav_behaviors
flex_nav_common
flex_nav_controllers
flex_nav_planners
flexiv_robot_states_broadcaster
gpio_controller
joint_impedance_controller
flexiv_gripper
flexiv_hardware
flexmap_fusion
flock2
ee_pose_broadcaster
fd_clutch_broadcaster
fd_inertia_broadcaster
fd_hardware
former_auto_docking
former_gpio_board
former_hardware_interface
four_wheel_steering_controller
franka_teleop
fairino_hardware
frenet_planner_ported
ngp_ros2
tracking
armor_detector
armor_detector
armor_detector
armor_solver
rm_camera_driver
rune_detector
rune_detector
rune_solver
rm_utils
gaden_environment
gaden_filament_simulator
gaden_msgs
gaden_player
gaden_preprocessing
simulated_anemometer
simulated_gas_sensor
simulated_tdlas
gsl_server
gazebo_ackermann_steering_vehicle
gazebo_gridmap_plugin
gazebo_map_creator
gazebo_map_creator_ign
gazebo_mecanum_plugins
gazebo_ros_four_wheel_steering
darknet_ros_3d
cpp_action_pkg
cpp_first_pkg
cpp_service_pkg
cpp_service_tutorial
cpp_topic_pkg
gcamp_gazebo
action_tutorials_cpp
action_tutorials_cpp
hello_world
ros2_practice
giraffe_hardware
glim_ros
gmrf_gas_mapping
gmsl_ros2
go2_sdk_integration
rl_deploy
rl_deploy_nav
go2py_bridge
sportmode_nav2
grid_fast
grid_fast_msgs
gscam2
guide_dog_unitree_go1
ign_rviz
ign_rviz_common
ign_rviz_plugins
h264_image_transport
h6x_internship_gazebo
m01_pkg_cpp
m02_pkg_cpp
m03_pkg_cpp
hadabot_latency
hadabot_driver
ev3
tb3
hdl_global_localization
hdl_global_localization
hdl_localization
hdl_localization
hk_camera
dnn_benchmark_example
dnn_node
dnn_node_example
dnn_node_sample
hm_cpp_package
hoverboard_hardware_interface
hunav_gazebo_wrapper
hunav_agent_manager
hunav_msgs
hunav_rviz2_panel
hunter_base
husarion_ugv_battery
husarion_ugv_diagnostics
husarion_ugv_gazebo
husarion_ugv_hardware_interfaces
husarion_ugv_lights
husarion_ugv_manager
husarion_ugv_utils
dubins_hybrid_star
grid_map_publisher
map_inflate
path_generator
path_generator
reeds_shepp_hybrid_astar
hyperdog_msgs
hyperdog_teleop
i2c_pwm_board
i2c_pwm_board_calibration
iahrs_driver
interfaces
icuas25_competition
ifm3d_ros2
ros2_linkattacher
rviz_imu_plugin
rviz_imu_plugin
nav2_gradient_costmap_plugin
nav2_gradient_costmap_plugin
nav2_gradient_costmap_plugin
nav2_msg_costmap_plugin
nav2_msg_costmap_plugin
ig_lio_c_msgs
external_torque_sensor_broadcaster
impedance_controller
iiwa_hardware
iiwa_moveit2
ik_benchmarking
ike_controller
ike_costmap_2d
ike_localization
ike_map_server
ike_nav_msgs
ike_nav_rviz_plugins
ike_nav_server
ike_planner
ike_waypoint_follower
image2rtsp
imu_ros2
imu_estimator
imu_zupt
myworkcell_core
lesson_perception
py_perception
snp_motion_planning
snp_motion_planning
snp_application
snp_application
snp_motion_execution
snp_scanning
snp_tpp
snp_tpp
cal_demo_intrinsics
cal_demo_motion
pick_and_place_application
inference_helper_sample_ros
connector
cyberdog_action
cyberdog_ai_sports
cyberdog_face
cyberdog_interactive
cyberdog_vp_abilityset
cyberdog_vp_engine
cyberdog_vp_terminal
image_transmission
rclc
rclc_parameter
irc_ros_bringup
irc_ros_hardware
isaac_diffbot_sim
isaac_diffbot_sim
velocity_pub
velocity_pub
velocity_pub
isaac_manipulator_pick_and_place
isaac_manipulator_servers
isaac_ros_apriltag
isaac_ros_argus_camera
isaac_ros_benchmark
isaac_ros_common
isaac_ros_h264_decoder
isaac_ros_h264_encoder
isaac_ros_cumotion_moveit
isaac_ros_bi3d
isaac_ros_nitros_bi3d_inference_param_array_type
isaac_ros_dnn_image_encoder
isaac_ros_tensor_proc
isaac_ros_tensor_rt
isaac_ros_triton
isaac_ros_ess
isaac_ros_bi3d_freespace
isaac_ros_depth_image_proc
isaac_ros_image_proc
isaac_ros_stereo_image_proc
isaac_ros_segformer
isaac_ros_segment_anything
isaac_ros_unet
isaac_ros_occupancy_grid_localizer
isaac_ros_pointcloud_utils
isaac_ros_vda5050_nav2_client
isaac_ros_managed_nitros
custom_nitros_dnn_image_encoder
custom_nitros_image
custom_nitros_message_filter
custom_nitros_string
isaac_ros_nitros
isaac_ros_nitros_bridge_ros2
isaac_ros_nitros_topic_tools
isaac_ros_nitros_battery_state_type
isaac_ros_nitros_camera_info_type
isaac_ros_nitros_compressed_image_type
isaac_ros_nitros_compressed_video_type
isaac_ros_nitros_correlated_timestamp_type
isaac_ros_nitros_detection2_d_array_type
isaac_ros_nitros_detection3_d_array_type
isaac_ros_nitros_disparity_image_type
isaac_ros_nitros_encoder_ticks_type
isaac_ros_nitros_flat_scan_type
isaac_ros_nitros_image_type
isaac_ros_nitros_imu_type
isaac_ros_nitros_occupancy_grid_type
isaac_ros_nitros_odometry_type
isaac_ros_nitros_point_cloud_type
isaac_ros_nitros_pose_array_type
isaac_ros_nitros_pose_cov_stamped_type
isaac_ros_nitros_std_msg_type
isaac_ros_nitros_tensor_list_type
isaac_ros_nitros_twist_type
nvblox_image_padding
realsense_splitter
nvblox_nav2
nvblox_ros
nvblox_ros_common
isaac_ros_detectnet
isaac_ros_rtdetr
isaac_ros_yolov8
isaac_ros_centerpose
isaac_ros_dope
isaac_ros_foundationpose
isaac_ros_pose_proc
isaac_ros_visual_slam
joy2twist
global_interface
global_interface
robot_decision
yasmin
yasmin_demos
yasmin_ros
yasmin_viewer
kachaka_vision
kachaka_grpc_ros2_bridge
kalman_filter_localization
kalman_arm_controller
kalman_arm_utils
kalman_hardware
kalman_master
kalman_slam
kinect_ros2
kitti_to_ros2bag
kmr_behaviortree
kmr_bringup
kmr_communication
kmr_manipulator
kmr_moveit2
kmr_msgs
kmr_simulation
lifelong_msgs
layered_hardware
lbr_demos_advanced_cpp
lbr_demos_cpp
lbr_moveit_cpp
lbr_fri_ros2
lbr_ros2_control
ldlidar_ros2
lego_loam_sr
lego_loam_sr
cloud_msgs
cloud_msgs
leo_explorer
libsurvive_ros2
lidar_auto_docking
lidar_camera_calib
lidar_cluster
lidar_feature_extraction
imu_integration
lidar_feature_map_loader
lidar_feature_mapping
lidar_graph_slam
lidar_graph_slam_utils
lidar_scan_matcher
points_prefiltering
lidarbot_base
ros2_livox_simulation
ros2_livox_simulation
lightnet_trt
limo_base
lineturtle
livox_ros2_driver
livox_ros2_driver
livox_to_pointcloud2
llama_bt
llama_demos
llama_ros
graph_based_localization
imu_odometry
kf_based_localization
lidar_localization
lidar_mapping
lidar_odometry
lidar_odometry
loosely_lio_mapping
lpslam
lucid_vision_driver
motor_control
lynxmotion_ssc32u_controllers
lynxmotion_ssc32u_driver
slam_toolbox
interbotix_aloha
black_box
cyberdog_manager
cyberdog_permission
low_power_consumption
manager_base
user_info_manager
manta_v2_gazebo_ros2_control
manymove_cpp_trees
manymove_hmi
manymove_msgs
manymove_object_manager
manymove_planner
manymove_signals
map_visualizer
autoware_hmi
autoware_local_map_provider
autoware_local_mission_planner
autoware_mission_lane_converter
mapora
marathon_log_nodes
marathon_ros2_bringup
marathon_ros2_wp_manager
simulation_gazebo
orbslam3
gazebo_plugins_mode
marscar_gazebo_ros2
marsupial_simulator_ros2
buoy_gazebo
buoy_tests
mdi_daq_converter
mdi_lib
mdi_msgs
mdi_node
melfa_description
melfa_driver
melfa_io_controllers
mep3_behavior
mep3_hardware
mep3_navigation
merlin2_action
merlin2_bt_action
merlin2_pddl_generator
merlin2_plan_dispatcher
merlin2_planner
mesh_navigation_tutorials_sim
mg400_interface
mg400_joy
mg400_node
mg400_plugin_base
mg400_rviz_plugin
mh_amcl
slam_gmapping
slam_gmapping
mickrobot_bringup
imu_100d4_node
oradar_lidar
remote_microcontroller
miivii_gmsl_camera
mini_pupper_simulation
minimec_control
minimec_driver
gazebo_env
mix_net
ti_mmwave_ros2_pkg
drl_agent_interfaces
mobRobURDF_description
qualisys_driver
remote_modbus_rtu
elec_skin
motion_bridge
motion_manager
moveit_core
moveit_core
moveit_planners_chomp
chomp_motion_planner
moveit_planners_ompl
moveit_planners_ompl
pilz_industrial_motion_planner
pilz_industrial_motion_planner_testutils
moveit_resources_prbt_ikfast_manipulator_plugin
moveit_simple_controller_manager
moveit_simple_controller_manager
moveit_py
moveit_ros_benchmarks
moveit_hybrid_planning
moveit_ros_move_group
moveit_ros_occupancy_map_monitor
moveit_ros_occupancy_map_monitor
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_planning_interface
moveit_ros_robot_interaction
moveit_ros_tests
moveit_ros_trajectory_cache
moveit_ros_visualization
moveit_ros_visualization
moveit_ros_warehouse
moveit_setup_app_plugins
moveit_setup_assistant
moveit_setup_controllers
moveit_setup_core_plugins
moveit_setup_framework
moveit_setup_simulation
hello
grid_creator_plugin
examples
multipletopics
navigation
talklisten
base_node
nav_node
mtrx3760
turtlebot_example
mujoco_ros_py
mujoco_ros2_control
mujoco_ros2_control_demos
my_robot
go2_exploration
unitree_nav
unitree_nav
marl_planner
decomp_ros_utils
decomp_ros_utils
env_builder
mapping_util
multi_agent_planner
planner_crazyswarm_bridge
multidim_rrt_cpp
franka_control2
franka_example_controllers
franka_gripper
franka_hardware
multi_mode_controller_impl
panda_motion_generators
franka_robot_state_broadcaster
franka_semantic_components
garmi_controllers
multiverse_control
robot_sim
rplidar_ros2
rplidar_ros2
rplidar_ros2
ros2_astra_camera
robot
robot_debug
robot_gazebo
myactuator_rmd_hardware
mycobot_hardware_interface
mybuddy
mecharm
mecharm_pi
myarm_300
myarm_c650
myarm_m750
mycobot_280
mycobot_280_arduino
mycobot_280_moveit2_control
mycobot_280_rdkx5
mycobot_280_riscv
mycobot_280_x3pi
mycobot_280jn
mycobot_280pi
mycobot_320
mycobot_320_riscv
mycobot_320pi
mycobot_600
mycobot_630
mypalletizer_260
mypalletizer_260_pi
ultraarm
agv_proto
tb3_autonomy
nav2_mpc_controller
nav_drone_bt_navigator
nav_drone_controller
nav_drone_core
nav_drone_costmap_3d
nav_drone_dumb_planner
nav_drone_mpc_controller
nav_drone_msgs
nav_drone_pid_controller
nav_drone_planner
nav_drone_regulated_pure_pursuit_controller
nav_drone_theta_star_planner
nav_drone_util
planner
planner
planner
simulator
nav2_sms_behavior
nav2_sms_behavior
nav2_straightline_planner
nav2_straightline_planner
nav2_straightline_planner
pid_controller
map_management
ground_seg
occupancy_cpp
rrt
voltron_test_utils
web_video_server
map_manager
navigation_runner
onboard_detector
ndt_2d
nebula_decoders
nebula_ros
negotiated
negotiated_examples
neo_localization2
neo_mpc_planner2
neuronbot2_bringup
neuronbot2_gazebo
nexus_calibration
nexus_capabilities
nexus_common
nexus_demos
nexus_endpoints
nexus_gazebo
nexus_lifecycle_manager
nexus_motion_planner
nexus_robot_controller
nexus_rviz_plugins
nexus_system_orchestrator
nexus_transporter
nexus_workcell_orchestrator
rpicam_ai_interface
servo_control
stepper_control
nmpc_px4_ros2
nmpc_px4_ros2_utils
nns_ros2_bridge
norlab_icp_mapper_ros
isaac_ros_segway_rmp
nova_carter_docking
oakd_s2
oasis_drivers_cpp
oasis_perception_cpp
octomap_server
octomap_server
odas_ros
odrive_node
odrive_hardware_interface
odrive_hardware_interface
copilot
okvis
omnidirectional_controllers
omo_r1mini_gazebo
amr_visualisation
demo
demo
open_planner
openbot_driver
openbot_ros
openbot_rviz
openbot_simulator
opencv_cam
open_mower_next
opennav_coverage
opennav_coverage_bt
opennav_coverage_demo
opennav_coverage_msgs
opennav_coverage_navigator
opennav_row_coverage
action
common_utils
tf2_demos
timer
topic
decomp_ros_msgs
ros2_math
nav2_linear_quadratic_regulator_controller
mpc_controller
robotic_assets
ros2_controller_msgs
fast_methods
gridmap_ros
nav2_demos
a_star_planner
breadth_first_search_planner
bug_planner
cubic_spline_planner
d_star_lite_planner
d_star_planner
depth_first_planner
dijkstra_planner
dubins_path_planner
eta3_spline_planner
flow_filed_planner
frenet_optimal_trajectory_planner
greedy_best_first_search_planner
hybrid_a_star_planner
informed_rrt_star_planner
potential_field_planner
quintic_polynomials_planner
rrt_dubins_planner
rrt_planner
rrt_star_planner
state_lattice_planner
voronoi_planner
wave_front_planner
cgmres_nmpc_tracking
lqr_speed_steer_control_tracking
model_predictive_speed_steer_control_tracking
pure_pursuit_tracking
rear_wheel_feedback_tracking
stanley_controller_tracking
sdf_tools
voronoi_layer
quad_behavior_tree
quad_bt_navigator
quad_common
quad_controller
quad_core
quad_costmap
quad_map_server
quad_msgs
quad_planner
quad_robot_driver
quad_rviz_plugins
quad_gazebo
quad_system_tests
quad_utils
face_cropping
map_image_generator
opentera_webrtc_robot_gui
opentera_webrtc_ros
openvmp_control_interactive
openvmp_hardware_configuration
openvmp_hardware_manager
openvmp_hardware_simulation_gazebo
openvmp_robot
openvmp_robot_don1
orange_sensor_tools
depth_map_creator
ros2_orb_slam3
ros2_orb_slam3
orca_base
orca_nav2
orca_shared
ornis
gripper_control
mission_control
object_detection
quad_control
spectacular_vio
vicon
osr_gazebo
ovc
ovc_driver_ros2
bio_ik
nick_bot
nick_bot_hw_interface
packml_plugin
packml_ros
packml_sm
fake_vel_transform
ign_sim_pointcloud_tool
loam_interface
pca9685_hardware_interface
pcd2pgm
pcl_apps
pcl_example
pcl_tutorial
pcl_type_adapter
autopilot
pegasus_console
estimator_manager
mavlink_interface
mocap_emulator
pendulum_state_publisher
pendulum_utils
perception_msgs_rviz_plugins
tf2_perception_msgs
person_following_robot
pi3hat_hardware_interface
picamera_ros2
minibot_hardware_interface
pix_hooke_driver
uuv_assistants
uuv_gazebo_ros_plugins
uuv_sensor_ros_plugins
uuv_world_ros_plugins
main_function
lf_simple
p9n_interface
p9n_test
pcl_compression
pointcloud_to_grid
points_inspector
px4_ros_extended
fuzzy_generator
control_toolbox
march_gain_scheduler
march_gait_planning
march_hardware_builder
march_system_interface
march_ik_solver
march_input_device
march_mode_machine
march_state_estimator
march_vision
march_safety
march_logger_cpp
march_utility
gimbal_plugin
starling_mavros_extras
psd_controller
custom_teleop
psd_gazebo_worlds
psd_perception
px4
bridge_mocap_px4
px4_manipulation
example_executor_with_multiple_modes_cpp
example_mode_fw_attitude_cpp
example_mode_goto_cpp
example_mode_goto_global_cpp
example_mode_manual_cpp
example_mode_with_executor_cpp
example_mode_rtl_replacement_cpp
example_global_navigation_cpp
example_local_navigation_cpp
px4_ros2_cpp
px4_offboard_lowlevel
custom_mode
px4_swarm_controller
pylon_ros2_camera_component
pylon_ros2_camera_wrapper
pylon_instant_camera
pyrobosim_msgs
pyrobosim_ros
qt6_ros2_template
joystick_input
keyboard_input
unitree_joystick_input
gz_quadruped_hardware
controller_common
quik
velocity_controller
canbus
map_creation
ground_plane_segmenter
racing_lmpc
vanilla_controller
racing_lmpc_launch
racing_lqr
racing_mpc
racing_simulator
ekf_state_estimator
lmpc_transform_helper
lmpc_utils
base_vehicle_model
double_track_planar_model
kinematic_bicycle_model
racing_trajectory
single_track_planar_model
vehicle_model_factory
radar_robotcar_dataset_ros2
radar_layer
dv_trigger
hik_camera
img_recognizer
judge_bridge
livox_v1_lidar
livox_v2_lidar
nn_detector
pc_aligner
pc_detector
target_matcher
target_multiplexer
exps
rae_camera
rae_hw
rai_whatisee
rai_state_logs
ranger_base
pid_command_controller
arm_system_hwi
head_system_hwi
neck_system_hwi
reachy_gazebo_gripper_glue
realsense_ros2
sorter_client
autoware_reference_system
autoware_reference_system
reference_system
reference_system
region_detection_rclcpp
cart_pole_observation
simulation_control
remroc_mapf_solver
rknpu2_ros_yolov5
buff_detector
buff_detector
buff_tracker
rm_gimbal_controller
rm_pioneer_hardware
point_lio_cxr
rmcl_ros
rmcs_core
rmcs_executor
rmcs_msgs
rmoss_auto_aim
rmoss_base
rmoss_cam
rmoss_projectile_motion
rmoss_util
rmoss_gz_base
rmoss_gz_bridge
rmoss_gz_cam
segwayrmp
rmua19_gazebo_simulator
rmuc21_ignition_simulator
rmw_iceoryx2_cxx_demo_nodes
test_wasm
ros2web_example_cpp
roarm_description
roarm_moveit_ikfast_plugins
rj_robocup
brain
game_controller
booster_interface
booster_msgs
game_controller_interface
vision_interface
vision
scanmatcher_custom
robot_collision_checking
robot_control_system
roboteq_ros2_driver
absenc_interface
service_client
sil
usb_cam
custom_nav2_planner
custom_robots
rim
robotiq_gripper_gazebo_plugins
robovision_images
robovision_processing
robovision_rgbd
robovision_services
rw_common_util
attitude_controller
joy_to_twist
mcu_ros_driver
localization_debug
motiodom
otos_driver
tailoc_ros2
depth_merger
detect_ar_marker
occupancy_grid_map_maker
perception_debug
thrown_object_estimator
path_follower
rw_simple_planning_simulator
wp2wp_planner
my_cpp_pkg
turtle_controller_cpp
my_pkg
gst_bridge
gst_pipeline
gst_pipeline_plugins
gst_pipeline_plugins_webrtc
file_server2
rosbag2_record_launcher
example
saye_control
saye_localization
saye_msgs
ros2_bdi_bringup
ros2_bdi_core
ros2_bdi_skills
ros2_bdi_utils
ros2_bdi_on_litter_world
ros2_bdi_on_webots
ros2_bdi_tests
camera_node
simple_action
simple_backward_compatible
simple_client
simple_latency_test
simple_logger
simple_multithread
simple_parameter
simple_publisher
simple_service
simple_subscriber
simple_tf
simple_time_sync
interbotix_footswitch_driver
interbotix_slate_driver
dynamixel_workbench_toolbox
interbotix_xs_sdk
interbotix_xsarm_joy
interbotix_xsarm_puppet
interbotix_moveit_interface
interbotix_tf_tools
interbotix_perception_pipelines
interbotix_xs_ros_control
interbotix_xs_rviz
moveit_visual_tools
clearpath_playpen
gazebo_launch
lms1xx
husky_base
cmd_vel_mux
kobuki_keyop
kobuki_node
kobuki_control
kobuki_gazebo
kobuki_launch
kobuki_navigation
minimal_pkg
actions_example_cpp
complete_actions_cpp
namespaces_examples
smp_example
custom_topic_cpp
aruco_detector
ros2_usb_camera
rqt_image_view
parameters_example_cpp
pub_sub_components
simple_service_cpp
topic_pubsub_cpp
gui_node
ros2-hoverboard-driver
igus_rebel_commander
igus_rebel_gripper_controller
igus_rebel_hw_controller
ros2-lifecycle-monitoring
mecanumbot_controller
mecanumbot_hardware
mecanumbot_teleop
mocap_optitrack_client
mocap_optitrack_inv_kin
mocap_optitrack_w2b
ouster_h5
ouster_perf
ouster_ptp
potential_field
composition_benchmark
irobot_benchmark
irobot_interfaces_plugin
memory_benchmark
performance_metrics
performance_test_examples
performance_test_factory
picas_example
picas_example_mt
trace_picas
ros2_cpp_all_pkg
ros2_cpp_component_pkg
ros2_cpp_lifecycle_pkg
ros2_cpp_pkg
ros_sec_test
my_first_ros_rclcpp_pkg
tf2_rclcpp_example
time_rclcpp_example
topic_service_action_rclcpp_example
example_launch_testing_ament_cmake
cpp_calc
unity_diffbot_sim
ublox_gps
ublox_gps
cpp_turtlesim
vicon_receiver
learning_action_cpp
ros2_amr_interface
astra_camera
cpp_service
cpp_topic
custom_interfaces
custom_interfaces
ros2_behavior_tree_example
ros2_benchmark
custom_msg_ros2
ros2_bt_utils
custom_msg_visualizer_example
custom_msg_visualizer_msgs
computer_vision
motor_controller
ros2_control_demo_example_1
ros2_control_demo_example_1
ros2_control_demo_example_10
ros2_control_demo_example_11
ros2_control_demo_example_12
ros2_control_demo_example_14
ros2_control_demo_example_16
ros2_control_demo_example_2
ros2_control_demo_example_3
ros2_control_demo_example_4
ros2_control_demo_example_5
ros2_control_demo_example_6
ros2_control_demo_example_7
ros2_control_demo_example_8
ros2_control_demo_example_9
dc_core
dc_destinations
dc_util
data_flow_scheduler
ros2_day_example
epick_controllers
gpio_control
gpio_controllers
example_plugin_manager
example_plugins
vision_examples
ros2_examples
ros2_lib
sub_pub_torture_test
fanuc_control
fanuc_eth_ip
fanuc_rmi
fanuc_srvs
fanuc_srvs_msgs
ch2_node_cpp
ch3_component
ch3_logging_cpp
ch3_param_cpp
ch3_plugin_alpha
ch3_plugin_beta
ch3_plugin_main
ch4_service_cpp
ch4_topic_cpp
ch5_action_cpp
ch5_tf2_cpp
ch6_bag_cpp
ch6_unittest_cpp
ch7_diagnostics_cpp
ch7_msgfltr_cpp
client_service_example
publisher_subscriber_example
composition
demo_nodes_cpp
demo_nodes_cpp_native
dummy_map_server
dummy_sensors
image_tools
intra_process_demo
logging_demo
pendulum_control
quality_of_service_demo_cpp
topic_statistics_demo
examples_rclcpp_minimal_action_client
examples_rclcpp_minimal_action_server
examples_rclcpp_minimal_composition
examples_rclcpp_cbg_executor
examples_rclcpp_multithreaded_executor
examples_rclcpp_minimal_client
examples_rclcpp_minimal_service
examples_rclcpp_minimal_timer
examples_rclcpp_minimal_publisher
examples_rclcpp_minimal_subscriber
turtle_tf2_cpp
time_api_test
turtlesim_controller
learning_topic_cpp
learning_interface
learning_pkg_cpp
learning_pkg_cpp_sub
ros2_ipcamera
lifecycle_examples
lazy_subscriber
service_with_introspection
change_logging_level
ros2_kitti_publishers
ros2_knowledge_graph
ros2_knowledge_graph_msgs
ros2_knowledge_graph_terminal
ros2_laser_scan_matcher
ros2_laser_scan_merger
separate_processes
navigation_tb3
navigation_tb3
nodes
point_cloud_perception
action_tutorial
use_library
use_library
dynamic_tf2_publisher
parameters
publisher_and_subscriber
service_server_and_client
start_with_simple_nodes
leg_detector
ros2_logging_fmt
metafly_control
metafly_high_cpp
metafly_listener
rvo
native_adapters
net_ft_diagnostic_broadcaster
net_ft_driver
occupancy_grid
occupancy_grid
ros2_odrive_can
drone_control
pcl_object_detection
moveit_ur5_interface
moveit_ur5_msgs
pnp_actionlib
pnp_msgs
pid_tuner
time_sync
vehicle_sim
velocity_control
example_system
ros2_pigpio
plansys2_bt_example
plansys2_cascade_example
plansys2_multidomain_example
plansys2_patrol_navigation_example
plansys2_simple_example
plansys2_simple_example_py
ros2_qtcanbus
control_arm_move
force_position_control
get_arm_state
rm_control
rm_driver
rm_example
robotarium_gazebo
ros2_data
rover_navigation
ros2_serial_example
ros2_shm_demo
ros2srrc_data
ros2srrc_execution
ros2_stm32_bridge
pp_infer
tcp_tunnel
ros2_template_pkg
ros2_timer_latency_measurement
tms_db_manager
tms_msg_db
tms_sp_machine
tms_ts_manager
tms_ts_subtask
village_wang
ros2_agents
ros2_agents_interfaces
ex01_first_package
ex02_gazebo_simulation
ex03_state_estimation
ex04_actions
ex04_msgs
ex04_nav2_client
ex05_behavior_trees
ex05_bt_plugins
usb_camera_driver
convert_to_joint_states
foot_step_planner
kinematics
robot_bringup
robot_bringup
robot_manager
robot_recorder
robot_visualizer
walking_pattern_generator
walking_stabilization_controller
webots_robot_handler
whill_auto_stop
transcript_manager
whisper_server
ros2_best_practice
learn_dds_cpp
learn_lifecyclenode_cpp
learn_message_filter_cpp
status_display
demo_cpp_topic
demo_cpp_service
demo_cpp_tf
cpp_pubsub
cpp_pubsub
cpp_pubsub
cpp_srvcli
cpp_srvcli
ros2_payload
ros2_payload
testpkg_action
testpkg_action
testpkg_cmake_python
testpkg_cmake_python
moveit_task_constructor
fusion_estimator
sport_control
ros2webots_rosbot
am_rviz_plugins
rviz_animated_view_controller
view_controller_msgs
ros2_code
perception_msgs
braitenberg_vehicle
tutorial
rosgraph_monitor
ros_nextjs_pkg
odrive_can
odrive_ros2_control
functional_programming_tests
minimal_integration_test
naive
rcl_handle
actions_ros2
example_test
intro_ros2
lifecycle_nodes_ros2
parameters_ros2
ros2talk_msgs
services_ros2
rosbag2_snapshot
rosbag2_to_pcd
chat
client_service
number_pubsub
teleop_twist_joy
nav2_read_rssi_at_waypoint
rosbot_hardware_interfaces
inverted_pendulum_example_2_1
inverted_pendulum_example_2_2
inverted_pendulum_example_2_3
camera_demo_3_2
camera_demo_4_1
camera_demo_4_2
controlko_controllers
controlko_hardware_interface
blind_path_follower
otto_deliberation
ur_palletization
pyrobosim_btcpp
pyrobosim_flexbe_btcpp
rosidl_typeadapter_protobuf_test
rosplane
rosplane_extra
rosplane_gcs
rosplane_sim
rosplane_tuning
rpi_robot_bringup
fix2nmea
rtt_ros2
rtt_ros2_node
rtt_ros2_params
rtt_ros2_services
rtt_ros2_topics
rtt_ros2_rclcpp_typekit
rviz_embed_test
rws
imu-ros2node
get_parameter
geometry
concealer
openscenario_interpreter
openscenario_interpreter_example
openscenario_preprocessor
openscenario_visualization
behavior_tree_plugin
do_nothing_plugin
simple_sensor_simulator
simulation_interface
traffic_simulator
scout_base
behaviortree_cpp
icp_relocalization
behavior_ext_plugins
costmap_intensity
rm_decision_cpp
mkeros2
cyberdog_gps
cyberdog_lidar
cyberdog_tof
cyberdog_ultrasonic
sensor_manager
serow_ros2
bar_ros2
sim_car
car_gazebo_plugin
sim_cf2
sim_wayp_plan_tools
spl_lio_sam
simple_line_follower
hello_moveit_ur
hello_moveit_ur
simple_arm_control
sky360-ros-iron-heartbeat
sky360_camera
sky360_image_processing
sky360_monitoring
sky360_tracking
sky360_visualizers
ackermann_mux
vesc_ackermann
vesc_driver
slicer_ros2_module
slim_bridge
small_gicp_relocalization
smart_battery_driver
smart_diffbot_hardware
smart_diffbot_msgs
smart_diffbot_navigation
lane_detector
smart_rviz_plugin
umrr_ros2_driver
social_force_window_planner
social_nav2_goal_updaters
social_nav2_msgs
social_nav2_plugins
social_nav2_tooling
astar_path_planner
controllers
coordinate_transform
mapping
mineral_deposit_tracking
obstacle_detector
peak_finder
ground_station
space_station_base
space_station_communication
space_station_electrical
space_station_gnc
space_station_service
space_station_thermal
spaceros_gz_demos
spdlog_ros
mcmt_detect
mcmt_msg
spot_controllers
spot_driver
spot_hardware_interface
spot_ros2_control
stage_ros2
start_creating_robots
steam_icp
stella_vslam_ros
stingray_devices
stingray_movement
stingray_utils
stretch_calibration
stretch_octomap
communication
hardware
okvis_ros
pose_graph
example_app
system_monitor_ros
debug_map
kalman_filter
cluster
dynamic_cloud
tdt_vision
rosbag_player
ld14
tb3_controller_cpp
uol_tidybot_control
techman_robot_utility_scripts
tm_driver
tm_driver
tm_gazebo_plugin
tm_status
orbslam2
tello_driver
tello_driver
tello_gazebo
tello_gazebo
theta_driver
tiago_simulator
tide_hw_interface
tide_gimbal_controller
tide_shooter_controller
custom_package
ui_for_debug_and_demo
topnode
topological_rviz_tools
torcs_img_publisher
torcs_ros_client
torcs_ros_drive_ctrl
tortoisebot_firmware
tracer_base
aruco_tracker
precision_land
traversability_estimation
triton_controls
triton_example
triton_gazebo
triton_object_recognition
triton_pid_controller
control_proxy
icp_odometry
model
perf
route_follower
routing
simulator_2d
visualization
waypoint_follower
conference
camera_driver
global_user
serialport
armor_processor
buff_processor
buff
filter
imu_filter_madgwick
imu_filter_madgwick
spatio_temporal_voxel_layer
robot_localization
turtle_controller_cpp_py
tutorial_pkg
launch_pkg
params_pkg
transforms
diagnostics
lifecycle
two_wheeled_robot
digitaltwin
uav_control_plugin
ubr1_demo
ubr_teleop
explore_lite
ldlidar
robot_pose_publisher
vizanti_cpp
vizanti_demos
vizanti_server
ugv_base_node
ugv_bringup
ugv_chat_ai
ugv_interface
ugv_slam
ugv_tools
ugv_vision
ugv_web_app
pendulum_robot_description
pendulum_control_description
unitree_lidar_ros2
unitree_lidar_ros2
adx_data_ros
particle_filter
path_logger
path_publisher
purepursuit
champ_base
champ_bringup
champ_gazebo
a1_driver
unitree_inspection
unitree_ocr
unitree_controller
unitree_gazebo
ros2_unitree_legged_control
universal_robot_ign
plansys2_upf_plan_solver
hybrid_planning_demo
processit_cax
processit_program
processit_tasks
gazebo_grasp_plugin_ros
gazebo_version_helpers
ur5e_gripper_control
dual_ur_robotiq_rs_description
ur_robotiq_rs_description
dual_plan
find_hole
pick_and_place
sim_package
gpsx
rtab_package
urc_arm
urc_bringup
urc_bt
urc_bt_nodes
urc_controllers
urc_gazebo
urc_hw
urc_localization
urc_msgs
path_planning
trajectory_following
urc_orchestrator
urc_perception
urc_platform
ros2_control_blue_reach_5
uwrt_mars_rover_drivetrain_hw
v2x
v2x_ros_driver
vanttec_can_comms
usv_comms
usv_control
usv_localization
usv_missions
trajectory_tracking_mpc
sensors
vda5050_template_package
vdb_mapping_ros2
betaflight_controller
betaflight_demo
betaflight_gazebo
vehicle_gateway_betaflight
vehicle_gateway_demo
vehicle_gateway_multi
vehicle_gateway_px4
vehicle_gateway_sim_performance
ghost_estimation
ghost_planners
ghost_ros
ghost_localization
ghost_sensing
ghost_sim
ghost_example_pkg
ghost_example_robot
ghost_swerve_mpc_planner
simple_control_node
generic_camera_node
via_simulation_bridge_node
lane_line_perception_node
traffic_sign_detection_node
visualization_node
vidu_ros2_wrapper
camera_models
global_fusion
loop_fusion
vins
ar_demo
benchmark_publisher
camera_model
feature_tracker
vins_estimator
vision_msgs_rviz_plugins
my_msg_package
my_services_tutorial
controller_pkg
planner_pkg
lab_5
lab_6
lab_7
lab_8
voicevox_ros2
dp_adapt_backs_controller
pid_controller_dp
pid_controller_dp_euler
los_guidance
reference_filter_dp
thrust_allocator_auv
thruster_interface_auv
archived_vox_nav_drake_ros
archived_vox_nav_grid_map
archived_vox_nav_openvslam
vox_nav_control
vox_nav_map_server
vox_nav_misc
vox_nav_navigators
vox_nav_planning
vox_nav_utilities
vox_nav_waypoint_nav_clients
gnss_bridge
gnss_listener
gnss_provider
gnss_someip_lib
vtr_lidar
vtr_mission_planning
vtr_navigation
vtr_path_planning
vtr_radar
vtr_radar_lidar
vtr_storage
vtr_tactic
vtr_torch
docs_turtlesim
dds2vulcanexus
demo_keys_cpp
demo_keys_filtering_cpp
vulcanexus_change_mutable_qos
my_bot
wamv_gz
costmap
map_memory
odometry_spoof
radar_vis
carla_config
hd_map
occupancy
occupancy_segmentation
wayp_plan_tools
humanoid_centroidal_mpc
humanoid_centroidal_mpc_ros2
humanoid_common_mpc
humanoid_common_mpc_pyutils
humanoid_common_mpc_ros2
humanoid_wb_mpc
humanoid_wb_mpc_ros2
remote_control
g1_centroidal_mpc
g1_wb_mpc
whisper_ros
wiln
capstone_interfaces
wpr_simulation2
xicro_pkg
perception_nn_msgs
pnc_proto_package
planning_package
debug_tool_package
dynamic_model_simulator_package
emlanes_simulator_package
perception_simulator_package
rviz_xju_panel
rviz_xju_plugins
mecanum_drive_controller
yahboom_rosmaster_docking
yahboom_rosmaster_gazebo
yahboom_rosmaster_navigation
yahboom_rosmaster_system_tests
yarp-devices-ros2
k3lso_moteus
yolact_ros2_3d
yolov9mit_ros
yolox_ros_cpp
youfork_teleop
z1_hardware_interface
zed_aruco_localization
zed_depth_to_laserscan
zed_topic_benchmark
zed_topic_benchmark_component
zed_tutorial_depth
zed_ipc
zed_tutorial_pos_tracking
zed_rgb_convert
zed_tutorial_video
zed_components
zed_wrapper

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rclcpp at Robotics Stack Exchange

No version for distro noetic. Known supported distros are highlighted in the buttons above.

rclcpp package from rclcpp repo

rclcpp rclcpp_lifecycle

Package Summary

Tags No category tags.
Version 0.4.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rclcpp.git
VCS Type git
VCS Version ardent
Last Updated 2017-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The ROS client library in C++.

Additional Links

No additional links.

Maintainers

  • Dirk Thomas

Authors

No additional authors.
README
No README found. No README in repository either.
CHANGELOG
No CHANGELOG found.

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged rclcpp at Robotics Stack Exchange

rclcpp package from rclcpp repo

rclcpp rclcpp_lifecycle

Package Summary

Tags No category tags.
Version 0.5.1
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rclcpp.git
VCS Type git
VCS Version bouncy
Last Updated 2018-06-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The ROS client library in C++.

Additional Links

No additional links.

Maintainers

  • Dirk Thomas

Authors

No additional authors.
README
No README found. No README in repository either.
CHANGELOG

Changelog for package rclcpp

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

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged rclcpp at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.6.5
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rclcpp.git
VCS Type git
VCS Version crystal
Last Updated 2019-12-05
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The ROS client library in C++.

Additional Links

No additional links.

Maintainers

  • Dirk Thomas

Authors

No additional authors.
README
No README found. No README in repository either.
CHANGELOG

Changelog for package rclcpp

0.6.5 (2019-12-05)

0.6.4 (2019-04-06)

0.6.3 (2019-02-08)

  • Added the ability to get parameters in a map. (#575)
    • Backported by (#619) for Crystal.
  • Fix errors from uncrustify v0.68 (#613)
    • Backported by #616 for Crystal.
  • Contributors: Chris Lalancette, Jacob Perron, Steven! Ragnarök

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

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged rclcpp at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.8.5
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rclcpp.git
VCS Type git
VCS Version eloquent
Last Updated 2020-12-04
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The ROS client library in C++.

Additional Links

No additional links.

Maintainers

  • Dirk Thomas

Authors

No additional authors.
README
No README found. No README in repository either.
CHANGELOG

Changelog for package rclcpp

0.8.5 (2020-12-04)

  • Warn about unused result of add_on_set_parameters_callback (#1238) (#1243)
  • fix exception message on rcl_clock_init. (#1194)
  • Check if context is valid when looping in spin_some (#1167)
  • Fix spin_until_future_complete: check spinning value (#1023)
  • Fix lock-order-inversion (potential deadlock) (#1135) (#1137)
  • Don't specify calling convention in std::_Binder template (#952) (#1006)
  • Add missing service callback registration tracepoint (#986) (#1004)
  • Allow node clock use in logging macros (#969) (#970) (#981)
  • Complete published event message when declaring a parameter (#928) (#966)
  • Contributors: Christophe Bedard, DongheeYe, Ivan Santiago Paunovic, Jacob Perron, Sean Kelly, Shane Loretz, tomoya

0.8.4 (2020-01-17)

  • Intra-process subscriber should use RMW actual qos (ros2#913) (#914) (#965)
  • Contributors: Todd Malsbary

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

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
cartographer_ros
costmap_converter
depthimage_to_laserscan
diagnostic_updater
self_test
filters
gazebo_plugins
gazebo_ros
tf2_kdl
tf2_ros
camera_calibration_parsers
camera_info_manager
image_transport
theora_image_transport
interactive_markers
joy
laser_geometry
laser_proc
nonpersistent_voxel_layer
ntpd_driver
pcl_conversions
phidgets_accelerometer
phidgets_analog_inputs
phidgets_digital_inputs
phidgets_digital_outputs
phidgets_gyroscope
phidgets_high_speed_encoder
phidgets_magnetometer
phidgets_motors
phidgets_spatial
phidgets_temperature
pointcloud_to_laserscan
realtime_tools
robot_state_publisher
turtlesim
rqt_gui_cpp
rqt_image_view
rviz2
rviz_common
rviz_default_plugins
slam_toolbox
spatio_temporal_voxel_layer
teleop_twist_joy
urg_node
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
vision_msgs_rviz_plugins
action_tutorials_cpp
composition
demo_nodes_cpp
demo_nodes_cpp_native
dummy_map_server
dummy_sensors
image_tools
intra_process_demo
logging_demo
pendulum_control
quality_of_service_demo_cpp
examples_rclcpp_minimal_action_client
examples_rclcpp_minimal_action_server
examples_rclcpp_minimal_client
examples_rclcpp_minimal_composition
examples_rclcpp_minimal_publisher
examples_rclcpp_minimal_service
examples_rclcpp_minimal_subscriber
examples_rclcpp_minimal_timer
examples_rclcpp_multithreaded_executor
message_filters
nav2_amcl
nav2_behavior_tree
nav2_bt_navigator
nav2_controller
nav2_core
nav2_costmap_2d
costmap_queue
dwb_core
dwb_critics
dwb_plugins
nav2_map_server
nav2_msgs
nav2_navfn_planner
nav2_planner
nav2_recoveries
nav2_rviz_plugins
nav2_system_tests
nav2_util
nav2_voxel_grid
nav2_waypoint_follower
popf
rclc
rclc_parameter
rclcpp_action
rclcpp_components
rclcpp_lifecycle
tlsf_cpp
ros1_bridge
plansys2_bringup
plansys2_domain_expert
plansys2_executor
plansys2_lifecycle_manager
plansys2_msgs
plansys2_pddl_parser
plansys2_planner
plansys2_problem_expert
plansys2_terminal
tracetools_test
ros2lifecycle_test_fixtures
rosbag2_test_common
rosbag2_tests
rosbag2_transport
rosbag2_bag_v2_plugins
system_modes
system_modes_examples
v4l2_camera
ros_core
ros2_ouster
sick_scan2
kobuki_velocity_smoother

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rclcpp at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.7.16
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rclcpp.git
VCS Type git
VCS Version dashing
Last Updated 2021-05-21
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The ROS client library in C++.

Additional Links

No additional links.

Maintainers

  • Dirk Thomas

Authors

No additional authors.
README
No README found. No README in repository either.
CHANGELOG

Changelog for package rclcpp

0.7.16 (2021-05-21)

  • Fix documented example in create_publisher. (#1558) (#1560)
  • Fix NodeOptions copy constructor. (#1376) (#1466)
  • Contributors: Ivan Santiago Paunovic, Jacob Perron

0.7.15 (2020-11-24)

  • Fix implementation of NodeOptions::use_global_arguments(). (#1176) (#1206)
  • Fix conversion of negative durations to messages. (#1188) (#1207)
  • Type conversions fixes. (#901) (#1209)
  • Add operator!= for duration (#1236) (#1277)
  • Contributors: Ivan Santiago Paunovic, Michel Hidalgo, Monika Idzik

0.7.14 (2020-07-10)

  • Fixed doxygen warnings. (#1208)
  • Check if context is valid when looping in spin_some. (#1167)
  • Fix spin_until_future_complete: check spinning value. (#1023)
  • Fix exception on rcl_clock_init. (#1195)
  • Fix lock-order-inversion (potential deadlock). (#1138)
  • Contributors: Alejandro Hernández Cordero, DongheeYe, Ivan Santiago Paunovic, tomoya

0.7.13 (2020-03-12)

  • Don't specify calling convention in std::_Binder template. (#1015)
  • Contributors: Jacob Perron, Sean Kelly

0.7.12 (2019-12-05)

0.7.11 (2019-10-11)

  • Fix [get_node_*_interface]{.title-ref} functions taking a pointer (#870).
  • Fix hang with timers in [MultiThreadedExecutor]{.title-ref} (#869).
  • Contributors: Todd Malsbary, ivanpauno

0.7.10 (2019-09-23)

0.7.9 (2019-09-20)

  • add mutex in add/remove_node and wait_for_work to protect concurrent use/change of memory_strategy_ (#837) (#857)
  • Contributors: Zachary Michaels

0.7.8 (2019-09-06)

0.7.7 (2019-07-31)

  • Enabled the creation of a parameter YAML file which is applied to each node. (#805)
  • Fixed a signed/unsigned integer comparison compiler warning. (#804)
  • Changed the QoS profile used when subscribing to parameter events to match the publishing side, i.e. rmw_qos_profile_parameter_events. (#798)
  • Changed the logic in TimeSource to ignore use_sim_time parameter events coming from other nodes. (#803)
  • Added missing default values in the NodeParametersInterface. (#794)
  • Added support for const member callback functions. (#763)
  • Contributors: Esteve Fernandez, Gonzo, Karsten Knese, Michel Hidalgo, Scott K Logan

0.7.6 (2019-06-12)

  • 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, Shane Loretz, 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

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
apriltag_ros
bondcpp
test_bond
cartographer_ros
cloudwatch_logger
cloudwatch_metrics_collector
costmap_converter
depthimage_to_laserscan
diagnostic_updater
self_test
fmi_adapter
gazebo_plugins
gazebo_ros
tf2_kdl
tf2_ros
h264_video_encoder
health_metric_collector
camera_calibration_parsers
camera_info_manager
image_transport
depth_image_proc
image_proc
image_publisher
image_rotate
image_view
stereo_image_proc
theora_image_transport
joy
kinesis_video_streamer
laser_geometry
laser_proc
lex_node
ml_classifiers
nonpersistent_voxel_layer
pacmod3
pcl_conversions
phidgets_accelerometer
phidgets_analog_inputs
phidgets_digital_inputs
phidgets_digital_outputs
phidgets_gyroscope
phidgets_high_speed_encoder
phidgets_magnetometer
phidgets_motors
phidgets_spatial
phidgets_temperature
realtime_tools
robot_localization
robot_state_publisher
turtlesim
rosauth
rqt_gui_cpp
rqt_image_view
rt_usb_9axisimu_driver
rviz2
rviz_common
rviz_default_plugins
slam_toolbox
spatio_temporal_voxel_layer
teleop_twist_joy
turtlebot3_fake_node
turtlebot3_gazebo
urg_node
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
vision_msgs_rviz_plugins
web_video_server
composition
demo_nodes_cpp
demo_nodes_cpp_native
dummy_map_server
dummy_sensors
image_tools
intra_process_demo
logging_demo
pendulum_control
quality_of_service_demo_cpp
dolly_follow
examples_rclcpp_minimal_action_client
examples_rclcpp_minimal_action_server
examples_rclcpp_minimal_client
examples_rclcpp_minimal_composition
examples_rclcpp_minimal_publisher
examples_rclcpp_minimal_service
examples_rclcpp_minimal_subscriber
examples_rclcpp_minimal_timer
message_filters
nav2_amcl
nav2_behavior_tree
nav2_bt_navigator
nav2_costmap_2d
costmap_queue
dwb_controller
dwb_core
dwb_critics
dwb_plugins
nav2_dynamic_params
nav2_map_server
nav2_msgs
nav2_navfn_planner
nav2_recoveries
nav2_rviz_plugins
nav2_system_tests
nav2_util
nav2_voxel_grid
nav2_world_model
rclcpp_action
rclcpp_components
rclcpp_lifecycle
tlsf_cpp
ros1_bridge
controller_manager
controller_parameter_server
tracetools_test
rosbag2_test_common
rosbag2_tests
rosbag2_transport
rosbag2_bag_v2_plugins
system_modes
system_modes_examples
serial_driver
udp_driver
v4l2_camera
ros_core
raptor_dbw_can
raptor_dbw_joystick
raptor_pdu
raspimouse
realsense_ros2_camera
ros2_ouster
sick_scan2
aws_ros2_common
object_analytics_node
object_analytics_rviz

Launch files

No launch files found

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged rclcpp at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 9.2.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rclcpp.git
VCS Type git
VCS Version galactic
Last Updated 2022-12-07
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The ROS client library in C++.

Additional Links

No additional links.

Maintainers

  • Ivan Paunovic
  • Mabel Zhang
  • William Woodall

Authors

  • Dirk Thomas

rclcpp

The ROS client library in C++.

Visit the rclcpp API documentation for a complete list of its main components and features.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

CHANGELOG

Changelog for package rclcpp

9.2.2 (2022-12-06)

  • Fix returning invalid namespace if sub_namespace is empty (#1810)
  • use regex for wildcard matching (#1987)
  • Add statistics for handle_loaned_message (#1933)
  • Contributors: Aaron Lipinski, Barry Xu, Chen Lihui, M. Hofstätter

9.2.1 (2022-04-28)

  • Add test-dep ament_cmake_google_benchmark (#1904) (#1909)
  • Use parantheses around logging macro parameter (#1820) (#1822)
  • Contributors: mergify[bot]

9.2.0 (2021-09-17)

  • Added thread safe for_each_callback_group method (#1741)
  • Added a function rclcpp::wait_for_message() convenience function (#1705) (#1740)
  • Fixed a documentation bug (#1719) (#1720)
  • Contributors: Aditya Pande, Karsten Knese, mergify[bot]

9.1.0 (2021-05-20)

  • Allow declaring uninitialized statically typed parameters. (#1673) (#1681)
  • [service] Don't use a weak_ptr to avoid leaking. (#1668) (#1670)
  • Contributors: Jacob Perron, Ivan Santiago Paunovic

9.0.3 (2021-05-10)

  • Use OnShutdown callback handle instead of OnShutdown callback (#1639) (#1650)
  • use dynamic_pointer_cast to detect allocator mismatch in intra process manager (#1643) (#1644)
  • Increase cppcheck timeout to 500s (#1634)
  • Clarify node parameters docs (#1631)
  • Contributors: 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_]{.title-ref} 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]{.title-ref} 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]{.title-ref} to [Waitable]{.title-ref} and [data]{.title-ref} to [AnyExecutable]{.title-ref} (#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]{.title-ref} (#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) (#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

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
behaviortree_cpp
bondcpp
test_bond
cartographer_ros
control_toolbox
depthai_bridge
depthai_examples
depthai_ros_msgs
depthimage_to_laserscan
diagnostic_aggregator
diagnostic_updater
self_test
dynamixel_workbench_toolbox
filters
foxglove_bridge
gazebo_plugins
gazebo_ros
geometric_shapes
test_tf2
tf2_geometry_msgs
tf2_kdl
tf2_ros
turtle_tf2_cpp
gscam
camera_calibration_parsers
camera_info_manager
image_transport
depth_image_proc
image_proc
image_publisher
image_rotate
image_view
stereo_image_proc
theora_image_transport
imu_complementary_filter
imu_filter_madgwick
rviz_imu_plugin
interactive_marker_twist_server
interactive_markers
joy
joy_linux
spacenav
wiimote
laser_filters
laser_geometry
laser_proc
log_view
mapviz
mapviz_plugins
multires_image
tile_map
mavros
mavros_extras
moveit_core
moveit_planners_chomp
chomp_motion_planner
moveit_planners_ompl
pilz_industrial_motion_planner
pilz_industrial_motion_planner_testutils
moveit_resources_prbt_ikfast_manipulator_plugin
moveit_simple_controller_manager
moveit_py
moveit_ros_benchmarks
moveit_hybrid_planning
moveit_ros_move_group
moveit_ros_occupancy_map_monitor
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_robot_interaction
moveit_ros_tests
moveit_ros_trajectory_cache
moveit_ros_visualization
moveit_ros_warehouse
moveit_setup_app_plugins
moveit_setup_assistant
moveit_setup_controllers
moveit_setup_core_plugins
moveit_setup_framework
moveit_setup_simulation
moveit_visual_tools
naoqi_driver
nonpersistent_voxel_layer
ntpd_driver
octomap_server
octomap_rviz_plugins
ov_core
ov_eval
ov_init
ov_msckf
pal_statistics
pcl_conversions
pcl_ros
phidgets_accelerometer
phidgets_analog_inputs
phidgets_digital_inputs
phidgets_digital_outputs
phidgets_gyroscope
phidgets_high_speed_encoder
phidgets_magnetometer
phidgets_motors
phidgets_spatial
phidgets_temperature
plotjuggler
plotjuggler_ros
pointcloud_to_laserscan
pose_cov_ops
quaternion_operation
rc_genicam_driver
realtime_tools
robot_localization
robot_state_publisher
turtlesim
rplidar_ros
rqt_gui_cpp
rqt_image_view
rtabmap_ros
rviz2
rviz_common
rviz_default_plugins
rviz_visual_tools
sbg_driver
slam_toolbox
spatio_temporal_voxel_layer
swri_console
teleop_twist_joy
turtlebot3_fake_node
turtlebot3_gazebo
twist_mux
ublox_gps
ur_calibration
ur_robot_driver
urg_node
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
velodyne_gazebo_plugins
vision_msgs_rviz_plugins
warehouse_ros
warehouse_ros_mongo
warehouse_ros_sqlite
smacc2
lifecyclenode_client
nav2z_planners_common
undo_path_global_planner
sm_advanced_recovery_1
sm_husky_barrel_search_1
sm_multi_stage_1
sm_pack_ml
sm_respira_1
sm_three_some
boost_geometry_util
cascade_lifecycle_msgs
rclcpp_cascade_lifecycle
action_tutorials_cpp
composition
demo_nodes_cpp
demo_nodes_cpp_native
dummy_map_server
dummy_sensors
image_tools
intra_process_demo
logging_demo
pendulum_control
quality_of_service_demo_cpp
topic_statistics_demo
dolly_follow
domain_bridge
examples_rclcpp_minimal_action_client
examples_rclcpp_minimal_action_server
examples_rclcpp_minimal_composition
examples_rclcpp_cbg_executor
examples_rclcpp_multithreaded_executor
examples_rclcpp_minimal_client
examples_rclcpp_minimal_service
examples_rclcpp_minimal_timer
examples_rclcpp_minimal_publisher
examples_rclcpp_minimal_subscriber
fluent_rviz
gazebo_ros2_control
gazebo_ros2_control_demos
ign_rviz
ign_rviz_common
ign_rviz_plugins
kobuki_velocity_smoother
message_filters
micro_ros_diagnostic_bridge
nao_lola
nav2_amcl
nav2_behavior_tree
nav2_bt_navigator
nav2_controller
nav2_core
nav2_costmap_2d
costmap_queue
dwb_core
dwb_critics
dwb_plugins
nav2_map_server
nav2_msgs
nav2_navfn_planner
nav2_planner
nav2_recoveries
nav2_regulated_pure_pursuit_controller
nav2_rotation_shim_controller
nav2_rviz_plugins
nav2_smac_planner
nav2_system_tests
nav2_theta_star_planner
nav2_util
nav2_voxel_grid
nav2_waypoint_follower
nmea_hardware_interface
performance_test
popf
rclc_parameter
rclcpp_action
rclcpp_components
rclcpp_lifecycle
rcss3d_agent
tlsf_cpp
rmf_fleet_adapter
rmf_task_ros2
rmf_traffic_ros2
rmf_building_sim_common
rmf_building_sim_gazebo_plugins
rmf_building_sim_ignition_plugins
rmf_robot_sim_common
rmf_robot_sim_gazebo_plugins
rmf_robot_sim_ignition_plugins
rmf_visualization_rviz2_plugins
rmf_visualization_schedule
ros1_bridge
controller_manager
joint_limits_interface
diff_drive_controller
effort_controllers
force_torque_sensor_broadcaster
forward_command_controller
gripper_controllers
imu_sensor_broadcaster
joint_state_broadcaster
joint_trajectory_controller
position_controllers
velocity_controllers
plansys2_bringup
plansys2_bt_actions
plansys2_core
plansys2_domain_expert
plansys2_executor
plansys2_lifecycle_manager
plansys2_msgs
plansys2_pddl_parser
plansys2_planner
plansys2_popf_plan_solver
plansys2_problem_expert
plansys2_terminal
plansys2_tests
plansys2_tools
ros2_socketcan
tracetools_test
ros2lifecycle_test_fixtures
ros2launch_security_examples
rosbag2_compression
rosbag2_compression_zstd
rosbag2_cpp
rosbag2_performance_benchmarking
bag_recorder_nodes
rosbag2_test_common
rosbag2_tests
rosbag2_transport
rosbag2_bag_v2_plugins
rqt_image_overlay
rqt_image_overlay_layer
rt_manipulators_examples
sick_safetyscanners2
simple_actions
soccer_marker_generation
system_modes
system_modes_examples
test_launch_system_modes
test_cli
test_cli_remapping
test_communication
test_quality_of_service
test_rclcpp
test_security
topic_tools
io_context
serial_driver
udp_driver
ntrip_client_node
ublox_dgnss_node
ublox_nav_sat_fix_hp_node
v4l2_camera
ros_core
webots_ros2_control
webots_ros2_driver
ign_ros2_control
ign_ros2_control_demos
jlb_pid
ros2_ouster
vda5050_connector
ros_ign_bridge
ros_ign_gazebo
ros_ign_image
stubborn_buddies
irobot_create_nodes
irobot_create_toolbox
irobot_create_gz_toolbox
foros
foros_examples
foros_inspector
rslidar_msg
turtlebot4_node
turtlebot4_cpp_examples
turtlebot4_base
turtlebot4_ignition_toolbox
turtlebot4_cpp_tutorials

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rclcpp at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 2.4.3
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rclcpp.git
VCS Type git
VCS Version foxy
Last Updated 2023-05-27
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The ROS client library in C++.

Additional Links

No additional links.

Maintainers

  • Dirk Thomas

Authors

No additional authors.

rclcpp

The ROS client library in C++.

Visit the rclcpp API documentation for a complete list of its main components and features.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

CHANGELOG

Changelog for package rclcpp

2.4.3 (2023-05-27)

  • Do not attempt to use void allocators for memory allocation. (backport #1657) (#2004)
  • Contributors: Michel Hidalgo

2.4.2 (2022-07-25)

  • Add statistics for handle_loaned_message (#1927) (#1934)
  • Add test-dep ament_cmake_google_benchmark (#1904) (#1910)
  • Use parantheses around logging macro parameter (#1820) (#1823)
  • Contributors: Abrar Rahman Protyasha, Barry Xu, Gaël Écorchard

2.4.1 (2022-01-31)

  • Fix subscription instrumentation for ConstSharedPtr[WithInfo]Callback (#1872)
  • Add node_waitables_ to copy constructor (backport #1799) (#1834)
  • Fix returning invalid namespace if sub_namespace is empty (#1658) (#1811)
  • [service] Don't use a weak_ptr to avoid leaking (#1668) (#1669)
  • Use dynamic_pointer_cast to detect allocator mismatch in intra process manager (backport #1643) (#1645)
  • Contributors: Abrar Rahman Protyasha, Christophe Bedard, Ivan Santiago Paunovic, M. Hofstätter, Michel Hidalgo, Tomoya Fujita, William Woodall

2.4.0 (2021-09-01)

  • Guard against integer overflow in duration conversion (#1584) (#1761)
  • Update for checking correct variable (#1534) (#1760)
  • Fix SEGV caused by order of destruction of Node sub-interfaces (#1469) (#1736)
  • Add wait for message API (#1705) (#1737)
  • Fix documentation bug (#1719) (#1721)
  • Fix clock thread issue (#1266) (#1267) (#1685)
  • Allow timers to keep up the intended rate in MultiThreadedExecutor #1516 (#1636) Backports #1516 and follow-up fix #1628
  • Contributors: Chen Lihui, Colin MacKenzie, Daisuke Sato, Jacob Perron, Karsten Knese, Tomoya Fujita, hsgwa, William Woodall

2.3.1 (2021-04-14)

  • Update quality declaration links (re: ros2/docs.ros2.org#52) (#1616)
  • Fix documented example in create_publisher (#1558) (#1559)
  • Fix runtime error: reference binding to null pointer of type (#1547) (#1548)
  • Contributors: Jacob Perron, Simon Honigmann, Tomoya Fujita

2.3.0 (2020-12-09)

  • Update QD to QL 1 (#1480)
  • Add performance tests for parameter transport (#1470)
  • Add benchmarks for node parameters interface (#1470)
  • Fix NodeOptions copy constructor (#1376) (#1451)
  • Avoid reference cycle to fix memory leak (#1301) (#1450)
  • Bump rclcpp packages to Quality Level 2 (#1445) (#1446)
  • Added executor benchmark tests (#1413)
  • Add service and client benchmarks (#1425)
  • Set CMakeLists to only use default rmw for benchmarks (#1427)
  • Initial benchmark tests for rclcpp::init/shutdown create/destroy node (#1411)
  • Use global namespace for parameter events subscription topic (#1257) (#1261)
  • Refactor test CMakeLists.txt (#1422) and moving rosidl_generate_interfaces_call (#1424) (#1437)
  • Update tracetools' QL in rclcpp's QD (#1428) (#1430)
  • Add coverage statement (#1367)
  • Update tracetools' QL to 2 in rclcpp's QD (#1187)
  • Fix reference to rclcpp in its QD (#1161)
  • Clear members for StaticExecutorEntitiesCollector to avoid shared_ptr dependency (#1303)
  • Increase test timeouts of slow running tests with rmw_connext_cpp (#1400)
  • Make sure to clean the external client/service handle. (#1296)
  • Increase coverage of WaitSetTemplate (#1368)
  • Increase coverage of guard_condition.cpp to 100% (#1369)
  • 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)
  • Only exchange intra_process waitable if nonnull (#1317)
  • 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.
  • Improve 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)
  • Add coverage tests graph_listener (#1330)
  • Add executor unit tests #1336 (#1395)
  • Add coverage for client API (#1329)
  • Increase service coverage (#1332)
  • Add ostream test for FutureReturnCode (#1327) (#1393)
  • Increase coverage of publisher/subscription API (#1325)
  • Add coverage for missing API (except executors) (#1326)
  • Add coverage tests context functions (#1321)
  • Increase coverage of node_interfaces, including with mocking rcl errors (#1322)
  • Add coverage for wait_set_policies (#1316)
  • Add tests type_support module (#1308)
  • Replace std_msgs with test_msgs in executors test (#1310)
  • Adding tests basic getters (#1291)
  • Refactor Subscription Topic Statistics Tests (#1281)
  • Fix topic stats test, wait for more messages, only check the ones with samples (#1274)
  • Fixes for unit tests that fail under cyclonedds (#1270)
  • initialize_logging_ should be copied (#1272)
  • Ability to configure domain_id via InitOptions (#1165)
  • Simplify and fix allocator memory strategy unit test for connext (#1252)
  • 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)
  • Unittests for memory strategy files, except allocator_memory_strategy (#1189)
  • EXPECT_THROW_EQ and ASSERT_THROW_EQ macros for unittests (#1232)
  • Parameterize test executors for all executor types (#1222) (#1386)
  • Derive and throw exception in spin_some spin_all for StaticSingleThreadedExecutor (#1385)
  • Add unit test for static_executor_entities_collector (#1221)
  • Unit tests for allocator_memory_strategy.cpp part 2 (#1198)
  • Unit tests for allocator_memory_strategy.hpp (#1197)
  • Unit tests for node interfaces (#1202)
  • Unit tests for some header-only functions/classes (#1181)
  • Add unit tests for logging functionality (#1184)
  • Fix rclcpp::NodeOptions::operator= (#1211)
  • Check period duration in create_wall_timer (#1178)
  • Throw exception if rcl_timer_init fails (#1179)
  • Remove finalization of guard_condition from GraphListener::__shutdown() (#1401)
  • Contributors: Alejandro Hernández Cordero, Chen Lihui, Chris Lalancette, Christophe Bedard, Devin Bonnie, Dirk Thomas, Jacob Perron, Jorge Perez, Louise Poubel, Michel Hidalgo, Scott K Logan, Stephen Brawner, tomoya

2.2.0 (2020-10-07)

  • Fix implementation of NodeOptions::use_global_arguments() (#1176) (#1372)
  • Fix conversion of negative durations to messages (#1188) (#1371)
  • Call vector.erase with end iterator overload (#1314) (#1380)
  • Check waitable for nullptr during constructor (#1315) (#1379)
  • Fix pub/sub count API tests. (#1203) (#1319)
  • Reorganize test directory and split CMakeLists.txt (#1173) (#1262)
  • Add operator!= for duration (#1236) (#1278)
  • Contributors: Ivan Santiago Paunovic, Jacob Perron, Jannik Abbenseth, Johannes Meyer, Michel Hidalgo, Stephen Brawner

2.1.0 (2020-08-03)

  • Warn about unused result of add_on_set_parameters_callback (#1238) (#1244)
  • Add missing RCLCPP_PUBLIC to ~StaticExecutorEntitiesCollector (#1227) (#1228)
  • Remove recreation of entities_collector (#1217) (#1224)
  • Contributors: Jacob Perron, brawner

2.0.2 (2020-07-07)

  • Link against thread library where necessary (#1210) (#1214)
  • Fix exception message on rcl_clock_init (#1182) (#1193)
  • Contributors: Dirk Thomas, tomoya

2.0.1 (2020-06-23)

  • Add create_publisher include to create_subscription (#1180) (#1192)
  • Fix get_node_time_source_interface() docstring (#988) (#1185)
  • Fixed doxygen warnings (#1163) (#1191)
  • Check if context is valid when looping in spin_some (#1167)
  • Fix spin_until_future_complete: check spinning value (#1023) Make Executor::spin_once_impl private before backporting, to avoid API compatibility issues
  • Add check for invalid topic statistics publish period (#1151) (#1172)
  • Contributors: Alejandro Hernández Cordero, Devin Bonnie, DongheeYe, Ivan Santiago Paunovic, Jacob Perron, Stephen Brawner

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) (#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

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
avt_vimba_camera
behaviortree_cpp_v3
bondcpp
test_bond
cartographer_ros
control_toolbox
create_driver
dataspeed_can_msg_filters
dataspeed_can_tools
dataspeed_can_usb
depthai_bridge
depthai_examples
depthai_filters
depthai_ros_driver
depthai_ros_msgs
depthimage_to_laserscan
diagnostic_aggregator
diagnostic_updater
self_test
dynamixel_workbench_toolbox
filters
find_object_2d
fmi_adapter
gazebo_plugins
gazebo_ros
geometric_shapes
test_tf2
tf2_geometry_msgs
tf2_kdl
tf2_ros
turtle_tf2_cpp
gscam
hls_lfcd_lds_driver
husky_base
camera_calibration_parsers
camera_info_manager
image_transport
depth_image_proc
image_proc
image_publisher
image_rotate
image_view
stereo_image_proc
theora_image_transport
imu_complementary_filter
imu_filter_madgwick
rviz_imu_plugin
interactive_marker_twist_server
interactive_markers
joy
joy_linux
spacenav
wiimote
laser_filters
laser_geometry
laser_proc
swri_console_util
swri_geometry_util
swri_image_util
swri_math_util
swri_roscpp
swri_route_util
swri_system_util
swri_transform_util
mavros
mavros_extras
moveit_core
moveit_planners_chomp
chomp_motion_planner
moveit_planners_ompl
pilz_industrial_motion_planner
pilz_industrial_motion_planner_testutils
moveit_resources_prbt_ikfast_manipulator_plugin
moveit_simple_controller_manager
moveit_py
moveit_ros_benchmarks
moveit_hybrid_planning
moveit_ros_move_group
moveit_ros_occupancy_map_monitor
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_robot_interaction
moveit_ros_tests
moveit_ros_trajectory_cache
moveit_ros_visualization
moveit_ros_warehouse
moveit_setup_app_plugins
moveit_setup_assistant
moveit_setup_controllers
moveit_setup_core_plugins
moveit_setup_framework
moveit_setup_simulation
naoqi_driver
nonpersistent_voxel_layer
novatel_oem7_driver
ntpd_driver
octomap_server
octomap_rviz_plugins
pal_statistics
pcl_conversions
pcl_ros
phidgets_accelerometer
phidgets_analog_inputs
phidgets_digital_inputs
phidgets_digital_outputs
phidgets_gyroscope
phidgets_high_speed_encoder
phidgets_magnetometer
phidgets_motors
phidgets_spatial
phidgets_temperature
plotjuggler
pointcloud_to_laserscan
pose_cov_ops
psen_scan_v2
quaternion_operation
rc_genicam_driver
realtime_tools
robot_controllers
robot_controllers_interface
robot_localization
robot_state_publisher
turtlesim
rosauth
rplidar_ros
rqt_gui_cpp
rqt_image_view
rt_usb_9axisimu_driver
rtabmap_conversions
rtabmap_odom
rtabmap_rviz_plugins
rtabmap_slam
rtabmap_sync
rtabmap_util
rtabmap_viz
rviz2
rviz_common
rviz_default_plugins
rviz_visual_tools
sbg_driver
slam_toolbox
spatio_temporal_voxel_layer
swri_console
teleop_twist_joy
turtlebot3_fake_node
turtlebot3_gazebo
tuw_geometry
tuw_msgs
twist_mux
ublox_gps
ur_calibration
ur_robot_driver
urg_node
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
velodyne_gazebo_plugins
vesc_ackermann
vesc_driver
vision_msgs_rviz_plugins
warehouse_ros
warehouse_ros_mongo
warehouse_ros_sqlite
smacc2
sm_advanced_recovery_1
sm_multi_stage_1
sm_respira_1
sm_three_some
aruco_opencv
boost_geometry_util
cascade_lifecycle_msgs
rclcpp_cascade_lifecycle
action_tutorials_cpp
composition
demo_nodes_cpp
demo_nodes_cpp_native
dummy_map_server
dummy_sensors
image_tools
intra_process_demo
logging_demo
pendulum_control
quality_of_service_demo_cpp
dolly_follow
dynamixel_hardware
examples_rclcpp_minimal_action_client
examples_rclcpp_minimal_action_server
examples_rclcpp_minimal_composition
examples_rclcpp_multithreaded_executor
examples_rclcpp_minimal_client
examples_rclcpp_minimal_service
examples_rclcpp_minimal_timer
examples_rclcpp_minimal_publisher
examples_rclcpp_minimal_subscriber
fluent_rviz
gazebo_ros2_control
gazebo_ros2_control_demos
kobuki_velocity_smoother
bosch_locator_bridge
message_filters
micro_ros_diagnostic_bridge
nav2_amcl
nav2_behavior_tree
nav2_bt_navigator
nav2_controller
nav2_core
nav2_costmap_2d
costmap_queue
dwb_core
dwb_critics
dwb_plugins
nav2_map_server
nav2_msgs
nav2_navfn_planner
nav2_planner
nav2_recoveries
nav2_regulated_pure_pursuit_controller
nav2_rviz_plugins
nav2_system_tests
nav2_util
nav2_voxel_grid
nav2_waypoint_follower
smac_planner
nmea_hardware_interface
odom_to_tf_ros2
performance_test
polygon_demos
popf
rclc_parameter
rclcpp_action
rclcpp_components
rclcpp_lifecycle
tlsf_cpp
rmf_fleet_adapter
rmf_task_ros2
rmf_traffic_ros2
rmf_building_sim_common
rmf_building_sim_gazebo_plugins
rmf_building_sim_ignition_plugins
rmf_robot_sim_common
rmf_robot_sim_gazebo_plugins
rmf_robot_sim_ignition_plugins
rmf_visualization_rviz2_plugins
rmf_visualization_schedule
ros1_bridge
controller_manager
joint_limits_interface
diff_drive_controller
effort_controllers
force_torque_sensor_broadcaster
forward_command_controller
gripper_controllers
imu_sensor_broadcaster
joint_state_broadcaster
joint_state_controller
joint_trajectory_controller
position_controllers
tricycle_controller
velocity_controllers
plansys2_bringup
plansys2_bt_actions
plansys2_core
plansys2_domain_expert
plansys2_executor
plansys2_lifecycle_manager
plansys2_msgs
plansys2_planner
plansys2_popf_plan_solver
plansys2_problem_expert
plansys2_terminal
plansys2_tests
ros2_socketcan
tracetools_test
ros2lifecycle_test_fixtures
rosbag2_compression
bag_recorder_nodes
rosbag2_test_common
rosbag2_tests
rosbag2_transport
rosbag2_bag_v2_plugins
rt_manipulators_examples
sick_safetyscanners2
simple_actions
system_modes
system_modes_examples
test_launch_system_modes
test_cli
test_cli_remapping
test_communication
test_quality_of_service
test_rclcpp
test_security
io_context
serial_driver
udp_driver
v4l2_camera
ros_core
vrpn_mocap
webots_ros2_control
webots_ros2_driver
vrxperience_bridge
clober_serial
clober_simulation
clpe_ros
crane_plus_control
crane_plus_examples
ds_dbw_can
ds_dbw_joystick_demo
dynamixel_hardware_interface
end_effector
ign_ros2_control
ign_ros2_control_demos
jlb_pid
lsc_ros2_driver
maliput_ros
mppic
openzen_driver
pal_gazebo_worlds
raptor_dbw_can
raptor_dbw_joystick
raptor_pdu
raspimouse
raspimouse_ros2_examples
realsense_hardware_interface
realsense_examples
realsense_node
realsense_ros
ros2_ouster
ros_ign_bridge
ros_ign_gazebo
ros_ign_image
roverrobotics_driver
sick_scan2
stubborn_buddies
system_metrics_collector
turtlebot3_manipulation_hardware
turtlebot3_manipulation_teleop

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rclcpp at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 21.0.8
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rclcpp.git
VCS Type git
VCS Version iron
Last Updated 2024-11-08
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

The ROS client library in C++.

Additional Links

No additional links.

Maintainers

  • Ivan Paunovic
  • Michel Hidalgo
  • William Woodall

Authors

  • Dirk Thomas
  • Jacob Perron

rclcpp

The ROS client library in C++.

Visit the rclcpp API documentation for a complete list of its main components and features.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

CHANGELOG

Changelog for package rclcpp

21.0.8 (2024-11-08)

  • associated clocks should be protected by mutex. (#2258)
  • Skip client_qos test (#2658)
  • Use the same context for the specified node in rclcpp::spin functions. (#2618)
  • Contributors: Cristóbal Arroyo, Tomoya Fujita

21.0.7 (2024-07-10)

  • Add test creating two content filter topics with the same topic name (#2550)
  • Revise the description of service configure_introspection() (#2514)
  • Contributors: Alejandro Hernández Cordero, Barry Xu

21.0.6 (2024-04-19)

  • address ambiguous auto variable. (#2486)
  • Contributors: Tomoya Fujita

21.0.5 (2024-02-07)

  • Fix data race in EventHandlerBase (#2387)
  • Contributors: mauropasse

21.0.4 (2023-11-17)

  • Disable the loaned messages inside the executor. (#2365)
  • Add missing 'enable_rosout' comments (#2346)
  • Address rate related flaky tests. (#2341)
  • Add missing stdexcept include (#2333)
  • Update SignalHandler get_global_signal_handler to avoid complex types in static memory (#2322)
  • Fix C++20 allocator construct deprecation (#2318)
  • Topic correct typeadapter deduction (#2298)
  • Contributors: AiVerisimilitude, Chen Lihui, Chris Lalancette, Jiaqi Li, Øystein Sture, Tomoya Fujita, William Woodall

21.0.3 (2023-09-08)

  • Do not crash Executor when send_response fails due to client failure. (#2279)
  • Add new node interface TypeDescriptionsInterface to provide GetTypeDescription service (#2236)
  • Contributors: Emerson Knapp, Tomoya Fujita, Zang MingJie

21.0.2 (2023-07-14)

  • Fix warnings related to comparison of integer expressions of different signedness (#2222)
  • Fix race condition in events-executor (#2191)
  • Contributors: Alberto Soragna, Tomoya Fujita

21.0.1 (2023-05-11)

  • Fix delivered message kind (#2175) (#2178)
  • Contributors: mergify[bot]

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]{.title-ref} classes (#1975)" (#2009) (#2010)
  • force compiler warning if callback handles not captured (#2000)
  • Revert "Add a [create_timer]{.title-ref} method to [Node]{.title-ref} and [LifecycleNode]{.title-ref} classes (#1975)" (#2009)
  • Add a [create_timer]{.title-ref} method to [Node]{.title-ref} and [LifecycleNode]{.title-ref} 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,...]]{.title-ref} (#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>]{.title-ref} 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)

  • Support to defer to send a response in services. (#1709) Signed-off-by: Ivan Santiago Paunovic <<ivanpauno@ekumenlabs.com>>
  • Fix documentation bug. (#1719) Signed-off-by: William Woodall <<william@osrfoundation.org>>
  • Contributors: Ivan Santiago Paunovic, William Woodall

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_]{.title-ref} 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]{.title-ref} 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]{.title-ref} to [Waitable]{.title-ref} and [data]{.title-ref} to [AnyExecutable]{.title-ref} (#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]{.title-ref} (#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) (#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

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Dependant Packages

Name Deps
apriltag_ros
aruco_ros
avt_vimba_camera
behaviortree_cpp
bondcpp
test_bond
cartographer_ros
cartographer_rviz
control_toolbox
depthai_bridge
depthai_examples
depthai_filters
depthai_ros_driver
depthai_ros_msgs
depthimage_to_laserscan
diagnostic_aggregator
diagnostic_updater
self_test
dynamixel_workbench_toolbox
dynamixel_sdk_examples
filters
find_object_2d
fmi_adapter
foxglove_bridge
fuse_constraints
fuse_core
fuse_graphs
fuse_loss
fuse_models
fuse_optimizers
fuse_publishers
fuse_tutorials
fuse_variables
gazebo_plugins
gazebo_ros
gazebo_video_monitor_plugins
geometric_shapes
test_tf2
tf2_geometry_msgs
tf2_kdl
tf2_ros
tf2_sensor_msgs
turtle_tf2_cpp
gps_tools
gpsd_client
grid_map_cv
grid_map_demos
grid_map_msgs
grid_map_pcl
grid_map_ros
grid_map_rviz_plugin
grid_map_visualization
gscam
hls_lfcd_lds_driver
camera_calibration_parsers
camera_info_manager
image_transport
depth_image_proc
image_proc
image_publisher
image_rotate
image_view
stereo_image_proc
theora_image_transport
imu_processors
imu_transformer
imu_complementary_filter
imu_filter_madgwick
rviz_imu_plugin
interactive_marker_twist_server
interactive_markers
joy
joy_linux
spacenav
wiimote
laser_filters
laser_geometry
laser_proc
log_view
mapviz
mapviz_plugins
multires_image
tile_map
swri_console_util
swri_geometry_util
swri_image_util
swri_math_util
swri_roscpp
swri_route_util
swri_system_util
swri_transform_util
mavros
mavros_extras
moveit_core
moveit_planners_chomp
chomp_motion_planner
moveit_planners_ompl
pilz_industrial_motion_planner
pilz_industrial_motion_planner_testutils
moveit_resources_prbt_ikfast_manipulator_plugin
moveit_simple_controller_manager
moveit_py
moveit_ros_benchmarks
moveit_hybrid_planning
moveit_ros_move_group
moveit_ros_occupancy_map_monitor
moveit_ros_perception
moveit_ros_planning
moveit_ros_planning_interface
moveit_ros_robot_interaction
moveit_ros_tests
moveit_ros_trajectory_cache
moveit_ros_visualization
moveit_ros_warehouse
moveit_setup_app_plugins
moveit_setup_assistant
moveit_setup_controllers
moveit_setup_core_plugins
moveit_setup_framework
moveit_setup_simulation
moveit_visual_tools
mrpt_msgs_bridge
mrpt_pf_localization
mrpt_pointcloud_pipeline
mrpt_reactivenav2d
mrpt_tps_astar_planner
mrpt_generic_sensor
mrpt_sensor_bumblebee_stereo
mrpt_sensor_gnss_nmea
mrpt_sensor_gnss_novatel
mrpt_sensor_imu_taobotics
mrpt_sensorlib
naoqi_driver
nonpersistent_voxel_layer
novatel_gps_driver
ntpd_driver
octomap_server
octomap_rviz_plugins
openni2_camera
pcl_conversions
pcl_ros
phidgets_accelerometer
phidgets_analog_inputs
phidgets_analog_outputs
phidgets_digital_inputs
phidgets_digital_outputs
phidgets_gyroscope
phidgets_high_speed_encoder
phidgets_magnetometer
phidgets_motors
phidgets_spatial
phidgets_temperature
plotjuggler
plotjuggler_ros
point_cloud_transport
point_cloud_transport_py
draco_point_cloud_transport
template_point_cloud_transport
zlib_point_cloud_transport
zstd_point_cloud_transport
pointcloud_to_laserscan
pose_cov_ops
quaternion_operation
rc_genicam_driver
realsense2_camera
realsense2_description
realtime_tools
robot_calibration
robot_localization
robot_state_publisher
turtlesim
rplidar_ros
rqt_gui_cpp
rqt_image_view
rtabmap_conversions
rtabmap_odom
rtabmap_rviz_plugins
rtabmap_slam
rtabmap_sync
rtabmap_util
rtabmap_viz
rviz2
rviz_common
rviz_default_plugins
rviz_visual_testing_framework
rviz_satellite
rviz_visual_tools
sbg_driver
septentrio_gnss_driver
simple_grasping
slam_toolbox
spatio_temporal_voxel_layer
swri_console
teleop_twist_joy
tf2_2d
tuw_geometry
twist_mux
ublox_gps
ur_calibration
ur_robot_driver
urg_node
velodyne_driver
velodyne_laserscan
velodyne_pointcloud
velodyne_gazebo_plugins
vision_msgs_rviz_plugins
cv_bridge
warehouse_ros
warehouse_ros_mongo
warehouse_ros_sqlite
web_video_server
zbar_ros
spinnaker_camera_driver
spinnaker_synchronized_camera_driver
netft_utils
smacc2
nav2z_planners_common
undo_path_global_planner
sm_advanced_recovery_1
sm_husky_barrel_search_1
sm_multi_stage_1
sm_pack_ml
sm_respira_1
sm_three_some
adaptive_component
apriltag_detector
apriltag_detector_mit
apriltag_detector_umich
apriltag_draw
aruco_opencv
bag2_to_image
beluga_amcl
boost_geometry_util
camera_aravis2
rclcpp_cascade_lifecycle
catch_ros2
classic_bags
action_tutorials_cpp
composition
demo_nodes_cpp
demo_nodes_cpp_native
dummy_map_server
dummy_sensors
image_tools
intra_process_demo
logging_demo
pendulum_control
quality_of_service_demo_cpp
topic_statistics_demo
dolly_follow
domain_bridge
dynamixel_hardware
etsi_its_conversion
etsi_its_rviz_plugins
event_camera_codecs
event_camera_renderer
examples_rclcpp_minimal_action_client
examples_rclcpp_minimal_action_server
examples_rclcpp_minimal_composition
examples_rclcpp_cbg_executor
examples_rclcpp_multithreaded_executor
examples_rclcpp_async_client
examples_rclcpp_minimal_client
examples_rclcpp_minimal_service
examples_rclcpp_minimal_timer
examples_rclcpp_minimal_publisher
examples_rclcpp_minimal_subscriber
examples_rclcpp_wait_set
ffmpeg_encoder_decoder
ffmpeg_image_transport_tools
flex_sync
fluent_rviz
foxglove_compressed_video_transport
gazebo_ros2_control
gazebo_ros2_control_demos
generate_parameter_library_example
generate_parameter_library_example_external
generate_parameter_library
parameter_traits
gz_ros2_control
gz_ros2_control_demos
gz_ros2_control_tests
hatchbed_common
ign_rviz
ign_rviz_common
ign_rviz_plugins
kobuki_velocity_smoother
libcaer_driver
lidar_situational_graphs
bosch_locator_bridge
bosch_locator_bridge_utils
message_filters
message_tf_frame_transformer
metavision_driver
micro_ros_diagnostic_bridge
mola_bridge_ros2
motion_capture_tracking
mqtt_client
mrpt_libapps
mrpt_libbase
mrpt_libgui
mrpt_libhwdrivers
mrpt_libmaps
mrpt_libmath
mrpt_libnav
mrpt_libobs
mrpt_libopengl
mrpt_libposes
mrpt_libros_bridge
mrpt_libslam
mrpt_libtclap
nao_lola
nav2_amcl
nav2_behavior_tree
nav2_behaviors
nav2_bt_navigator
nav2_collision_monitor
nav2_constrained_smoother
nav2_controller
nav2_core
nav2_costmap_2d
costmap_queue
dwb_core
dwb_critics
dwb_plugins
nav2_map_server
nav2_mppi_controller
nav2_msgs
nav2_navfn_planner
nav2_planner
nav2_regulated_pure_pursuit_controller
nav2_rotation_shim_controller
nav2_rviz_plugins
nav2_smac_planner
nav2_smoother
nav2_system_tests
nav2_theta_star_planner
nav2_util
nav2_velocity_smoother
nav2_voxel_grid
nav2_waypoint_follower
nmea_hardware_interface
nobleo_socketcan_bridge
odom_to_tf_ros2
opensw_ros
ouster_ros
open3d_conversions
performance_test
pick_ik
picknik_reset_fault_controller
picknik_twist_controller
polygon_demos
popf
py_binding_tools
python_mrpt
rclc
rclc_parameter
rclcpp_action
rclcpp_components
rclcpp_lifecycle
rcss3d_agent
tlsf_cpp
rig_reconfigure
rmf_fleet_adapter
rmf_task_ros2
rmf_traffic_ros2
rmf_websocket
rmf_building_sim_common
rmf_building_sim_gz_classic_plugins
rmf_building_sim_gz_plugins
rmf_robot_sim_common
rmf_robot_sim_gz_classic_plugins
rmf_robot_sim_gz_plugins
rmf_visualization_fleet_states
rmf_visualization_floorplans
rmf_visualization_navgraphs
rmf_visualization_obstacles
rmf_visualization_rviz2_plugins
rmf_visualization_schedule
ros1_bridge
controller_manager
joint_limits
joint_limits_interface
ackermann_steering_controller
admittance_controller
bicycle_steering_controller
diff_drive_controller
effort_controllers
force_torque_sensor_broadcaster
forward_command_controller
gripper_controllers
imu_sensor_broadcaster
joint_state_broadcaster
joint_trajectory_controller
pid_controller
pose_broadcaster
position_controllers
range_sensor_broadcaster
steering_controllers_library
tricycle_controller
tricycle_steering_controller
velocity_controllers
kortex_driver
plansys2_bringup
plansys2_bt_actions
plansys2_core
plansys2_domain_expert
plansys2_executor
plansys2_lifecycle_manager
plansys2_msgs
plansys2_pddl_parser
plansys2_planner
plansys2_popf_plan_solver
plansys2_problem_expert
plansys2_terminal
plansys2_tests
plansys2_tools
robotiq_driver
ros2_socketcan
test_tracetools
ros2lifecycle_test_fixtures
ros2launch_security_examples
battery_state_rviz_overlay
ros_gz_bridge
ros_gz_image
ros_gz_sim
rosbag2_compression
rosbag2_compression_zstd
rosbag2_cpp
rosbag2_examples_cpp
rosbag2_performance_benchmarking
rosbag2_test_common
rosbag2_tests
rosbag2_transport
rosbag2_bag_v2_plugins
rosx_introspection
rqt_image_overlay
rqt_image_overlay_layer
rsl
rt_manipulators_examples
sick_safetyscanners2
sick_safevisionary_driver
simple_actions
soccer_marker_generation
system_modes
system_modes_examples
test_launch_system_modes
test_cli
test_cli_remapping
test_communication
test_quality_of_service
test_rclcpp
test_security
topic_based_ros2_control
topic_tools
io_context
serial_driver
udp_driver
ntrip_client_node
ublox_dgnss_node
ublox_nav_sat_fix_hp_node
unitree_ros
v4l2_camera
ros_core
vrpn_mocap
webots_ros2_control
webots_ros2_driver

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rclcpp at Robotics Stack Exchange

No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.