Update docs of ROS API. (#928)
- add new ROS services - remove outdated text about command line flags, refer users to `--help` - bonus: fix a few typos, a Sphinx build warning and follow https://github.com/googlecartographer/cartographer/pull/1268master
parent
4b39ee68c7
commit
97266a69a0
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
# If extensions (or modules to document with autodoc) are in another directory,
|
# If extensions (or modules to document with autodoc) are in another directory,
|
||||||
# add these directories to sys.path here. If the directory is relative to the
|
# add these directories to sys.path here. If the directory is relative to the
|
||||||
|
@ -62,16 +63,16 @@ master_doc = 'index'
|
||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = u'Cartographer ROS'
|
project = u'Cartographer ROS'
|
||||||
copyright = u'2016 The Cartographer Authors'
|
copyright = u'{year} The Cartographer Authors'.format(year=datetime.now().year)
|
||||||
|
|
||||||
# The version info for the project you're documenting, acts as replacement for
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
# |version| and |release|, also used in various other places throughout the
|
# |version| and |release|, also used in various other places throughout the
|
||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = '1.0.0'
|
#version = ''
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = '1.0.0'
|
#release = ''
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
|
@ -144,7 +145,7 @@ html_theme = 'default'
|
||||||
# Add any paths that contain custom static files (such as style sheets) here,
|
# Add any paths that contain custom static files (such as style sheets) here,
|
||||||
# relative to this directory. They are copied after the builtin static files,
|
# relative to this directory. They are copied after the builtin static files,
|
||||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||||
html_static_path = ['_static']
|
html_static_path = []
|
||||||
|
|
||||||
# Add any extra paths that contain custom files (such as robots.txt or
|
# Add any extra paths that contain custom files (such as robots.txt or
|
||||||
# .htaccess) here, relative to this directory. These files are copied
|
# .htaccess) here, relative to this directory. These files are copied
|
||||||
|
|
|
@ -26,26 +26,7 @@ The `cartographer_node`_ is the SLAM node used for online, real-time SLAM.
|
||||||
Command-line Flags
|
Command-line Flags
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
TODO(hrapp): Should these not be removed? It seems duplicated efforts documenting them here and there.
|
Call the node with the ``--help`` flag to see all available options.
|
||||||
|
|
||||||
.. TODO(damonkohler): Use an options list if it can be made to render nicely.
|
|
||||||
|
|
||||||
\-\-configuration_directory
|
|
||||||
First directory in which configuration files are searched, second is always
|
|
||||||
the Cartographer installation to allow including files from there.
|
|
||||||
|
|
||||||
\-\-configuration_basename
|
|
||||||
Basename (i.e. not containing any directory prefix) of the configuration file
|
|
||||||
(e.g. backpack_3d.lua).
|
|
||||||
|
|
||||||
\-\-load_state_filename
|
|
||||||
A Cartographer .pbstream state file that will be loaded from disk. This allows
|
|
||||||
to add new trajectories SLAMing from an earlier state.
|
|
||||||
|
|
||||||
\-\-load_frozen_state
|
|
||||||
This boolean parameter controls if the saved state, specified using the option
|
|
||||||
\-\-load_state_filename, is going to be loaded as a set of frozen (not
|
|
||||||
optimized) trajectories.
|
|
||||||
|
|
||||||
Subscribed Topics
|
Subscribed Topics
|
||||||
-----------------
|
-----------------
|
||||||
|
@ -74,7 +55,7 @@ points2 (`sensor_msgs/PointCloud2`_)
|
||||||
numbered points2 topics (i.e. points2_1, points2_2, points2_3, ... up to and
|
numbered points2 topics (i.e. points2_1, points2_2, points2_3, ... up to and
|
||||||
including *num_point_clouds*) will be used as inputs for SLAM.
|
including *num_point_clouds*) will be used as inputs for SLAM.
|
||||||
|
|
||||||
The following additional sensor data topics may also be provided.
|
The following additional sensor data topics may also be provided:
|
||||||
|
|
||||||
imu (`sensor_msgs/Imu`_)
|
imu (`sensor_msgs/Imu`_)
|
||||||
Supported in 2D (optional) and 3D (required). This topic will be used as
|
Supported in 2D (optional) and 3D (required). This topic will be used as
|
||||||
|
@ -85,6 +66,8 @@ odom (`nav_msgs/Odometry`_)
|
||||||
enabled in the :doc:`configuration`, this topic will be used as input for
|
enabled in the :doc:`configuration`, this topic will be used as input for
|
||||||
SLAM.
|
SLAM.
|
||||||
|
|
||||||
|
.. TODO: add NavSatFix? Landmarks?
|
||||||
|
|
||||||
Published Topics
|
Published Topics
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
@ -111,6 +94,7 @@ submap_query (`cartographer_ros_msgs/SubmapQuery`_)
|
||||||
start_trajectory (`cartographer_ros_msgs/StartTrajectory`_)
|
start_trajectory (`cartographer_ros_msgs/StartTrajectory`_)
|
||||||
Starts another trajectory by specifying its sensor topics and trajectory
|
Starts another trajectory by specifying its sensor topics and trajectory
|
||||||
options as an binary-encoded proto. Returns an assigned trajectory ID.
|
options as an binary-encoded proto. Returns an assigned trajectory ID.
|
||||||
|
The ``start_trajectory`` executable provides a convenient wrapper to use this service.
|
||||||
|
|
||||||
finish_trajectory (`cartographer_ros_msgs/FinishTrajectory`_)
|
finish_trajectory (`cartographer_ros_msgs/FinishTrajectory`_)
|
||||||
Finishes the given `trajectory_id`'s trajectory by running a final optimization.
|
Finishes the given `trajectory_id`'s trajectory by running a final optimization.
|
||||||
|
@ -121,6 +105,14 @@ write_state (`cartographer_ros_msgs/WriteState`_)
|
||||||
as input to the `assets_writer_main` to generate assets like probability
|
as input to the `assets_writer_main` to generate assets like probability
|
||||||
grids, X-Rays or PLY files.
|
grids, X-Rays or PLY files.
|
||||||
|
|
||||||
|
get_trajectory_states (`cartographer_ros_msgs/GetTrajectoryStates`_)
|
||||||
|
Returns the IDs and the states of the trajectories.
|
||||||
|
For example, this can be useful to observe the state of Cartographer from a separate node.
|
||||||
|
|
||||||
|
read_metrics (`cartographer_ros_msgs/ReadMetrics`_)
|
||||||
|
Returns the latest values of all internal metrics of Cartographer.
|
||||||
|
The collection of runtime metrics is optional and has to be activated with the ``--collect_metrics`` command line flag in the node.
|
||||||
|
|
||||||
Required tf Transforms
|
Required tf Transforms
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
@ -146,6 +138,8 @@ If *provide_odom_frame* is enabled in the :doc:`configuration`, a continuous
|
||||||
.. _cartographer_ros_msgs/SubmapQuery: https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros_msgs/srv/SubmapQuery.srv
|
.. _cartographer_ros_msgs/SubmapQuery: https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros_msgs/srv/SubmapQuery.srv
|
||||||
.. _cartographer_ros_msgs/StartTrajectory: https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros_msgs/srv/StartTrajectory.srv
|
.. _cartographer_ros_msgs/StartTrajectory: https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros_msgs/srv/StartTrajectory.srv
|
||||||
.. _cartographer_ros_msgs/WriteState: https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros_msgs/srv/WriteState.srv
|
.. _cartographer_ros_msgs/WriteState: https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros_msgs/srv/WriteState.srv
|
||||||
|
.. _cartographer_ros_msgs/GetTrajectoryStates: https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros_msgs/srv/GetTrajectoryStates.srv
|
||||||
|
.. _cartographer_ros_msgs/ReadMetrics: https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros_msgs/srv/ReadMetrics.srv
|
||||||
.. _nav_msgs/OccupancyGrid: http://docs.ros.org/api/nav_msgs/html/msg/OccupancyGrid.html
|
.. _nav_msgs/OccupancyGrid: http://docs.ros.org/api/nav_msgs/html/msg/OccupancyGrid.html
|
||||||
.. _nav_msgs/Odometry: http://docs.ros.org/api/nav_msgs/html/msg/Odometry.html
|
.. _nav_msgs/Odometry: http://docs.ros.org/api/nav_msgs/html/msg/Odometry.html
|
||||||
.. _sensor_msgs/Imu: http://docs.ros.org/api/sensor_msgs/html/msg/Imu.html
|
.. _sensor_msgs/Imu: http://docs.ros.org/api/sensor_msgs/html/msg/Imu.html
|
||||||
|
@ -167,11 +161,13 @@ Once it is done processing all data, it writes out the final Cartographer state
|
||||||
|
|
||||||
|
|
||||||
Occupancy grid Node
|
Occupancy grid Node
|
||||||
=================
|
===================
|
||||||
|
|
||||||
The `occupancy_grid_node`_ listens to the submaps published by SLAM and builds a ROS occupancy_grid and publishes it.
|
The `occupancy_grid_node`_ listens to the submaps published by SLAM, builds an ROS occupancy_grid out of them and publishes it.
|
||||||
This tool is to keep old nodes that require a single monolithic map to work happy until new nav stacks can deal with Cartographer's submaps directly.
|
This tool is useful to keep old nodes that require a single monolithic map to work happy until new nav stacks can deal with Cartographer's submaps directly.
|
||||||
Generating the map is expensive and slow, so map updates are in the order of seconds.
|
Generating the map is expensive and slow, so map updates are in the order of seconds.
|
||||||
|
You can can selectively include/exclude submaps from frozen (static) or active trajectories with a command line option.
|
||||||
|
Call the node with the ``--help`` flag to see these options.
|
||||||
|
|
||||||
.. _occupancy_grid_node: https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros/cartographer_ros/occupancy_grid_node_main.cc
|
.. _occupancy_grid_node: https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros/cartographer_ros/occupancy_grid_node_main.cc
|
||||||
|
|
||||||
|
@ -187,3 +183,23 @@ map (`nav_msgs/OccupancyGrid`_)
|
||||||
If subscribed to, the node will continuously compute and publish the map. The
|
If subscribed to, the node will continuously compute and publish the map. The
|
||||||
time between updates will increase with the size of the map. For faster
|
time between updates will increase with the size of the map. For faster
|
||||||
updates, use the submaps APIs.
|
updates, use the submaps APIs.
|
||||||
|
|
||||||
|
|
||||||
|
Pbstream Map Publisher Node
|
||||||
|
===========================
|
||||||
|
|
||||||
|
The `pbstream_map_publisher`_ is a simple node that creates a static occupancy grid out of a serialized Cartographer state (pbstream format).
|
||||||
|
It is an efficient alternative to the occupancy grid node if live updates are not important.
|
||||||
|
|
||||||
|
.. _pbstream_map_publisher: https://github.com/googlecartographer/cartographer_ros/blob/master/cartographer_ros/cartographer_ros/pbstream_map_publisher_main.cc
|
||||||
|
|
||||||
|
Subscribed Topics
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Published Topics
|
||||||
|
----------------
|
||||||
|
|
||||||
|
map (`nav_msgs/OccupancyGrid`_)
|
||||||
|
The published occupancy grid topic is latched.
|
||||||
|
|
Loading…
Reference in New Issue