Public Types | Public Member Functions | Private Member Functions | Private Attributes
jaco::JacoArmTrajectoryController Class Reference

#include <jaco_arm_trajectory_node.h>

List of all members.

Public Types

typedef
actionlib::SimpleActionClient
< control_msgs::GripperCommandAction > 
GripperClient
typedef
actionlib::SimpleActionServer
< control_msgs::GripperCommandAction > 
GripperServer
typedef
actionlib::SimpleActionServer
< wpi_jaco_msgs::HomeArmAction > 
HomeArmServer
typedef
actionlib::SimpleActionServer
< control_msgs::FollowJointTrajectoryAction > 
TrajectoryServer

Public Member Functions

void execute_gripper (const control_msgs::GripperCommandGoalConstPtr &goal)
 Callback for the gripper_server_, executes a gripper command.
void execute_gripper_radian (const control_msgs::GripperCommandGoalConstPtr &goal)
 Callback for the gripper_server_radian_, executes a gripper command with a goal representing the finger position in radians.
void execute_joint_trajectory (const control_msgs::FollowJointTrajectoryGoalConstPtr &goal)
 Callback for the joint_velocity_controller, executes a smoothed trajectory with velocity control.
void execute_smooth_trajectory (const control_msgs::FollowJointTrajectoryGoalConstPtr &goal)
 Callback for the smooth_arm_controller, executes a smoother Cartesian trajectory.
void execute_trajectory (const control_msgs::FollowJointTrajectoryGoalConstPtr &goal)
 Callback for the arm_controller, executes a joint angle trajectory.
void home_arm (const wpi_jaco_msgs::HomeArmGoalConstPtr &goal)
 move the arm to the home position using the Kinova API home call
 JacoArmTrajectoryController (ros::NodeHandle nh, ros::NodeHandle pnh)
 Constructor.
void update_joint_states ()
 Reads joint states from the arm and publishes them as a JointState message.
virtual ~JacoArmTrajectoryController ()
 Destructor.

Private Member Functions

void angularCmdCallback (const wpi_jaco_msgs::AngularCommand &msg)
 Callback for sending an angular command to the arm.
void cartesianCmdCallback (const wpi_jaco_msgs::CartesianCommand &msg)
 Callback for sending a Cartesian command to the arm.
bool eraseTrajectoriesCallback (std_srvs::Empty::Request &req, std_srvs::Empty::Response &res)
 Callback for erasing trajectories currently running on the arm.
bool eStopCallback (wpi_jaco_msgs::EStop::Request &req, wpi_jaco_msgs::EStop::Response &res)
 Callback for enabling/disabling the software emergency stop.
void executeAngularTrajectoryPoint (TrajectoryPoint point, bool erase)
 Stripped-down angular trajectory point sending to the arm.
void executeCartesianTrajectoryPoint (TrajectoryPoint point, bool erase)
 Stripped-down Cartesian trajectory point sending to the arm.
void fingerPositionControl (float f1, float f2, float f3)
 Control with finger velocity inputs to reach a given position.
bool getAngularPosition (wpi_jaco_msgs::GetAngularPosition::Request &req, wpi_jaco_msgs::GetAngularPosition::Response &res)
 Service callback for getting the current joint positions of the arm and fingers.
bool getCartesianPosition (wpi_jaco_msgs::GetCartesianPosition::Request &req, wpi_jaco_msgs::GetCartesianPosition::Response &res)
 Service callback for getting the current Cartesian pose of the end effector.
bool loadParameters (const ros::NodeHandle n)

Private Attributes

ros::Publisher angularCmdPublisher
 publisher for angular arm commands
ros::Subscriber angularCmdSubscriber
 subscriber for angular arm commands
ros::ServiceServer angularPositionServer
 service server to get the joint positions
boost::recursive_mutex api_mutex
bool arm_initialized
std::string arm_name_
ros::Publisher armHomedPublisher
 publisher for when the arm completes a kinova api home arm action
ros::Publisher cartesianCmdPublisher
 publisher for Cartesian arm commands
ros::Subscriber cartesianCmdSubscriber
 subscriber for Cartesian arm commands
ros::ServiceServer cartesianPositionServer
 service server to get end effector pose
unsigned int controlType
ros::ServiceServer eraseTrajectoriesServer
bool eStopEnabled
ros::ServiceServer eStopServer
 service server for software estop and restart
double finger_error_threshold_
double finger_scale_
GripperClientgripper_client_
 gripper command action client, used for sending a converted goal from gripper_server_radian_ to execute on the gripper_server_
double gripper_closed_
double gripper_open_
GripperServergripper_server_
 gripper command action server (goal in Kinova API units)
GripperServergripper_server_radian_
 gripper command action server (goal in radians)
HomeArmServerhome_arm_server_
ros::ServiceClient jaco_fk_client
 forward kinematics client
std::vector< double > joint_eff_
std::vector< std::string > joint_names
std::vector< double > joint_pos_
ros::Publisher joint_state_pub_
 publisher for joint states
ros::Timer joint_state_timer_
 timer for joint state publisher
std::vector< double > joint_vel_
bool kinova_gripper_
double max_curvature_
double max_speed_finger_
int num_fingers_
int num_joints_
ros::ServiceClient qe_client
 quaternion to euler (XYZ) conversion client
TrajectoryServersmooth_joint_trajectory_server_
 smooth point-to-point trajectory follower based on joint velocity control
TrajectoryServersmooth_trajectory_server_
 smooth point-to-point trajectory follower based on Cartesian end effector positions
std::string topic_prefix_
TrajectoryServertrajectory_server_
 point-to-point trajectory follower

Detailed Description

Definition at line 73 of file jaco_arm_trajectory_node.h.


Member Typedef Documentation

Definition at line 80 of file jaco_arm_trajectory_node.h.

Definition at line 77 of file jaco_arm_trajectory_node.h.

Definition at line 78 of file jaco_arm_trajectory_node.h.

typedef actionlib::SimpleActionServer<control_msgs::FollowJointTrajectoryAction> jaco::JacoArmTrajectoryController::TrajectoryServer

Definition at line 76 of file jaco_arm_trajectory_node.h.


Constructor & Destructor Documentation

Constructor.

Parameters:
nhROS node handle
pnhROS private node handle

Definition at line 7 of file jaco_arm_trajectory_node.cpp.

Destructor.

Definition at line 133 of file jaco_arm_trajectory_node.cpp.


Member Function Documentation

void jaco::JacoArmTrajectoryController::angularCmdCallback ( const wpi_jaco_msgs::AngularCommand &  msg) [private]

Callback for sending an angular command to the arm.

Parameters:
msgangular command and info

Definition at line 1061 of file jaco_arm_trajectory_node.cpp.

void jaco::JacoArmTrajectoryController::cartesianCmdCallback ( const wpi_jaco_msgs::CartesianCommand &  msg) [private]

Callback for sending a Cartesian command to the arm.

Parameters:
msgCartesian command and info

Definition at line 1185 of file jaco_arm_trajectory_node.cpp.

bool jaco::JacoArmTrajectoryController::eraseTrajectoriesCallback ( std_srvs::Empty::Request &  req,
std_srvs::Empty::Response &  res 
) [private]

Callback for erasing trajectories currently running on the arm.

Parameters:
reqempty service request
resempty service response

Definition at line 1495 of file jaco_arm_trajectory_node.cpp.

bool jaco::JacoArmTrajectoryController::eStopCallback ( wpi_jaco_msgs::EStop::Request &  req,
wpi_jaco_msgs::EStop::Response &  res 
) [private]

Callback for enabling/disabling the software emergency stop.

Parameters:
reqservice request
resservice response
Returns:
true on success

Definition at line 1451 of file jaco_arm_trajectory_node.cpp.

void jaco::JacoArmTrajectoryController::execute_gripper ( const control_msgs::GripperCommandGoalConstPtr &  goal)

Callback for the gripper_server_, executes a gripper command.

Parameters:
goalaction goal

Definition at line 785 of file jaco_arm_trajectory_node.cpp.

void jaco::JacoArmTrajectoryController::execute_gripper_radian ( const control_msgs::GripperCommandGoalConstPtr &  goal)

Callback for the gripper_server_radian_, executes a gripper command with a goal representing the finger position in radians.

Parameters:
goalaction goal

Definition at line 890 of file jaco_arm_trajectory_node.cpp.

void jaco::JacoArmTrajectoryController::execute_joint_trajectory ( const control_msgs::FollowJointTrajectoryGoalConstPtr &  goal)

Callback for the joint_velocity_controller, executes a smoothed trajectory with velocity control.

The trajectory is generated by interpolating a set of joint trajectory points and smoothing the corners using an acceleration constraint. The trajectory is then followed by using a velocity controller implemented in this node which sends joint velocity commands to the arm.

Parameters:
goalaction goal

Definition at line 565 of file jaco_arm_trajectory_node.cpp.

void jaco::JacoArmTrajectoryController::execute_smooth_trajectory ( const control_msgs::FollowJointTrajectoryGoalConstPtr &  goal)

Callback for the smooth_arm_controller, executes a smoother Cartesian trajectory.

The trajectory is generated by converting joint angle trajectories to end effector cartesian trajectories and smoothed automatically by the JACO's Cartesian position controller.

NOTE: the trajectories must not fall within constraints defined internally on the JACO for singularity avoidance

Parameters:
goalaction goal

Definition at line 384 of file jaco_arm_trajectory_node.cpp.

void jaco::JacoArmTrajectoryController::execute_trajectory ( const control_msgs::FollowJointTrajectoryGoalConstPtr &  goal)

Callback for the arm_controller, executes a joint angle trajectory.

Parameters:
goalaction goal

Definition at line 244 of file jaco_arm_trajectory_node.cpp.

Stripped-down angular trajectory point sending to the arm.

This is designed for trajectory followers, which need a quick response

Parameters:
pointangular trajectory point to send to the arm
eraseif true, clear the trajectory point stack before sending point

Definition at line 1384 of file jaco_arm_trajectory_node.cpp.

Stripped-down Cartesian trajectory point sending to the arm.

This is designed for trajectory followers, which need a quick response trajectory followers that need very quick response

Parameters:
pointCartesian trajectory point to send to the arm
eraseif true, clear the trajectory point stack before sending point

Definition at line 1403 of file jaco_arm_trajectory_node.cpp.

void jaco::JacoArmTrajectoryController::fingerPositionControl ( float  f1,
float  f2,
float  f3 
) [private]

Control with finger velocity inputs to reach a given position.

Parameters:
f1position of finger 1
f2position of finger 2
f3position of finger 3

Definition at line 1276 of file jaco_arm_trajectory_node.cpp.

bool jaco::JacoArmTrajectoryController::getAngularPosition ( wpi_jaco_msgs::GetAngularPosition::Request &  req,
wpi_jaco_msgs::GetAngularPosition::Response &  res 
) [private]

Service callback for getting the current joint positions of the arm and fingers.

This allows other nodes to request the joint positions when needed, rather than listening to the joint_state topic. The positions are given in radians on [-pi, pi].

Parameters:
reqempty service request
resservice response including joint positions
Returns:
true on success

Definition at line 1422 of file jaco_arm_trajectory_node.cpp.

bool jaco::JacoArmTrajectoryController::getCartesianPosition ( wpi_jaco_msgs::GetCartesianPosition::Request &  req,
wpi_jaco_msgs::GetCartesianPosition::Response &  res 
) [private]

Service callback for getting the current Cartesian pose of the end effector.

This allows other nodes to get the pose which is normally only accessible through the Kinova API

Parameters:
reqempty service request
resservice response including the end effector pose
Returns:
true on success

Definition at line 1433 of file jaco_arm_trajectory_node.cpp.

void jaco::JacoArmTrajectoryController::home_arm ( const wpi_jaco_msgs::HomeArmGoalConstPtr &  goal)

move the arm to the home position using the Kinova API home call

Parameters:
goalaction goal

Definition at line 921 of file jaco_arm_trajectory_node.cpp.

Todo:
MdL [IMPR]: Return is values are all correctly loaded.

Definition at line 1014 of file jaco_arm_trajectory_node.cpp.

Reads joint states from the arm and publishes them as a JointState message.

Definition at line 153 of file jaco_arm_trajectory_node.cpp.


Member Data Documentation

publisher for angular arm commands

Definition at line 230 of file jaco_arm_trajectory_node.h.

subscriber for angular arm commands

Definition at line 233 of file jaco_arm_trajectory_node.h.

service server to get the joint positions

Definition at line 238 of file jaco_arm_trajectory_node.h.

boost::recursive_mutex jaco::JacoArmTrajectoryController::api_mutex [private]

Definition at line 255 of file jaco_arm_trajectory_node.h.

Definition at line 259 of file jaco_arm_trajectory_node.h.

Definition at line 262 of file jaco_arm_trajectory_node.h.

publisher for when the arm completes a kinova api home arm action

Definition at line 231 of file jaco_arm_trajectory_node.h.

publisher for Cartesian arm commands

Definition at line 229 of file jaco_arm_trajectory_node.h.

subscriber for Cartesian arm commands

Definition at line 232 of file jaco_arm_trajectory_node.h.

service server to get end effector pose

Definition at line 239 of file jaco_arm_trajectory_node.h.

Definition at line 279 of file jaco_arm_trajectory_node.h.

Definition at line 241 of file jaco_arm_trajectory_node.h.

Definition at line 257 of file jaco_arm_trajectory_node.h.

service server for software estop and restart

Definition at line 240 of file jaco_arm_trajectory_node.h.

Definition at line 265 of file jaco_arm_trajectory_node.h.

Definition at line 264 of file jaco_arm_trajectory_node.h.

gripper command action client, used for sending a converted goal from gripper_server_radian_ to execute on the gripper_server_

Definition at line 253 of file jaco_arm_trajectory_node.h.

Definition at line 269 of file jaco_arm_trajectory_node.h.

Definition at line 268 of file jaco_arm_trajectory_node.h.

gripper command action server (goal in Kinova API units)

Definition at line 249 of file jaco_arm_trajectory_node.h.

gripper command action server (goal in radians)

Definition at line 250 of file jaco_arm_trajectory_node.h.

Definition at line 251 of file jaco_arm_trajectory_node.h.

forward kinematics client

Definition at line 236 of file jaco_arm_trajectory_node.h.

std::vector<double> jaco::JacoArmTrajectoryController::joint_eff_ [private]

Definition at line 277 of file jaco_arm_trajectory_node.h.

std::vector<std::string> jaco::JacoArmTrajectoryController::joint_names [private]

Definition at line 274 of file jaco_arm_trajectory_node.h.

std::vector<double> jaco::JacoArmTrajectoryController::joint_pos_ [private]

Definition at line 275 of file jaco_arm_trajectory_node.h.

publisher for joint states

Definition at line 228 of file jaco_arm_trajectory_node.h.

timer for joint state publisher

Definition at line 243 of file jaco_arm_trajectory_node.h.

std::vector<double> jaco::JacoArmTrajectoryController::joint_vel_ [private]

Definition at line 276 of file jaco_arm_trajectory_node.h.

Definition at line 272 of file jaco_arm_trajectory_node.h.

Definition at line 266 of file jaco_arm_trajectory_node.h.

Definition at line 267 of file jaco_arm_trajectory_node.h.

Definition at line 270 of file jaco_arm_trajectory_node.h.

Definition at line 271 of file jaco_arm_trajectory_node.h.

quaternion to euler (XYZ) conversion client

Definition at line 237 of file jaco_arm_trajectory_node.h.

smooth point-to-point trajectory follower based on joint velocity control

Definition at line 248 of file jaco_arm_trajectory_node.h.

smooth point-to-point trajectory follower based on Cartesian end effector positions

Definition at line 247 of file jaco_arm_trajectory_node.h.

Definition at line 263 of file jaco_arm_trajectory_node.h.

point-to-point trajectory follower

Definition at line 246 of file jaco_arm_trajectory_node.h.


The documentation for this class was generated from the following files:


wpi_jaco_wrapper
Author(s): David Kent
autogenerated on Thu Jun 6 2019 19:43:31