Decision Module  1.0
ICRA2020 AI Challenge Northwestern Polytechnical University Aoxiang Team Strategy Code
roborts_decision::Field Class Reference

#include <field.h>

Public Member Functions

 Field (const ros::NodeHandle &nh=ros::NodeHandle("~"))
 
 Field (const Field &)=delete
 
 Field (Field &&)=delete
 
const std::vector< std::pair< BuffZoneStatus, roborts_common::Zone > > & GetBuffZoneStatus () const
 
const std::vector< roborts_common::Zone > & getObstacles () const
 
const std::vector< roborts_common::Zone > & getWalls () const
 
int IsZoneActive (BuffStatus buff_status)
 
std::vector< roborts_common::Polygon2D > GetObstaclesBetweenTwoRobots (const roborts_common::Point2D point1, const roborts_common::Point2D point2)
 
bool GetDisToObstacleSuitable (const roborts_common::Point2D &point)
 

Static Public Member Functions

static std::shared_ptr< FieldGetField ()
 
static std::vector< roborts_common::Polygon2D > TurnRectangulars (const std::vector< roborts_common::Zone > &zones)
 

Private Member Functions

void buffZoneStatusCallback (const roborts_msgs::BuffZoneStatus::ConstPtr &msg)
 

Private Attributes

ros::NodeHandle nh_
 
ros::Subscriber buff_zone_sub_
 
std::vector< std::pair< BuffZoneStatus, roborts_common::Zone > > vec_buff_zone_status_
 
std::vector< roborts_common::Zone > obstacles_
 
std::vector< roborts_common::Zone > walls_
 

Static Private Attributes

static std::shared_ptr< Fieldfield_ = nullptr
 

Detailed Description

与障碍物有关的信息

Constructor & Destructor Documentation

◆ Field() [1/3]

Field::Field ( const ros::NodeHandle &  nh = ros::NodeHandle("~"))

◆ Field() [2/3]

roborts_decision::Field::Field ( const Field )
delete

◆ Field() [3/3]

roborts_decision::Field::Field ( Field &&  )
delete

Member Function Documentation

◆ buffZoneStatusCallback()

void Field::buffZoneStatusCallback ( const roborts_msgs::BuffZoneStatus::ConstPtr &  msg)
private

◆ GetBuffZoneStatus()

const std::vector< std::pair< BuffZoneStatus, roborts_common::Zone > > & Field::GetBuffZoneStatus ( ) const

◆ GetDisToObstacleSuitable()

bool Field::GetDisToObstacleSuitable ( const roborts_common::Point2D &  point)

判断当前跑位点知否合适,如果距离大于sqrt(2)/2个车长,则合适,否则不合适

Parameters
point
Returns

◆ GetField()

std::shared_ptr< Field > Field::GetField ( )
static

◆ getObstacles()

const std::vector< roborts_common::Zone > & Field::getObstacles ( ) const

◆ GetObstaclesBetweenTwoRobots()

std::vector< roborts_common::Polygon2D > Field::GetObstaclesBetweenTwoRobots ( const roborts_common::Point2D  point1,
const roborts_common::Point2D  point2 
)

◆ getWalls()

const std::vector< roborts_common::Zone > & Field::getWalls ( ) const

◆ IsZoneActive()

int Field::IsZoneActive ( BuffStatus  buff_status)

Adjust the buff Zone is active

Parameters
buff_statusThe Buff Zone status
Returns
When the buff Zone is active return the Zone id, and the other one return false

◆ TurnRectangulars()

std::vector< roborts_common::Polygon2D > roborts_decision::Field::TurnRectangulars ( const std::vector< roborts_common::Zone > &  zones)
static

Member Data Documentation

◆ buff_zone_sub_

ros::Subscriber roborts_decision::Field::buff_zone_sub_
private

◆ field_

std::shared_ptr< Field > Field::field_ = nullptr
staticprivate

◆ nh_

ros::NodeHandle roborts_decision::Field::nh_
private

◆ obstacles_

std::vector<roborts_common::Zone> roborts_decision::Field::obstacles_
private

◆ vec_buff_zone_status_

std::vector<std::pair<BuffZoneStatus, roborts_common::Zone> > roborts_decision::Field::vec_buff_zone_status_
private

◆ walls_

std::vector<roborts_common::Zone> roborts_decision::Field::walls_
private

The documentation for this class was generated from the following files: