Models
[libstage API reference]


Data Structures

struct  stg_audio_cmd_t
struct  stg_audio_config_t
struct  stg_audio_data_t
struct  stg_blobfinder_blob_t
struct  stg_blobfinder_config_t
struct  stg_bumper_config_t
struct  stg_bumper_sample_t
struct  stg_energy_config_t
struct  stg_energy_data_t
struct  stg_fiducial_config_t
struct  stg_fiducial_t
struct  stg_gripper_cmd_t
struct  stg_gripper_config_t
struct  stg_gripper_data_t
struct  stg_laser_config_t
struct  stg_laser_sample_t
struct  stg_model_t
struct  stg_position_cfg_t
struct  stg_position_cmd_t
struct  stg_position_data_t
struct  stg_ptz_config_t
struct  stg_ranger_config_t
struct  stg_ranger_sample_t
struct  stg_speech_cmd_t
struct  stg_speech_config_t
struct  stg_speech_data_t
struct  stg_wifi_config_t
struct  stg_wifi_data_t
struct  stg_wifi_sample_t

Defines

#define STG_AUDIO_MAX_STRING_LEN   256
#define STG_BLOB_CHANNELS_MAX   16
#define STG_MOVE_ROT   (1 << 1)
#define STG_MOVE_SCALE   (1 << 2)
#define STG_MOVE_TRANS   (1 << 0)
#define STG_MP_AUDIO_RETURN   "_mp_audio_return"
#define STG_MP_COLOR   "_mp_color"
#define STG_MP_FIDUCIAL_RETURN   "_mp_fiducial_return"
#define STG_MP_GEOM   "_mp_geom"
#define STG_MP_GRIPPER_RETURN   "_mp_gripper_return"
#define STG_MP_LASER_RETURN   "_mp_laser_return"
#define STG_MP_MASS   "_mp_mass"
#define STG_MP_OBSTACLE_RETURN   "_mp_obstacle_return"
#define STG_MP_POSE   "_mp_pose"
#define STG_MP_PREFIX   "_mp_"
#define STG_MP_RANGER_RETURN   "_mp_ranger_return"
#define STG_MP_VELOCITY   "_mp_velocity"
#define STG_MP_WATTS   "_mp_watts"
#define STG_POSITION_CONTROL_DEFAULT   STG_POSITION_CONTROL_VELOCITY
#define STG_POSITION_DRIVE_DEFAULT   STG_POSITION_DRIVE_DIFFERENTIAL
#define STG_POSITION_LOCALIZATION_DEFAULT   STG_POSITION_LOCALIZATION_GPS
#define STG_SPEECH_MAX_STRING_LEN   256

Typedefs

typedef int(* stg_model_callback_t )(stg_model_t *mod, void *user)
typedef int(* stg_model_initializer_t )(stg_model_t *)
typedef int stg_movemask_t
typedef stg_ptz_t stg_ptz_cmd_t
typedef stg_ptz_t stg_ptz_data_t

Enumerations

enum  stg_audio_cmd_type_t { STG_AUDIO_CMD_NOP = 0, STG_AUDIO_CMD_SAY }
enum  stg_gripper_cmd_type_t {
  STG_GRIPPER_CMD_NOP = 0, STG_GRIPPER_CMD_OPEN, STG_GRIPPER_CMD_CLOSE, STG_GRIPPER_CMD_UP,
  STG_GRIPPER_CMD_DOWN
}
enum  stg_gripper_lift_state_t { STG_GRIPPER_LIFT_DOWN = 0, STG_GRIPPER_LIFT_UP, STG_GRIPPER_LIFT_UPPING, STG_GRIPPER_LIFT_DOWNING }
enum  stg_gripper_paddle_state_t { STG_GRIPPER_PADDLE_OPEN = 0, STG_GRIPPER_PADDLE_CLOSED, STG_GRIPPER_PADDLE_OPENING, STG_GRIPPER_PADDLE_CLOSING }
enum  stg_laser_return_t { LaserTransparent, LaserVisible, LaserBright }
enum  stg_position_control_mode_t { STG_POSITION_CONTROL_VELOCITY, STG_POSITION_CONTROL_POSITION, STG_POSITION_CONTROL_VELOCITY_HEADING }
enum  stg_position_drive_mode_t { STG_POSITION_DRIVE_DIFFERENTIAL, STG_POSITION_DRIVE_OMNI, STG_POSITION_DRIVE_CAR }
enum  stg_position_localization_mode_t { STG_POSITION_LOCALIZATION_GPS, STG_POSITION_LOCALIZATION_ODOM }
enum  stg_speech_cmd_type_t { STG_SPEECH_CMD_NOP = 0, STG_SPEECH_CMD_SAY }

Functions

void stg_model_add_callback (stg_model_t *mod, void *member, stg_model_callback_t cb, void *user)
void stg_model_add_property_toggles (stg_model_t *mod, void *member, stg_model_callback_t callback_on, void *arg_on, stg_model_callback_t callback_off, void *arg_off, const char *name, const char *label, gboolean enabled)
GPtrArray * stg_model_array_from_tree (stg_model_t *root)
stg_model_tstg_model_create (stg_world_t *world, stg_model_t *parent, stg_id_t id, char *typestr)
void stg_model_destroy (stg_model_t *mod)
void stg_model_draw_points (stg_model_t *mod, const char *group, double x, double y, double a, stg_point_t *points, size_t point, double size, stg_color_t color)
void stg_model_draw_polygons (stg_model_t *mod, const char *group, double x, double y, double a, stg_polygon_t *polys, size_t polycount)
void stg_model_draw_polylines (stg_model_t *mod, const char *group, double x, double y, double a, stg_polyline_t *lines, size_t linecount, double thickness, stg_color_t colot)
int stg_model_fig_clear_cb (stg_model_t *mod, void *data, size_t len, void *userp)
void * stg_model_get_cfg (stg_model_t *mod, size_t *lenp)
void * stg_model_get_cmd (stg_model_t *mod, size_t *lenp)
void * stg_model_get_data (stg_model_t *mod, size_t *lenp)
void stg_model_get_geom (stg_model_t *mod, stg_geom_t *dest)
void stg_model_get_global_pose (stg_model_t *mod, stg_pose_t *pose)
void stg_model_get_global_velocity (stg_model_t *mod, stg_velocity_t *gvel)
stg_polygon_tstg_model_get_polygons (stg_model_t *mod, size_t *poly_count)
void stg_model_get_pose (stg_model_t *mod, stg_pose_t *dest)
void * stg_model_get_property (stg_model_t *mod, char *key)
void stg_model_get_velocity (stg_model_t *mod, stg_velocity_t *dest)
void stg_model_global_to_local (stg_model_t *mod, stg_pose_t *pose)
int stg_model_is_antecedent (stg_model_t *mod, stg_model_t *testmod)
int stg_model_is_descendent (stg_model_t *mod, stg_model_t *testmod)
int stg_model_is_related (stg_model_t *mod1, stg_model_t *mod2)
void stg_model_load (stg_model_t *mod)
void stg_model_local_to_global (stg_model_t *mod, stg_pose_t *pose)
void stg_model_position_set_odom (stg_model_t *mod, stg_pose_t *odom)
void stg_model_print (stg_model_t *mod, char *prefix)
int stg_model_remove_callback (stg_model_t *mod, void *member, stg_model_callback_t callback)
stg_model_tstg_model_root (stg_model_t *mod)
void stg_model_save (stg_model_t *mod)
void stg_model_set_audio_return (stg_model_t *mod, int val)
void stg_model_set_blob_return (stg_model_t *mod, int val)
void stg_model_set_boundary (stg_model_t *mod, int val)
void stg_model_set_cfg (stg_model_t *mod, void *cfg, size_t len)
void stg_model_set_cmd (stg_model_t *mod, void *cmd, size_t len)
void stg_model_set_color (stg_model_t *mod, stg_color_t col)
void stg_model_set_data (stg_model_t *mod, void *data, size_t len)
void stg_model_set_fiducial_key (stg_model_t *mod, int key)
void stg_model_set_fiducial_return (stg_model_t *mod, int fid)
void stg_model_set_geom (stg_model_t *mod, stg_geom_t *src)
void stg_model_set_global_pose (stg_model_t *mod, stg_pose_t *gpose)
void stg_model_set_global_velocity (stg_model_t *mod, stg_velocity_t *gvel)
void stg_model_set_gripper_return (stg_model_t *mod, int val)
void stg_model_set_gui_grid (stg_model_t *mod, int val)
void stg_model_set_gui_mask (stg_model_t *mod, int val)
void stg_model_set_gui_nose (stg_model_t *mod, int val)
void stg_model_set_gui_outline (stg_model_t *mod, int val)
void stg_model_set_laser_return (stg_model_t *mod, int val)
void stg_model_set_lines (stg_model_t *mod, stg_polyline_t *lines, size_t lines_count)
void stg_model_set_map_resolution (stg_model_t *mod, stg_meters_t res)
void stg_model_set_mass (stg_model_t *mod, stg_kg_t mass)
void stg_model_set_obstacle_return (stg_model_t *mod, int val)
int stg_model_set_parent (stg_model_t *mod, stg_model_t *newparent)
void stg_model_set_polygons (stg_model_t *mod, stg_polygon_t *polys, size_t poly_count)
void stg_model_set_pose (stg_model_t *mod, stg_pose_t *pose)
int stg_model_set_property (stg_model_t *mod, char *propname, void *data)
void stg_model_set_ranger_return (stg_model_t *mod, int val)
void stg_model_set_stall (stg_model_t *mod, stg_bool_t stall)
void stg_model_set_velocity (stg_model_t *mod, stg_velocity_t *vel)
void stg_model_set_watts (stg_model_t *mod, stg_watts_t watts)
int stg_model_shutdown (stg_model_t *mod)
int stg_model_startup (stg_model_t *mod)
void stg_model_subscribe (stg_model_t *mod)
void stg_model_unset_property (stg_model_t *mod, char *propname)
void stg_model_unsubscribe (stg_model_t *mod)
int stg_model_update (stg_model_t *model)

Detailed Description

Implements the basic object

Define Documentation

#define STG_AUDIO_MAX_STRING_LEN   256

#define STG_BLOB_CHANNELS_MAX   16

#define STG_MOVE_ROT   (1 << 1)

#define STG_MOVE_SCALE   (1 << 2)

#define STG_MOVE_TRANS   (1 << 0)

#define STG_MP_AUDIO_RETURN   "_mp_audio_return"

#define STG_MP_COLOR   "_mp_color"

#define STG_MP_FIDUCIAL_RETURN   "_mp_fiducial_return"

#define STG_MP_GEOM   "_mp_geom"

#define STG_MP_GRIPPER_RETURN   "_mp_gripper_return"

#define STG_MP_LASER_RETURN   "_mp_laser_return"

#define STG_MP_MASS   "_mp_mass"

#define STG_MP_OBSTACLE_RETURN   "_mp_obstacle_return"

#define STG_MP_POSE   "_mp_pose"

#define STG_MP_PREFIX   "_mp_"

Referenced by stg_model_set_property().

#define STG_MP_RANGER_RETURN   "_mp_ranger_return"

#define STG_MP_VELOCITY   "_mp_velocity"

#define STG_MP_WATTS   "_mp_watts"

#define STG_POSITION_CONTROL_DEFAULT   STG_POSITION_CONTROL_VELOCITY

Referenced by position_init().

#define STG_POSITION_DRIVE_DEFAULT   STG_POSITION_DRIVE_DIFFERENTIAL

Referenced by position_init().

#define STG_POSITION_LOCALIZATION_DEFAULT   STG_POSITION_LOCALIZATION_GPS

Referenced by position_init().

#define STG_SPEECH_MAX_STRING_LEN   256


Typedef Documentation

typedef int(* stg_model_callback_t)(stg_model_t *mod, void *user)

Define a callback function type that can be attached to a record within a model and called whenever the record is set.

function type for an initialization function that configures a specialized model. Each special model type (laser, position, etc) has a single initializer function that is called when the model type is specified in the worldfile. The mapping is done in a table in typetable.cc.

typedef int stg_movemask_t

ptz command: specify desired PTZ angles. Tilt has no effect.

ptz data: specifies actual PTZ angles.


Enumeration Type Documentation

Enumerator:
STG_AUDIO_CMD_NOP 
STG_AUDIO_CMD_SAY 

Enumerator:
STG_GRIPPER_CMD_NOP 
STG_GRIPPER_CMD_OPEN 
STG_GRIPPER_CMD_CLOSE 
STG_GRIPPER_CMD_UP 
STG_GRIPPER_CMD_DOWN 

Enumerator:
STG_GRIPPER_LIFT_DOWN 
STG_GRIPPER_LIFT_UP 
STG_GRIPPER_LIFT_UPPING 
STG_GRIPPER_LIFT_DOWNING 

Enumerator:
STG_GRIPPER_PADDLE_OPEN 
STG_GRIPPER_PADDLE_CLOSED 
STG_GRIPPER_PADDLE_OPENING 
STG_GRIPPER_PADDLE_CLOSING 

laser return value

Enumerator:
LaserTransparent  not detected by laser model
LaserVisible  detected by laser with a reflected intensity of 0
LaserBright 

Enumerator:
STG_POSITION_CONTROL_VELOCITY 
STG_POSITION_CONTROL_POSITION 
STG_POSITION_CONTROL_VELOCITY_HEADING 

"position_drive" property

Enumerator:
STG_POSITION_DRIVE_DIFFERENTIAL 
STG_POSITION_DRIVE_OMNI 
STG_POSITION_DRIVE_CAR 

Enumerator:
STG_POSITION_LOCALIZATION_GPS 
STG_POSITION_LOCALIZATION_ODOM 

Enumerator:
STG_SPEECH_CMD_NOP 
STG_SPEECH_CMD_SAY 


Function Documentation

void stg_model_add_callback ( stg_model_t mod,
void *  member,
stg_model_callback_t  cb,
void *  user 
)

void stg_model_add_property_toggles ( stg_model_t mod,
void *  member,
stg_model_callback_t  callback_on,
void *  arg_on,
stg_model_callback_t  callback_off,
void *  arg_off,
const char *  name,
const char *  label,
gboolean  enabled 
)

GPtrArray* stg_model_array_from_tree ( stg_model_t root  ) 

Convert a tree of models into a GPtrArray containing the same models.

void stg_model_destroy ( stg_model_t mod  ) 

destroy a model, freeing its memory

References FALSE, and gui_model_destroy().

Referenced by model_destroy_cb().

void stg_model_draw_points ( stg_model_t mod,
const char *  group,
double  x,
double  y,
double  a,
stg_point_t points,
size_t  point,
double  size,
stg_color_t  color 
)

void stg_model_draw_polygons ( stg_model_t mod,
const char *  group,
double  x,
double  y,
double  a,
stg_polygon_t polys,
size_t  polycount 
)

void stg_model_draw_polylines ( stg_model_t mod,
const char *  group,
double  x,
double  y,
double  a,
stg_polyline_t lines,
size_t  linecount,
double  thickness,
stg_color_t  colot 
)

int stg_model_fig_clear_cb ( stg_model_t mod,
void *  data,
size_t  len,
void *  userp 
)

References stg_model_fig_clear().

void* stg_model_get_cfg ( stg_model_t mod,
size_t *  lenp 
)

void* stg_model_get_cmd ( stg_model_t mod,
size_t *  lenp 
)

void* stg_model_get_data ( stg_model_t mod,
size_t *  lenp 
)

void stg_model_get_global_velocity ( stg_model_t mod,
stg_velocity_t gvel 
)

get the velocity of a model in the global CS

References stg_pose_t::a, stg_model_get_global_pose(), stg_pose_t::x, and stg_pose_t::y.

Referenced by model_render_velocity(), and stg_model_update_pose().

stg_polygon_t* stg_model_get_polygons ( stg_model_t mod,
size_t *  poly_count 
)

gets a model's "polygons" property and fills poly_count with the number of polygons to be found

Referenced by audio_findpoints(), and stg_model_test_collision().

void stg_model_get_pose ( stg_model_t mod,
stg_pose_t dest 
)

void* stg_model_get_property ( stg_model_t mod,
char *  key 
)

void stg_model_get_velocity ( stg_model_t mod,
stg_velocity_t dest 
)

Get a model's velocity (in its local reference frame)

Referenced by gui_model_mouse().

void stg_model_global_to_local ( stg_model_t mod,
stg_pose_t pose 
)

Convert a pose in the world coordinate system into a model's local coordinate system. Overwrites [pose] with the new coordinate.

References stg_pose_t::a, stg_model_get_global_pose(), stg_pose_t::x, and stg_pose_t::y.

Referenced by audio_draw_path(), audio_render_cfg(), gripper_paddle_contact(), and stg_model_set_global_pose().

int stg_model_is_antecedent ( stg_model_t mod,
stg_model_t testmod 
)

returns TRUE iff [testmod] exists above [mod] in a model tree

References FALSE, stg_model_is_antecedent(), and TRUE.

Referenced by stg_model_is_antecedent().

int stg_model_is_descendent ( stg_model_t mod,
stg_model_t testmod 
)

returns TRUE iff [testmod] exists below [mod] in a model tree

References FALSE, stg_model_is_descendent(), and TRUE.

Referenced by stg_model_is_descendent(), and stg_model_is_related().

void stg_model_local_to_global ( stg_model_t mod,
stg_pose_t pose 
)

Convert a pose in the model's local coordinate system into the world coordinate system. Overwrites [pose] with the new coordinate.

References stg_model_get_global_pose(), and stg_pose_sum().

Referenced by gripper_break_beam(), gripper_paddle_contact(), gripper_update(), gui_model_render_geom_global(), gui_model_trail(), laser_update(), ranger_update(), speech_update(), stg_model_map(), and stg_model_test_collision().

void stg_model_position_set_odom ( stg_model_t mod,
stg_pose_t odom 
)

void stg_model_print ( stg_model_t mod,
char *  prefix 
)

print human-readable information about the model on stdout. If prefix is non-null, it is printed first.

Referenced by model_print_cb().

int stg_model_remove_callback ( stg_model_t mod,
void *  member,
stg_model_callback_t  callback 
)

stg_model_t* stg_model_root ( stg_model_t mod  ) 

return the top-level model above mod

void stg_model_save ( stg_model_t mod  ) 

save the state of the model to the current world file

References PRINT_DEBUG4, wf_write_tuple_angle(), and wf_write_tuple_length().

Referenced by stg_model_save_cb().

void stg_model_set_audio_return ( stg_model_t mod,
int  val 
)

void stg_model_set_blob_return ( stg_model_t mod,
int  val 
)

void stg_model_set_boundary ( stg_model_t mod,
int  val 
)

References model_change().

Referenced by stg_model_load().

void stg_model_set_fiducial_key ( stg_model_t mod,
int  key 
)

set a model's fiducial key: only fiducial finders with a matching key can detect this model as a fiducial.

References model_change().

Referenced by stg_model_load().

void stg_model_set_fiducial_return ( stg_model_t mod,
int  fid 
)

set a model's geometry (size and center offsets)

References model_change().

Referenced by InterfaceFiducial::ProcessMessage(), stg_model_load(), and stg_model_set_property_named().

void stg_model_set_global_pose ( stg_model_t mod,
stg_pose_t gpose 
)

get a human-readable string for the model's type set the pose of model in global coordinates

References stg_model_global_to_local(), and stg_model_set_pose().

Referenced by gripper_update().

void stg_model_set_global_velocity ( stg_model_t mod,
stg_velocity_t gvel 
)

void stg_model_set_gripper_return ( stg_model_t mod,
int  val 
)

void stg_model_set_gui_grid ( stg_model_t mod,
int  val 
)

References model_change().

Referenced by stg_model_load().

void stg_model_set_gui_mask ( stg_model_t mod,
int  val 
)

References model_change().

Referenced by stg_model_load().

void stg_model_set_gui_nose ( stg_model_t mod,
int  val 
)

References model_change().

Referenced by stg_model_load().

void stg_model_set_gui_outline ( stg_model_t mod,
int  val 
)

References model_change().

Referenced by stg_model_load().

void stg_model_set_laser_return ( stg_model_t mod,
int  val 
)

void stg_model_set_lines ( stg_model_t mod,
stg_polyline_t lines,
size_t  lines_count 
)

set an array oflines to be drawn for the model

void stg_model_set_map_resolution ( stg_model_t mod,
stg_meters_t  res 
)

References model_change().

Referenced by stg_model_load().

void stg_model_set_mass ( stg_model_t mod,
stg_kg_t  mass 
)

void stg_model_set_obstacle_return ( stg_model_t mod,
int  val 
)

int stg_model_set_parent ( stg_model_t mod,
stg_model_t newparent 
)

Change a model's parent - experimental

References gui_model_create(), gui_model_destroy(), and model_change().

Referenced by gripper_paddle_contact(), and gripper_update().

void stg_model_set_pose ( stg_model_t mod,
stg_pose_t pose 
)

int stg_model_set_property ( stg_model_t mod,
char *  propname,
void *  data 
)

Set a named property of a Stage model.

Set a property of a Stage model.

This function can set both predefined and user-defined properties of a model. Predefined properties are intrinsic to every model, such as pose and color. Every supported predefined properties has its identifying string defined as a preprocessor macro in stage.h. Users should use the macro instead of a hard-coded string, so that the compiler can help you to avoid mis-naming properties.

User-defined properties allow the user to attach arbitrary data pointers to a model. User-defined property data is not copied, so the original pointer must remain valid. User-defined property names are simple strings. Names beginning with an underscore ('_') are reserved for internal libstage use: users should not use names beginning with underscore (at risk of causing very weird behaviour).

Any callbacks registered for the named property will be called.

Returns 0 on success, or a positive error code on failure.

CAUTION* The caller is responsible for making sure the pointer points to data of the correct type for the property, so use carefully. Check the docs or the equivalent stg_model_set_<property>() function definition to see the type of data required for each property.

References stg_model_set_property_named(), and STG_MP_PREFIX.

Referenced by gc_laser_data(), gc_model_group_create(), gc_model_group_destroy(), gc_model_highlight(), gc_model_init(), and InterfaceSimulation::ProcessMessage().

void stg_model_set_ranger_return ( stg_model_t mod,
int  val 
)

void stg_model_set_stall ( stg_model_t mod,
stg_bool_t  stall 
)

Referenced by stg_model_update_pose().

void stg_model_set_velocity ( stg_model_t mod,
stg_velocity_t vel 
)

set a model's velocity in its parent's coordinate system

References model_change().

Referenced by gui_model_mouse(), position_init(), position_shutdown(), stg_model_load(), stg_model_set_global_velocity(), and stg_model_update_pose().

int stg_model_shutdown ( stg_model_t mod  ) 

finalize a model - called when a model goes from one to zero subscriptions

References PRINT_WARN1.

Referenced by stg_model_unsubscribe().

int stg_model_startup ( stg_model_t mod  ) 

initialize a model - called when a model goes from zero to one subscriptions

References PRINT_WARN1.

Referenced by stg_model_subscribe().

void stg_model_subscribe ( stg_model_t mod  ) 

subscribe to a model's data

References stg_model_startup().

Referenced by StgDriver::Subscribe().

void stg_model_unset_property ( stg_model_t mod,
char *  propname 
)

Remove a property from a model.

Removes a data item previously associated with the model using stg_model_set_property(). No memory is freed, so the user should take care to free the memory.

Referenced by gc_model_highlight_remove().

void stg_model_unsubscribe ( stg_model_t mod  ) 

unsubscribe from a model's data

References stg_model_shutdown().

Referenced by StgDriver::Unsubscribe().

int stg_model_update ( stg_model_t model  ) 

Update a model by one simulation timestep. This is called by stg_world_update(), so users don't usually need to call this.

Referenced by model_update_cb().


Generated on Wed Jun 3 23:12:29 2009 for Stage by  doxygen 1.5.9