23#ifndef PLUGINS_OPENRAVE_ROBOT_H_
24#define PLUGINS_OPENRAVE_ROBOT_H_
28#include <openrave/openrave.h>
50 virtual void set_offset(
float trans_x,
float trans_y,
float trans_z);
51 virtual void calibrate(
float device_trans_x,
float device_trans_y,
float device_trans_z);
53 bool display_movements =
false);
57 virtual bool attach_object(OpenRAVE::KinBodyPtr
object,
const char *manip_name = NULL);
60 const char * manip_name = NULL);
66 set_target_rel(
float trans_x,
float trans_y,
float trans_z,
bool is_extension =
false);
75 OpenRAVE::IkFilterOptions filter = OpenRAVE::IKFO_CheckEnvCollisions,
76 bool no_offset =
false);
85 OpenRAVE::IkFilterOptions filter = OpenRAVE::IKFO_CheckEnvCollisions,
86 bool no_offset =
false);
95 OpenRAVE::IkFilterOptions filter = OpenRAVE::IKFO_CheckEnvCollisions,
96 bool no_offset =
false);
102 OpenRAVE::IkFilterOptions filter = OpenRAVE::IKFO_CheckEnvCollisions);
105 OpenRAVE::IkFilterOptions filter = OpenRAVE::IKFO_CheckEnvCollisions);
118 virtual std::vector<std::vector<OpenRAVE::dReal>> *
get_trajectory()
const;
127 void build_name_str();
128 const char *name()
const;
130 bool set_target_transform(OpenRAVE::Vector & trans,
131 OpenRAVE::Vector & rotQuat,
132 OpenRAVE::IkFilterOptions filter,
133 bool no_offset =
false);
135 std::vector<float> & rotations,
136 OpenRAVE::IkFilterOptions filter,
137 bool no_offset =
false);
138 OpenRAVE::IkParameterization get_5dof_ikparam(OpenRAVE::Transform &trans);
139 bool solve_ik(OpenRAVE::IkFilterOptions filter);
144 std::string name_str_;
145 OpenRAVE::RobotBasePtr robot_;
146 OpenRAVE::RobotBase::ManipulatorPtr arm_;
150 OpenRAVE::ModuleBasePtr mod_basemanip_;
152 OpenRAVE::PlannerBase::PlannerParametersPtr planner_params_;
153 std::vector<std::vector<OpenRAVE::dReal>> * traj_;
155 float trans_offset_x_;
156 float trans_offset_y_;
157 float trans_offset_z_;
159 bool display_planned_movements_;
virtual void set_target_plannerparams(std::string ¶ms)
Set additional planner parameters.
virtual void set_offset(float trans_x, float trans_y, float trans_z)
Directly set transition offset between coordinate systems of real device and OpenRAVE model.
virtual std::vector< std::vector< OpenRAVE::dReal > > * get_trajectory() const
Return pointer to trajectory of motion from manip_ to target_.manip with OpenRAVE-model angle format.
virtual void set_target_raw(std::string &cmd)
Set raw command for BaseManipulation module.
virtual bool set_target_ikparam(OpenRAVE::IkParameterization ik_param, OpenRAVE::IkFilterOptions filter=OpenRAVE::IKFO_CheckEnvCollisions)
Set target by giving IkParameterizaion of target.
virtual void update_manipulator()
Update motor values from OpenRAVE model.
virtual bool set_target_rel(float trans_x, float trans_y, float trans_z, bool is_extension=false)
Set target, given relative transition.
virtual bool set_target_quat(float trans_x, float trans_y, float trans_z, float quat_w, float quat_x, float quat_y, float quat_z, OpenRAVE::IkFilterOptions filter=OpenRAVE::IKFO_CheckEnvCollisions, bool no_offset=false)
Set target, given transition, and rotation as quaternion.
virtual void set_manipulator(fawkes::OpenRaveManipulatorPtr &manip, bool display_movements=false)
Set pointer to OpenRaveManipulator object.
virtual target_t get_target() const
Get target.
virtual bool set_target_straight(float trans_x, float trans_y, float trans_z)
Set target for a straight movement, given transition.
virtual bool release_all_objects()
Release all grabbed kinbodys from the robot.
OpenRaveRobot(fawkes::Logger *logger=0)
Constructor.
virtual void load(const std::string &filename, fawkes::OpenRaveEnvironmentPtr &env)
Load robot from xml file.
virtual bool set_target_euler(euler_rotation_t type, float trans_x, float trans_y, float trans_z, float phi, float theta, float psi, OpenRAVE::IkFilterOptions filter=OpenRAVE::IKFO_CheckEnvCollisions, bool no_offset=false)
Set target, given transition, and Euler-rotation.
virtual void set_ready()
Set robot ready for usage.
virtual bool set_target_axis_angle(float trans_x, float trans_y, float trans_z, float angle, float axisX, float axisY, float axisZ, OpenRAVE::IkFilterOptions filter=OpenRAVE::IKFO_CheckEnvCollisions, bool no_offset=false)
Set target, given transition, and rotation as axis-angle.
virtual OpenRAVE::PlannerBase::PlannerParametersPtr get_planner_params() const
Updates planner parameters and return pointer to it.
virtual bool set_target_object_position(float trans_x, float trans_y, float trans_z, float rot_x, OpenRAVE::IkFilterOptions filter=OpenRAVE::IKFO_CheckEnvCollisions)
Set target by giving position of an object.
virtual bool release_object(OpenRAVE::KinBodyPtr object)
Release a kinbody from the robot.
virtual bool display_planned_movements() const
Getter for display_planned_movements_.
virtual ~OpenRaveRobot()
Destructor.
virtual bool attach_object(OpenRAVE::KinBodyPtr object, const char *manip_name=NULL)
Attach a kinbody to the robot.
virtual OpenRAVE::RobotBasePtr get_robot_ptr() const
Returns RobotBasePtr for uses in other classes.
virtual std::vector< std::vector< float > > * get_trajectory_device() const
Return pointer to trajectory of motion from manip_ to target_.manip with device angle format.
virtual void calibrate(float device_trans_x, float device_trans_y, float device_trans_z)
Calculate transition offset between coordinate systems of real device and OpenRAVE model.
virtual void enable_ik_comparison(bool enable)
Activate/Deactive IK comparison.
virtual OpenRAVE::ModuleBasePtr get_basemanip() const
Return BaseManipulation Module-Pointer.
virtual OpenRaveManipulatorPtr get_manipulator() const
Get manipulator.
virtual void set_target_angles(std::vector< float > &angles)
Set target angles directly.
virtual void update_model()
Update/Set OpenRAVE motor angles.
RefPtr<> is a reference-counting shared smartpointer.
Fawkes library namespace.
euler_rotation_t
Euler rotations.
Struct containing information about the current target.