24 #ifndef __PLUGINS_KATANA_GOTO_OPENRAVE_THREAD_H_
25 #define __PLUGINS_KATANA_GOTO_OPENRAVE_THREAD_H_
27 #include "motion_thread.h"
32 #include <plugins/openrave/aspect/openrave.h>
37 class OpenRaveManipulator;
48 unsigned int poll_interval_ms,
49 std::string robot_file,
50 std::string arm_model,
58 void set_target(
float x,
float y,
float z,
float phi,
float theta,
float psi);
59 void set_target(
float x,
float y,
float z,
float quat_x,
float quat_y,
float quat_z,
float quat_w);
60 void set_target(
const std::string& object_name,
float rot_x);
61 void set_theta_error(
float error);
62 void set_move_straight(
bool move_straight);
63 void set_arm_extension(
bool arm_extension);
64 void set_plannerparams(std::string& params,
bool straight=
false);
65 void set_plannerparams(
const char* params,
bool straight=
false);
67 virtual bool plan_target();
68 virtual void update_openrave_data();
69 virtual bool update_motor_data();
70 virtual bool move_katana();
72 static const std::string DEFAULT_PLANNERPARAMS;
73 static const std::string DEFAULT_PLANNERPARAMS_STRAIGHT;
79 std::string __target_object;
80 std::vector< std::vector<float> >* __target_traj;
81 std::vector< std::vector<float> >::iterator __it;
83 std::vector< int > __motor_encoders;
84 std::vector< float > __motor_angles;
86 const std::string __cfg_robot_file;
87 const std::string __cfg_arm_model;
88 bool __cfg_autoload_IK;
89 bool __cfg_use_viewer;
91 bool __is_target_object;
92 bool __has_target_quaternion;
94 bool __is_arm_extension;
95 std::string __plannerparams;
96 std::string __plannerparams_straight;
101 float __phi, __theta, __psi, __theta_error;
102 float __quat_x, __quat_y, __quat_z, __quat_w;
103 unsigned int __poll_interval_usec;
105 #endif //HAVE_OPENRAVE