A class to control the performance of a planned footstep path on the NAO robot.
More...
#include <FootstepNavigation.h>
|
void | activeCallback () |
| Called from within ROS' actionlib at the start of a new goal request. More...
|
|
void | doneCallback (const actionlib::SimpleClientGoalState &state, const humanoid_nav_msgs::ExecFootstepsResultConstPtr &result) |
| Called from within ROS' actionlib at the end of a goal request. More...
|
|
void | executeFootsteps () |
| Executes footsteps as boost::thread. More...
|
|
void | executeFootstepsFast () |
| Alternative (and more fluid) execution of footsteps using ROS' actionlib. More...
|
|
void | feedbackCallback (const humanoid_nav_msgs::ExecFootstepsFeedbackConstPtr &fb) |
| Called from within ROS' actionlib during the execution of a goal request. More...
|
|
bool | getFootstep (const tf::Pose &from, const State &from_planned, const State &to, humanoid_nav_msgs::StepTarget *footstep) |
| Calculates the footstep necessary to reach 'to' from within 'from'. More...
|
|
bool | getFootstepsFromPath (const State ¤t_support_leg, int starting_step_num, std::vector< humanoid_nav_msgs::StepTarget > &footsteps) |
| Extracts the footsteps necessary to perform the calculated path. More...
|
|
bool | getFootTransform (const std::string &foot_id, const std::string &world_frame_id, const ros::Time &time, const ros::Duration &waiting_time, tf::Transform *foot) |
| Obtains the pose of the robot's foot from tf. More...
|
|
bool | performable (const humanoid_nav_msgs::StepTarget &footstep) |
|
bool | performable (float step_x, float step_y) |
|
bool | performanceValid (const humanoid_nav_msgs::ClipFootstep &footstep) |
|
bool | performanceValid (const State &planned, const State &executed) |
|
bool | performanceValid (float a_x, float a_y, float a_theta, float b_x, float b_y, float b_theta) |
|
bool | plan () |
| Starts the planning task from scratch discarding previous planning information. More...
|
|
bool | replan () |
| Starts the planning task. First FootstepPlanner::replan() is called to use planning information from previous tasks. If this fails FootstepPlanner::plan() is called to plan from scratch. Otherwise the planning task is unsuccessful. More...
|
|
void | startExecution () |
| Starts the execution of the calculated path. More...
|
|
bool | updateStart () |
| Updates the robot's current pose. More...
|
|
A class to control the performance of a planned footstep path on the NAO robot.
Definition at line 50 of file FootstepNavigation.h.
footstep_planner::FootstepNavigation::FootstepNavigation |
( |
| ) |
|
footstep_planner::FootstepNavigation::~FootstepNavigation |
( |
| ) |
|
|
virtual |
void footstep_planner::FootstepNavigation::activeCallback |
( |
| ) |
|
|
protected |
void footstep_planner::FootstepNavigation::doneCallback |
( |
const actionlib::SimpleClientGoalState & |
state, |
|
|
const humanoid_nav_msgs::ExecFootstepsResultConstPtr & |
result |
|
) |
| |
|
protected |
void footstep_planner::FootstepNavigation::executeFootsteps |
( |
| ) |
|
|
protected |
void footstep_planner::FootstepNavigation::executeFootstepsFast |
( |
| ) |
|
|
protected |
Alternative (and more fluid) execution of footsteps using ROS' actionlib.
Definition at line 264 of file FootstepNavigation.cpp.
void footstep_planner::FootstepNavigation::feedbackCallback |
( |
const humanoid_nav_msgs::ExecFootstepsFeedbackConstPtr & |
fb | ) |
|
|
protected |
Called from within ROS' actionlib during the execution of a goal request.
Definition at line 334 of file FootstepNavigation.cpp.
bool footstep_planner::FootstepNavigation::getFootstep |
( |
const tf::Pose & |
from, |
|
|
const State & |
from_planned, |
|
|
const State & |
to, |
|
|
humanoid_nav_msgs::StepTarget * |
footstep |
|
) |
| |
|
protected |
Calculates the footstep necessary to reach 'to' from within 'from'.
- Returns
- True if the footstep can be performed by the NAO robot.
Definition at line 559 of file FootstepNavigation.cpp.
bool footstep_planner::FootstepNavigation::getFootstepsFromPath |
( |
const State & |
current_support_leg, |
|
|
int |
starting_step_num, |
|
|
std::vector< humanoid_nav_msgs::StepTarget > & |
footsteps |
|
) |
| |
|
protected |
Extracts the footsteps necessary to perform the calculated path.
- Parameters
-
current_support_leg | The current support leg of the robot. Used to calculate the footstep necessary to reach the calculated path. |
starting_step_num | Index of the state in the path which has to be reached first. Usually this is 1 (since state 0 is the current support leg of the robot) but for readjustments indices different from 1 are necessary. |
- Returns
- False if an extracted footstep is invalid.
Definition at line 636 of file FootstepNavigation.cpp.
bool footstep_planner::FootstepNavigation::getFootTransform |
( |
const std::string & |
foot_id, |
|
|
const std::string & |
world_frame_id, |
|
|
const ros::Time & |
time, |
|
|
const ros::Duration & |
waiting_time, |
|
|
tf::Transform * |
foot |
|
) |
| |
|
protected |
Obtains the pose of the robot's foot from tf.
- Returns
- True if transformation has been received.
Definition at line 670 of file FootstepNavigation.cpp.
void footstep_planner::FootstepNavigation::goalPoseCallback |
( |
const geometry_msgs::PoseStampedConstPtr & |
goal_pose | ) |
|
Callback to set a simulated robot at a certain pose.
Subscribed to 'goal'.
Definition at line 449 of file FootstepNavigation.cpp.
void footstep_planner::FootstepNavigation::mapCallback |
( |
const nav_msgs::OccupancyGridConstPtr & |
occupancy_map | ) |
|
bool footstep_planner::FootstepNavigation::performable |
( |
const humanoid_nav_msgs::StepTarget & |
footstep | ) |
|
|
protected |
bool footstep_planner::FootstepNavigation::performable |
( |
float |
step_x, |
|
|
float |
step_y |
|
) |
| |
|
protected |
bool footstep_planner::FootstepNavigation::performanceValid |
( |
const humanoid_nav_msgs::ClipFootstep & |
footstep | ) |
|
|
protected |
- Parameters
-
footstep | The response from the clip footstep service (i.e. it contains the unclipped (calculated) step and the clipped (performable) step). |
- Returns
- True if the footstep can be performed by the robot (i.e. it is within the robot's max ranges).
Definition at line 709 of file FootstepNavigation.cpp.
bool footstep_planner::FootstepNavigation::performanceValid |
( |
const State & |
planned, |
|
|
const State & |
executed |
|
) |
| |
|
protected |
bool footstep_planner::FootstepNavigation::performanceValid |
( |
float |
a_x, |
|
|
float |
a_y, |
|
|
float |
a_theta, |
|
|
float |
b_x, |
|
|
float |
b_y, |
|
|
float |
b_theta |
|
) |
| |
|
protected |
bool footstep_planner::FootstepNavigation::plan |
( |
| ) |
|
|
protected |
Starts the planning task from scratch discarding previous planning information.
- Returns
- Success of the planning.
Definition at line 113 of file FootstepNavigation.cpp.
bool footstep_planner::FootstepNavigation::replan |
( |
| ) |
|
|
protected |
bool footstep_planner::FootstepNavigation::setGoal |
( |
const geometry_msgs::PoseStampedConstPtr |
goal_pose | ) |
|
bool footstep_planner::FootstepNavigation::setGoal |
( |
float |
x, |
|
|
float |
y, |
|
|
float |
theta |
|
) |
| |
void footstep_planner::FootstepNavigation::startExecution |
( |
| ) |
|
|
protected |
bool footstep_planner::FootstepNavigation::updateStart |
( |
| ) |
|
|
protected |
double footstep_planner::FootstepNavigation::ivAccuracyTheta |
|
protected |
double footstep_planner::FootstepNavigation::ivAccuracyX |
|
protected |
double footstep_planner::FootstepNavigation::ivAccuracyY |
|
protected |
double footstep_planner::FootstepNavigation::ivCellSize |
|
protected |
int footstep_planner::FootstepNavigation::ivControlStepIdx |
|
protected |
Index to keep track of the currently executed footstep and the currently observed one.
Definition at line 234 of file FootstepNavigation.h.
bool footstep_planner::FootstepNavigation::ivExecutingFootsteps |
|
protected |
boost::mutex footstep_planner::FootstepNavigation::ivExecutionLock |
|
protected |
const int footstep_planner::FootstepNavigation::ivExecutionShift |
|
protected |
double footstep_planner::FootstepNavigation::ivFeedbackFrequency |
|
protected |
boost::shared_ptr<boost::thread> footstep_planner::FootstepNavigation::ivFootstepExecutionPtr |
|
protected |
bool footstep_planner::FootstepNavigation::ivForwardSearch |
|
protected |
std::string footstep_planner::FootstepNavigation::ivIdFootLeft |
|
protected |
std::string footstep_planner::FootstepNavigation::ivIdFootRight |
|
protected |
std::string footstep_planner::FootstepNavigation::ivIdMapFrame |
|
protected |
double footstep_planner::FootstepNavigation::ivMaxInvStepTheta |
|
protected |
double footstep_planner::FootstepNavigation::ivMaxInvStepX |
|
protected |
double footstep_planner::FootstepNavigation::ivMaxInvStepY |
|
protected |
double footstep_planner::FootstepNavigation::ivMaxStepTheta |
|
protected |
double footstep_planner::FootstepNavigation::ivMaxStepX |
|
protected |
double footstep_planner::FootstepNavigation::ivMaxStepY |
|
protected |
int footstep_planner::FootstepNavigation::ivNumAngleBins |
|
protected |
int footstep_planner::FootstepNavigation::ivResetStepIdx |
|
protected |
Index used to keep track of the currently observed footstep after replanning.
Definition at line 240 of file FootstepNavigation.h.
bool footstep_planner::FootstepNavigation::ivSafeExecution |
|
protected |
std::vector<std::pair<double, double> > footstep_planner::FootstepNavigation::ivStepRange |
|
protected |
The documentation for this class was generated from the following files: