You are on page 1of 6

Package Summary

This package provides ROS interfaces to the Neuronics Katana 450 arm. It wraps the KNI library for low-level communication with the Katana arm. GPL license due to the KNI library.

Author: Martin Gnther License: GPL Repository: uos-ros-pkg Source: git http://kos.informatik.uni-osnabrueck.de/katana_driver.git

Contents 1. Package Summary 2. ROS API 1. katana node: general parameters 1. Services 2. Parameters 2. joint_state_publisher 1. Published Topics 3. joint_movement_action_controller 1. Action Goal 2. Action Result 3. Action Feedback 4. joint_trajectory_action_controller 1. Action Goal 2. Action Result 3. Action Feedback 4. Subscribed Topics 5. Published Topics 6. Services 7. Parameters 5. gripper_grasp_controller 1. Action Goal 2. Action Result 3. Services 4. Parameters 6. katana_arm_kinematics 1. Services 2. Parameters

ROS API
This package provides the katana ROS node, which provides four sets of functionality at once: the joint_state_publisher, the joint_movement_controller, the joint_trajectory_action_controller and the gripper_grasp_controller. They are combined into one single node for technical reasons (only one single process can access the Katana), but documented separately below for clarity.

Also there is a second node in this package, called katana_arm_kinematics, documented at the end.

katana node: general parameters


Services
switch_motors_off

(std_srvs/Empty)

Switch all motors off. WARNING: If the arm is unsupported, it will fall down! (std_srvs/Empty)

switch_motors_on

Switch all motors back on (motors are on by default). (std_srvs/Empty)

test_speed

Service to test the maximum speed of all joints. Only needed when porting the stack to a new Katana arm.

Parameters
~simulation (bool,

default: false)

Poor man's simulation for debugging purposes. If set to true, the node will not try to contact the real Katana arm, but instead "simulate" the effects of sending trajectories and so on. For real simulation, see the katana_arm_gazebo package. default: Required)

katana_joints (Array of strings,

List of joints that this node will be commanding. default: Required)

katana_gripper_joints (Array of strings,

List of commanded joints belonging to the gripper. default: Required)

robot_description (String,

The URDF description of the Katana arm. default: false)

~use_serial (bool,

If set to true, use a serial port to connect to the Katana arm, otherwise use a TCP/IP connection. default: "192.168.1.1")

~ip (String,

If using TCP/IP: The IP on which the Katana arm is listening.

~port (int,

default: 5566)

If using TCP/IP: The port on which the Katana arm is listening. default: 0)

~serial_port (int,

If using serial: The serial port number on which the Katana arm is listening (e.g., if the Katana listens on /dev/ttyUSB3, set ~serial_port = 3). Allowed values: 0-9. default: Required)

~config_file_path (String,

The path to the correct config file for the Katana arm. Warning! Make sure to use the correct config file for your arm, otherwise you risk breaking your hardware! default: Required)

katana_type (string,

Currently one of katana_300_6m180, katana_400_6m180, katana_450_6m90a, katana_450_6m90b.

joint_state_publisher
Published Topics
joint_states

(sensor_msgs/JointState)

The measured position, velocity and effort of each joint.

joint_movement_action_controller
This module provides the functionality of adressing a single joint or multiple joints at once via an action interface. Action Goal
katana_arm_controller/joint_movement_action/goal

(katana/JointMovementActionGoal)

The goal specifies which joints shall be moved to which positions.

Action Result
katana_arm_controller/joint_movement_action/result

(katana/JointMovementActionResult)

empty

Action Feedback
katana_arm_controller/joint_movement_action/feedback

(katana/JointMovementActionGoal)

empty

joint_trajectory_action_controller
This module provides the functionality of both the joint_trajectory_action (via the action interface) and the JointSplineTrajectoryController (via the command and state topics and the query_state service). Action Goal
katana_arm_controller/joint_trajectory_action/goal

(pr2_controllers_msgs/JointTrajectoryActionGoal)

The goal describes the trajectory for the robot to follow.

Action Result
katana_arm_controller/joint_trajectory_action/result

(pr2_controllers_msgs/JointTrajectoryActionResult)

empty

Action Feedback
katana_arm_controller/joint_trajectory_action/feedback

(pr2_controllers_msgs/JointTrajectoryActionFeedback)

empty

Subscribed Topics
katana_arm_controller/command

(trajectory_msgs/JointTrajectory)

The trajectory to follow. The absolute start time of the trajectory is given in header.stamp. The behavior differs from that of the JointSplineTrajectoryController: Accelerations are always ignored. If positions and velocities are specified, then the controller will interpolate using cubic splines, keeping the desired velocities. If only positions are specified, it will also interpolate using cubic splines, computing the necessary velocities.

Published Topics
katana_arm_controller/state

(pr2_controllers_msgs/JointTrajectoryControllerState)

Current state of the controller, including the current and desired positions, velocities, and accelerations.

Services
query_state

(pr2_controllers_msgs/QueryTrajectoryState)

The query_state service allows the user to inquire where the controller setpoint will be at a desired time.

Parameters
joint_trajectory_action_node/constraints/<joint>/goal (double,

default: 0.02)

The maximum final error for <joint> for the trajectory goal to be considered successful. Negative numbers indicate that there is no constraint. Given in radians. If this constraint is violated, the goal is aborted.

joint_trajectory_action_node/constraints/stopped_velocity_tolerance (double,

default: 1e-6)

The maximum velocity at the end of the trajectory for the joint to be considered stopped, given in radians. If this constraint is satisfied, the goal is successful.

gripper_grasp_controller
This module is the very similar to the pr2_gripper_grasp_controller. Action Goal
posture_action_name/goal

(object_manipulation_msgs/GraspHandPostureExecutionActionGoal)

Enables one to open or close the gripper via the GRASP or RELEASE command or to move the gripper to a arbitrary position choosing the PRE-GRASP option.

Action Result
posture_action_name/result

(object_manipulation_msgs/GraspHandPostureExecutionActionResult)

Result of the manipulation task.

Services
grasp_query_name

(object_manipulation_msgs/GraspStatus)

Asks if a grasp is currently active. Used to query if the object is still detected as present in the hand, using joint angles.

Parameters
~gripper_object_presence_threshold (double,

default: -0.43)

A joint angle below this value indicates there is nothing inside the gripper.

katana_arm_kinematics

This node implements forward and inverse kinematics services. They are implemented using the kni library. Services
get_kinematic_solver_info get_fk get_ik

(kinematics_msgs/GetKinematicSolverInfo)

Kinematic solver info. (kinematics_msgs/GetPositionFK) Forward kinematics service. (kinematics_msgs/GetPositionIK) Inverse kinematics service.

Parameters
~config_file_path (String,

default: ros::package::getPath("kni") + "/KNI_4.3.0/configfiles450/katana6M90A_G.cfg")

The path to the correct config file for the Katana arm. default: Required)

robot_description (String,

The URDF description of the Katana arm. default: Required)

katana_joints (Array of strings,

List of joints that this node will compute kinematics for.

2012-06-23 12:33

You might also like