wiki:Plugins/katana

Katana Robot Arm Plugin

Plugin to control Neuronic's Katana arm. Accessing the arm and controling its motions is done via controllers. Currently we support:

  • KNI 3 library to access/control real arm (no hardware available to test KNI 4)
  •  OpenRAVE to access/control arm in OpenRAVE simulation

Depending on the support level of the controller, the plugin provides access to

  • the endeffector position in 6D space (translation and rotation)
  • single motor/joint values (encoder and/or radian values)
  • infrared sensor values
  • internal status information

Motion control is provided for specific target in 6D space and setting/increasing/decreasing single joint values.
 OpenRAVE is supported to calculate a collision-free path to the desired target.

Requires

Plugins

Config Values

PathTypeDescriptionDefaultR
/hardware/katana/controllerstringController for the katana arm. Needs to be one of these values: "kni", "openrave"kni*
/hardware/katana/devicestringDevice file of serial port the arm is connected to; file path/dev/ttyUSB0*
/hardware/katana/kni_conffilestringKNI configuration file; file path/etc/kni3/hd300/katana6M180.cfg*
/hardware/katana/auto_calibrateboolAutomatically calibrate on startup?1*
/hardware/katana/default_max_speedunsigned intDefault maximum robot arm velocity, can be overridden via BB; [0..255]100*
/hardware/katana/read_timeout_msecunsigned intTimeout for read operations; ms100*
/hardware/katana/write_timeout_msecunsigned intTimeout for write operations; ms0*
/hardware/katana/gripper_pollint_msecunsigned intInterval between gripper final checks; ms50*
/hardware/katana/goto_pollint_msecunsigned intInterval between goto final checks; ms50*
/hardware/katana/park_xfloatX position for parking66.863892*
/hardware/katana/park_yfloatY position for parking16.27648*
/hardware/katana/park_zfloatZ position for parking442.759186*
/hardware/katana/park_phifloatPhi position for parking1.809579*
/hardware/katana/park_thetafloatTheta position for parking0.357964*
/hardware/katana/park_psifloatPsi position for parking-0.271071*
/hardware/katana/distance_scalefloatScale from kni coordinate values to fawkes0.001*
/hardware/katana/update_intervalfloatInterval to update the motor position data even if there is no act thread running, required for tf; sec0.5*
/plugins/static-transforms/transforms/katana_kni/child_framestringKatana Arm to KNI base, child frame ID/katana/kni*
Additional Config Values if OpenRAVE available
/hardware/katana/openrave/enabledboolUse OpenRAVE support?0*
/hardware/katana/openrave/use_viewerboolUse OpenRAVE qtcoin viewer (i.e. see 3D robot model)?1*
/hardware/katana/openrave/auto_load_ikboolAutomatically generate IK database for OpenRAVE robot model?1*
/hardware/katana/openrave/robot_filestringrobot.xml file to be loaded into OpenRAVE../fawkes/res/openrave/caesar.robot.xml*
/plugins/static-transforms/transforms/openrave/child_framestringMotor to OpenRAVE base/motor, child frame ID/openrave/base*

Provides

BlackBoard Interfaces

  • KatanaInterface::Katana

Compilation and Runtime Requirements

  • KNI library version 3 (kni3 and kni3-devel on Fedora)

Usage Instructions

We assume you have one Katana arm to the machine running Fawkes. The default configuration further assumes a USB to serial adapter. Change the device file if you use a regular serial port accordingly. Then load the plugin. You can use the behavior engine? to instruct the arm. For example, use the following commands either using the SkillGUI? or skilllet? (for further information on the parameters, take a loot at the skill's documentation):

katana{calibrate=true}
katana{park=true}
katana{gripper="open"}
katana{gripper="close"}
katana{enable=false}

katana{x=0.4, y=0, z=0.2, phi=1.570, theta=1.570, psi=0, frame="/katana/kni"}
katana{x=0.4, y=0, z=0.38, offset=0.05}
katana{x=0.42, y=-0.1, z=0.38, theta_error=0.5}

katana_rel{x=0.1, straight=true}