14 if (!GridMapModel::initialize(params))
32 boost::shared_lock<boost::shared_mutex> lock(grid_map_shared_mutex_);
34 if (!occupancy_grid_map_)
36 ROS_ERROR_THROTTLE(10,
"[UpperBodyGridMapModel] No body level grid map available yet.");
40 if (next.getLeg() == current.getLeg())
42 ROS_ERROR_THROTTLE(10,
"[UpperBodyGridMapModel] Swing foot can't equal support foot.");
46 const State& left = next.getLeg() == LEFT ? next : current;
47 const State& right = next.getLeg() == RIGHT ? next : current;
50 float x = right.getX() + 0.5 * (left.getX() - right.getX());
51 float y = right.getY() + 0.5 * (left.getY() - right.getY());
53 float theta = right.getYaw() + 0.5 * (left.getYaw() - right.getYaw());
56 float cos_theta = cos(theta);
57 float sin_theta = sin(theta);
69 #include <pluginlib/class_list_macros.h> UpperBodyGridMapModel(const std::string &name="upper_body_grid_map_model")
geometry_msgs::Vector3 upper_body_size
#define ROS_ERROR_THROTTLE(rate,...)
geometry_msgs::Vector3 upper_body_origin_shift
bool initialize(const vigir_generic_params::ParameterSet ¶ms=vigir_generic_params::ParameterSet()) override
bool isAccessible(const State &s) const override