44 #define HUMOTO_CONFIG_SECTION_ID "RobotFootParameters" 45 #define HUMOTO_CONFIG_CONSTRUCTOR RobotFootParameters 46 #define HUMOTO_CONFIG_ENTRIES \ 47 HUMOTO_CONFIG_SCALAR_(max_step_len) \ 48 HUMOTO_CONFIG_SCALAR_(min_feet_dist) \ 49 HUMOTO_CONFIG_SCALAR_(max_feet_dist) \ 50 HUMOTO_CONFIG_SCALAR_(feet_dist_default) \ 51 HUMOTO_CONFIG_SCALAR_(foot_length) \ 52 HUMOTO_CONFIG_SCALAR_(foot_width) 53 #include HUMOTO_CONFIG_DEFINE_ACCESSORS 95 const etools::Vector2 &ds_position)
const 111 const etools::Vector2 &ss_position)
const 129 return(foot_position_fixed_ds_);
132 return(foot_position_bounds_ss_);
135 return(foot_position_fixed_ss_);
178 double half_foot_length = foot_length_/2.;
179 double half_foot_width = foot_width_/2.;
180 double half_total_width = (foot_width_ + feet_dist_default_)/2.;
181 double half_feet_dist_default = feet_dist_default_/2.;
183 feet_.
getLeft().foot_position_in_ads_ << 0., half_feet_dist_default;
184 feet_.
getRight().foot_position_in_ads_ << 0., -half_feet_dist_default;
186 feet_.
getRight().ads_position_from_ss_ << 0., half_feet_dist_default;
187 feet_.
getLeft().ads_position_from_ss_ << 0., -half_feet_dist_default;
190 -half_foot_length, half_foot_length,
191 -half_foot_width, half_foot_width;
194 -half_foot_length, half_foot_length,
195 -half_total_width, half_total_width;
198 feet_.
getLeft().foot_position_bounds_ss_ <<
199 -max_step_len_, max_step_len_,
200 min_feet_dist_, max_feet_dist_;
202 feet_.
getRight().foot_position_bounds_ss_ <<
203 -max_step_len_, max_step_len_,
204 -max_feet_dist_, -min_feet_dist_;
207 feet_.
getLeft().foot_position_fixed_ss_ <<
209 half_feet_dist_default, half_feet_dist_default;
211 feet_.
getRight().foot_position_fixed_ss_ <<
213 -half_feet_dist_default, -half_feet_dist_default;
216 feet_.
getLeft().foot_position_fixed_ds_ <<
218 half_feet_dist_default, half_feet_dist_default;
220 feet_.
getRight().foot_position_fixed_ds_ <<
222 -half_feet_dist_default, -half_feet_dist_default;
241 min_feet_dist_ = 0.19;
242 max_feet_dist_ = 0.3;
243 feet_dist_default_ = 0.19;
244 foot_length_ = 0.1372;
263 const etools::Vector2 &ref_position)
const 265 return(feet_[left_or_right].getFootPositionFromADS(ref_R, ref_position));
272 const etools::Vector2 &ref_position)
const 274 return(feet_[left_or_right].getADSPositionFromFoot(ref_R, ref_position));
290 return(feet_[left_or_right].getFootPositionBounds(bounds_type));
302 return(ads_cop_bounds_);
309 return(ss_cop_bounds_);
322 const std::string &name =
"robot_foot_parameters")
const 326 logger.log(
LogEntryName(subname).add(
"max_step_len") , max_step_len_ );
327 logger.log(
LogEntryName(subname).add(
"min_feet_dist") , min_feet_dist_ );
328 logger.log(
LogEntryName(subname).add(
"max_feet_dist") , max_feet_dist_ );
329 logger.log(
LogEntryName(subname).add(
"feet_dist_default"), feet_dist_default_);
330 logger.log(
LogEntryName(subname).add(
"foot_length") , foot_length_ );
331 logger.log(
LogEntryName(subname).add(
"foot_width") , foot_width_ );
#define HUMOTO_GLOBAL_LOGGER_IF_DEFINED
Container for two symmetric objects.
Default configurable base is strict.
#define HUMOTO_THROW_MSG(s)
HUMOTO_THROW_MSG throws an error message concatenated with the name of the function (if supported)...
Represents log entry name.
Threaded logger: any data sent to this logger is wrapped in a message and pushed to a queue...
The root namespace of HuMoTo.
t_Data & getRight()
Get/set/copy left or right object.
LogEntryName & add(const char *name)
extends entry name with a subname
t_Data & getLeft()
Get/set/copy left or right object.