Commit Graph

594 Commits (bdeaee67a4c81c3034e31a2f95b500f1e65e24cd)

Author SHA1 Message Date
Michael Grupp 512a9cc358 Mention built-in evaluation tools in the tuning guide. (#705)
Other changes:
- Moved the 'Verification' paragraph in the tuning guide up,
  as it fits better after the particular issue discussed before 'Special Cases'.
- Fixed 'WARNING: Title underline too short.' messages.
2018-02-06 19:14:49 +01:00
Michael Grupp 3ca30fc904 Refactor ROS service responses. (#708)
Provide a descriptive StatusResponse msg field consisting of
an gRPC-like StatusCode and message string to the service caller.

Implements [RFC 13](https://github.com/googlecartographer/rfcs/blob/master/text/0013-improve-ros-service-responses.md).
2018-02-06 18:06:08 +01:00
Holger Rapp 8f14350e83 Fix link for a bag with intensities. (#704) 2018-02-02 21:31:25 +01:00
Juraj Oršulić 2538ac3e45 Offline node: better support for sequential bags. (#694)
Allow same topics to be used in different bags (a previously supported use case).
Remove unused variable `current_bag_sensor_topics`.
Touch up flag descriptions.

Fixes #693.

pair=@gaschler
2018-01-29 15:43:25 +01:00
gaschler 9a63a0479c Follow googlecartographer/cartographer#839 (#686)
Follow change googlecartographer/cartographer#839 from string to struct SensorId.
Compute expected sensor ids for multiple trajectories.
Remove command argument input for sensor ids.
Make some methods const.
Clean up.
2018-01-26 16:04:42 +01:00
Juraj Oršulić 7fc931688c Do not forget to finish trajectory if last message is not from a sensor topic (#681)
Bug introduced in #636.
2018-01-25 16:13:38 +01:00
gaschler 8d8a86790a Fix segfault in rosbag_validate (#685) 2018-01-25 14:37:16 +01:00
Alexander Belyaev 7cf570d19e Add a launch file for 2d localization demo with gRPC. (#682) 2018-01-25 10:44:30 +01:00
Juraj Oršulić d65f3c0f47 Simultaneous offline multi trajectories (#636)
RFC=[0009](https://github.com/googlecartographer/rfcs/pull/4)
2018-01-24 11:19:43 +01:00
Juraj Oršulić d96aa2105b Constraints visualization: Separate inter constraints between separate trajectories (#634) 2018-01-24 09:09:55 +01:00
gaschler ac15e46727 Fix gflags include in offline nodes (#677)
FIX=#676
2018-01-23 23:37:15 +01:00
Christoph Schütte 9e5dce96f6 Fix gflags include in offline_node.cc (#676)
FIX=#676
2018-01-23 18:16:22 +01:00
Susanne Pielawa f61e513bd6 Make fade out distance configurable (#674) 2018-01-22 16:43:48 +01:00
Juraj Oršulić 7cc4fec316 Deduplicate loading options for offline node (#664)
This is preparation for #636. 

I noticed that there is duplicated code for loading options for the offline and GRPC offline node because they are needed while constructing the map builder for the non-GRPC offline node (and that step is the only difference between the offline node and the GRPC offline node).

I got around this by passing a map builder factory to `RunOfflineNode` instead, so we can deduplicate the code for loading options by doing it inside `RunOfflineNode`.
2018-01-19 10:20:47 +01:00
Susanne Pielawa 1eda46a941 Adding NavSatFix to trajectory builder. (#666)
GPS message is converted first to ECEF, and then to a local frame. The first GPS message defines the local frame. 

PAIR=wohe

[RFC=0007](https://github.com/googlecartographer/rfcs/blob/master/text/0007-nav-sat-support.md)
2018-01-12 19:35:16 +01:00
Susanne Pielawa b0a937b7ed Transform from ECEF to a local frame where z points up. (#662)
For a given latitude and longitude, return a transformation that takes a point in ECEF coordinates to
a local frame, where the z axis points up.

PAIR=wohe

[RFC=0007](https://github.com/googlecartographer/rfcs/blob/master/text/0007-nav-sat-support.md)
2018-01-12 11:39:29 +01:00
Susanne Pielawa 960d1a487c Wiring for sensor_msgs::NavSatFix (#659)
PAIR=wohe

[RFC=0007](https://github.com/googlecartographer/rfcs/blob/master/text/0007-nav-sat-support.md)
2018-01-11 13:11:27 +01:00
Susanne Pielawa 35bea72536 Adding conversion from WGS84 to ECEF. (#660)
This converts from latitude, longitude, altitude
to a cartesian coordinate frame.

[RFC=0007](https://github.com/googlecartographer/rfcs/blob/master/text/0007-nav-sat-support.md)
2018-01-11 11:38:14 +01:00
Christoph Schütte d10abbf588
Follow googlecartographer/cartographer#801 (#657) 2018-01-10 19:39:33 +01:00
Christoph Schütte 31655ba1cb Add rviz and simtime to gRPC launch file. (#658) 2018-01-10 17:44:13 +01:00
gaschler 02ed0153d1 Tuning guide for low latency and localization (#653)
Related to #397
2018-01-10 14:43:50 +01:00
Christoph Schütte 7a7b210c94 Fix bug in MapBuilderBridge::GetTrajectoryStates() (#652) 2018-01-08 18:52:27 +01:00
Christoph Schütte 4a1366501d Use GetTrajectoryNodePoses and GetAllSubmapPoses in GetConstraintList (#651) 2018-01-08 17:07:39 +01:00
Christoph Schütte a6095979aa Make MapBuilderBridge use GetAllTrajectoryNodePoses() (#649) 2018-01-08 11:10:14 +01:00
Susanne Pielawa dd00ede58a Change link ordering to fix libcartographer_rviz.so. (#648)
This fixes the issue that rviz crashes when loading the cartographer_rviz plugin saying that the symbol `cartographer::io::UnpackTextureData(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int)` is undefined.

PAIR=@wohe,@SirVer
2018-01-05 18:06:30 +01:00
Christoph Schütte d34a2e36b8 Make MapBuilderBridge::GetSubmapList() use GetAllSubmapPoses() (#647) 2018-01-05 15:10:52 +01:00
Christoph Schütte acc2143ff7 Implement offline gRPC bridge. (#645) 2018-01-05 11:35:42 +01:00
Christoph Schütte a6949c8544 Fix path for gRPC server shell script in CMakeLists.txt (#644) 2018-01-04 16:08:51 +01:00
Christoph Schütte d32c8b9d91 Refactor offline_node_main.cc to prepare for offline bridge. (#643)
[RFC=0002](https://github.com/googlecartographer/rfcs/blob/master/text/0002-cloud-based-mapping-1.md)
2018-01-04 15:31:40 +01:00
Jihoon Lee d43c07d940 Follow googlecartographer/cartographer#782 (#633)
Towards [RFC06](https://github.com/googlecartographer/rfcs/blob/master/text/0006-serve-ros-map-from-pbstream.md).

Migrates
* `FillSubmapSlice` from `pbstream_to_rosmap_main.cc` 
* `SubmapTexture` logics from cartographer_ros
2018-01-04 13:53:15 +01:00
gaschler 30d23b9f56 Launch grpc client and server (#641)
Adds a launch file to test the entire grpc bridge.

Here is an example to run:
```
catkin_make_isolated --use-ninja -DBUILD_GRPC=True
source devel_isolated/setup.bash
roslaunch cartographer_ros grpc_demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag
```

The bash script is a work-around to run an executable outside of the catkin packages.
2018-01-04 09:58:52 +01:00
Christoph Schütte bf697c2d14 Implement cartographer_grpc_node. (#632) 2018-01-03 15:12:12 +01:00
Christoph Schütte abe4d10de3 Add BUILD_GRPC CMake flag and ROS-gRPC binary. (#631) 2017-12-20 12:32:40 +01:00
gaschler 0eab6a150e HandleRangefinder time refers to newest point. (#612)
This is necessary so that sensor::Collator queues range data
after previous odometry and IMU data, and LocalTrajectoryBuilder
will be able to unwarp each point.
2017-12-13 14:53:31 +01:00
Christoph Schütte 88609432f8 Follow googlecartographer/cartographer#736 (#620) 2017-12-08 13:09:15 +01:00
gaschler 7bcdda4d37
Detect duplicate range data. (#619)
Checks that range data in a bag file changes between frames, which is one of the common mistakes listed in #529.
2017-12-06 15:58:57 +01:00
Christoph Schütte 465e0434a1
Fix 0. constant to 0.0 to comply with YAML standard (#618) 2017-12-06 10:53:31 +01:00
gaschler 718dee5c2c Validate IMU, odometry, timing, frame names. (#615) 2017-12-05 00:42:12 +01:00
gaschler 4dac7c3ebe Follow googlecartographer/cartographer/pull/724. (#616) 2017-12-04 23:32:34 +01:00
Jihoon Lee e1f65f3104 Add initial_pose in start_trajectory_main.cc Fixes #579 (#610)
Fixes #579 
Related to googlecartographer/cartographer#606

@damienrg @cschuet I followed most of the comments in googlecartographer/cartographer#642 except timestamp. Receiving timestamp sounds weird to me because trajectory should not start in past timestamp or future timestamp.
2017-11-24 16:45:11 +01:00
Christoph Schütte 42d82cbdfd Prepare 0.3.0 release (#609) 2017-11-23 10:50:04 +01:00
Wolfgang Hess e0e3bdd625 Update the tuning guide following #604. (#606) 2017-11-17 15:46:54 +01:00
Holger Rapp 99c23b6ac7 Adds a binary that can generate PGM/YAML from a .pbstream. (#604) 2017-11-17 14:17:27 +01:00
Wolfgang Hess af17cf5a27 Follow googlecartographer/cartographer#686. (#605) 2017-11-17 13:03:43 +01:00
Holger Rapp 50be3d91a4 Pull out WritePgm and WriteYaml. (#603) 2017-11-17 09:36:34 +01:00
Holger Rapp 10eba093cc Refactor PGM writing to be more explicit. (#602) 2017-11-16 20:31:06 +01:00
Holger Rapp 7259bb0baf Refactoring towards a pbstream -> PGM/YAML tool. (#601) 2017-11-16 19:44:12 +01:00
Juraj Oršulić fd52ddf45b Use LocalSlamResultCallback for trajectory states (#594)
Replaces #556.
Use `LocalSlamResultCallback` googlecartographer/cartographer#574 instead of `PoseEstimate`.
2017-11-16 18:05:05 +01:00
Holger Rapp a10dea9c11 Follow cartographer. (#600)
Follow googlecartographer/cartographer#684.
2017-11-16 16:47:21 +01:00
Wolfgang Hess f241a679a9 Update the tuning guide following #598. (#599) 2017-11-16 15:12:53 +01:00