Commit Graph

580 Commits (9020ba0247c14b3203d54c7bb4145d9ffe5ef5cb)

Author SHA1 Message Date
zhenzhenxiang 9020ba0247
Update algo_walkthrough.rst (#1545)
Fix typos.

Signed-off-by: zhenzhenxiang <405090724@163.com>
2020-11-11 13:46:46 +01:00
Wolfgang Hess 2712067e05
Use the MapBuilder factory function. (#1551)
This follows cartographer-project/cartographer#1776.

Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-11-06 13:41:08 +01:00
Wolfgang Hess b1dde03d52
Use PoseGraphInterface instead of PoseGraph. (#1547)
Tiny improvement to not depend on more than is needed.

Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-11-04 15:57:50 +01:00
Michael Grupp 70612a4d40
Fix outdated build instructions (closes #1531). (#1537)
Signed-off-by: Michael Grupp <grupp@magazino.eu>
2020-10-27 09:28:18 +01:00
Wolfgang Hess c705fdcc8f
Remove ceres-solver from cartographer_ros.rosinstall. (#1532)
Recent versions no longer build ceres-solver and instead
depend on libceres-dev. See also #1518.

Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-10-23 17:24:20 +02:00
Michael Grupp 1c9274ffee
Default to master in rosinstall (fixes #1122). (#1530)
This makes much more sense than 1.0.0, which is counter-intuitive.

If someone is building from source they usually do it to build the
latest bleeding-edge version.

Signed-off-by: Michael Grupp <grupp@magazino.eu>
2020-10-22 17:33:45 +02:00
Erik Reed 7ac49a9287
Add color requirement note for point_cloud_viewer (#1424)
I was running through these docs and having [trouble](https://github.com/googlecartographer/point_cloud_viewer/issues/389)
with map visualization via `point_cloud_viewer`.
Notably, color is required for plys ingested by `point_cloud_viewer` (in contrast to Meshlab).

This PR adds a note to make this clear.

Signed-off-by: Erik Reed <ereed.uw@gmail.com>
2020-10-21 19:49:50 +02:00
Jonathan Huber dcbd9d10df
Make publishing tf optional, enable publishing PoseStamped (#1099)
If the output of cartographer should be used as an input to an additional sensor fusion method,
using the published TF transform is inconvenient or in our specific use case even harmful
because we don't want to add the raw cartographer output to our TF tree.

With this change it becomes optional to broadcast to /tf.
Morever there is an option to publish the tracked frame pose as a PoseStamped message.
We add two new optional parameters:
- `publish_to_tf` if false no tf transform is broadcasted
-  `publish_tracked_pose` If set `true` a PoseStamped representing the position of the
tracked pose w.r.t. map frame is published.

If default launchers and settings are used this PR causes no change in the behavior.
2020-10-21 14:03:15 +02:00
Michael Grupp 6296d41cd5
Update "Getting involved" documentation page. (#1522)
Some things were outdated after recent changes.

Signed-off-by: Michael Grupp <grupp@magazino.eu>
2020-10-15 10:49:24 +02:00
Wolfgang Hess 8064b8f9b7
Follow cartographer-project/cartographer#1759. (#1525)
Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-10-13 15:50:12 +02:00
Michael Grupp 868d147fb5
Fix Sphinx documentation errors & warnings. (#1523)
Fixes broken links, code blocks and other things that
`sphinx-build docs/source docs/out -E` complained about.

Signed-off-by: Michael Grupp <grupp@magazino.eu>
2020-10-13 15:00:12 +02:00
Michael Grupp d93769eee3
Fix includes to follow style guide in playable_bag.h (#1524)
Signed-off-by: Michael Grupp <grupp@magazino.eu>
2020-10-13 14:37:06 +02:00
Michael Grupp 1e1e895027
Use distinct issue templates for bugs, tuning and general things. (#1521)
This uses the more modern issue template mechanism of GitHub.
Users will be able to choose one of these after clicking "add issue".

---

The template for tuning is reworded to reflect that tuning issues are
not guaranteed to be handled by maintainers.

Signed-off-by: Michael Grupp <grupp@magazino.eu>
2020-10-07 12:56:54 +02:00
Wolfgang Hess 26ab581a20
Minor documentation tweaks for Noetic. (#1520)
Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-10-05 14:41:05 +02:00
Wolfgang Hess a5e22dd6a0
Follow cartographer-project/cartographer#1750. (#1518)
Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-09-24 12:26:31 +02:00
Wolfgang Hess 71bc50d2b6
Follow cartographer-project/cartographer#1749. (#1516)
Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-09-14 13:26:19 +02:00
Michael Grupp 9cde1b4f5c
Remove unnecessary bottlenecks from Dockerfiles to speed up CI. (#1511)
This should solve #1506.

- Use osrf/ros-<distro>-desktop as base image for CI
The basic ROS base image requires rosdep to install packages with many
dependencies, e.g. rviz. Using the desktop base image should speed up CI
because it has a good overlap with what we need and only little extra stuff.
- Remove apt list only after installing everything.
- Don't build protobuf 3 from source on Ubuntu 18 & 20.
It should come with rosdep. Only on Ubuntu 16 we need to build manually
because it ships with Protobuf 2.
-  No need to build Ceres from source on Ubuntu 18 & 20. 
The versions are greater or equal to 1.13, which is the one specified in
the source build script. The apt packages should work just fine.

The cartographer library is built from source in all cases, which is good to
ensure that we always test compatibility with the latest version of it.
2020-08-31 15:59:36 +02:00
Geonhee 97883c4542
Update assets_writer.rst (#1442)
Signed-off-by: Geonhee-LEE <gunhee6392@gmail.com>
2020-08-29 11:49:05 +02:00
Michael Grupp 051a018c47
Remove legacy Jenkins quality pipeline. (#1510)
- it has been used only at Google for a quality pipeline
- the worker.py is Python 2 and closely tied to Google Cloud, so I don't
  believe there is much to be reused by someone else nowadays and not
  worth the effort to port to Python 3.

Signed-off-by: Michael Grupp <grupp@magazino.eu>
2020-08-28 15:08:15 +02:00
Michael Grupp f30d1f7e1e
Changes for ROS Noetic support (#1494)
Signed-off-by: Michael Grupp <grupp@magazino.eu>
2020-07-28 14:39:55 +02:00
Wolfgang Hess 0228078e1f
Prepare GMock support for Noetic. (#1499)
This follows Cartographer installing libgmock-dev.

Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-07-27 19:45:40 +02:00
Wolfgang Hess ec29019962
Remove support for Debian Jessie. (#1496)
It has reached end-of-life with the
end of LTS on June 30, 2020.

Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-07-23 10:57:35 +02:00
Wolfgang Hess be4332b338
Build Abseil dependency in CI. (#1485)
cartographer-project/cartographer#1711 removed
building Abseil from the Cartographer library.
We follow here the same approach as in
cartographer CI.

An alternative approach which is now possible is
adding an Abseil package for catkin and depending
on that.

Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-06-25 13:04:21 +02:00
Wolfgang Hess bdf8f5921e
Fix build status on front page. (#1483)
* Fix build status on front page.

Changes "googlecartographer" to "cartographer-project"
for references to CI and GitHub.

Following cartographer-project/cartographer#1693.

Signed-off-by: Wolfgang Hess <whess@lyft.com>

* Remove Indigo and Lunar Dockerfiles.
2020-06-24 10:55:03 +02:00
Bo Chen 2ceb9f96a3
Change Google CLA to DCO in CONTRIBUTING.md (#1482) 2020-06-17 16:16:26 +02:00
Bo Chen 1fe0e2b593
Fix broken build for melodic. Use official ros docker image. (#1484)
Essentially revert #1021 as image seems to be fixed

Signed-off-by: Bo Chen <bo@enway.ai>
2020-06-17 13:47:28 +02:00
Michael Grupp 1de03b3d32 Remove unnecessary eigen_conversions dependency. (#1278)
Seems to have been used in the past, but isn't needed anymore.
2019-08-27 14:03:27 +02:00
Tully Foote e74b48a2aa Remove EOL Distros from CI matrix (#1379)
Indigo and Lunar are both EOL
2019-08-27 09:44:15 +02:00
mgladkova 20c2c8f0f7 Update ROS API documentation with description of changed/new services (#1282) 2019-07-09 14:10:58 +02:00
mgladkova 92a8b81a84 Simplify start_trajectory service (RFC-28) (#1245)
* Simplify start_trajectory.

* Ran clang-format.

* Make corrections based on the review

* Make corrections based on review #2, remove obsolete functions

* Remove unnecessary local variables
2019-05-07 16:53:06 +02:00
Michael Grupp 63dce89f6e Service to query trajectory segments from the pose graph. (#1222)
This `/trajectory_query` service allows to look up trajectory segments
from the pose graph.

This can be useful if one wants to get optimized trajectory data from
the current SLAM run and listening to live TF data would be too noisy.
For example, to stitch buffered point cloud data from a depth sensor
based on a recent localization trajectory segment of a robot.

Before, the pose graph trajectory nodes were not available except for
the trajectory marker topic (only positions, no orientation; inefficient)
or after serialization (which is not practical in live operation).
2019-04-23 12:11:22 +02:00
Michael Grupp 9f8bf5b245 Add explicit --save_state_filename to offline node options. (#1204)
This allows to serialize the state also when no bagfile is given, e.g.
when the offline node is used to run an optimization and/or trimming
configuration on a pbstream. Or simply when one wants to use a custom
name directly. This doesn't break compatibility with the previous CLI.
2019-04-17 14:46:58 +02:00
Ashwath Narayan Murali 2d9b751d51 Updated doc to remove abseil-cpp from ROS (#1211)
I have added a few lines to the doc to alert users to remove ros abseil-cpp and also to change the rosinstall file if they wish to checkout a different version of cartographer. As discussed in #1208
2019-04-17 14:23:38 +02:00
Michael Grupp 5fb4314c8b Unify trajectory state checks for service handlers. (#1262)
Some service handlers need to check if a trajectory is in a valid
state for the requested operation. If it's not, they return an error
response.

`Node::CheckTrajectoryState` allows to avoid code duplication in such
situations.
2019-04-15 09:53:55 +02:00
Michael Grupp b28ffea97f Update clang-format to new Google style. (#1260)
Apparently the format bot uses a bleeding edge clang-format that uses
the new Google style and reformats a bunch of files in every PR. This is
an empty commit to trigger this in a separate commit.

See 62e3198c4f
2019-04-10 15:30:54 +02:00
fprott 7e4af360e8 Expanded Landmarks documentation (#1241)
Expanded landmarks to included more information and make it more clear and first-time user friendly. Used knowledge from the issues, especially issue https://github.com/googlecartographer/cartographer_ros/issues/909 and https://github.com/googlecartographer/cartographer_ros/issues/1067
2019-04-03 19:34:51 +02:00
fprott 522fb13104 Landmarks note (#1242)
Added a note to point out that even if all the SLAM options are set for a 2D SLAM the landmarks will remain 3D objects.
2019-04-03 18:10:11 +02:00
Michael Grupp 1ae12096b5 Extend trajectory export tool to write TransformStamped topics. (#1169)
See discussion in #1166.
2019-04-02 14:21:15 +02:00
Michael Grupp da4b3e7639 Replace a few string operator+ by absl::StrCat(). (#1244)
...in some places that can be called frequently.
2019-04-02 12:03:43 +02:00
Michael Grupp eb86ba6e7c Fix segfault by changing the destruction order. (#1235)
The metrics registry is used as a raw pointer reference in map builder
and must outlive it.

Since C++ destroys in reverse declaration order, we have to put the
registry declaration before the map builder bridge.

Fixes #1234.
2019-03-26 12:06:14 +01:00
fprott 5f1ff900b4 Fixed wrong Topic name for Landmarks (#1171)
The expected topic name for the cartographer seems to be landmark not landmarks even tough a list of landmarks is expected.
2019-01-30 13:46:41 +01:00
Sebastian Klose 6ee68c22f9 Tool for extracting pbstream trajectories into bag with tf. (#1166)
For every trajectory, writes tf
        FLAGS_parent_frame --> trajectory_`trajectory_id`
2019-01-20 17:12:41 +01:00
Michael Grupp 63eaf6d257 Publish one last progress message when PlayableBag is finished. (#1160)
Without this, it might look like the processing hangs.
2019-01-18 13:10:40 +01:00
Esteve Fernandez 68f60ff763 Fix typo (#1130) 2019-01-16 14:10:54 +01:00
Michael Grupp 0d65d13cd8 Don't run final optimization in visualize_pbstream.launch (#1157)
* Don't run final optimization in visualize_pbstream.launch

Replaces the offline node with the normal node.

The problem is that the offline node immediately runs a final
optimization with `visualize_pbstream.lua`, which is most likely not the
configuration that was used to generate the pbstream. This can lead to
effects like distortions in the map e.g. due to different weights, even
though the actual saved state is fine.

* Drop all /echoes or /imu messages.

* Use -start_trajectory_with_default_topics=false
2019-01-16 12:46:10 +01:00
Juraj Oršulić 35ad459bd9 Windows build & Azure CI (#1103) 2018-12-17 20:47:57 +01:00
Sebastian Klose 91fd8feb62 fixing compilation under OSX (#1126)
Surprising that this has not lead to any issues yet. 
This just works by chance on other systems if QT has been find_packaged before.
2018-12-12 09:27:30 +01:00
Michael Grupp 72949a7153 Configurable frame IDs in trajectory_comparison_main.cc (#1120)
Fixes also the other flag descriptions.
2018-12-06 12:48:28 +01:00
Michael Grupp 94cc7f7ab2 Add git dependency to package.xml (for Abseil build). (#1098) 2018-11-14 13:28:12 -08:00
Michael Grupp dc2476ef2b Consider waiting trajectories with a sensor bridge as active. (#1089)
* Consider waiting trajectories with a sensor bridge as active.

Fixes a corner case where trajectories that didn't start SLAMing yet
couldn't be finished, e.g. due to waiting for sensor data. They don't
appear in the trajectory states list of the pose graph yet but already
have a trajectory builder.

https://github.com/googlecartographer/cartographer/issues/1367
2018-11-06 08:43:27 -08:00