- Fix documented example in create_publisher. (#1558) (#1560)
- Fix NodeOptions copy constructor. (#1376) (#1466)
- Contributors: Ivan Santiago Paunovic, Jacob Perron
- 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
- 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
- Don't specify calling convention in std::_Binder template. (#1015)
- Contributors: Jacob Perron, Sean Kelly
- Fix get_node_*_interface functions taking a pointer (#870).
- Fix hang with timers in MultiThreadedExecutor (#869).
- Contributors: Todd Malsbary, ivanpauno
- add mutex in add/remove_node and wait_for_work to protect concurrent use/change of memory_strategy_ (#837) (#857)
- Contributors: Zachary Michaels
- 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
- 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
- Avoid 'Intra process message no longer being stored when trying to handle it' warning (#749)
- Contributors: ivanpauno
- 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
- 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_eventstatic method to theAsyncParametersClient(#688) - Added a guard against
ParameterNotDeclaredExceptionthrowing 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
- 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_ptrand raw pointer versions ofPublisher<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 inclock.cpp. * Fixed up includes ofclock.hpp/cpp. * Added documentation for exceptions toclock.hpp. * Adjusted function signature of getters ofclock.hpp/cpp. * Removed raw pointers toClock::create_jump_callback. * Removed unnecessaryrclcppnamespace reference fromclock.cpp. * Changed exception tobad_alloconJumpHandlerallocation failure. * Fixed missingnullptrcheck inClock::on_time_jump. * AddedJumpHandler::callbacktypes. * Added warning for lifetime of Clock and JumpHandler - Fixed bug left over from the pull request #495. (#708)
- Changed the
IntraProcessManagerto be capable of storingshared_ptr<const T>in addition tounique_ptr<T>. (#690) - Contributors: Alberto Soragna, Dima Dorezyuk, M. M, Michael Carroll, Michael Jeronimo, Tully Foote, William Woodall, ivanpauno, jhdcs
- 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
- 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
- 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
- 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
- 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
- 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
rclto 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
Subscriptiontests which usesstd::bindto a class member callback. (#480) - Refactored the
ParameterVariantclass into theParameterandParameterValueclasses. (#481) - Relaxed template matching rules for
std::bindandGNU C++ >= 7.1. (#484) - Changed to use the new
rosgraph_msgs/Clockmessage type for the/clocktopic. (#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
AnyExecutableobjects 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_ttype fromuint64_ttoint64_t. (#429) - Renamed parameter byte type to
byte_valuesfrombytes_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 levelrmw_count_publishers()API. (#425) * Signed-off-by: Sriram Raghunathan <rsriram7@visteon.com> - Fix potential segmentation fault due to
get_topic_name()orrcl_service_get_service_name()returning nullptr and that not being checked before access inrclcpp. (#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