172 player_position2d_data_t position;
173 player_sonar_data_t sonar;
174 player_gripper_data_t gripper;
175 player_actarray_data_t lift;
176 player_power_data_t power;
177 player_bumper_data_t bumper;
178 player_position2d_data_t compass;
179 player_dio_data_t dio;
180 player_aio_data_t aio;
183 player_blobfinder_data_t blobfinder;
186 player_position2d_data_t gyro;
189 player_actarray_data_t actArray;
190 player_gripper_data_t armGripper;
228 player_p2os_data_t p2os_data;
249 uint8_t lastGripperCmd;
251 player_actarray_position_cmd_t lastLiftPosCmd;
252 bool sentArmGripperCmd;
253 uint8_t lastArmGripperCmd;
254 uint8_t lastActArrayCmd;
255 player_actarray_position_cmd_t lastActArrayPosCmd;
256 player_actarray_home_cmd_t lastActArrayHomeCmd;
260 player_audio_sample_item_t last_audio_cmd;
262 int rot_kp, rot_kv, rot_ki, trans_kp, trans_kv, trans_ki;
265 int position_subscriptions;
266 int sonar_subscriptions;
267 int actarray_subscriptions;
268 int ptz_subscriptions;
272 int SendReceive(
P2OSPacket* pkt,
bool publish_data=
true);
273 void ResetRawPositions();
275 void ToggleSonarPower(
unsigned char val);
277 void ToggleMotorPower(
unsigned char val);
282 void StandardSIPPutData(
double timestampStandardSIP);
283 void GyroPutData(
double timestampGyro);
284 void BlobfinderPutData(
double timestampSERAUX);
285 void ActarrayPutData(
double timestampArm);
286 void HandlePositionCommand(player_position2d_cmd_vel_t position_cmd);
289 int HandleArmGripperCommand (
player_msghdr *hdr,
void *data);
290 void HandleAudioCommand(player_audio_sample_item_t audio_cmd);
293 void get_ptz_packet(
int s1,
int s2=0);
303 void OpenGripper (
void);
304 void CloseGripper (
void);
305 void StopGripper (
void);
306 void OpenArmGripper (
void);
307 void CloseArmGripper (
void);
308 void StopArmGripper (
void);
313 double aaOrients[18];
317 inline double TicksToDegrees (
int joint,
unsigned char ticks);
318 inline unsigned char DegreesToTicks (
int joint,
double degrees);
319 inline double TicksToRadians (
int joint,
unsigned char ticks);
320 inline unsigned char RadiansToTicks (
int joint,
double rads);
321 inline double RadsPerSectoSecsPerTick (
int joint,
double speed);
322 inline double SecsPerTicktoRadsPerSec (
int joint,
double secs);
323 void ToggleActArrayPower (
unsigned char val,
bool lock =
true);
324 void SetActArrayJointSpeed (
int joint,
double speed);
325 void HandleActArrayPosCmd (player_actarray_position_cmd_t cmd);
326 void HandleActArrayHomeCmd (player_actarray_home_cmd_t cmd);
327 int HandleActArrayCommand (
player_msghdr * hdr,
void * data);
332 float armOffsetX, armOffsetY, armOffsetZ;
334 player_limb_data_t limb_data;
335 void HandleLimbHomeCmd (
void);
336 void HandleLimbStopCmd (
void);
337 void HandleLimbSetPoseCmd (player_limb_setpose_cmd_t cmd);
338 void HandleLimbSetPositionCmd (player_limb_setposition_cmd_t cmd);
339 void HandleLimbVecMoveCmd (player_limb_vecmove_cmd_t cmd);
343 int direct_wheel_vel_control;
345 const char* psos_serial_port;
347 const char* psos_tcp_host;
350 struct timeval lastblob_tv;
354 int motor_max_turnspeed;
360 short motor_max_trans_accel, motor_max_trans_decel;
361 short motor_max_rot_accel, motor_max_rot_decel;
366 bool ignore_checksum;
369 player_ptz_data_t ptz_data;
372 int pandemand, tiltdemand, zoomdemand;
373 int SendCommand(
unsigned char *str,
int len);
374 int SendRequest(
unsigned char* str,
int len,
unsigned char* reply, uint8_t camera = 1);
375 void PrintPacket(
char* str,
unsigned char* cmd,
int len);
376 int SendAbsPanTilt(
int pan,
int tilt);
377 int setDefaultTiltRange();
378 int GetAbsPanTilt(
int* pan,
int* tilt);
379 int GetAbsZoom(
int* zoom);
380 int SendAbsZoom(
int zoom);
381 int read_ptz(
unsigned char *reply,
int size);
382 int ReceiveCommandAnswer(
int asize);
383 int ReceiveRequestAnswer(
unsigned char *data,
int s1,
int s2);
384 int setControlMode();
385 int setNotifyCommand();
386 int setPower(
int on);
387 int setOnScreenOff();
388 int CheckHostControlMode();
390 int GetMaxZoom(
int * maxzoom);
394 double lastPulseTime;
395 void SendPulse (
void);
416 void CMUcamReset(
bool doLock =
true);
417 void CMUcamTrack(
int rmin=0,
int rmax=0,
int gmin=0,
418 int gmax=0,
int bmin=0,
int bmax=0);
419 void CMUcamStartTracking(
bool doLock =
true);
420 void CMUcamStopTracking(
bool doLock =
true);