* Populate return code of CancelGoal service response
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Throw if there is an error processing a cancel goal request
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Make cancel callback signature consistent across cancel methods and add tests
Refactored the callback signature for canceling one goal. Now it is the same as the other cancel methods.
This makes it easier to communicate the error code to the user.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* Address review
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* API updates for rmw preallocation work.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Adjust for allocation in serialized message method.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Fix extra take call.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Add functions to return formatted Node Name-Namespace strings
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Changed get_node_names to return fully qualified names, removed namespace method
Signed-off-by: Oswin So <oswinso@gmail.com>
* Removed unnecessary capture-by-reference
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Added first draft of tests
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Fixed bug creating phantom empty name/namespaces
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Re-ordered includes
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Swap checks to see if name is in set
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Fixed style errors from uncrustify
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Swapped to unordered_set
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Re-ordered includes again
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* nitpick: minimize vertical whitespace
see: https://google.github.io/styleguide/cppguide.html#Vertical_Whitespace
Signed-off-by: William Woodall <william@osrfoundation.org>
* Add API documentation for added get_node_names function
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Revert to last known semi-working point
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Modified expected test results
A fully-qualified name is "namespace"/"name". If namespace is set to be "/" (as they are in these tests), we would expect a qualified name of "//name"
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Have get_node_names determine if central slash needed or not
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Corrected tests to not accept double slashes
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Undo changes to .gitignore
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Change qualified string construction to better handle invalid slashes
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Removed debugging statements
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Simplified slash-checking logic
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Add assignment of missing parameter-related fields in node options copy constructor.
The allow_undeclared_parameters and automatically_declare_initial_parameters fields of
the node options class were not assigned in the assignment operator, resulting in
an incorrect copy of the node options object, which also indirectly affects the
copy constructor.
Signed-off-by: Michael Jeronimo <michael.jeronimo@intel.com>
* Run linters
* Changed mapped_ring_buffer class to store both shared_ptr or unique_ptr
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
* Changed the IPM store and take methods
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
* Changed publish methods to take advantage of the new IPM
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
* Change how subscriptions handle intraprocess messages
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
* Modified publish method signatures
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
* Renamed 'publisher.cpp' and 'subscription.cpp' to 'publisher_base.cpp' and 'subscription_base.cpp'
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
* Updated lifecycle_publisher publish methods
Signed-off-by: ivanpauno <ivanpauno@ekumenlabs.com>
Now supports callbacks for the goal response and result.
This also makes it easier to incorporate action clients in composable nodes since we don't have to rely on waiting on futures.
Signed-off-by: Jacob Perron <jacob@openrobotics.org>
* in progress broken test_time_source
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
* style
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
* test undeclared params
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
* Only get parameter if it is set
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
* doc fixup
Signed-off-by: William Woodall <william@osrfoundation.org>
* use override rather than virtual in places
Signed-off-by: William Woodall <william@osrfoundation.org>
* rename ParameterInfo_t to ParameterInfo and just use struct, no typedef
Signed-off-by: William Woodall <william@osrfoundation.org>
* add method to access ParameterValue within a Parameter
Signed-off-by: William Woodall <william@osrfoundation.org>
* enable get<Parameter> and get<ParameterValue> on Parameter class
Signed-off-by: William Woodall <william@osrfoundation.org>
* avoid const pass by value
Signed-off-by: William Woodall <william@osrfoundation.org>
* match type of enum in C++ to type used in message definition
Signed-off-by: William Woodall <william@osrfoundation.org>
* fixup after rebase
Signed-off-by: William Woodall <william@osrfoundation.org>
* more fixup after rebase
Signed-off-by: William Woodall <william@osrfoundation.org>
* replace create_parameter with declare_parameter
Signed-off-by: William Woodall <william@osrfoundation.org>
* provide implementation for templated declare_parameter method
Signed-off-by: William Woodall <william@osrfoundation.org>
* style
Signed-off-by: William Woodall <william@osrfoundation.org>
* do not use const reference when it's a primitive (like bool)
Signed-off-by: William Woodall <william@osrfoundation.org>
* typo
Signed-off-by: William Woodall <william@osrfoundation.org>
* follow to bool change that wasn't staged
Signed-off-by: William Woodall <william@osrfoundation.org>
* fixup tests
Signed-off-by: William Woodall <william@osrfoundation.org>
* added lots of docs, alternative API signatures, and some of the tests
Signed-off-by: William Woodall <william@osrfoundation.org>
* more tests and associated fixes
Signed-off-by: William Woodall <william@osrfoundation.org>
* address documentation feedback
Signed-off-by: William Woodall <william@osrfoundation.org>
* fixup previously added tests
Signed-off-by: William Woodall <william@osrfoundation.org>
* add tests and fixes for describe_parameter(s) and get_parameter_types
Signed-off-by: William Woodall <william@osrfoundation.org>
* remove old parameter tests
Signed-off-by: William Woodall <william@osrfoundation.org>
* use const reference where possible
Signed-off-by: William Woodall <william@osrfoundation.org>
* address comments
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix tests for deprecated methods
Signed-off-by: William Woodall <william@osrfoundation.org>
* address feedback
Signed-off-by: William Woodall <william@osrfoundation.org>
* significantly improve the reliability of the time_source tests
Signed-off-by: William Woodall <william@osrfoundation.org>
* uncrustify, cpplint, and cppcheck fixes
Signed-off-by: William Woodall <william@osrfoundation.org>
* Revert "significantly improve the reliability of the time_source tests"
This reverts commit 3ef385d8419c3f71cba91e622138583a91b2682a.
Signed-off-by: William Woodall <william@osrfoundation.org>
* only declare use_sim_time parameter if not already declared
Signed-off-by: William Woodall <william@osrfoundation.org>
* fixup rclcpp_lifecycle
Signed-off-by: William Woodall <william@osrfoundation.org>
* fixup tests
Signed-off-by: William Woodall <william@osrfoundation.org>
* add missing namespace scope which fails on Windows
Signed-off-by: William Woodall <william@osrfoundation.org>
* extend deprecation warning suppression to support Windows too
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix compiler warnings and missing visibility macro
Signed-off-by: William Woodall <william@osrfoundation.org>
* remove commented left over tests
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix compiler warning on Windows
Signed-off-by: William Woodall <william@osrfoundation.org>
* suppress deprecation warning on include of file in Windows
Signed-off-by: William Woodall <william@osrfoundation.org>
* avoid potential loss of data warning converting int64_t to int
Signed-off-by: William Woodall <william@osrfoundation.org>
* trying to fix more loss of data warnings
Signed-off-by: William Woodall <william@osrfoundation.org>
* fix test_node
Signed-off-by: William Woodall <william@osrfoundation.org>
* add option to automatically declare parameters from initial parameters (yaml file)
Signed-off-by: William Woodall <william@osrfoundation.org>
* remove redundant conditional
Signed-off-by: William Woodall <william@osrfoundation.org>
Both, the `Executor::execute_any_executable` and the destructor for the `AnyExecutable` object used by the multithreaded executor, reset the `can_be_taken_from_` flag on a MutuallyExclusive group. This cause the variable to get out of sync and threads to process executables out of sequence.
This fix clears the callback group variable of the `AnyExecutable` instance effectively preventing its destructor from modifying the variable at the wrong time.
Issue: #702
Signed-off-by: Guillaume Autran <gautran@clearpath.ai>
* Created function to generate exception objects
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Created function to generate exception objects
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Fixed typo
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Fixed typo
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Throw exceptions not created by ret
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Throw exceptions not created by ret
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* convert throw_from_rcl_error to use from_rcl_error
Mostly just a convenience function
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Updated .gitignore
Please ignore
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Re-ordered functions to allow compilation
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* Revert "Updated .gitignore"
This reverts commit bee0ee13ce687bc56bdc7ad1e8382506d9aef428.
Signed-off-by: Jacob Hassold <jhassold@dcscorp.com>
* restore .gitignore to original state
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
* oops, actually restore .gitignore
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
* logging, remove_const before comparison
This change removes the const value from the logger before
comparing with std::is_same.
Signed-off-by: Víctor Mayoral Vilches <v.mayoralv@gmail.com>
* logging template, replace remove_const by remove_cv
Signed-off-by: Víctor Mayoral Vilches <v.mayoralv@gmail.com>
* Append typename
Located after compiling rclcpp_action from source
Signed-off-by: Víctor Mayoral Vilches <v.mayoralv@gmail.com>
* Options-based create_publisher and create_subscription interfaces
Introduce new Options structs for creating publishers and subscribers. Deprecate existing interfaces for checking in CI how often they are used.
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
* Remove default params that resulted in ambiguous declarations.
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
* Remove one deprecation to limit upstream impact, add documentation on pub/sub options, slim down test lambdas character count
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
* Un-abbreviate Allocator in new interfaces/types, define a common Options specialization that doesn't need empty brackets
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
* Suppress cppcheck syntaxError for the one function
Signed-off-by: Emerson Knapp <eknapp@amazon.com>
* Introduce rclcpp_components package
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Keep pointer to NodeWrapper vs NodeInterface.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Remove component registration from rclcpp
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Make topics names private-prefix.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Handle name and namespace with remap rules.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Linting.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Address reviewer feedback.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Change to smart pointers for managing memory.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Update to use rcpputils filesystem/split.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Address reviewer feedback and add docs.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Add tests around ComponentManager.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Lint.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Address reviewer feedback and add overflow check.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
* Fix CI.
Signed-off-by: Michael Carroll <michael@openrobotics.org>
The two distinct operations of acquiring and subsequent checking of a
timer have to be protected by one lock_guard against races with other
threads. The releasing of a timer has to be protected by the same lock.
Given this requirement there is no use for a second mutex.
Signed-off-by: Marko Durkovic <marko@ternaris.com>
* when call wait for service in an while loop, the event will be make forever and never release
* fix it by: creating it when we need
Signed-off-by: reed-lau <geoliuwei@gmail.com>
* Fix flakey test
Signed-off-by: Pete Baughman <pete.baughman@apex.ai>
* Fix lint and uncrustify issues
Signed-off-by: Pete Baughman <pete.baughman@apex.ai>
* match renamed action types
* fix action type casting
* rename type/field to use correct term
* rename custom GoalID type to avoid naming collision, update types using unique_identifier_msgs
* remove obsolete comments
* change signature of set_succeeded / set_canceled
* change signature of on_terminal_state_(uuid_, result_msg);set_succeeded / set_canceled
* change signature of set_aborted
* change signature of publish_feedback
* update another test
There are getters for the other interfaces, but the logging interface
appears to have been overlooked.
Signed-off-by: Michael Jeronimo <michael.jeronimo@intel.com>
* Sub Node alternative
* Sub Node alternative
* Test // characters in namespaces
* Sub Node alternative
* Test // characters in namespaces
* Fixing style and warning in the order of initalizing members
* Fixing cases with / in different positions, and adding new tests
* Removing commented methods
* Changing extended_namespace to sub_namespace
* Fixed a bug when merging
* Fixed a bug when merging
* Sub Node alternative
* Sub Node alternative
* Test // characters in namespaces
* Fixing style and warning in the order of initalizing members
* Fixing cases with / in different positions, and adding new tests
* Removing commented methods
* Changing extended_namespace to sub_namespace
* Fixed a bug when merging
* Merge with origin to update branch
* improvements to API and documentation
Signed-off-by: William Woodall <william@osrfoundation.org>
* style and fixing tests
Signed-off-by: William Woodall <william@osrfoundation.org>
* fixup subnode specific tests
Signed-off-by: William Woodall <william@osrfoundation.org>
* remove vestigial function
Signed-off-by: William Woodall <william@osrfoundation.org>
* improve documentation
Signed-off-by: William Woodall <william@osrfoundation.org>
* add test to check interaction between ~ and sub-nodes
Signed-off-by: William Woodall <william@osrfoundation.org>
* typo
Signed-off-by: William Woodall <william@osrfoundation.org>