K-Team Khepera mobile robot

The khepera driver is used to interface to the K-Team khepera robot.

This driver is experimental and should be treated with caution. At this point it supports the interface_position2d and interface_ir interfaces.

TODO:

  • Add support for position control (currently only velocity control)
  • Add proper calibration for IR sensors
Compile-time dependencies
  • none
Provides
  • interface_position2d
  • interface_ir
Requires
  • none
Supported configuration requests
  • The interface_position2d interface supports:
    • PLAYER_POSITION2D_REQ_GET_GEOM
    • PLAYER_POSITION2D_REQ_MOTOR_POWER
    • PLAYER_POSITION2D_REQ_VELOCITY_MODE
    • PLAYER_POSITION2D_REQ_RESET_ODOM
    • PLAYER_POSITION2D_REQ_SET_ODOM
  • The interface_ir interface supports:
    • PLAYER_IR_REQ_POSE
Configuration file options
  • port (string)
    • Default: "/dev/ttyUSB0"
    • Serial port used to communicate with the robot.
  • scale_factor (float)
    • Default: 10
    • As the khepera is so small the actual geometry doesnt make much sense with many of the existing defaults so the geometries can all be scaled by this factor.
  • encoder_res (float)
    • Default: 1.0/12.0
    • The wheel encoder resolution.
  • position_pose (float tuple)
    • Default: [0 0 0]
    • The pose of the robot in player coordinates (mm, mm, deg).
  • position_size (float tuple)
    • Default: [57 57]
    • The size of the robot approximated to a rectangle (mm, mm).
  • ir_pose_count (integer)
    • Default: 8
    • The number of ir poses.
  • ir_poses (float tuple)
    • Default: [10 24 90 19 17 45 25 6 0 25 -6 0 19 -17 -45 10 -24 -90 -24 -10 180 -24 10 180]
    • Poses of the IRs (mm mm deg for each one)
Example
driver
(
  name "khepera"
  provides ["position2d:0" "ir:0"]
)
Author
Toby Collett