<> <> == Overview == The `stdr_robot` package implements a simulated robot, all simulated sensors and its simulated motion controller. Till now the following sensors are implemented: * Laser Range Scanner (LIDAR), provides a <>. * Sonar, provides a <>. Available motion controllers: * Ideal motion controller. The robot class is available using the `nodelet` interface, named `stdr_robot/Robot`. To load a new robot a [[stdr_server|STDR Server]] has to be running. New robots/nodelets can be loaded only from [[stdr_server]], using either [[stdr_gui]] or command-line tools described below. A parser for YAML and XML files is also provided, to load or save robots, sensors etc. More details on how to use YAML and XML files with stdr_simulator [[stdr_simulator/Tutorials/Using YAML files|here]]. == Tf frames == A robot provides tf transforms for the pose of itself and its sensors. All transforms are relative to `map_static` frame. For more details about map tf frames see [[stdr_server#Tf_frames|STDR Server tf frames]]. An example with one spawned robot follows (using {{{rqt_tf_tree}}}): {{attachment:tf_frames.png|alt text|width=750}} === Sensor transforms === The `frame_id` for each sensor is defined on loading a robot from GUI or when using a YAML/XML file to describe a sensor. Each sensor `frame_id` has to have a unique name per robot. To avoid naming collisions with other robots it is also (automatically) prefixed with robot's name. Example: `robot0_laser_1`. === Robot transform === Each robot provides a tf transform with its current pose. The `frame_id` is automatically assigned and has the format `robot`. Example: `robot2`. == Topics == All topic names are prefixed with robot name. Example `robot1/cmd_vel`. === Subscribed Topics === `cmd_vel` (<>) Robot listens for velocity commands === Published Topics === `` (<>) Publishes laser scan. Example: `robot0/laser_back` `` (<>) Publishes sonar measurements. Example: `robot0/sonar_2` == Services == All services are prefixed with the name `robot_manager`. This is the name of the nodelet manager and should '''not''' change. `load_nodelet` (<>) Called to load a new robot. `unload_nodelet` (<>) Called to unload/delete a robot. == Command-Line Tools == === robot_handler === With the `robot_handler` command-line tool you can add, delete and move a robot directly from the terminal. The following sections describe the available commands. ==== robot_handler add ==== `add ` Adds a new robot at given position (x, y, theta). Needs full path to the description file. Example: {{{ $ rosrun stdr_robot robot_handler add resources/robots/khepera2.yaml 1.2 2 1.57 }}} NOTE: `robot_handler` does not check if the pose you provided is valid, so you can spawn a robot on a wall, or on top of an existing robot. (This will change in future releases) ==== robot_handler delete ==== `delete ` Deletes a robot named . Example: {{{ $ rosrun stdr_robot robot_handler delete /robot2 }}} ==== robot_handler replace ==== `replace ` Moves a robot to given pose. Example: {{{ $ rosrun stdr_robot robot_handler replace /robot1 1.2 3 3.14 }}} NOTE: `robot_handler` does not check if the pose you provided is valid, so you can move a robot on a wall, or on top of an existing robot. (This will change in future releases) == Tutorials == For tutorials see [[stdr_simulator/Tutorials]]. ## AUTOGENERATED DON'T DELETE ## CategoryPackage