Commit Graph

580 Commits (9020ba0247c14b3203d54c7bb4145d9ffe5ef5cb)

Author SHA1 Message Date
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
gaschler 7fbb628a21 Follow googlecartographer/cartographer#1353 (#959)
FIXES=#944
2018-07-31 16:22:29 +02:00
Christoph Schütte b353e1ed64 Follow googlecartographer/cartographer#1352 (#957) 2018-07-30 19:34:48 +02:00
Alexander Belyaev 2910529446
Follow the Absl update. (#955) 2018-07-28 19:47:10 +02:00
Alexander Belyaev 15dece61af
Follow the CMake update. (#951) 2018-07-26 06:49:29 +02:00
Michael Grupp 97266a69a0 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/1268
2018-07-25 14:23:31 +02:00
Christoph Schütte 4b39ee68c7 Fix pbstream exporting binaries (#945)
googlecartographer/cartographer#1286 modified Submap::ToProto such that grids for unfinished submaps are no longer serialized. This commit fixes the breakage this introduced in the pbstream exporting binaries.
2018-07-19 19:51:47 +02:00
gaschler 2df3b83c80 Add option to disable PoseExtrapolator (#946)
This is useful for tuning/debugging to rule out (simulated) time issues
(because published pose will then only depend on header times).
Another use case is when Cartographer runs on a separate machine
that has a different system clock than the sensors.
2018-07-19 18:36:13 +02:00
Wolfgang Hess b9af6366db Get rid of std::bind. (#939)
`std::bind` is bug prone and should be avoided.
Lambdas are a more general and safer replacement.
Similar to googlecartographer/cartographer#1261.
2018-07-14 11:57:36 +02:00
Kevin Daun a90e9952d8 Move conversion table to LoadOccupancyGridMap. (#941) 2018-07-14 10:20:22 +02:00
Wolfgang Hess 0572ebb592 Add .clang-format file. (#938)
This adds a .clang-format file, so that git clang-format uses
Google style without the need to remember the commandline flag.
Similar to googlecartographer/cartographer#1249.
2018-07-13 11:29:46 +02:00
Kevin Daun 683129243e Introduce value converter tables. (#937) 2018-07-13 00:52:49 +02:00
gaschler 54e8aa4f6d Warn for possible topic mismatch (#935)
FIXES=#929
2018-07-12 12:18:00 +02:00
Michael Grupp fb5b16d6d3 Simplify gauge and histogram implementation. (#922)
Use mutex locker instead of atomic operations in Gauge.
Remove unnecessary constructor overload from Histogram.
2018-07-12 09:52:18 +02:00
gaschler c157164390 remove unused declaration (#934) 2018-07-11 14:52:01 +02:00
Christoph Schütte e07c2261b6 Follow googlecartographer/cartographer#1241 (#923) 2018-07-10 22:05:44 +02:00
Michael Grupp 168f4cc53f List files explicitly in cartographer_ros_msgs/CMakeLists.txt (#927)
`DIRECTORY` by itself doesn't work as reliable as expected.
2018-07-10 20:04:00 +02:00
gaschler 427fbe6d2e Allow zero pose_publish_period (#933)
To compare different SLAM software online, it is necessary to
disable tf broadcast.
Because we already have a parameter "pose_publish_period_sec",
we use a zero value here to turn off tf broadcast.
2018-07-10 17:52:18 +02:00
Alexander Belyaev 944b22575f
Use 'landmarks' instead of 'landmark'. (#931) 2018-07-09 13:23:52 +02:00
Sebastian Klose 0aa6ecc40f Fix bug in FinishTrajectory logic (#926)
This PR adds additional bookkeeping for trajectories that we scheduled for
finishing.

In Node::RunFinalOptimization(...), we were calling FinishTrajectory for
every active trajectory (state == ACTIVE). Since the state only gets updated
once the corresponding worker for the FinishTrajectory task is
scheduled, we were potentially calling FinishTrajectory twice for a
single trajectory id.

Reproducible on master e.g. with 
```
roslaunch cartographer_ros offline_backpack_2d.launch bag_filenames:=b2-2016-02-02-14-01-56.bag no_rviz:=true
```
2018-07-06 15:47:54 +02:00