PlayerMex

Kevin Barry - University of Detroit Mercy Advanced Mobility Laboratory

PlayerMex is a client library for the Player robotic device server (http://playerstage.sf.net). This library allows the use of MATLAB as a client for Player. The syntax is strongly based on libplayerc, from the Player/Stage project.

 

Documentation: API Reference

 

Source code:

playermex-2.1-1.7.tar.gz - Note: This version changes the API. You no longer need to use 'get_pointer', dynamic arrays are now taken care of automatically.

playermex-2.1-1.2.tar.gz

playermex-2.1-1.0.tar.gz 

 

Binaries:

PlayerMexWin-1.7.zip Windows Binaries

PlayerMexMacLin-1.7.tar.gz Mac/Linux staticly linked binaries


ChangeLog:

playermex-2.1-1.7 Released 10/27/2008
playermex-2.1-1.7beta2
    Fixed typo in camera update code
    Fixed typo in mex warning
    Added -lz to Makefile for Linux

playermex-2.1-1.7beta1
    Improved error checking in matlab_unpack
    Interpret image format better

playermex-2.1-1.6
    Playermex no longer returns pointers for dynamic memory, instead after every client_read it copies the memory into a local matlab structure. This is much safer and easier to use.
    Fixed a bug in matlab_pack that would managle strings because a mxCHAR_CLASS is actually 2 bytes, not 1 byte (previously used sizeof(char)).
 

playermex-2.1-1.2

matlab_zpack now compresses the packed data. matlab_unpack can detect and decompress this automatically.

Fixed a buffer overrun in matlab_unpack that causes funny business in unpacking structs sometimes (field name distortion).

 

playermex-2.1-1.1
    Enable static mex library allowing portability across machines without player installed.
 

playermex-2.1-1.0
    Have client_read throw an error on failure. This ensures that a ^C to player will not cause poorly written matlab code to go into a tight loop and clog syslogd with "no socket to peek at". If you need the old functionality (and have error checking) use player('client_read_raw', client);
 

playermex-2.1pre6
    Fixed map_get_map so that it actually works (Broke with move from 2.0 to 2.1)
    Added (untested) PTZ command support
    Added player('version') to report both client_lib version and playermex version
    (Should be 2.1.0rc2-pre6)
 

playermex-2.1pre5
    matlab_unpack now also works with pointers
    opaque_cmd can accept any datatype, will send as raw
    Fixed memory leak in opaque_cmd
    Loosened up the syntax a bit. player('subscribe', laser); is sufficient now, PLAYER_OPEN_MODE is assumed. Also player('position2d_set_cmd_vel', position2d, vx, vy, va); is sufficient, no need for state.
    Fixed Makefile so binary is now called player.mex rather than playermex.mex, this way from matlab you call player(). This is how I'd been calling it, but using a symlink

 

playermex-2.1pre4
    matlab_pack() allowing structs/arrays/matrices/whatever matlab data to be packed into a uint8_t array, which then could be sent over a network or something, and matlab_unpack()ed on the other end.
    Cleaned up the _cself to be a bit smarter. You can now clear client without a crash, but clearing laser/position2d/anything else will still crash.

playermex-2.1-3
    Fixed bug in isfresh() grabbing element that doesn't exist

playermex-2.1-2
    More support for planner interface

playermex-2.1-1
    Initial release supporting Player 2.1
    Autocode generation from playerc include files