57 #include <moveit_msgs/CollisionObject.h> 58 #include <choreo_msgs/ElementCandidatePoses.h> 59 #include <choreo_msgs/WireFrameCollisionObject.h> 62 #include <descartes_core/robot_model.h> 73 typedef Eigen::MatrixXd
MX;
74 typedef Eigen::Matrix3d
M3;
75 typedef Eigen::VectorXd
VX;
76 typedef Eigen::Vector3d
V3;
87 descartes_core::RobotModelPtr hotend_model,
88 moveit::core::RobotModelConstPtr moveit_model,
89 std::string hotend_group_name
94 void setFrameMsgs(
const std::vector<choreo_msgs::ElementCandidatePoses>& frame_msg){ frame_msgs_ = frame_msg; };
97 virtual bool SeqPrint();
98 virtual bool SeqPrintLayer(std::vector<int> layer_id);
100 virtual void PrintOutTimer();
103 bool InputPrintOrder(
const std::vector<int>& print_queue);
104 bool ConstructCollisionObjsInQueue(
const std::vector<int>& print_queue_edge_ids,
105 std::vector<choreo_msgs::WireFrameCollisionObject>& collision_objs);
107 void OutputPrintOrder(std::vector<WF_edge*>& print_queue);
108 void OutputTaskSequencePlanningResult(std::vector<SingleTaskPlanningResult>& planning_result);
114 void UpdateStructure(
WF_edge *e,
bool update_collision =
false);
115 void RecoverStructure(
WF_edge *e,
bool update_collision =
false);
116 void UpdateStateMap(
WF_edge *e, vector<vector<lld>> &state_map);
117 void RecoverStateMap(
WF_edge *e, vector<vector<lld>> &state_map);
118 bool TestifyStiffness(
WF_edge *e);
120 bool TestRobotKinematics(
WF_edge* e,
const std::vector<lld>& colli_map);
128 std::vector<moveit_msgs::CollisionObject> UpdateCollisionObjects(
WF_edge* e,
bool shrink =
false);
129 std::vector<moveit_msgs::CollisionObject> RecoverCollisionObjects(
WF_edge* e,
bool shrink =
false);
descartes_core::RobotModelPtr hotend_model_
void setFrameMsgs(const std::vector< choreo_msgs::ElementCandidatePoses > &frame_msg)
Stiffness * ptr_stiffness_
moveit::core::RobotModelConstPtr moveit_model_
std::string hotend_group_name_
vector< vector< unsigned long long > > angle_state_
planning_scene::PlanningScenePtr planning_scene_
DualGraph * ptr_wholegraph_
DualGraph * ptr_dualgraph_
QuadricCollision * ptr_collision_
std::vector< WF_edge * > print_queue_
int num_p_assign_visited_
std::vector< choreo_msgs::ElementCandidatePoses > frame_msgs_
std::vector< Eigen::Vector3d > eef_directions_