parent
062513df85
commit
a727ea8f6c
|
@ -146,7 +146,7 @@ AssetsWriter::AssetsWriter(const std::string& pose_graph_filename,
|
||||||
<< "Pose graphs contains " << pose_graph_.trajectory_size()
|
<< "Pose graphs contains " << pose_graph_.trajectory_size()
|
||||||
<< " trajectories while " << bag_filenames_.size()
|
<< " trajectories while " << bag_filenames_.size()
|
||||||
<< " bags were provided. This tool requires one bag for each "
|
<< " bags were provided. This tool requires one bag for each "
|
||||||
"trajectory in the same order as the correponding trajectories in the "
|
"trajectory in the same order as the corresponding trajectories in the "
|
||||||
"pose graph proto.";
|
"pose graph proto.";
|
||||||
|
|
||||||
// This vector must outlive the pipeline.
|
// This vector must outlive the pipeline.
|
||||||
|
|
|
@ -253,7 +253,7 @@ Scan matching starts by aligning far points of the low resolution point cloud wi
|
||||||
Global SLAM
|
Global SLAM
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
While the local SLAM generates its succession of submaps, a global optimization (usually refered to as "*the optimization problem*" or "*sparse pose adjustment*") task runs in background.
|
While the local SLAM generates its succession of submaps, a global optimization (usually referred to as "*the optimization problem*" or "*sparse pose adjustment*") task runs in background.
|
||||||
Its role is to re-arrange submaps between each other so that they form a coherent global map.
|
Its role is to re-arrange submaps between each other so that they form a coherent global map.
|
||||||
For instance, this optimization is in charge of altering the currently built trajectory to properly align submaps with regards to loop closures.
|
For instance, this optimization is in charge of altering the currently built trajectory to properly align submaps with regards to loop closures.
|
||||||
|
|
||||||
|
@ -269,7 +269,7 @@ The optimization is run in batches once a certain number of trajectory nodes was
|
||||||
|
|
||||||
The global SLAM is a kind of "*GraphSLAM*", it is essentially a pose graph optimization which works by building **constraints** between **nodes** and submaps and then optimizing the resulting constraints graph.
|
The global SLAM is a kind of "*GraphSLAM*", it is essentially a pose graph optimization which works by building **constraints** between **nodes** and submaps and then optimizing the resulting constraints graph.
|
||||||
Constraints can intuitively be thought of as little ropes tying all nodes together.
|
Constraints can intuitively be thought of as little ropes tying all nodes together.
|
||||||
The sparse pose adjustement fastens those ropes altogether.
|
The sparse pose adjustment fastens those ropes altogether.
|
||||||
The resulting net is called the "*pose graph*".
|
The resulting net is called the "*pose graph*".
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
|
@ -69,7 +69,7 @@ use_nav_sat
|
||||||
use_landmarks
|
use_landmarks
|
||||||
If enabled, subscribes to `cartographer_ros_msgs/LandmarkList`_ on the topic
|
If enabled, subscribes to `cartographer_ros_msgs/LandmarkList`_ on the topic
|
||||||
"landmarks". Landmarks must be provided, as `cartographer_ros_msgs/LandmarkEntry`_ within `cartographer_ros_msgs/LandmarkList`_. If `cartographer_ros_msgs/LandmarkEntry`_ data is provided the information
|
"landmarks". Landmarks must be provided, as `cartographer_ros_msgs/LandmarkEntry`_ within `cartographer_ros_msgs/LandmarkList`_. If `cartographer_ros_msgs/LandmarkEntry`_ data is provided the information
|
||||||
will be included in the SLAM accoding to the ID of the `cartographer_ros_msgs/LandmarkEntry`_. The `cartographer_ros_msgs/LandmarkList`_ should be provided at a sample rate comparable to the other sensors. The list can be empty but has to be provided because Cartographer strictly time orders sensor data in order to make the landmarks deterministic. However it is possible to set the trajectory builder option "collate_landmarks" to false and allow for a non-deterministic but also non-blocking approach.
|
will be included in the SLAM according to the ID of the `cartographer_ros_msgs/LandmarkEntry`_. The `cartographer_ros_msgs/LandmarkList`_ should be provided at a sample rate comparable to the other sensors. The list can be empty but has to be provided because Cartographer strictly time orders sensor data in order to make the landmarks deterministic. However it is possible to set the trajectory builder option "collate_landmarks" to false and allow for a non-deterministic but also non-blocking approach.
|
||||||
|
|
||||||
num_laser_scans
|
num_laser_scans
|
||||||
Number of laser scan topics to subscribe to. Subscribes to
|
Number of laser scan topics to subscribe to. Subscribes to
|
||||||
|
|
|
@ -66,7 +66,7 @@ You can then use Cartographer as part of your calibration process to improve the
|
||||||
Multi-trajectories SLAM
|
Multi-trajectories SLAM
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
Cartographer can perform SLAM from multiple robots emiting data in parallel.
|
Cartographer can perform SLAM from multiple robots emitting data in parallel.
|
||||||
The global SLAM is able to detect shared paths and will merge the maps built by the different robots as soon as it becomes possible.
|
The global SLAM is able to detect shared paths and will merge the maps built by the different robots as soon as it becomes possible.
|
||||||
This is achieved through the usage of two ROS services ``start_trajectory`` and ``finish_trajectory``. (refer to the ROS API reference documentation for more details on their usage)
|
This is achieved through the usage of two ROS services ``start_trajectory`` and ``finish_trajectory``. (refer to the ROS API reference documentation for more details on their usage)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue