indigo:Only showing information from the released package extracted on July 09, 2019 at 04:49 AM. No API documentation available. Please see this page for information on how to submit your repository to our index.

jade:Only showing information from the released package extracted on October 08, 2017 at 10:16 AM. No API documentation available. Please see this page for information on how to submit your repository to our index.

lunar:Only showing information from the released package extracted on July 09, 2019 at 03:01 AM. No API documentation available. Please see this page for information on how to submit your repository to our index.

noetic:Only showing information from the released package extracted on June 07, 2020 at 03:32 AM. No API documentation available. Please see this page for information on how to submit your repository to our index.

External Documentation

Nodes

stageros

The stageros node wraps the Stage 2-D multi-robot simulator, via libstage. Stage simulates a world as defined in a .world file. This file tells stage everything about the world, from obstacles (usually represented via a bitmap to be used as a kind of background), to robots and other objects.

This node only exposes a subset of Stage's functionality via ROS. Specifically, it finds the Stage models of type laser, and of type position, and maps these models to the ROS topics given below. If at least one laser and position model are not found, stageros exits.

Usage

stageros [-g runs headless] <world> [standard ROS args]

Parameters:

world : The Stage .world file to load.

-g : If set, this option will run stage as "headless," no GUI will be displayed.

World syntax

The .world file syntax is documented in the Stage manual. stageros only exposes models created by a subset of the .world file syntax, specifically laser and position models. For examples, see the world directory in the stage package.

Subscribed topics

If there is only one position model defined in the world file, all of these topics appear at the top namespace. However, if more than 1 position models exist, these topics are pushed down into their own namespaces, by prefixing the topics with robot_<i>/ , e.g., robot_0/cmd_vel etc.

velocity commands to differentially drive the position model of the robot

Published topics

If there is only one position model defined in the world file, all of these topics appear at the top namespace. However, if more than 1 position models exist, these topics are pushed down into their own namespaces, by prefixing the topics with robot_<i>/ , e.g., robot_0/cmd_vel etc.

odom vs. base_pose_ground_truth

The odom topic gives simulated odometry, which is affected by settings in the .world file, which can change its origin and noise model (the transforms mentioned below use the same data); see the Stage documentation for details on changing this behavior. The base_pose_ground_truth topic always provides a perfect, globally referenced pose for the robot in the simulation, independent of .world file settings. The base_pose_ground_truth data is intended for testing purposes; it should not be used in robot control loops (because it's unrealistic).

Parameters

~base_watchdog_timeout (default: 0.2)

time (in seconds) after receiving the last command on cmd_vel before stopping a position model

tf transforms provided

base_link → base_laser

transform from robot base to attached laser

base_footprint → base_link

identity transform

odom → base_footprint

transform from odometric origin to base

Using Stage controllers

Stage supports the use of "controllers," which are chunks of code that control simulated robots from inside the simulator, instead of being on the other end of a ROS connection. There are some situations in which it can be advantageous to use Stage controllers. For a discussion of when and how to use Stage controllers, see this tutorial.

Report a Bug

<<TracLink(ros-pkg stage)>>

The ROS code which integrates with stage now lives in a separate package called stage_ros.