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.
|
Class containing the logic for platoon manager. It is responsible for keeping track of the platoon members and role of the host vehicle in the platoon. More...
#include <platoon_manager_ihp.h>
Public Member Functions | |
PlatoonManager (std::shared_ptr< carma_ros2_utils::timers::TimerFactory > timer_factory) | |
Constructor. More... | |
void | updateHostPose (const double downtrack, const double crosstrack) |
Stores the latest info on location of the host vehicle. More... | |
void | updateHostSpeeds (const double cmdSpeed, const double actualSpeed) |
Stores the latest info on host vehicle's command & actual speeds. More... | |
void | hostMemberUpdates (const std::string &senderId, const std::string &platoonId, const std::string ¶ms, const double &DtD, const double &CtD) |
Update information for members of the host's platoon based on a mobility operation STATUS message. More... | |
void | neighborMemberUpdates (const std::string &senderId, const std::string &platoonId, const std::string ¶ms, const double &DtD, const double &CtD) |
Update information for members of a neighboring platoon based on a mobility operation STATUS message. More... | |
void | updatesOrAddMemberInfo (std::vector< PlatoonMember > &platoon, std::string senderId, double cmdSpeed, double dtDistance, double ctDistance, double curSpeed) |
Updates the list of vehicles in the specified platoon, based on info available from a mobility operation STATUS message from one of that platoon's vehicles. It ensures the list of vehicles is properly sorted in order of appearance from front to rear in the platoon. If the host is in the platoon, it will update host info as well. More... | |
int | getHostPlatoonSize () |
Returns total size of the platoon , in number of vehicles. More... | |
void | clearActionPlan () |
Resets necessary variables to indicate that the current ActionPlan is dead. More... | |
void | resetHostPlatoon () |
Resets all variables that might indicate other members of the host's platoon; sets the host back to solo vehicle. More... | |
void | resetNeighborPlatoon () |
Resets all variables that describe a neighbor platoon, so that no neighbor is known. More... | |
bool | removeMember (const size_t mem) |
Removes a single member from the internal record of platoon members. More... | |
bool | removeMemberById (const std::string id) |
Removes a single member from the internal record of platoon members. More... | |
PlatoonMember | getDynamicLeader () |
Returns dynamic leader of the host vehicle. More... | |
int | allPredecessorFollowing () |
This is the implementation of all predecessor following (APF) algorithm for leader selection in a platoon. This function will recognize who is acting as the current leader of the subject vehicle. The current leader of the subject vehicle will be any ONE of the vehicles in front of it. Having a vehicle further downstream function as the leader is more efficient and more stable; however, having a vehicle closer to the subject vehicle function as the leader is safer. For this reason, the subject vehicle will monitor all time headways between every single set of consecutive vehicles starting from itself to the leader. If the time headways are within some safe thresholds then vehicles further downstream may function as the leader. Otherwise, for the sake of safety, vehicles closer to the subject vehicle, potentially even the predecessor, will function as the leader. More... | |
void | changeFromFollowerToLeader () |
Update status when state change from Follower to Leader. More... | |
void | changeFromLeaderToFollower (std::string newPlatoonId, std::string newLeaderId) |
Update status when state change from Leader to Follower. More... | |
int | getNumberOfVehicleInFront () |
Get number of vehicles in front of host vehicle inside platoon. More... | |
double | getCurrentPlatoonLength () |
Returns overall length of the platoon. in m. More... | |
double | getPlatoonRearDowntrackDistance () |
Returns downtrack distance of the rear vehicle in platoon, in m. More... | |
double | getDistanceToPredVehicle () |
Returns distance to the predessecor vehicle, in m. More... | |
double | getCurrentSpeed () const |
Returns current speed, in m/s. More... | |
double | getCommandSpeed () const |
Returns command speed. in m/s. More... | |
double | getCurrentDowntrackDistance () const |
Returns current downtrack distance, in m. More... | |
double | getCurrentCrosstrackDistance () const |
Returns current crosstrack distance, in m. More... | |
std::string | getHostStaticID () const |
Returns current host static ID as a string. More... | |
double | getPlatoonFrontDowntrackDistance () |
UCLA: Return the platoon leader downtrack distance, in m. More... | |
double | getPredecessorTimeHeadwaySum () |
UCLA: Return the time headway summation of all predecessors, in s. More... | |
double | getPredecessorSpeed () |
UCLA: Return the speed of the preceding vehicle, in m/s. More... | |
double | getPredecessorPosition () |
UCLA: Return the position of the preceding vehicle, in m. More... | |
double | getIHPDesPosFollower (double dt) |
UCLA: Return follower's desired position (i.e., downtrack, in m) that maintains the desired intra-platoon time gap, based on IHP platoon trajectory regulation algorithm. More... | |
int | getClosestIndex (double joinerDtD) |
UCLA: Return joiner's desired position in terms of target platoon index to cut into the platoon. CAUTION: ASSUMES that the neighbor platoon info is fully populated! More... | |
double | getCutInGap (const int gap_leading_index, const double joinerDtD) |
UCLA: Return the current actual gap size in the target platoon for cut-in join, in m. Note: The origin of the vehicle (for downtrack distance calculation) is located at the rear axle. CAUTION: ASSUMES that the neighbor platoon info is fully populated! More... | |
Public Attributes | |
const std::string | dummyID = "00000000-0000-0000-0000-000000000000" |
std::vector< PlatoonMember > | host_platoon_ |
std::string | currentPlatoonID = dummyID |
std::string | platoonLeaderID = dummyID |
PlatoonState | current_platoon_state = PlatoonState::STANDBY |
size_t | hostPosInPlatoon_ = 0 |
ActionPlan | current_plan = ActionPlan() |
bool | isFollower = false |
std::vector< PlatoonMember > | neighbor_platoon_ |
size_t | neighbor_platoon_info_size_ = 0 |
std::string | targetPlatoonID = dummyID |
std::string | neighborPlatoonID = dummyID |
std::string | neighbor_platoon_leader_id_ = dummyID |
bool | is_neighbor_record_complete_ = false |
geometry_msgs::msg::PoseStamped | pose_msg_ |
std::string | HostMobilityId = "default_host_id" |
bool | isCreateGap = false |
size_t | dynamic_leader_index_ = 0 |
std::shared_ptr< carma_ros2_utils::timers::TimerFactory > | timer_factory_ |
Private Member Functions | |
bool | insufficientGapWithPredecessor (double distanceToPredVehicle) |
Check the gap with the predecessor vehicle. More... | |
std::vector< double > | calculateTimeHeadway (std::vector< double > downtrackDistance, std::vector< double > speed) const |
Calculate the time headaway of each platoon member and save as a vector. More... | |
int | determineDynamicLeaderBasedOnViolation (std::vector< double > timeHeadways) |
Determine the proper vehicle to follow based the time headway of each member. Note that the host will always choose the closest violator (i.e. time headaway too small or too large) to follow. More... | |
int | findLowerBoundaryViolationClosestToTheHostVehicle (std::vector< double > timeHeadways) const |
Find the closest vehicle to the host vehicle that violates the (time headaway) lower boundary condition. More... | |
int | findMaximumSpacingViolationClosestToTheHostVehicle (std::vector< double > timeHeadways) const |
Find the closest vehicle to the host vehicle that violates the (time headaway) maximum spacing condition. More... | |
std::vector< double > | getTimeHeadwayFromIndex (std::vector< double > timeHeadways, int start) const |
Return a sub-vector of the platoon-wise time headaways vector that start with a given index. More... | |
Private Attributes | |
PlatoonPluginConfig | config_ |
std::string | OPERATION_INFO_TYPE = "INFO" |
std::string | OPERATION_STATUS_TYPE = "STATUS" |
std::string | JOIN_AT_REAR_PARAMS = "SIZE:%1%,SPEED:%2%,DTD:%3%" |
std::string | JOIN_FROM_FRONT_PARAMS = "SIZE:%1%,SPEED:%2%,DTD:%3%" |
std::string | MOBILITY_STRATEGY = "Carma/Platooning" |
double | minCutinGap_ = 22.0 |
double | maxCutinGap_ = 32.0 |
std::string | previousFunctionalDynamicLeaderID_ = "" |
int | previousFunctionalDynamicLeaderIndex_ = -1 |
double | vehicleLength_ = 5.0 |
double | gapWithPred_ = 0.0 |
double | downtrack_progress_ = 0 |
std::string | algorithmType_ = "APF_ALGORITHM" |
Class containing the logic for platoon manager. It is responsible for keeping track of the platoon members and role of the host vehicle in the platoon.
Definition at line 120 of file platoon_manager_ihp.h.
platoon_strategic_ihp::PlatoonManager::PlatoonManager | ( | std::shared_ptr< carma_ros2_utils::timers::TimerFactory > | timer_factory | ) |
Constructor.
timer_factory | An interface which can be used to get access to the current time |
Implementation notes:
Definition at line 51 of file platoon_manager_ihp.cpp.
int platoon_strategic_ihp::PlatoonManager::allPredecessorFollowing | ( | ) |
This is the implementation of all predecessor following (APF) algorithm for leader selection in a platoon. This function will recognize who is acting as the current leader of the subject vehicle. The current leader of the subject vehicle will be any ONE of the vehicles in front of it. Having a vehicle further downstream function as the leader is more efficient and more stable; however, having a vehicle closer to the subject vehicle function as the leader is safer. For this reason, the subject vehicle will monitor all time headways between every single set of consecutive vehicles starting from itself to the leader. If the time headways are within some safe thresholds then vehicles further downstream may function as the leader. Otherwise, for the sake of safety, vehicles closer to the subject vehicle, potentially even the predecessor, will function as the leader.
***** Case Zero *****///
***** Case One *****///
***** Case Two *****///
***** Case Three *****///
***** Case Four *****///
***** Case Five *****///
***** Case Six *****///
***** Case Seven *****///
***** Case Eight *****///
***** Case Nine *****///
Definition at line 428 of file platoon_manager_ihp.cpp.
References calculateTimeHeadway(), config_, determineDynamicLeaderBasedOnViolation(), findLowerBoundaryViolationClosestToTheHostVehicle(), findMaximumSpacingViolationClosestToTheHostVehicle(), gapWithPred_, getNumberOfVehicleInFront(), getTimeHeadwayFromIndex(), platoon_strategic_ihp::PlatoonPluginConfig::headawayStableLowerBond, platoon_strategic_ihp::PlatoonPluginConfig::headawayStableUpperBond, host_platoon_, hostPosInPlatoon_, process_bag::i, insufficientGapWithPredecessor(), previousFunctionalDynamicLeaderID_, and previousFunctionalDynamicLeaderIndex_.
Referenced by getDynamicLeader().
|
private |
Calculate the time headaway of each platoon member and save as a vector.
downtrackDistance | a vector containing the downtrack distances of all members. |
speed | a vector containing the speeds of all members. |
Definition at line 585 of file platoon_manager_ihp.cpp.
References config_, process_bag::i, and platoon_strategic_ihp::PlatoonPluginConfig::ss_theta.
Referenced by allPredecessorFollowing().
void platoon_strategic_ihp::PlatoonManager::changeFromFollowerToLeader | ( | ) |
Update status when state change from Follower to Leader.
Definition at line 672 of file platoon_manager_ihp.cpp.
References currentPlatoonID, host_platoon_, hostPosInPlatoon_, isFollower, previousFunctionalDynamicLeaderID_, previousFunctionalDynamicLeaderIndex_, and carma_cooperative_perception::to_string().
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_follower().
void platoon_strategic_ihp::PlatoonManager::changeFromLeaderToFollower | ( | std::string | newPlatoonId, |
std::string | newLeaderId | ||
) |
Update status when state change from Leader to Follower.
newPlatoonId | new ID of the platoon |
newLeaderId | ID of the new lead vehicle |
Definition at line 699 of file platoon_manager_ihp.cpp.
References currentPlatoonID, host_platoon_, hostPosInPlatoon_, isFollower, resetNeighborPlatoon(), and platoon_strategic_ihp::PlatoonMember::staticId.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_candidatefollower(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leaderaborting().
void platoon_strategic_ihp::PlatoonManager::clearActionPlan | ( | ) |
Resets necessary variables to indicate that the current ActionPlan is dead.
Definition at line 285 of file platoon_manager_ihp.cpp.
References current_plan, dummyID, platoon_strategic_ihp::ActionPlan::peerId, platoon_strategic_ihp::ActionPlan::planId, targetPlatoonID, and platoon_strategic_ihp::ActionPlan::valid.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_candidateleader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leaderwaiting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_candidatefollower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leaderaborting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_candidate_follower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_candidate_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_leader_aborting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_leader_waiting(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_prepare_to_join().
|
private |
Determine the proper vehicle to follow based the time headway of each member. Note that the host will always choose the closest violator (i.e. time headaway too small or too large) to follow.
timeHeadways | A vector containing the time headaway of all platoon members. |
Note: For both condition, the host will always choose to follow the vechile that has a relatively larger gap in front.
max-vilation (follow veh2): [veh3] -------— [veh2] ----------------------------— [veh1] -------— [veh0] ^ gap2 gap1(max violation) gap0
min-vilation (follow veh1): [veh3] --------—[veh2]—[veh1] -------— [veh0] ^ gap2 gap1 gap0 (min violation)
Definition at line 604 of file platoon_manager_ihp.cpp.
References findLowerBoundaryViolationClosestToTheHostVehicle(), and findMaximumSpacingViolationClosestToTheHostVehicle().
Referenced by allPredecessorFollowing().
|
private |
Find the closest vehicle to the host vehicle that violates the (time headaway) lower boundary condition.
timeHeadways | A vector containing the time headaway of all platoon members. |
Definition at line 639 of file platoon_manager_ihp.cpp.
References config_, process_bag::i, and platoon_strategic_ihp::PlatoonPluginConfig::minAllowableHeadaway.
Referenced by allPredecessorFollowing(), and determineDynamicLeaderBasedOnViolation().
|
private |
Find the closest vehicle to the host vehicle that violates the (time headaway) maximum spacing condition.
timeHeadways | A vector containing the time headaway of all platoon members. |
Definition at line 651 of file platoon_manager_ihp.cpp.
References config_, platoon_strategic_ihp::PlatoonPluginConfig::createGapAdjuster, process_bag::i, isCreateGap, and platoon_strategic_ihp::PlatoonPluginConfig::maxAllowableHeadaway.
Referenced by allPredecessorFollowing(), and determineDynamicLeaderBasedOnViolation().
int platoon_strategic_ihp::PlatoonManager::getClosestIndex | ( | double | joinerDtD | ) |
UCLA: Return joiner's desired position in terms of target platoon index to cut into the platoon. CAUTION: ASSUMES that the neighbor platoon info is fully populated!
joinerDtD | The current downtrack distance (with regards to host vehicle) of the joiner vehicle. |
Definition at line 911 of file platoon_manager_ihp.cpp.
References process_bag::i, and neighbor_platoon_.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_prepare_to_join().
double platoon_strategic_ihp::PlatoonManager::getCommandSpeed | ( | ) | const |
Returns command speed. in m/s.
Definition at line 738 of file platoon_manager_ihp.cpp.
References host_platoon_, and hostPosInPlatoon_.
Referenced by hostMemberUpdates().
double platoon_strategic_ihp::PlatoonManager::getCurrentCrosstrackDistance | ( | ) | const |
Returns current crosstrack distance, in m.
Definition at line 750 of file platoon_manager_ihp.cpp.
References host_platoon_, and hostPosInPlatoon_.
Referenced by hostMemberUpdates().
double platoon_strategic_ihp::PlatoonManager::getCurrentDowntrackDistance | ( | ) | const |
Returns current downtrack distance, in m.
Definition at line 744 of file platoon_manager_ihp.cpp.
References host_platoon_, and hostPosInPlatoon_.
Referenced by getIHPDesPosFollower(), getPredecessorTimeHeadwaySum(), and hostMemberUpdates().
double platoon_strategic_ihp::PlatoonManager::getCurrentPlatoonLength | ( | ) |
Returns overall length of the platoon. in m.
Definition at line 762 of file platoon_manager_ihp.cpp.
References config_, host_platoon_, and platoon_strategic_ihp::PlatoonPluginConfig::vehicleLength.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composeMobilityOperationINFO().
double platoon_strategic_ihp::PlatoonManager::getCurrentSpeed | ( | ) | const |
Returns current speed, in m/s.
Definition at line 733 of file platoon_manager_ihp.cpp.
References host_platoon_, and hostPosInPlatoon_.
Referenced by getIHPDesPosFollower(), and hostMemberUpdates().
double platoon_strategic_ihp::PlatoonManager::getCutInGap | ( | const int | gap_leading_index, |
const double | joinerDtD | ||
) |
UCLA: Return the current actual gap size in the target platoon for cut-in join, in m. Note: The origin of the vehicle (for downtrack distance calculation) is located at the rear axle. CAUTION: ASSUMES that the neighbor platoon info is fully populated!
gap_leading_index | The platoon index of the gap-leading vehicle. |
joinerDtD | The current downtrack distance (with regards to host vehicle route) of the joiner vehicle. |
Definition at line 943 of file platoon_manager_ihp.cpp.
References config_, neighbor_platoon_, and platoon_strategic_ihp::PlatoonPluginConfig::vehicleLength.
double platoon_strategic_ihp::PlatoonManager::getDistanceToPredVehicle | ( | ) |
Returns distance to the predessecor vehicle, in m.
Definition at line 728 of file platoon_manager_ihp.cpp.
References gapWithPred_.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_candidate_follower(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_leader_aborting().
PlatoonMember platoon_strategic_ihp::PlatoonManager::getDynamicLeader | ( | ) |
Returns dynamic leader of the host vehicle.
it might happened when the subject vehicle gets far away from the preceding vehicle, in which case the host vehicle will follow the one in front.
Definition at line 388 of file platoon_manager_ihp.cpp.
References algorithmType_, allPredecessorFollowing(), dynamic_leader_index_, getNumberOfVehicleInFront(), host_platoon_, isFollower, previousFunctionalDynamicLeaderID_, previousFunctionalDynamicLeaderIndex_, and platoon_strategic_ihp::PlatoonMember::staticId.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composePlatoonInfoMsg().
int platoon_strategic_ihp::PlatoonManager::getHostPlatoonSize | ( | ) |
Returns total size of the platoon , in number of vehicles.
Definition at line 279 of file platoon_manager_ihp.cpp.
References host_platoon_.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composeMobilityOperationINFO(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composePlatoonInfoMsg(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_preparetojoin(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leaderwaiting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leadwithoperation(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_candidatefollower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_preparetojoin(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::plan_maneuver_cb(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_lead_with_operation(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_leader_aborting(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_prepare_to_join().
std::string platoon_strategic_ihp::PlatoonManager::getHostStaticID | ( | ) | const |
Returns current host static ID as a string.
Definition at line 756 of file platoon_manager_ihp.cpp.
References HostMobilityId.
Referenced by hostMemberUpdates(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_follower(), and updatesOrAddMemberInfo().
double platoon_strategic_ihp::PlatoonManager::getIHPDesPosFollower | ( | double | dt | ) |
UCLA: Return follower's desired position (i.e., downtrack, in m) that maintains the desired intra-platoon time gap, based on IHP platoon trajectory regulation algorithm.
\params dt: The planning time step, in s.
Calculate desired position based on previous vehicle's trajectory for followers.
TODO: The platoon trajectory regulation is derived with the assumption that all vehicle have identical length (i.e., 5m). Future development is needed to include variable vehicle length into consideration.
Definition at line 819 of file platoon_manager_ihp.cpp.
References config_, platoon_strategic_ihp::PlatoonPluginConfig::gap_weight, getCurrentDowntrackDistance(), getCurrentSpeed(), getNumberOfVehicleInFront(), host_platoon_, process_bag::i, platoon_strategic_ihp::PlatoonPluginConfig::intra_tau, platoon_strategic_ihp::PlatoonPluginConfig::ss_theta, platoon_strategic_ihp::PlatoonPluginConfig::standstill, and platoon_strategic_ihp::PlatoonPluginConfig::vehicleLength.
int platoon_strategic_ihp::PlatoonManager::getNumberOfVehicleInFront | ( | ) |
Get number of vehicles in front of host vehicle inside platoon.
Definition at line 723 of file platoon_manager_ihp.cpp.
References hostPosInPlatoon_.
Referenced by allPredecessorFollowing(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composePlatoonInfoMsg(), getDynamicLeader(), getIHPDesPosFollower(), getPredecessorPosition(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_follower().
double platoon_strategic_ihp::PlatoonManager::getPlatoonFrontDowntrackDistance | ( | ) |
UCLA: Return the platoon leader downtrack distance, in m.
Definition at line 382 of file platoon_manager_ihp.cpp.
References host_platoon_.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leader().
double platoon_strategic_ihp::PlatoonManager::getPlatoonRearDowntrackDistance | ( | ) |
Returns downtrack distance of the rear vehicle in platoon, in m.
Definition at line 375 of file platoon_manager_ihp.cpp.
References host_platoon_.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leader().
double platoon_strategic_ihp::PlatoonManager::getPredecessorPosition | ( | ) |
UCLA: Return the position of the preceding vehicle, in m.
Definition at line 809 of file platoon_manager_ihp.cpp.
References getNumberOfVehicleInFront(), and host_platoon_.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composePlatoonInfoMsg().
double platoon_strategic_ihp::PlatoonManager::getPredecessorSpeed | ( | ) |
UCLA: Return the speed of the preceding vehicle, in m/s.
Definition at line 803 of file platoon_manager_ihp.cpp.
References host_platoon_, and hostPosInPlatoon_.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composePlatoonInfoMsg().
double platoon_strategic_ihp::PlatoonManager::getPredecessorTimeHeadwaySum | ( | ) |
UCLA: Return the time headway summation of all predecessors, in s.
Definition at line 769 of file platoon_manager_ihp.cpp.
References config_, getCurrentDowntrackDistance(), host_platoon_, process_bag::i, and platoon_strategic_ihp::PlatoonPluginConfig::vehicleLength.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composePlatoonInfoMsg().
|
private |
Return a sub-vector of the platoon-wise time headaways vector that start with a given index.
timeHeadways | A vector containing the time headaway of all platoon members. start: An integer indicates the starting position. |
Definition at line 564 of file platoon_manager_ihp.cpp.
Referenced by allPredecessorFollowing().
void platoon_strategic_ihp::PlatoonManager::hostMemberUpdates | ( | const std::string & | senderId, |
const std::string & | platoonId, | ||
const std::string & | params, | ||
const double & | DtD, | ||
const double & | CtD | ||
) |
Update information for members of the host's platoon based on a mobility operation STATUS message.
senderId | static id of the broadcasting vehicle |
platoonId | platoon id |
params | message strategy parameters |
DtD | downtrack distance along host's route, m |
CtD | crosstrack distance in roadway at host's location, m |
Definition at line 73 of file platoon_manager_ihp.cpp.
References currentPlatoonID, getCommandSpeed(), getCurrentCrosstrackDistance(), getCurrentDowntrackDistance(), getCurrentSpeed(), getHostStaticID(), host_platoon_, isFollower, platoonLeaderID, process_traj_logs::split, and updatesOrAddMemberInfo().
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_STATUS().
|
private |
Check the gap with the predecessor vehicle.
distanceToPredVehicle | The distance between the host to the predecessor vehicle. |
Definition at line 570 of file platoon_manager_ihp.cpp.
References config_, host_platoon_, platoon_strategic_ihp::PlatoonPluginConfig::maxCutinGap, platoon_strategic_ihp::PlatoonPluginConfig::minCutinGap, and previousFunctionalDynamicLeaderID_.
Referenced by allPredecessorFollowing().
void platoon_strategic_ihp::PlatoonManager::neighborMemberUpdates | ( | const std::string & | senderId, |
const std::string & | platoonId, | ||
const std::string & | params, | ||
const double & | DtD, | ||
const double & | CtD | ||
) |
Update information for members of a neighboring platoon based on a mobility operation STATUS message.
senderId | static id of the broadcasting vehicle |
platoonId | platoon id |
params | message strategy parameters |
DtD | downtrack distance along host's route, m |
CtD | crosstrack distance in roadway at host's location, m |
Definition at line 157 of file platoon_manager_ihp.cpp.
References is_neighbor_record_complete_, neighbor_platoon_, neighbor_platoon_info_size_, neighborPlatoonID, process_traj_logs::split, and updatesOrAddMemberInfo().
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_STATUS().
bool platoon_strategic_ihp::PlatoonManager::removeMember | ( | const size_t | mem | ) |
Removes a single member from the internal record of platoon members.
mem | index of the member to be removed (zero-based) |
Definition at line 322 of file platoon_manager_ihp.cpp.
References currentPlatoonID, dummyID, host_platoon_, hostPosInPlatoon_, and platoonLeaderID.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leaderaborting(), and removeMemberById().
bool platoon_strategic_ihp::PlatoonManager::removeMemberById | ( | const std::string | id | ) |
Removes a single member from the internal record of platoon members.
id | the vehicle ID of the member to be removed |
Definition at line 353 of file platoon_manager_ihp.cpp.
References host_platoon_, HostMobilityId, and removeMember().
void platoon_strategic_ihp::PlatoonManager::resetHostPlatoon | ( | ) |
Resets all variables that might indicate other members of the host's platoon; sets the host back to solo vehicle.
Definition at line 295 of file platoon_manager_ihp.cpp.
References currentPlatoonID, dummyID, dynamic_leader_index_, host_platoon_, hostPosInPlatoon_, isCreateGap, and platoonLeaderID.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_candidateleader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_candidatefollower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_candidate_leader(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_prepare_to_join().
void platoon_strategic_ihp::PlatoonManager::resetNeighborPlatoon | ( | ) |
Resets all variables that describe a neighbor platoon, so that no neighbor is known.
Definition at line 313 of file platoon_manager_ihp.cpp.
References dummyID, is_neighbor_record_complete_, neighbor_platoon_, neighbor_platoon_info_size_, neighbor_platoon_leader_id_, and neighborPlatoonID.
Referenced by changeFromLeaderToFollower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_candidateleader(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_candidatefollower().
void platoon_strategic_ihp::PlatoonManager::updateHostPose | ( | const double | downtrack, |
const double | crosstrack | ||
) |
Stores the latest info on location of the host vehicle.
downtrack | distance downtrack from beginning of route, m |
crosstrack | distance crosstrack from roadway centerline, m |
Definition at line 58 of file platoon_manager_ihp.cpp.
References host_platoon_, and hostPosInPlatoon_.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::onSpin(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::pose_cb().
void platoon_strategic_ihp::PlatoonManager::updateHostSpeeds | ( | const double | cmdSpeed, |
const double | actualSpeed | ||
) |
Stores the latest info on host vehicle's command & actual speeds.
cmdSpeed | current commanded speed, m/s |
actualSpeed | current measured speed, m/s |
Definition at line 66 of file platoon_manager_ihp.cpp.
References host_platoon_, and hostPosInPlatoon_.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::onSpin().
void platoon_strategic_ihp::PlatoonManager::updatesOrAddMemberInfo | ( | std::vector< PlatoonMember > & | platoon, |
std::string | senderId, | ||
double | cmdSpeed, | ||
double | dtDistance, | ||
double | ctDistance, | ||
double | curSpeed | ||
) |
Updates the list of vehicles in the specified platoon, based on info available from a mobility operation STATUS message from one of that platoon's vehicles. It ensures the list of vehicles is properly sorted in order of appearance from front to rear in the platoon. If the host is in the platoon, it will update host info as well.
platoon | the list of vehicles in the platoon in question |
senderId | vehicle ID that sent the current info |
cmdSpeed | the commanded speed of the sending vehicle |
dtDistance | the downtrack location (from beginning of host's route) of the sending vehicle, m |
ctDistance | the crosstrack location (from center of roadway at host's current route location) of sending vehicle, m |
curSpeed | the current actual speed of the sending vehicle, m/s |
Definition at line 199 of file platoon_manager_ihp.cpp.
References config_, getHostStaticID(), HostMobilityId, hostPosInPlatoon_, process_bag::i, platoon_strategic_ihp::PlatoonPluginConfig::significantDTDchange, platoon_strategic_ihp::PlatoonMember::staticId, timer_factory_, and platoon_strategic_ihp::PlatoonMember::vehiclePosition.
Referenced by hostMemberUpdates(), and neighborMemberUpdates().
|
private |
Definition at line 439 of file platoon_manager_ihp.h.
Referenced by getDynamicLeader().
|
private |
Definition at line 417 of file platoon_manager_ihp.h.
Referenced by allPredecessorFollowing(), calculateTimeHeadway(), findLowerBoundaryViolationClosestToTheHostVehicle(), findMaximumSpacingViolationClosestToTheHostVehicle(), getCurrentPlatoonLength(), getCutInGap(), getIHPDesPosFollower(), getPredecessorTimeHeadwaySum(), insufficientGapWithPredecessor(), and updatesOrAddMemberInfo().
ActionPlan platoon_strategic_ihp::PlatoonManager::current_plan = ActionPlan() |
Definition at line 376 of file platoon_manager_ihp.h.
Referenced by clearActionPlan(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_preparetojoin(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_candidateleader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leaderwaiting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leadwithoperation(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_candidatefollower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_follower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leaderaborting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_preparetojoin(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_candidate_follower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_leader_aborting(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_prepare_to_join().
PlatoonState platoon_strategic_ihp::PlatoonManager::current_platoon_state = PlatoonState::STANDBY |
Definition at line 370 of file platoon_manager_ihp.h.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composePlatoonInfoMsg(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::handle_mob_req(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_candidateleader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leaderwaiting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leadwithoperation(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_candidatefollower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_follower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leaderaborting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_preparetojoin(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::onSpin(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::plan_maneuver_cb(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::pose_cb(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_candidate_follower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_candidate_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_follower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_leader_aborting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_leader_waiting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_prepare_to_join(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::setPMState().
std::string platoon_strategic_ihp::PlatoonManager::currentPlatoonID = dummyID |
Definition at line 364 of file platoon_manager_ihp.h.
Referenced by changeFromFollowerToLeader(), changeFromLeaderToFollower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composeMobilityOperationINFO(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composeMobilityOperationSTATUS(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composePlatoonInfoMsg(), hostMemberUpdates(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_preparetojoin(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_STATUS(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leaderwaiting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leadwithoperation(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_candidatefollower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leaderaborting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_preparetojoin(), removeMember(), and resetHostPlatoon().
|
private |
Definition at line 435 of file platoon_manager_ihp.h.
const std::string platoon_strategic_ihp::PlatoonManager::dummyID = "00000000-0000-0000-0000-000000000000" |
Definition at line 358 of file platoon_manager_ihp.h.
Referenced by clearActionPlan(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_preparetojoin(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_STATUS(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leaderwaiting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leadwithoperation(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_candidatefollower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_preparetojoin(), removeMember(), resetHostPlatoon(), and resetNeighborPlatoon().
size_t platoon_strategic_ihp::PlatoonManager::dynamic_leader_index_ = 0 |
Definition at line 409 of file platoon_manager_ihp.h.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composePlatoonInfoMsg(), getDynamicLeader(), and resetHostPlatoon().
|
private |
Definition at line 434 of file platoon_manager_ihp.h.
Referenced by allPredecessorFollowing(), and getDistanceToPredVehicle().
std::vector<PlatoonMember> platoon_strategic_ihp::PlatoonManager::host_platoon_ |
Definition at line 361 of file platoon_manager_ihp.h.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::PlatoonStrategicIHPPlugin(), allPredecessorFollowing(), changeFromFollowerToLeader(), changeFromLeaderToFollower(), getCommandSpeed(), getCurrentCrosstrackDistance(), getCurrentDowntrackDistance(), getCurrentPlatoonLength(), getCurrentSpeed(), getDynamicLeader(), getHostPlatoonSize(), getIHPDesPosFollower(), getPlatoonFrontDowntrackDistance(), getPlatoonRearDowntrackDistance(), getPredecessorPosition(), getPredecessorSpeed(), getPredecessorTimeHeadwaySum(), hostMemberUpdates(), insufficientGapWithPredecessor(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::isJoiningVehicleNearPlatoon(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_follower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leaderwaiting(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leadwithoperation(), removeMember(), removeMemberById(), resetHostPlatoon(), updateHostPose(), updateHostSpeeds(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::updatePlatoonList().
std::string platoon_strategic_ihp::PlatoonManager::HostMobilityId = "default_host_id" |
size_t platoon_strategic_ihp::PlatoonManager::hostPosInPlatoon_ = 0 |
Definition at line 373 of file platoon_manager_ihp.h.
Referenced by allPredecessorFollowing(), changeFromFollowerToLeader(), changeFromLeaderToFollower(), getCommandSpeed(), getCurrentCrosstrackDistance(), getCurrentDowntrackDistance(), getCurrentSpeed(), getNumberOfVehicleInFront(), getPredecessorSpeed(), removeMember(), resetHostPlatoon(), updateHostPose(), updateHostSpeeds(), and updatesOrAddMemberInfo().
bool platoon_strategic_ihp::PlatoonManager::is_neighbor_record_complete_ = false |
Definition at line 398 of file platoon_manager_ihp.h.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_preparetojoin(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_preparetojoin(), neighborMemberUpdates(), resetNeighborPlatoon(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_prepare_to_join().
bool platoon_strategic_ihp::PlatoonManager::isCreateGap = false |
Definition at line 407 of file platoon_manager_ihp.h.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::composePlatoonInfoMsg(), findMaximumSpacingViolationClosestToTheHostVehicle(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_follower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leadwithoperation(), and resetHostPlatoon().
bool platoon_strategic_ihp::PlatoonManager::isFollower = false |
Definition at line 379 of file platoon_manager_ihp.h.
Referenced by changeFromFollowerToLeader(), changeFromLeaderToFollower(), getDynamicLeader(), and hostMemberUpdates().
|
private |
Definition at line 421 of file platoon_manager_ihp.h.
|
private |
Definition at line 423 of file platoon_manager_ihp.h.
|
private |
Definition at line 427 of file platoon_manager_ihp.h.
|
private |
Definition at line 426 of file platoon_manager_ihp.h.
|
private |
Definition at line 424 of file platoon_manager_ihp.h.
std::vector<PlatoonMember> platoon_strategic_ihp::PlatoonManager::neighbor_platoon_ |
Definition at line 384 of file platoon_manager_ihp.h.
Referenced by getClosestIndex(), getCutInGap(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_preparetojoin(), neighborMemberUpdates(), resetNeighborPlatoon(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_candidate_follower().
size_t platoon_strategic_ihp::PlatoonManager::neighbor_platoon_info_size_ = 0 |
Definition at line 387 of file platoon_manager_ihp.h.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb(), neighborMemberUpdates(), and resetNeighborPlatoon().
std::string platoon_strategic_ihp::PlatoonManager::neighbor_platoon_leader_id_ = dummyID |
Definition at line 395 of file platoon_manager_ihp.h.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leader(), resetNeighborPlatoon(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_prepare_to_join().
std::string platoon_strategic_ihp::PlatoonManager::neighborPlatoonID = dummyID |
Definition at line 392 of file platoon_manager_ihp.h.
Referenced by platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_STATUS(), neighborMemberUpdates(), and resetNeighborPlatoon().
|
private |
Definition at line 419 of file platoon_manager_ihp.h.
|
private |
Definition at line 420 of file platoon_manager_ihp.h.
std::string platoon_strategic_ihp::PlatoonManager::platoonLeaderID = dummyID |
Definition at line 367 of file platoon_manager_ihp.h.
Referenced by hostMemberUpdates(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_candidateleader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_req_cb_leadwithoperation(), removeMember(), resetHostPlatoon(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_candidate_follower(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::run_leader_aborting().
geometry_msgs::msg::PoseStamped platoon_strategic_ihp::PlatoonManager::pose_msg_ |
Definition at line 401 of file platoon_manager_ihp.h.
|
private |
Definition at line 428 of file platoon_manager_ihp.h.
Referenced by allPredecessorFollowing(), changeFromFollowerToLeader(), getDynamicLeader(), and insufficientGapWithPredecessor().
|
private |
Definition at line 429 of file platoon_manager_ihp.h.
Referenced by allPredecessorFollowing(), changeFromFollowerToLeader(), and getDynamicLeader().
std::string platoon_strategic_ihp::PlatoonManager::targetPlatoonID = dummyID |
Definition at line 390 of file platoon_manager_ihp.h.
Referenced by clearActionPlan(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_leader(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_op_cb_STATUS(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_candidatefollower(), platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_leader(), and platoon_strategic_ihp::PlatoonStrategicIHPPlugin::mob_resp_cb_preparetojoin().
std::shared_ptr<carma_ros2_utils::timers::TimerFactory> platoon_strategic_ihp::PlatoonManager::timer_factory_ |
Definition at line 412 of file platoon_manager_ihp.h.
Referenced by updatesOrAddMemberInfo().
|
private |
Definition at line 433 of file platoon_manager_ihp.h.