Player 3.0 Upgrade

From The Player Project

Jump to: navigation, search

Upgrading from Player 2.1 to Player 3.0

Contents

Interfaces

The following interfaces have had changes, you should check the specific interfaces out if you have been using them

  1. blackboard
    1. PLAYER_BLACKBOARD_REQ_GET_ENTRY request added
  2. blobfinder
    1. PLAYER_BLOBFINDER_GET_COLOR request added
  3. imu
    1. PLAYER_IMU_DATA_FULLSTATE message added
  4. ir (now deprecated)
  5. joystick
    1. data structure changed
  6. laser (now deprecated)
    1. New PLAYER_LASER_DATA_SCANANGLE message added
  7. mcom (removed)
  8. ranger (reowrked)
  9. simulation
    1. PLAYER_SIMULATION_CMD_PAUSE command added
    2. PLAYER_SIMULATION_CMD_RESET command added
    3. PLAYER_SIMULATION_CMD_SAVE command added
  10. sonar (now deprecated)
  11. stereo (new interface)

The following interfaces were added

  1. stereo

The following interfaces were deprecated. You should update your clients to use their replacements.

  1. ir (use ranger)
  2. sonar (use ranger - a conversion driver, sonartoranger, is available for using drivers that have not yet been updated to the new interface.)
  3. laser (use ranger - a conversion driver, sonartoranger, is available for using drivers that have not yet been updated to the new interface.)

Client Libraries

With the exception of changes to support the interface changes above, there are no changes needed to use the Client Libraries.

There is a new Ruby wrapper around the c client library, and experimental Python and Ruby wrappers around the c++ client library.

Drivers API

Non threaded drivers should not need modified.

Threaded drivers have a slight modified API which should make resource management easier.

  1. Threaded drivers should now inherit from the ThreadedDriver class.
  2. Their Setup method should be renamed MainSetup and have the call to StartThread removed.
  3. Their Shutdown method should be renamed MainQuit and have the call to StopThread removed.
  4. MainSetup and MainQuit are called in the drivers thread context.

Player Libraries

There have been some small changes to the names of player libraries and their headers. Code using pkg-config should be most unaffected by this.

  1. playererror and some utility code are now libplayercommon
  2. All interface related code (the interfaces themselves, xdr methods and the interface utils) are not in libplayeritnerface
  3. All server and driver code remains in libplayercore
  4. libplayertcp is unchanged.
  5. The client libraries are unchanged.
  6. All replacement code is now contained in a library, libplayerreplace, rather than being compiled in everywhere it is needed.
Personal tools