common_utils.h
Go to the documentation of this file.
1 //
2 // Created by yijiangh on 7/5/17.
3 //
4 
5 #ifndef CHOREO_PROCESS_PLANNING_COMMON_UTILS_H
6 #define CHOREO_PROCESS_PLANNING_COMMON_UTILS_H
7 
8 #include <ros/ros.h>
9 
10 #include <Eigen/Geometry>
11 
12 // descartes
13 #include <descartes_core/trajectory_pt.h>
14 #include <descartes_core/robot_model.h>
15 
16 // msgs
17 #include <sensor_msgs/JointState.h>
18 #include <moveit_msgs/CollisionObject.h>
19 #include <moveit_msgs/AttachedCollisionObject.h>
20 #include <geometry_msgs/PoseArray.h>
21 #include <geometry_msgs/Point.h>
22 
24 {
25 typedef std::vector<descartes_core::TrajectoryPtPtr> DescartesTraj;
26 
27 Eigen::Affine3d createNominalTransform(const geometry_msgs::Pose& ref_pose,
28  const geometry_msgs::Point& pt);
29 
30 Eigen::Affine3d createNominalTransform(const geometry_msgs::Pose& ref_pose, const double z_adjust = 0.0);
31 
32 
33 Eigen::Affine3d createNominalTransform(const Eigen::Affine3d& ref_pose, const double z_adjust = 0.0);
34 
35 trajectory_msgs::JointTrajectory toROSTrajectory(const DescartesTraj& solution,
36  const descartes_core::RobotModel& model);
37 
38 trajectory_msgs::JointTrajectory toROSTrajectory(const std::vector<std::vector<double>>& solution,
39  const descartes_core::RobotModel& model);
40 
41 void fillTrajectoryHeaders(const std::vector<std::string>& joints,
42  trajectory_msgs::JointTrajectory& traj,
43  const std::string world_frame);
44 
45 void appendTrajectoryHeaders(const trajectory_msgs::JointTrajectory& orig_traj,
46  trajectory_msgs::JointTrajectory& traj,
47  const double sim_time_scale = 0.0);
48 
49 std::vector<double> getCurrentJointState(const std::string& topic);
50 
52  ros::ServiceClient& planning_scene, const moveit_msgs::CollisionObject& c_obj);
53 
54 moveit_msgs::AttachedCollisionObject addFullEndEffectorCollisionObject(bool is_add);
55 
57 
58 static inline std::vector<double> extractJoints(const descartes_core::RobotModel& model,
59  const descartes_core::TrajectoryPt& pt)
60 {
61  std::vector<double> dummy, result;
62  pt.getNominalJointPose(dummy, model, result);
63  return result;
64 }
65 
66 DescartesTraj createJointPath(const std::vector<double>& start, const std::vector<double>& stop,
67  double dtheta = M_PI / 180.0);
68 
69 trajectory_msgs::JointTrajectory getMoveitPlan(const std::string& group_name,
70  const std::vector<double>& joints_start,
71  const std::vector<double>& joints_stop,
72  moveit::core::RobotModelConstPtr model);
73 
74 trajectory_msgs::JointTrajectory getMoveitTransitionPlan(const std::string& group_name,
75  const std::vector<double>& joints_start,
76  const std::vector<double>& joints_stop,
77  const std::vector<double>& initial_pose,
78  moveit::core::RobotModelConstPtr model,
79  const bool force_insert_reset = false);
80 
81 trajectory_msgs::JointTrajectory planFreeMove(descartes_core::RobotModel& model,
82  const std::string& group_name,
83  moveit::core::RobotModelConstPtr moveit_model,
84  const std::vector<double>& start,
85  const std::vector<double>& stop);
86 
87 
88 double freeSpaceCostFunction(const std::vector<double>& source,
89  const std::vector<double>& target);
90 }
91 
92 #endif //CHOREO_PROCESS_PLANNING_COMMON_UTILS_H
static std::vector< double > extractJoints(const descartes_core::RobotModel &model, const descartes_core::TrajectoryPt &pt)
Definition: common_utils.h:58
bool addCollisionObject(ros::ServiceClient &planning_scene, const moveit_msgs::CollisionObject &c_obj)
bool clearAllCollisionObjects(ros::ServiceClient &planning_scene)
Eigen::Affine3d createNominalTransform(const geometry_msgs::Pose &ref_pose, const geometry_msgs::Point &pt)
void appendTrajectoryHeaders(const trajectory_msgs::JointTrajectory &orig_traj, trajectory_msgs::JointTrajectory &traj, const double sim_time_scale=0.0)
#define M_PI
trajectory_msgs::JointTrajectory toROSTrajectory(const DescartesTraj &solution, const descartes_core::RobotModel &model)
std::vector< double > getCurrentJointState(const std::string &topic)
DescartesTraj createJointPath(const std::vector< double > &start, const std::vector< double > &stop, double dtheta=M_PI/180.0)
moveit_msgs::AttachedCollisionObject addFullEndEffectorCollisionObject(bool is_add)
void fillTrajectoryHeaders(const std::vector< std::string > &joints, trajectory_msgs::JointTrajectory &traj, const std::string world_frame)
trajectory_msgs::JointTrajectory getMoveitPlan(const std::string &group_name, const std::vector< double > &joints_start, const std::vector< double > &joints_stop, moveit::core::RobotModelConstPtr model)
trajectory_msgs::JointTrajectory getMoveitTransitionPlan(const std::string &group_name, const std::vector< double > &joints_start, const std::vector< double > &joints_stop, const std::vector< double > &initial_pose, moveit::core::RobotModelConstPtr model, const bool force_insert_reset=false)
trajectory_msgs::JointTrajectory planFreeMove(descartes_core::RobotModel &model, const std::string &group_name, moveit::core::RobotModelConstPtr moveit_model, const std::vector< double > &start, const std::vector< double > &stop)
std::vector< descartes_core::TrajectoryPtPtr > DescartesTraj
Definition: common_utils.h:25
double freeSpaceCostFunction(const std::vector< double > &source, const std::vector< double > &target)


choreo_process_planning
Author(s): Yijiang Huang
autogenerated on Thu Jul 18 2019 03:59:02