16 const std::shared_ptr<const IHexapodCoordinateConverter>& converter_ptr,
17 const std::shared_ptr<const IHexapodPostureValidator>& checker_ptr,
18 const ::designlab::Vector3& rot_axis,
21 next_move_(next_move),
22 converter_ptr_(converter_ptr),
23 checker_ptr_(checker_ptr),
29 int current_num, std::vector<RobotStateNode>* output_graph)
const
31 for (
int i = 0; i < kBodyYawRotAngleDivNum; ++i)
38 if (checker_ptr_->IsBodyInterferingWithGround(node, map_))
47 if (!checker_ptr_->IsLegInRange(j, node.
leg_pos[j]))
54 if (!is_valid) {
continue; }
58 output_graph->push_back(node);
61 if (output_graph->empty())
67 output_graph->push_back(node);
void Create(const RobotStateNode ¤t_node, int current_num, std::vector< RobotStateNode > *output_graph) const override
現在のノードから次のノード群を生成する.
NodeCreatorBodyRot(const DividedMapState &devide_map, const std::shared_ptr< const IHexapodCoordinateConverter > &converter_ptr, const std::shared_ptr< const IHexapodPostureValidator > &checker_ptr, const Vector3 &rot_axis, HexapodMove next_move)