Commit Graph

1159 Commits (5b5f59bab6004bb7176890d3b907c5e5ab105fdd)

Author SHA1 Message Date
Alexander Belyaev ade7605fac
Use installed Abseil. (#1570) 2020-06-24 10:53:03 +02:00
Michael Grupp a5aa03b776
Implement fixed size transform interpolation buffer. (#1581) 2020-06-23 10:34:01 +02:00
Wolfgang Hess 21a8299caa
Add Ubuntu 20.04 to the install scripts, CI, docs. (#1706)
Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-06-18 14:44:58 +02:00
Michael Grupp 82a3970f76
Handle multiple frozen trajectories as one connected component. (#1610)
This fixes local constraint search in frozen maps built from multiple trajectories.

Local constraint search from a localization trajectory to a set of frozen trajectories
(i.e. the map) is done only among trajectories that are transitively connected in the
same connected component. If we set an initial pose, we create such a connection
to one frozen trajectory, but we were so far not able to do a local constraint search
w.r.t. to other frozen trajectories because they're not connected among each other.
Any constraints between them are not loaded (because they’re frozen).
2020-06-17 10:59:39 +02:00
Wolfgang Hess e8c1d840e6
Small fixes needed for focal support. (#1704)
Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-06-17 10:09:14 +02:00
Wolfgang Hess 10e57b0a27
Change from Google CLA to DCO in CONTRIBUTING.md. (#1702)
Signed-off-by: Wolfgang Hess <whess@lyft.com>
2020-06-16 18:15:25 +02:00
Susanne Pielawa b38b1cefa0
Allow using TolerantLoss for INS in pose graph optimization (#1700)
This PR adds the possibility to use the TolerantLoss function for INS in pose graph optimization. This is currently switched off, and so there's not functional change. 

The ceres TolerantLoss function (see [description](http://ceres-solver.org/nnls_modeling.html), and [implementation](https://github.com/ceres-solver/ceres-solver/blob/master/internal/ceres/loss_function.cc)) has the following property

- for large values of x it approaches a quadratic loss ("null loss") with the specified weight (fixed_frame_pose_translation_weight)
- for small values of x it approaches a quadratic loss with a smaller weight
- there's a crossover at some value x_c. The function is convex everywhere.
2020-06-15 10:56:23 +02:00
Phil 36afcb5590
Fix typo in tsdf_range_data_inserter_2d.cc (#1612)
Fix typo in RangeDataSorter.
2020-06-15 10:13:54 +02:00
Mariia Gladkova d973a084f7
Fix MapById::lower_bound function and implement test to reproduce the bug (#1616)
This fixes the bug that has been faced during localization with an initial pose and a trimmed map (OverlappingSubmapsTrimmer2D has been used). A small test is added that reproduces the problem (an infinite loop) where a trimmed trajectory (MapById instance) is used.
2020-06-12 12:17:54 +02:00
Wolfgang Hess db85e0894d
Remove Ubuntu Trusty from CI. (#1699)
Ubuntu 14.04 has reached end of standard support.
Moves additional testing that was only done for
Trusty to Bionic.
2020-06-10 11:13:34 +02:00
Davide Faconti 2f60378140
Add VerticalRangeFilteringPointsProcessor. (#1636)
Add an extra filter for 3D data.
Solve the problem with 2D maps created from 3D sensors.
2020-06-09 12:35:47 +02:00
Wolfgang Hess 1b0d4f1fee
Add Ubuntu 18.04 to the install scripts, CI, docs. (#1697) 2020-06-04 11:09:18 +02:00
Wolfgang Hess fe6e81a055
Fix typo, naming, formatting, type. (#1694)
Fixes the typo mentioned in #1637.
Also improves naming and ran clang-format.

Changed an integer literal to unsigned to
fix a compiler warning.
2020-06-03 11:46:45 +02:00
Scott K Logan 6bbf2558ce
Drop superfluous ROS dependency on catkin (#1599)
This package's CMakeLists.txt doesn't reference catkin at all, and can
be regarded as a "pure CMake" package. In fact, the package.xml already
states that this package is built using cmake directly, but still
depends on catkin.

This change makes the package buildable without catkin, as would be
desired when building with colcon in ROS 2.
2020-06-03 11:13:57 +02:00
Davide Faconti 46063be28f
MinMaxRangeFiteringPointsProcessor: use squaredNorm() instead of norm() (#1637)
This should represent a considerable speedup.
2020-06-03 10:36:59 +02:00
Wolfgang Hess 1659f0dc8b
Fix build status on front page. (#1693)
Changes "googlecartographer" to "cartographer-project"
for references to CI and GitHub.
2020-06-02 14:08:16 +02:00
jie 47b80c9a3f
Fix crashes in median() if all spans in a level are short (#1668) 2020-06-02 11:29:37 +02:00
Wolfgang Hess 02594a07c7
Update README to archive Open House slides. (#1692)
This moves the Cartographer Open House slides to the bottom of
the README as an archive, and clarifies that regular meetings
are currently no longer happening.
2020-05-29 14:09:03 +02:00
jie ad216d49c9
Fix the dead loop. (#1586)
Fix the bug in RotateHistogram which may cause dead loop by numerical error.
2020-05-28 19:28:15 +02:00
Julius Kammerl bcd5486025 Fix missing bazel dependency to absl/str_format.h in cartographer/common/histogram.cc (#1576)
Also updates com_github_jupp0r_prometheus_cpp and bazel_skylib to fix
compatibility issues with bazel 0.25
2019-05-08 17:21:22 +02:00
Andre Gaschler 51df4afcba Update README.rst (#1566) 2019-04-12 14:34:47 +02:00
Michael Grupp 897762675c Use fixed precision for string histogram buckets. (#1563)
`absl::StrCat/StrAppend` convert numeric values to strings with inconsistent
decimal precision, which can lead to ugly formatting of the histogram.

This can be fixed by using `StrAppendFormat` with `%f`, which uses 6
decimals (printf default and as it was when we had `std::to_string`).
2019-04-10 17:31:47 +02:00
Michael Grupp c999c3012b Fix a small description typo in constraints metrics. (#1562) 2019-04-10 15:31:33 +02:00
Michael Grupp 035162d865 Update clang-format to new Google style. (#1564)
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 13:04:57 +02:00
jie dc745a147a Add saturation_factor to scale the saturation of the point color (#1556)
Add saturation_factor to scale the saturation of the point color to get darker XRay for sparse point cloud.
2019-04-02 16:57:27 +02:00
Michael Grupp ab0ceacbed Check for empty basename in GetFileContentOrDie() (#1558)
An empty basename would mean a directory path is returned by
GetFullPathOrDie(), which then leads to a cryptic exception when trying
to read from it using the istreambuf_iterator:

"basic_filebuf::underflow error reading the file: iostream error"
2019-04-02 16:01:51 +02:00
Andre Gaschler 98197cff4f Fix Bazel test failure (#1557)
FIXES=#1519
2019-04-02 09:35:20 +02:00
Christoph Schütte b1edbea84f
Update bazel dependencies (#1553)
* Update dependencies

Update protobuf grpc and bazel-rules and added bazel-skylib (required by
protobuf 3.7.1).

Closes #1519
2019-03-30 22:13:12 +01:00
Marco Feuerstein 111d7bb5aa Ability to pass additional comments to ply header. (#1549) 2019-03-26 11:33:03 +01:00
Andre Gaschler a6050b5870 Update README.rst (#1542) 2019-03-20 09:30:27 +01:00
Alexander Belyaev ea2bf3b1b2 Remove GenericPoseGraph. (#1540)
Remove GenericPoseGraph implementation not to confuse the users. It will come back one day.
2019-03-14 08:12:04 +01:00
damienrg 99bc9e196d Use collate_by_trajectory lua option in server (#1537)
This removes the hardcoded value of `collate_by_trajectory` in the cloud
map builder server and permits to configure `collate_by_trajectory`
option with lua.
2019-03-08 16:36:53 +01:00
damienrg 3b941ee126 Add `collate_by_trajectory` support in lua config (#1334)
This commit add support of specifying the option to collate data by
trajectory introduced in #828 in the lua configuration files.
The value is set to false as when a boolean option is not specified it
is initialized to false.
2019-03-08 15:36:30 +01:00
damienrg 856e9c924a Rename kNumberOfValues to kValueCount (#1535)
Done as it reads a bit better.
2019-03-08 12:28:48 +01:00
Juraj Oršulić cbc0a2ac9a Do not use native CMake config for Protobuf on Linux (#1529)
On Ubuntu 16.04, we have to install Protobuf 3. Unfortunately, `find_package()`ing Protobuf using native installed CMake `CONFIG` is problematic in case if there is a system Protobuf 2 installed, while the bundled CMake module works correctly and manages to avoid interference with system-installed Protobuf 2.
2019-03-08 11:43:07 +01:00
damienrg 301a72fa42 Reserve memory for cells in probability_values.cc (#1531)
Done to avoid unnecessary reallocation.
2019-03-08 10:57:10 +01:00
Kevin Daun d06b0ab63f Initialize RangeData in NormalEstimation tests. (#1532)
Resolving https://github.com/googlecartographer/cartographer/issues/1530
Same as https://github.com/googlecartographer/cartographer/pull/1520
2019-03-07 16:43:05 +01:00
damienrg a60cca4a43 Refactor number of cells magic number (#1522) 2019-03-07 11:56:01 +01:00
Michael Grupp aed6ee7b1d Add cartographer_print_configuration executable. (#1508)
* Add cartographer_configuration_dumper executable.

While Lua inheritance can be great, this small tool solves the
pain of asking yourself "But what actually is my final config?".

Usage: `cartographer_dump_configuration <directory/-ies> <basename>`

Also includes the option to print only a subdictionary with e.g.:
`--subdictionary_id trajectory_builder.trajectory_builder_3d`
2019-03-06 18:39:25 +01:00
Sebastian Klose 6cb5a5b555 Updated readme for Open House. (#1525) 2019-03-01 09:26:44 +01:00
Kevin Daun d7b4656741 Initialize RangeData in TSDF tests. (#1520)
* Explicitly initialize RangeData.

* Use auto to remove redundancy.

* Ran clang-format.
2019-02-13 15:40:37 +01:00
Michael Grupp 2adeb1f3be Add gauge metrics for submaps in pose graph. (#1511)
Adds a metric family that monitors:

- the number of submaps in frozen trajectories
- the number of submaps in active trajectories
- the number of deleted/trimmed submaps
2019-02-05 17:15:45 +01:00
Andre Gaschler 2be43a3087
Update README.rst (#1510) 2019-01-29 14:15:03 +01:00
Wolfgang Hess 07b92072a0 Add serialization for TimestampedTransform. (#1495) 2019-01-18 17:10:43 +01:00
Jonathan Huber fd67975761 Allow introduction of new landmarks into loaded (frozen) map (#1475)
In the current implementation, as soon as one trajectory is frozen it is not possible to use new landmarks anymore.
In this PR a suggest a change, that allows introducing new landmarks also in the presence of a frozen trajectory. This is done with the following steps:
- Store set of frozen landmarks
- Landmarks that are loaded from a pbstream, with the flag ` load_frozen_state=true` are inserted into the set of frozen landmarks via `setLandmarkPose` function
- frozen landmarks are set constant in the optimization problem
- new landmarks can be introduced and will be optimized in the optimization problem

Motivated by and closes #1470
2019-01-17 16:57:30 +01:00
Alex Millane eec7af0a4f Fix TSD converter include location (#1500)
* Moved value converter include out of internal folder.

* Ran clang-format.
2019-01-16 10:04:57 +01:00
Wolfgang Hess e816ce01b5 Implement PixelDataMatrix. (#1494)
Eigen::Matrix (or Eigen::Array) with custom scalar types is
not intended for arbitrary structs:
https://eigen.tuxfamily.org/dox/TopicCustomizing_CustomScalar.html

This implements a simple class as a replacement.
2019-01-08 17:01:44 +01:00
Michael Grupp 53a1f6c2f7 Small fixes for PoseExtrapolator::UpdateVelocitiesFromPoses() (#1492)
- use `pose_queue_duration_` instead of hardcoded "0.001"
  (cartographer_ros sets this to 0.001, probably that's why this
  wasn't noticed)
- queue_delta is in seconds, log message said milliseconds
2019-01-03 10:03:48 +01:00
Michael Grupp 2d698e70e8 Fix regression in Protobuf find_package logic. (#1491)
The introduced changes are not compatible with CMake < 3.6 if the
FindProtobuf.cmake bundled with CMake is used.
Since our minimum required version is 3.2, I consider this to be a bug.

- camel-case variables names weren't used before 3.6
  (upper-case is lowered in CMake > 3.6 for backwards compatibility)
- the `CONFIG` search for the Windows build logs a warning even if the
`REQUIRED` search succeeds, should be quiet
2019-01-03 09:19:00 +01:00
Andre Gaschler b038e07fff Bump protobuf for Bazel 0.21 (#1493)
Protobuf 3.5 would require a Bazel flag
bazel build --incompatible_package_name_is_a_function=false
for Bazel 0.21 because its bazel syntax is old.
Rather than building with this flag, let's just update
the protobuf version.

Also, fix lint.
2019-01-03 08:35:32 +01:00