playernav is a GUI client that provides control over localize and planner devices. It allows you to set your robots' localization hypotheses by dragging and dropping them in the map. You can set global goals the same way, and see the planned paths and the robots' progress toward the goals. playernav can also display (a subset of) the localization system's current particle set, which may help in debugging localization. You can think of playernav as an Operator Control Unit (OCU). playernav can also be used just to view a map.

playernav requires libgnomecanvas.

Usage

playernav is installed alongside player in $prefix/bin, so if player is in your PATH, then playernav should also be. Command-line usage is:

If the subscription to the map fails, playernav will exit. If other subscriptions fail, you'll be warned, but playernav will continue. So, for example, if you just want to view a map, point playernav at a server with map :<map_idx> defined. Of course, if subscription to localize :0 or planner :0 fails for a robot, then you will not be able to localize or command, respectively, that robot.

When playernav starts, a window will pop up, displaying the map. Use the scrollbars on the right and bottom to pan the window. Use the scrollbar on the left to zoom the window. An icon representing each robot will be shown. Pass the pointer over a robot to see its host:port address.

Use the "File:Capture stills" menu item to enable / disable dumping screenshots; they will be saved at the rate set on the command line (5Hz default). Beware that dumping screenshots requires significant processing and will seriously degrade performance of other jobs running on the same machine. In particular, if one or more of the player servers is running on the same machine, their localization systems may fall behind the incoming data, which will have deleterious consequences.

Localizing and commanding robots

To set the localization hypothesis for a robot, drag and drop the robot with the left mouse button to the desired position. Then click the left button again to set the desired orientation. You should see the robot's icon move to assume a similar pose (it won't be exactly the same pose, but rather whatever estimate the localization system provides). As the robot moves, its estimated pose will be updated in playernav.

To set a goal for a robot, drag and drop the robot with the right mouse button to the desired position. Then click the right button again to set the desired orientation. You should see a path from the robot to the goal, with waypoints shown (if you do not see a path, then the planner probably failed to find one). You will then see the robot follow the path to the goal, with subsegments disappearing as waypoints are reached.

You can set new localization hypotheses and target at any time, even while the robot is moving.

Stopping robots

To disable (i.e., stop) a robot, click it with the middle button. To enable a robot, click it again with the middle button. To enable/disable ALL robots, use the "Stop/Go..." menu. The latter option is good in an emergency, or when it's too difficult to click on a misbehaving robot. When enabled, a robot will (or at least should) continue executing its previous plan, if any.