Intelligent and Interactive Systems

User Tools

Site Tools


intranet:projects:robot:armtopics

This is an old revision of the document!


Starting the KRL Script

Start the Orocos scripts on the robot contoller. Do not do this alone if you use the robot for the first time. Contact the responsible person listed here.

Running the server side software

This is now the time to start the IISOrocos server side software. The software is run by starting roscore and running an instance of IISOrocos for each arm:

  $IIS_INCLUDE_PATH/iis_scripts/both_arms.sh

Arm Control Topics

The topic names have the following structure (according to the lab internal convention orocos topic names have been changed compared to older versions):

  $execution_type$/$hardware$/$control_type$/$control_topic$
  execution_type = {simulation, real}
  hardware = {right_arm, left_arm, right_sdh, left_sdh, kinect1, kinect2}
  control_type = {joint_control, cartesian_control, settings, sensoring}

Message Types

todo

Readable Topics

joint_control/get_state

Returns the current joint positions of the arm

Message type:

sensor_msgs/JointState

Sample call:

rostopic echo /real/right_arm/joint_control/get_state

Sample output:

header: 
  seq: 26774
  stamp: 
    secs: 0
    nsecs: 0
  frame_id: dummy_frame_id
name: ['arm_0_joint', 'arm_1_joint', 'arm_2_joint', 'arm_3_joint', 'arm_4_joint', 'arm_5_joint', 'arm_6_joint']
position: [-0.025538215413689613, 0.8757621049880981, 1.995240569114685, 0.5836411118507385, -0.18975336849689484, 0.7183101773262024, 1.3192434310913086]
velocity: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]      <-- not working currently
effort: [0.24101980030536652, 0.2610560357570648, 0.6392512917518616, -0.3438339829444885, -0.23192289471626282, 1.0096474885940552, -0.44344362616539]

joint_control/get_impedance

Returns joint impedance values

Message type:

iis_orocos/FriJointImpedance

Sample call:

rostopic echo /real/right_arm/cartesian_control/get_impedance

Sample output:

stiffness: [250.0, 250.0, 250.0, 250.0, 250.0, 250.0, 250.0]
damping: [0.699999988079071, 0.699999988079071, 0.699999988079071, 0.699999988079071, 0.699999988079071, 0.699999988079071, 0.699999988079071]

cartesian_control/get_impedance

Returns Cartesian impedance values

Message type:

iis_orocos/CartesianImpedance

Sample call:

rostopic echo /real/right_arm/cartesian_control/get_impedance

Sample output:

stiffness: 
  linear: 
    x: 1000.0
    y: 1000.0
    z: 1000.0
  angular: 
    x: 100.0
    y: 100.0
    z: 100.0
damping: 
  linear: 
    x: 0.3
    y: 0.3
    z: 0.3
  angular: 
    x: 0.3
    y: 0.3
    z: 0.3
cpmaxdelta: 0.0
maxforce: 0.0
axismaxdeltatrq: 0.0

cartesian_control/get_pose

Returns cartesian pose of the arm

Message type:

geometry_msgs/Pose

Sample call:

rostopic echo /real/right_arm/cartesian_control/get_impedance

Sample output:

position: 
  x: -0.671013116837
  y: 0.200215816498
  z: 0.752071797848
orientation: 
  x: 0.452136724939
  y: 0.0641745917401
  z: -0.889025856601
  w: 0.0331853931426

cartesian_control/get_velocity_limit

Returns Cartesian velocity limit (see cartesian_control/set_velocity_limit)

Message type:

std_msgs/Float32

Sample call:

rostopic echo /real/right_arm/cartesian_control/get_velocity_limit

Sample output:

data: 0.0

joint_control/get_velocity_limit

Returns joint velocity limit (see joint_control/set_velocity_limit)

Message type:

std_msgs/Float32

Sample call:

rostopic echo /real/right_arm/joint_control/get_velocity_limit

Sample output:

data: 0.10000000149

Writable Topics

cartesian_control/move

Trajectory movement in cartesian space. The trajectory has to be provided in small pieces. This must *not* be used for ptp movement as it can yield high accelerations. It accepts the pose in which the arm should be after the next cycle (one cycle has a duration between 1 and 20 ms)

Message type:

geometry_msgs/Pose

Sample call:

The following is not recommend to use outside of a program providing proper trajectories, as it can yield high accelerations when used wrongly
TODO

cartesian_control/ptp

Movement in cartesian space for point to point movement

Message type:

std_msgs/Float64MultiArray

Sample call:

TODO

cartesian_control/set_impedance

Sets cartesian impedance values (stiffness, damping, cpmaxdelta, maxforce, axismaxdeltatrq)

Message type:

iis_orocos/CartesianImpedance

Sample call:

rostopic pub /real/right_arm/cartesian_control/set_impedance iis_orocos/CartesianImpedance "stiffness:
  linear: {x: 1000.0, y: 1000.0, z: 1000.0}
  angular: {x: 100.0, y: 100.0, z: 100.0}
damping:
  linear: {x: 0.3, y: 0.3, z: 0.3}
  angular: {x: 0.3, y: 0.3, z: 0.3}
cpmaxdelta: 0.0
maxforce: 0.0
axismaxdeltatrq: 0.0"

cartesian_control/set_velocity_limit

Sets maximum velocity limit for trajectory movements in cartesian space (cartesian_control/move). It expects the maximum allowed absolute Cartesian moving distance within one cycle.

Message type:

std_msgs/Float32

Sample call:

rostopic pub /real/right_arm/cartesian_control/set_velocity_limit std_msgs/Float32 0.0

settings/switch_mode (write)

modes:
	10	Position Controller
	20	Cartesian Stiffness Controller (be careful in mode 20 - calibration seems to be not complete for right arm - drifting observed)
	30	Axis-specific Stiffness Controller
	101	Gravity Compensation
usage example:
	rostopic pub /real/right_arm/settings/switch_mode std_msgs/Int32 10

sensoring/cartesian_wrench (read)

returns forces and torques

sensoring/state (read)

returns int array containing robot state
[0]	power
[1]	control
[2]	error
[3]	warning

sensoring/temperature (read)

returns temperature of robot joints in float array

joint_control/get_impedance (read)

returns joint impedance values

settings/get_command_state (read)

returns current command state in float32multiarray ([0] --> 0 = monitor mode, 1 = command mode; [1] --> number of control mode)

joint_control/move

      movement in joint space

joint_control/get_state

      returns joint pose of the arm

joint_control/set_impedance

      sets joint impedance values

joint_control/set_velocity_limit

      sets maximum velocity limit for movements in joint space
intranet/projects/robot/armtopics.1401895030.txt.gz · Last modified: 2018/09/03 14:57 (external edit)