Carma-platform v4.2.0
CARMA Platform is built on robot operating system (ROS) and utilizes open source software (OSS) that enables Cooperative Driving Automation (CDA) features to allow Automated Driving Systems to interact and cooperate with infrastructure and other vehicles through communication.
|
ROS Node to for Platooning Strategic Plugin IHP2 variant. It includes all the service clients, publishers and subscribers. More...
#include <platoon_strategic_plugin_node_ihp.h>
Public Member Functions | |
Node (const rclcpp::NodeOptions &) | |
Node constructor. More... | |
rcl_interfaces::msg::SetParametersResult | parameter_update_callback (const std::vector< rclcpp::Parameter > ¶meters) |
Callback for dynamic parameter updates. More... | |
void | plan_maneuvers_callback (std::shared_ptr< rmw_request_id_t >, carma_planning_msgs::srv::PlanManeuvers::Request::SharedPtr req, carma_planning_msgs::srv::PlanManeuvers::Response::SharedPtr resp) override |
Extending class provided callback which should return a planned trajectory based on the provided trajectory planning request. More... | |
bool | get_availability () override |
Get the availability status of this plugin based on the current operating environment. Method must be overriden by extending classes. More... | |
std::string | get_version_id () override |
Returns the version id of this plugin. More... | |
carma_ros2_utils::CallbackReturn | on_configure_plugin () |
This method should be used to load parameters and will be called on the configure state transition. More... | |
carma_ros2_utils::CallbackReturn | on_cleanup_plugin () |
Method which is triggered when this plugin is moved from the INACTIVE to UNCONFIGURED states. This method should be used to fully reset the plugin such that a future call to on_configure_plugin would leave the plugin in a fresh state as though just launched. More... | |
Public Member Functions inherited from carma_guidance_plugins::StrategicPlugin | |
StrategicPlugin (const rclcpp::NodeOptions &) | |
StrategicPlugin constructor. More... | |
virtual | ~StrategicPlugin ()=default |
Virtual destructor for safe deletion. More... | |
virtual void | plan_maneuvers_callback (std::shared_ptr< rmw_request_id_t > srv_header, carma_planning_msgs::srv::PlanManeuvers::Request::SharedPtr req, carma_planning_msgs::srv::PlanManeuvers::Response::SharedPtr resp)=0 |
Extending class provided callback which should return a planned trajectory based on the provided trajectory planning request. More... | |
std::string | get_capability () override |
Get the capability string representing this plugins capabilities Method must be overriden by extending classes. Expectation is that abstract plugin type parent classes will provide a default implementation. More... | |
uint8_t | get_type () override final |
Returns the type of this plugin according to the carma_planning_msgs::Plugin type enum. Extending classes for the specific type should override this method. More... | |
carma_ros2_utils::CallbackReturn | handle_on_configure (const rclcpp_lifecycle::State &) override final |
carma_ros2_utils::CallbackReturn | handle_on_activate (const rclcpp_lifecycle::State &) override final |
carma_ros2_utils::CallbackReturn | handle_on_deactivate (const rclcpp_lifecycle::State &) override final |
carma_ros2_utils::CallbackReturn | handle_on_cleanup (const rclcpp_lifecycle::State &) override final |
carma_ros2_utils::CallbackReturn | handle_on_shutdown (const rclcpp_lifecycle::State &) override final |
carma_ros2_utils::CallbackReturn | handle_on_error (const rclcpp_lifecycle::State &, const std::string &exception_string) override final |
Public Member Functions inherited from carma_guidance_plugins::PluginBaseNode | |
PluginBaseNode (const rclcpp::NodeOptions &) | |
PluginBaseNode constructor. More... | |
virtual | ~PluginBaseNode ()=default |
Virtual destructor for safe deletion. More... | |
virtual std::shared_ptr< carma_wm::WMListener > | get_world_model_listener () final |
Method to return the default world model listener provided as a convience by this base class If this method or get_world_model() are not called then the world model remains uninitialized and will not create unnecessary subscriptions. More... | |
virtual carma_wm::WorldModelConstPtr | get_world_model () final |
Method to return the default world model provided as a convience by this base class If this method or get_world_model_listener() are not called then the world model remains uninitialized and will not create unnecessary subscriptions. More... | |
virtual bool | get_activation_status () final |
Returns the activation status of this plugin. The plugins API callbacks will only be triggered when this method returns true. More... | |
virtual uint8_t | get_type () |
Returns the type of this plugin according to the carma_planning_msgs::Plugin type enum. Extending classes for the specific type should override this method. More... | |
std::string | get_plugin_name_and_ns () const |
Return the name of this plugin with namespace. NOTE: If only the name of the plugin is required, use get_plugin_name() More... | |
std::string | get_plugin_name () const |
Return the name of this plugin. More... | |
virtual bool | get_availability ()=0 |
Get the availability status of this plugin based on the current operating environment. Method must be overriden by extending classes. More... | |
virtual std::string | get_capability ()=0 |
Get the capability string representing this plugins capabilities Method must be overriden by extending classes. Expectation is that abstract plugin type parent classes will provide a default implementation. More... | |
virtual std::string | get_version_id ()=0 |
Returns the version id of this plugin. More... | |
virtual carma_ros2_utils::CallbackReturn | on_configure_plugin ()=0 |
Method which is triggered when this plugin is moved from the UNCONFIGURED to INACTIVE states. This method should be used to load parameters and is required to be implemented. More... | |
virtual carma_ros2_utils::CallbackReturn | on_activate_plugin () |
Method which is triggered when this plugin is moved from the INACTIVE to ACTIVE states. This method should be used to prepare for future callbacks for plugin's capabilites. More... | |
virtual carma_ros2_utils::CallbackReturn | on_deactivate_plugin () |
Method which is triggered when this plugin is moved from the ACTIVE to INACTIVE states. This method should be used to disable any functionality which should cease execution when plugin is inactive. More... | |
virtual carma_ros2_utils::CallbackReturn | on_cleanup_plugin () |
Method which is triggered when this plugin is moved from the INACTIVE to UNCONFIGURED states. This method should be used to fully reset the plugin such that a future call to on_configure_plugin would leave the plugin in a fresh state as though just launched. More... | |
virtual carma_ros2_utils::CallbackReturn | on_shutdown_plugin () |
Method which is triggered when this plugin is moved from any state to FINALIZED This method should be used to generate any shutdown logs or final cleanup. More... | |
virtual carma_ros2_utils::CallbackReturn | on_error_plugin (const std::string &exception_string) |
Method which is triggered when an unhandled exception occurs in this plugin This method should be used to cleanup such that the plugin could be moved to UNCONFIGURED state if possible. More... | |
carma_ros2_utils::CallbackReturn | handle_on_configure (const rclcpp_lifecycle::State &) override |
carma_ros2_utils::CallbackReturn | handle_on_activate (const rclcpp_lifecycle::State &) override |
carma_ros2_utils::CallbackReturn | handle_on_deactivate (const rclcpp_lifecycle::State &) override |
carma_ros2_utils::CallbackReturn | handle_on_cleanup (const rclcpp_lifecycle::State &) override |
carma_ros2_utils::CallbackReturn | handle_on_shutdown (const rclcpp_lifecycle::State &) override |
carma_ros2_utils::CallbackReturn | handle_on_error (const rclcpp_lifecycle::State &, const std::string &exception_string) override |
FRIEND_TEST (carma_guidance_plugins_test, connections_test) | |
Private Attributes | |
carma_ros2_utils::PubPtr< carma_planning_msgs::msg::PlatooningInfo > | platoon_info_pub |
carma_ros2_utils::PubPtr< carma_v2x_msgs::msg::MobilityResponse > | mob_response_pub |
carma_ros2_utils::PubPtr< carma_v2x_msgs::msg::MobilityRequest > | mob_request_pub |
carma_ros2_utils::PubPtr< carma_v2x_msgs::msg::MobilityOperation > | mob_operation_pub |
carma_ros2_utils::SubPtr< carma_v2x_msgs::msg::MobilityRequest > | mob_request_sub |
carma_ros2_utils::SubPtr< carma_v2x_msgs::msg::MobilityResponse > | mob_response_sub |
carma_ros2_utils::SubPtr< carma_v2x_msgs::msg::MobilityOperation > | mob_operation_sub |
carma_ros2_utils::SubPtr< geometry_msgs::msg::PoseStamped > | current_pose_sub |
carma_ros2_utils::SubPtr< geometry_msgs::msg::TwistStamped > | current_twist_sub |
carma_ros2_utils::SubPtr< geometry_msgs::msg::TwistStamped > | cmd_sub |
carma_ros2_utils::SubPtr< std_msgs::msg::String > | georeference_sub |
rclcpp::TimerBase::SharedPtr | loop_timer_ |
PlatoonPluginConfig | config_ |
std::shared_ptr< PlatoonStrategicIHPPlugin > | worker_ |
ROS Node to for Platooning Strategic Plugin IHP2 variant. It includes all the service clients, publishers and subscribers.
Definition at line 51 of file platoon_strategic_plugin_node_ihp.h.
|
explicit |
Node constructor.
Definition at line 24 of file platoon_strategic_ihp_node.cpp.
References platoon_strategic_ihp::PlatoonPluginConfig::algorithmType, platoon_strategic_ihp::PlatoonPluginConfig::allowCutinJoin, platoon_strategic_ihp::PlatoonPluginConfig::cmdSpeedMaxAdjustment, config_, platoon_strategic_ihp::PlatoonPluginConfig::desiredJoinGap, platoon_strategic_ihp::PlatoonPluginConfig::desiredJoinTimeGap, platoon_strategic_ihp::PlatoonPluginConfig::headawayStableLowerBond, platoon_strategic_ihp::PlatoonPluginConfig::headawayStableUpperBond, platoon_strategic_ihp::PlatoonPluginConfig::infoMessageInterval, platoon_strategic_ihp::PlatoonPluginConfig::join_index, platoon_strategic_ihp::PlatoonPluginConfig::longitudinalCheckThresold, platoon_strategic_ihp::PlatoonPluginConfig::maxAllowableHeadaway, platoon_strategic_ihp::PlatoonPluginConfig::maxAllowedJoinGap, platoon_strategic_ihp::PlatoonPluginConfig::maxAllowedJoinTimeGap, platoon_strategic_ihp::PlatoonPluginConfig::maxCrosstrackError, platoon_strategic_ihp::PlatoonPluginConfig::maxCutinGap, platoon_strategic_ihp::PlatoonPluginConfig::maxPlatoonSize, platoon_strategic_ihp::PlatoonPluginConfig::minAllowableHeadaway, platoon_strategic_ihp::PlatoonPluginConfig::minAllowedJoinGap, platoon_strategic_ihp::PlatoonPluginConfig::minCutinGap, platoon_strategic_ihp::PlatoonPluginConfig::minPlatooningSpeed, platoon_strategic_ihp::PlatoonPluginConfig::significantDTDchange, platoon_strategic_ihp::PlatoonPluginConfig::standStillHeadway, platoon_strategic_ihp::PlatoonPluginConfig::statusMessageInterval, platoon_strategic_ihp::PlatoonPluginConfig::test_cutin_join, platoon_strategic_ihp::PlatoonPluginConfig::test_front_join, platoon_strategic_ihp::PlatoonPluginConfig::timeHeadway, platoon_strategic_ihp::PlatoonPluginConfig::vehicleID, platoon_strategic_ihp::PlatoonPluginConfig::vehicleLength, and platoon_strategic_ihp::PlatoonPluginConfig::waitingStateTimeout.
|
overridevirtual |
Get the availability status of this plugin based on the current operating environment. Method must be overriden by extending classes.
Implements carma_guidance_plugins::PluginBaseNode.
Definition at line 228 of file platoon_strategic_ihp_node.cpp.
|
overridevirtual |
Returns the version id of this plugin.
Implements carma_guidance_plugins::PluginBaseNode.
Definition at line 232 of file platoon_strategic_ihp_node.cpp.
|
virtual |
Method which is triggered when this plugin is moved from the INACTIVE to UNCONFIGURED states. This method should be used to fully reset the plugin such that a future call to on_configure_plugin would leave the plugin in a fresh state as though just launched.
Reimplemented from carma_guidance_plugins::PluginBaseNode.
Definition at line 204 of file platoon_strategic_ihp_node.cpp.
References cmd_sub, current_pose_sub, current_twist_sub, georeference_sub, mob_operation_sub, mob_response_sub, and worker_.
|
virtual |
This method should be used to load parameters and will be called on the configure state transition.
Implements carma_guidance_plugins::PluginBaseNode.
Definition at line 118 of file platoon_strategic_ihp_node.cpp.
References platoon_strategic_ihp::PlatoonPluginConfig::algorithmType, platoon_strategic_ihp::PlatoonPluginConfig::allowCutinJoin, platoon_strategic_ihp::PlatoonStrategicIHPPlugin::cmd_cb(), cmd_sub, platoon_strategic_ihp::PlatoonPluginConfig::cmdSpeedMaxAdjustment, config_, current_pose_sub, current_twist_sub, platoon_strategic_ihp::PlatoonPluginConfig::desiredJoinGap, platoon_strategic_ihp::PlatoonPluginConfig::desiredJoinTimeGap, platoon_strategic_ihp::PlatoonStrategicIHPPlugin::georeference_cb(), georeference_sub, carma_guidance_plugins::PluginBaseNode::get_world_model(), platoon_strategic_ihp::PlatoonPluginConfig::headawayStableLowerBond, platoon_strategic_ihp::PlatoonPluginConfig::headawayStableUpperBond, platoon_strategic_ihp::PlatoonPluginConfig::infoMessageInterval, platoon_strategic_ihp::PlatoonPluginConfig::join_index, platoon_strategic_ihp::PlatoonPluginConfig::longitudinalCheckThresold, loop_timer_, platoon_strategic_ihp::PlatoonPluginConfig::maxAllowableHeadaway, platoon_strategic_ihp::PlatoonPluginConfig::maxAllowedJoinGap, platoon_strategic_ihp::PlatoonPluginConfig::maxAllowedJoinTimeGap, platoon_strategic_ihp::PlatoonPluginConfig::maxCrosstrackError, platoon_strategic_ihp::PlatoonPluginConfig::maxCutinGap, platoon_strategic_ihp::PlatoonPluginConfig::maxPlatoonSize, platoon_strategic_ihp::PlatoonPluginConfig::minAllowableHeadaway, platoon_strategic_ihp::PlatoonPluginConfig::minAllowedJoinGap, platoon_strategic_ihp::PlatoonPluginConfig::minCutinGap, platoon_strategic_ihp::PlatoonPluginConfig::minPlatooningSpeed, platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb(), mob_operation_pub, mob_operation_sub, platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb(), mob_request_pub, mob_request_sub, platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb(), mob_response_pub, mob_response_sub, platoon_strategic_ihp::PlatoonStrategicIHPPlugin::onSpin(), parameter_update_callback(), platoon_info_pub, platoon_strategic_ihp::PlatoonStrategicIHPPlugin::pose_cb(), platoon_strategic_ihp::PlatoonPluginConfig::significantDTDchange, platoon_strategic_ihp::PlatoonPluginConfig::standStillHeadway, platoon_strategic_ihp::PlatoonPluginConfig::statusMessageInterval, platoon_strategic_ihp::PlatoonPluginConfig::test_cutin_join, platoon_strategic_ihp::PlatoonPluginConfig::test_front_join, platoon_strategic_ihp::PlatoonPluginConfig::timeHeadway, platoon_strategic_ihp::PlatoonStrategicIHPPlugin::twist_cb(), platoon_strategic_ihp::PlatoonPluginConfig::vehicleID, platoon_strategic_ihp::PlatoonPluginConfig::vehicleLength, platoon_strategic_ihp::PlatoonPluginConfig::waitingStateTimeout, and worker_.
rcl_interfaces::msg::SetParametersResult platoon_strategic_ihp::Node::parameter_update_callback | ( | const std::vector< rclcpp::Parameter > & | parameters | ) |
Callback for dynamic parameter updates.
Definition at line 65 of file platoon_strategic_ihp_node.cpp.
References platoon_strategic_ihp::PlatoonPluginConfig::algorithmType, platoon_strategic_ihp::PlatoonPluginConfig::allowCutinJoin, platoon_strategic_ihp::PlatoonPluginConfig::cmdSpeedMaxAdjustment, config_, platoon_strategic_ihp::PlatoonPluginConfig::desiredJoinGap, platoon_strategic_ihp::PlatoonPluginConfig::desiredJoinTimeGap, platoon_strategic_ihp::PlatoonPluginConfig::headawayStableLowerBond, platoon_strategic_ihp::PlatoonPluginConfig::headawayStableUpperBond, platoon_strategic_ihp::PlatoonPluginConfig::infoMessageInterval, platoon_strategic_ihp::PlatoonPluginConfig::join_index, platoon_strategic_ihp::PlatoonPluginConfig::longitudinalCheckThresold, platoon_strategic_ihp::PlatoonPluginConfig::maxAllowableHeadaway, platoon_strategic_ihp::PlatoonPluginConfig::maxAllowedJoinGap, platoon_strategic_ihp::PlatoonPluginConfig::maxAllowedJoinTimeGap, platoon_strategic_ihp::PlatoonPluginConfig::maxCrosstrackError, platoon_strategic_ihp::PlatoonPluginConfig::maxCutinGap, platoon_strategic_ihp::PlatoonPluginConfig::maxPlatoonSize, platoon_strategic_ihp::PlatoonPluginConfig::minAllowableHeadaway, platoon_strategic_ihp::PlatoonPluginConfig::minAllowedJoinGap, platoon_strategic_ihp::PlatoonPluginConfig::minCutinGap, platoon_strategic_ihp::PlatoonPluginConfig::minPlatooningSpeed, platoon_strategic_ihp::PlatoonPluginConfig::significantDTDchange, platoon_strategic_ihp::PlatoonPluginConfig::standStillHeadway, platoon_strategic_ihp::PlatoonPluginConfig::statusMessageInterval, platoon_strategic_ihp::PlatoonPluginConfig::test_cutin_join, platoon_strategic_ihp::PlatoonPluginConfig::test_front_join, platoon_strategic_ihp::PlatoonPluginConfig::timeHeadway, platoon_strategic_ihp::PlatoonPluginConfig::waitingStateTimeout, and worker_.
Referenced by on_configure_plugin().
|
overridevirtual |
Extending class provided callback which should return a planned trajectory based on the provided trajectory planning request.
srv_header | RCL header for services calls. Can usually be ignored by implementers. |
req | The service request containing the previously planned maneuvers and vehicle state |
resp | The response containing the additional maneuvers generated by this plugin |
Implements carma_guidance_plugins::StrategicPlugin.
Definition at line 219 of file platoon_strategic_ihp_node.cpp.
References worker_.
|
private |
Definition at line 68 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_cleanup_plugin(), and on_configure_plugin().
|
private |
Definition at line 75 of file platoon_strategic_plugin_node_ihp.h.
Referenced by Node(), on_configure_plugin(), and parameter_update_callback().
|
private |
Definition at line 66 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_cleanup_plugin(), and on_configure_plugin().
|
private |
Definition at line 67 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_cleanup_plugin(), and on_configure_plugin().
|
private |
Definition at line 69 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_cleanup_plugin(), and on_configure_plugin().
|
private |
Definition at line 72 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_configure_plugin().
|
private |
Definition at line 60 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_configure_plugin().
|
private |
Definition at line 65 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_cleanup_plugin(), and on_configure_plugin().
|
private |
Definition at line 59 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_configure_plugin().
|
private |
Definition at line 63 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_configure_plugin().
|
private |
Definition at line 58 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_configure_plugin().
|
private |
Definition at line 64 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_cleanup_plugin(), and on_configure_plugin().
|
private |
Definition at line 57 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_configure_plugin().
|
private |
Definition at line 78 of file platoon_strategic_plugin_node_ihp.h.
Referenced by on_cleanup_plugin(), on_configure_plugin(), parameter_update_callback(), and plan_maneuvers_callback().