Commit Graph

549 Commits (9f8bf5b24537e60858df395a30fc8fe06264ad50)

Author SHA1 Message Date
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
Matthias Loebach c493369594 Only include correct source files in cmake (#1085)
This fixes #1050. Tested standalone compilation and with the debian fakeroot tool. I had to build with a custom Protobuf3 instance though, so another build-check on a regular setup would be appreciated.

Before this change all *.cc files would be included. If subprojects
were run individually with the Debian package generator. This resulted in an
inclusion of temporarily checked out *.cc from the abseil include. This
change fixes the import behaviour and enables the creation of a valid
package.
2018-11-06 07:06:28 +01:00
Michael Grupp d0871210e7 Update /write_state call in assets writer docs. (#1087)
* Update /write_state call in assets writer docs.

Follow-up to #966
Closes #1086

* typo

* bump googlebot
2018-11-05 21:26:05 -08:00
Florent Revest ba33291392 Rework the documentation as a step-by-step guide (#952)
This restructures the doc as a tutorial leading newcomers to becoming experimented users.

It adds pages on:
 - how to get started with Cartographer on a new .bag
 - how Cartographer works and can be tuned step-by-step
 - how to use "extra" features of Cartographer
 - how to contribute to Cartographer

It also provides some cosmethic changes with: new titles, non-indented code blocks, various illustrations, reworked paragraphs for clarity...
2018-11-05 12:22:55 +01:00
Michael Grupp b0420bf430 Add a script for testing with fake landmarks to scripts/dev (#1071)
See `./publish_fake_random_landmarks.py --help` for documentation.
2018-10-30 13:54:22 +01:00
Alexander Belyaev ef0e971b50
Add landmarks demo to the docs. (#1077) 2018-10-25 17:25:29 +02:00
Alexander Belyaev a4f3850912
Transform landmark poses to the tracking frame. (#1076)
* Transform landmark poses to the tracking frame.

* Address the comment.
2018-10-25 14:43:43 +02:00
Michael Grupp 54f0cfeee4 Remove orphaned function in occupancy_grid_node_main.cc (#1034)
Follow-up to #715, spotted by @CccYunxiao, see #1031.
2018-10-19 11:40:18 +02:00
Alireza 39e7faad18 docs: Add documentation related to `bagfile_progress` publisher (#1039)
Add documentations related to the feature introduced in #940.
2018-10-19 11:10:32 +02:00
Juraj Oršulić 530acb5984 Decrease asset writer progress log period (#1044)
With two 20 Hz lidars and a 200 Hz IMU, the progress reports were outputted every 500 seconds, which is really too sparse to be useful. Decrease this by a factor of 10.
2018-10-19 10:44:42 +02:00
Michael Grupp 1e5b180e93 Remove deleted trajectories from submaps display. (#1065)
Fixes strange behavior with empty leftover entries in the trajectory list of the RViz plugin.

By using an `std::map` instead of an `std::vector` for the trajectories  we can
easily erase trajectories which do not appear in the submap list anymore.
2018-10-19 09:30:42 +02:00
Michael Grupp 725815177a Fix Clang thread-safety warning. (#1068)
reading variable 'submap_slices_' requires holding mutex 'mutex_' [-Wthread-safety-analysis]
2018-10-19 08:27:58 +02:00
Mikael Arguedas ed418405b5 move metrics messages at root of msg folder (#1020) 2018-10-17 14:41:08 +02:00
Sebastian Klose 6b9d8ff2d5
Adding launch file arg for launch-prefix to offline nodes (#1066)
Useful for debugging with gdb or profiling, e.g. with perf.
2018-10-17 13:03:35 +02:00
Michael Grupp e2f72ff514 Only use ROS log sink in pbstream_map_publisher_main.cc (#1040)
Fixes double logging to stderr and rosout and makes it consistent with other
cartographer_ros nodes.
2018-10-15 11:20:39 +02:00
Alireza 5f2dff9df0 fix: Use an explicit message_counter instead of using `std::distance` (#1045)
As @ojura reported and explained in #940, there is a critical issue with the new changes introduced in the mentioned PR, which significantly slows down the offline node. 
- The reason of this problem was that In order to count the number of processed messages the `std::distance` function was used which is computationally expensive(O(n)).
- Instead, the former `log_counter_` and now `message_counter_` class variable which was used to print a message every X seconds is also employed to count the number of the processed (and also skipped) messages.
2018-10-09 15:26:48 +02:00
Michael Grupp 588c392b50 Use absl::SkipEmpty() predicate. (#1042)
Fixes empty splits for default "" arguments. Follow up to #1026, thx to @ojura.
2018-10-04 15:18:21 +02:00
Michael Grupp 8fab3fe4c4 Work around wstool bug in build with Docker base image. (#1041)
We have already a cloned source space in the base image, which can be
buggy according to: https://github.com/vcstools/wstool/issues/77

This should unblock Travis and fix local builds.
2018-10-04 11:15:21 +02:00
Michael Grupp 829e2dc43f Replace custom SplitString() by absl::StrSplit() (#1026)
code simplification
2018-09-27 14:12:58 +02:00
Alireza dd4d2af58b feat: Publish progress of processing the bagfile (#940) 2018-09-27 12:44:29 +02:00
Christoph Schütte 00813a4d6b Introduce base image for melodic to speed up CI (#1021) 2018-09-26 11:16:45 +02:00
Michael Grupp 4a2b19a86e Fix submap pose marker toggling. (#1019)
Set the visibility in he constructor, otherwise the setting won't have
an effect on newly created submap slices unless it's toggled again.
Somehow this got lost in #1012, sorry for that.
2018-09-19 11:37:56 +02:00
Christoph Schütte 578b5df9ce Follow googlecartographer/cartographer#1424 (#1014) 2018-09-19 11:37:01 +02:00
Michael Grupp aa8a62e82f Add toggle for pose markers to submaps display RViz plugin. (#1012) 2018-09-13 13:32:50 +02:00
Michael Grupp c418ff5580 Disable forwarding proto stream by default in node_grpc_main.cc (#1013)
...and use `LoadStateFromFile` from `MapBuilderStub`. The `LoadState` stub
that's used in `Node::LoadState` streams the state file instead, which can now
be used by explicitly setting the `--upload_load_state_file` flag.

Solves problems with the gRPC message size limit when loading large state files.
2018-09-13 11:29:26 +02:00
Michael Grupp c0e713c404 Add --load_frozen_state to node_grpc_main.cc (#973) 2018-08-29 12:21:47 +02:00
Sebastian Klose 744c03a31f Removing unless from argument (#994)
The roslaunch API throws an exception if setting the argument but not using it. 
This now forces any including launch files to provide an argument for it, even if it might not be used in the `no_rviz` case.
2018-08-28 13:31:13 +02:00
Sebastian Klose ea29393e97 Adding generic parametrizable offline_node.launch (#983)
And adapting offline_backpack_(2d|3d).launch to use it.

This will be useful for parametrizing evaluation runs as well.
2018-08-27 13:17:41 +02:00
Juraj Oršulić c12da5e8b3 Follow cartographer#1357 (#964) 2018-08-13 13:38:23 +02:00
Sebastian Klose 55e83c39a5 Adding option to launch without rviz, similar to 2d case (#972) 2018-08-08 14:32:03 +02:00
Alexander Belyaev 41c74de649
[ABSL] Use absl::Mutex. (#969) 2018-08-07 11:05:42 +02:00
Michael Grupp edf25139a2 Add include_unfinished_submaps parameter to SerializeState() (#966)
- default to false in gRPC node (unsupported in `MapBuilderStub`)
- default to true in classic ROS nodes (as it was before)
- add as parameter to `write_state`
2018-08-02 19:42:15 +02:00