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
Michael Grupp
d53d339562
Sanitize node memory consumption with a smaller TF buffer size. ( #879 )
...
Fixes an (almost) unbounded growth of the TF buffer.
See the heap profile logs in the PR for more information.
2018-05-29 11:04:29 +02:00
Christoph Schütte
4ecf04b49f
Follow googlecartographer/cartographer#1164 ( #877 )
2018-05-25 14:53:39 +02:00
Mikael Arguedas
37b2d40bb7
add ROS melodic to CI ( #870 )
...
ROS melodic [will be released soon](https://discourse.ros.org/t/ros-melodic-morenia-beta-has-begun/4743 ), cartographer_ros 0.3.0 is already [released in melodic](https://github.com/ros/rosdistro/pull/17719 ). Testing master on CI would be valuable for users building from source as well as for reducing the testing when the time comes to release a new version in ROS.
2018-05-25 04:11:47 +02:00
Alexander Reimann
037ea79e9b
[docs] Add warning on pure_localization submap resolutions ( #858 )
...
Closes #847
2018-05-25 03:20:54 +02:00
Roel
cf8c05b623
Assets writer (ROS map) urdf typo fix ( #875 )
...
The ROS map assets writer launch file can now find the default urdf file when no argument is provided.
2018-05-25 02:58:00 +02:00
Alexander Belyaev
49ca306ec5
Fix the 'load_frozen_state' flag in visualize_pbstream.launch. ( #863 )
2018-05-25 01:29:47 +02:00
Christoph Schütte
e4bfd55797
Follow googlecartographer/cartographer#1143 ( #859 )
2018-05-10 12:37:20 +02:00
Sebastian Klose
be71e346a5
Adapt to new mapping proto location of cartographer ( #860 )
2018-05-09 13:58:17 +02:00
Michael Grupp
4b60d9cdfe
Use immediately invoked lambda for tracking_to_local. ( #848 )
...
Restores const-correctness that we dropped when introducing the
`publish_frame_projected_to_2d` param without using a ternary operator.
2018-05-03 21:37:44 +02:00
gaschler
d18365500d
Add cartographer_dev_rosbag_publisher ( #854 )
...
This adds a tool to publish a bag file without publishing a simulated clock, modifying header timestamps.
2018-05-03 11:47:16 +02:00