Commit Graph

510 Commits (4a2b19a86ebb6fb5cf479cb53ebca97deefda737)

Author SHA1 Message Date
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
Juraj Oršulić bfe0d01b71 Update msg_conversion.cc (#925) 2018-07-06 13:18:29 +02:00
Dave Coleman 0beb972763 Minor grammar fix. (#900) 2018-07-05 10:57:20 +02:00
Michael Grupp be7ecf2e0d Register internal metrics and provide a public interface. (#917)
[RFC 24](https://github.com/googlecartographer/rfcs/blob/master/text/0024-monitoring-ros.md)

Public API:
  - adds `cartographer_ros::metrics::FamilyFactory`
  - compatible with `::cartographer::metrics::RegisterAllMetrics`

Public RPC interface:
  - adds the ROS service `/read_metrics`
  - response contains the latest values of all available metric families
2018-07-04 17:38:17 +02:00
Alexander Belyaev bb4aec395f
Use new pure localization trimmer options. (#918) 2018-07-03 13:56:03 +02:00
Michael Grupp 237dd83b60 Add internal metric families. (#914)
- minimal counter, gauge and histogram implementations
- metric family interfaces as defined in libcartographer
- serializable to ROS messages

RFC: https://github.com/googlecartographer/rfcs/pull/26
2018-07-02 10:26:58 +02:00
Michael Grupp f5b583fde8 Allow to ignore (un-)frozen submaps in the occupancy grid node. (#899) 2018-06-29 13:28:40 +02:00
Michael Grupp 0e65aa55b9 Discard proto data in pbstream_map_publisher via RAII. (#912)
We don't need it after the occupancy grid is drawn.
Reduces the memory consumption especially for large maps.
2018-06-29 12:29:32 +02:00
Michael Grupp 8bbec6bff7 Use PoseGraphInterface::TrajectoryState from libcartographer (#910)
https://github.com/googlecartographer/rfcs/pull/35

- makes use of the trajectory state in `map_builder` and `node`
- adds a service to query the trajectory states
- follow-up to https://github.com/googlecartographer/cartographer/pull/1214
  that takes the deleted state into account in the `/finish_trajectory` service
  (could crash otherwise)
2018-06-29 11:14:56 +02:00
Michael Grupp c560d05d99 Improve internal naming of local SLAM data. (#908)
Prevents confusion with TrajectoryState and GetTrajectoryStates()
of the pose graph interface. The affected data is only local.
2018-06-25 16:07:32 +02:00
Juraj Oršulić 424e702289 Revert timers other than PublishTrajectoryStates back to being WallTimers. (#898) 2018-06-14 12:43:10 +02:00
Sebastian Klose 4f32f88717 Ensure we validate what we CHECK(...) (#897)
In cartographer we check for strict ordering, i.e. do not allow
subsequent timestamps to be exactly equal. This fixes the rosbag validation tool
to do the same.
2018-06-13 12:47:00 +02:00
Juraj Oršulić 82b5eb9688 Use timing channel from PointCloud2, if available. (#896) 2018-06-12 15:33:34 +02:00
Michael Grupp 5d5ce68a11 Fix memory leak in simulations by removing wall timers. (#891)
Fixes the problem of ever-growing memory after `rosbag play --clock` finishes,
as discussed in https://github.com/googlecartographer/cartographer/issues/1182

The wall timers caused the timer callback that publishes TF data to be called
even if no simulated `/clock` was published anymore.
As the TF buffer cache time of the TF listener seems to be based on
the ROS time instead of wall clock, it could grow out of bounds.

Now, `ros::Timer` plays nicely with both normal (wall) and simulated time and
no callbacks are executed if `/clock` stops in simulation.
2018-06-11 13:43:58 +02:00
Mikael Arguedas 6b473e3339 set required version of dependencies (#892) 2018-06-08 09:32:45 +02:00
Mikael Arguedas 4fd904d833 remove architecture specific definitions exported by PCL (#893)
* remove architecture specific definitions exported by PCL

This is an issue on PCL 1.8.X causing SIGILL, Illegal instruction crashes: https://github.com/ros-gbp/cartographer_ros-release/issues/10
Should be fixed in future PCL version with https://github.com/PointCloudLibrary/pcl/pull/2100
2018-06-07 22:00:15 +02:00
Alexander Belyaev 42b2763830 Release 1.0. (#889) 2018-06-04 11:54:51 +02:00
Mikael Arguedas c4ac76a579 Add maintainers and authors to package.xml (#886) 2018-05-30 19:17:13 +02:00
Sebastian Klose b28be6fb58 Follow googlecartographer/cartographer#1174 (#883)
Update all users to the new serialization format [RFC 0021](https://github.com/googlecartographer/rfcs/blob/master/text/0021-serialization-format.md)

See also corresponding change in cartographer: googlecartographer/cartographer#1174
2018-05-30 15:29:48 +02:00
Mikael Arguedas 46cfb7dfad [cartographer_ros_msgs] Message dependency fixup (#882)
* add missing std_msgs dependency
* use full message identifier to match be consistent with the other messages from this package
2018-05-30 09:59:16 +02:00
Christoph Schütte 00b0144736
Follow googlecartographer/cartographer#1172 (#881) 2018-05-30 08:36:35 +02:00