Ejemplo n.º 1
0
void KeySymbols::registerSymbols(xabsl::Engine& engine)
{
  engine.registerBooleanInputSymbol("key.right_foot_right_button_pressed_and_released", &pressed_and_released[KeyStates::rightFootRight]);
  engine.registerBooleanInputSymbol("key.left_foot_right_button_pressed_and_released", &pressed_and_released[KeyStates::leftFootRight]);
  engine.registerBooleanInputSymbol("key.left_foot_left_button_pressed_and_released", &pressed_and_released[KeyStates::leftFootLeft]);
  engine.registerBooleanInputSymbol("key.right_foot_left_button_pressed_and_released", &pressed_and_released[KeyStates::rightFootLeft]);
  engine.registerBooleanInputSymbol("key.chest_button_pressed_and_released", &pressed_and_released[KeyStates::chest]);
}
Ejemplo n.º 2
0
void BH2011BIKESymbols::registerSymbols(xabsl::Engine& engine)
{
    engine.registerBooleanInputSymbol("motion.kick_forward", this, &BH2011BIKESymbols::getKickForward);
    engine.registerBooleanInputSymbolDecimalParameter("motion.kick_forward", "motion.kick_forward.y", &ballY);
    engine.registerBooleanInputSymbolDecimalParameter("motion.kick_forward", "motion.kick_forward.x", &ballX);
    engine.registerBooleanInputSymbolBooleanParameter("motion.kick_forward", "motion.kick_forward.mirror", &mirror);
    engine.registerBooleanInputSymbolBooleanParameter("motion.kick_forward", "motion.kick_forward.updates", &updates);
    engine.registerBooleanOutputSymbol("bike.update", &updating);
}
void BH2011ObstacleSymbols::registerSymbols(xabsl::Engine& engine)
{
  engine.registerDecimalInputSymbol("obstacle.distance_to_closest_center_left", this, &BH2011ObstacleSymbols::getDistanceToClosestCenterLeft);
  engine.registerDecimalInputSymbol("obstacle.distance_to_closest_center_right", this, &BH2011ObstacleSymbols::getDistanceToClosestCenterRight);
  engine.registerDecimalInputSymbol("obstacle.distance_to_closest_center", this, &BH2011ObstacleSymbols::getDistanceToClosestCenter);
  engine.registerDecimalInputSymbol("obstacle.distance_to_closest", this, &BH2011ObstacleSymbols::getDistanceToClosest);
  engine.registerDecimalInputSymbol("obstacle.angle_to_closest", this, &BH2011ObstacleSymbols::getAngleToClosest);
  engine.registerDecimalInputSymbol("obstacle.free_kick_angle_left", this, &BH2011ObstacleSymbols::getFreeKickAngleLeft);
  engine.registerDecimalInputSymbol("obstacle.free_kick_angle_right", this, &BH2011ObstacleSymbols::getFreeKickAngleRight);
  engine.registerBooleanInputSymbol("obstacle.arm_left", this, &BH2011ObstacleSymbols::getArmLeft);
  engine.registerBooleanInputSymbol("obstacle.arm_right", this, &BH2011ObstacleSymbols::getArmRight);
  
  // Vision Based Obstacle Avoidance
  engine.registerDecimalInputSymbol("obstacle.vision.leftRatio", &leftRatio);
  engine.registerDecimalInputSymbol("obstacle.vision.rightRatio", &rightRatio);
  engine.registerDecimalInputSymbol("obstacle.vision.leftRatioBall", &leftRatioBall);
  engine.registerDecimalInputSymbol("obstacle.vision.rightRatioBall", &rightRatioBall);
  engine.registerDecimalInputSymbol("obstacle.vision.leftRatioBallFiltered", &leftRatioBallFiltered);
  engine.registerDecimalInputSymbol("obstacle.vision.rightRatioBallFiltered", &rightRatioBallFiltered);
}
void BH2011GoalSymbols::registerSymbols(xabsl::Engine& engine)
{
  /*
   * free part angles
   */
  // angle to center of largest free part of opponent goal
  engine.registerDecimalInputSymbol("opponent_goal.free_part.angle_to_center", this, &BH2011GoalSymbols::getCenterAngleOfFreePart);
  // angle to outer side of largest free part of opponent goal
  engine.registerDecimalInputSymbol("opponent_goal.free_part.angle_to_outer_side", this, &BH2011GoalSymbols::getOuterAngleOfFreePart);
  // angle to inner side of largest free part of opponent goal
  engine.registerDecimalInputSymbol("opponent_goal.free_part.angle_to_inner_side", this, &BH2011GoalSymbols::getInnerAngleOfFreePart);
  // angle width of largest free part of opponent goal
  engine.registerDecimalInputSymbol("opponent_goal.free_part.angle_width", this, &BH2011GoalSymbols::getOpeningAngleOfFreePart);
  // angle tolerance to largest free part of opponent goal
  // (how accurate will the robot be positioned)
  engine.registerDecimalInputSymbol("opponent_goal.free_part.angle_tolerance", this, &BH2011GoalSymbols::getAngleToleranceToFreePart);
  /*
   * other perceptions
   */
  // time since opponent goal was last seen in ms
  engine.registerDecimalInputSymbol("opponent_goal.time_since_last_seen", &timeSinceOppGoalWasSeen);
  // was the opponent goal recently seen?
  engine.registerBooleanInputSymbol("opponent_goal.was_seen", &oppGoalWasSeen);
  // time since any goal was last seen in ms
  engine.registerDecimalInputSymbol("goal.time_since_last_seen_any_goal", &timeSinceAnyGoalWasSeen);
  engine.registerDecimalInputSymbol("goal.time_since_last_seen", &timeSinceAnyGoalWasSeen);
  // was any goal recently seen?
  engine.registerBooleanInputSymbol("goal.was_seen", &goalWasSeen);
  // count the number of seen goal posts in current ready state
  engine.registerDecimalInputSymbol("goal.number_of_sightings_in_ready", &goalsSeenInReadyState);
  // count the number of seen goal posts since last pickup
  engine.registerDecimalInputSymbol("goal.number_of_sightings_since_last_pickup", &goalsSeenSinceLastPickup);

  engine.registerDecimalInputSymbol("goal.angle_to_last_seen", this, &BH2011GoalSymbols::getAngleToLastSeen);
  engine.registerDecimalInputSymbol("goal.distance_to_last_seen", this, &BH2011GoalSymbols::getDistanceToLastSeen);

}
Ejemplo n.º 5
0
void BH2009SoccerSymbols::registerSymbols(xabsl::Engine& engine)
{
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.unknown", BehaviorData::unknown);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.dribble", BehaviorData::dribble);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.go_to_ball", BehaviorData::goToBall);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.search_for_ball", BehaviorData::searchForBall);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.go_to_target", BehaviorData::goToTarget);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.prepare_kick", BehaviorData::prepareKick);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.kick", BehaviorData::kick);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.kick_sidewards", BehaviorData::kickSidewards);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.pass", BehaviorData::pass);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.block", BehaviorData::block);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.hold", BehaviorData::hold);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.stand_up", BehaviorData::standUp);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.patrol", BehaviorData::patrol);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.pass_before_goal", BehaviorData::passBeforeGoal);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.kickoff", BehaviorData::kickoff);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.wait_for_pass", BehaviorData::waitForPass);
  engine.registerEnumElement("soccer.behavior_action", "soccer.behavior_action.prepare_pass", BehaviorData::preparePass);
  engine.registerEnumeratedOutputSymbol("soccer.behavior_action", "soccer.behavior_action", (int*)&behaviorData.action);

  engine.registerBooleanInputSymbol("soccer.disable_pre_initial", &disablePreInitialState);

  engine.registerDecimalInputSymbol("soccer.opponent_goal_angle", &staticSoccerOpponentGoalAngle);

  engine.registerDecimalInputSymbol("soccer.position_next_to_ball.x", &staticSoccerPositionNextBallX);
  engine.registerDecimalInputSymbolBooleanParameter("soccer.position_next_to_ball.x", "soccer.position_next_to_ball.x.side", &sideLeft);

  engine.registerDecimalInputSymbol("soccer.position_next_to_ball.y",&staticSoccerPositionNextBallY);
  engine.registerDecimalInputSymbolBooleanParameter("soccer.position_next_to_ball.y", "soccer.position_next_to_ball.y.side", &sideLeft);

  engine.registerDecimalInputSymbol("soccer.position_next_to_ball.angle", &staticSoccerAngleNextToBall);
  engine.registerDecimalInputSymbolBooleanParameter("soccer.position_next_to_ball.angle", "soccer.position_next_to_ball.angle.side", &sideLeft);

  engine.registerDecimalInputSymbol("soccer.position_behind_ball.x", &staticSoccerPositionBehindBallX);
  engine.registerDecimalInputSymbol("soccer.position_behind_ball.y", &staticSoccerPositionBehindBallY);
  engine.registerDecimalInputSymbol("soccer.position_behind_ball.angle", &staticSoccerPositionBehindBallAngle);
}