Commit Graph

431 Commits (b3e3dfd7d46b48023c4da1578a589398fc78b897)

Author SHA1 Message Date
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
Wolfgang Hess d2bb8b3d01 Follow googlecartographer/cartographer#682. (#598)
[RFC=0001](https://github.com/googlecartographer/rfcs/blob/master/text/0001-renaming-sparse-pose-graph.md)
2017-11-16 12:36:23 +01:00
Juraj Oršulić e6060567b0 Use node_handle.resolveName in start_trajectory_main. (#597)
As discussed in #584. The two functions behave completely identical for our purposes, so renaming for consistency with the rest of cartographer_ros.
2017-11-16 11:09:07 +01:00
Wolfgang Hess a3df182d7e Follow googlecartographer/cartographer#680. (#596)
[RFC=0001](https://github.com/googlecartographer/rfcs/blob/master/text/0001-renaming-sparse-pose-graph.md)
2017-11-15 15:52:44 +01:00
Wolfgang Hess 6b68522fcc Follow googlecartographer/cartographer#677. (#595)
[RFC=0001](https://github.com/googlecartographer/rfcs/blob/master/text/0001-renaming-sparse-pose-graph.md)
2017-11-15 12:57:50 +01:00
Wolfgang Hess 7931d1e53c Follow googlecartographer/cartographer#574. (#593) 2017-11-14 18:32:27 +01:00
Michael Grupp b56903c1bb Do not include trimmed submaps into the occupancy grid (#591)
Derive submap IDs that don't appear in the submap list anymore and delete the corresponding slices from our state before drawing.
2017-11-14 14:49:19 +01:00
Jihoon Lee 9fb2b09a0b Unify finish trajectory logic (#552)
Port active trajectory checks and subscriber shutdown logic into FinishTrajectory(), so that a trajectory can be cleanly finished by function call.
2017-11-14 11:30:39 +01:00
Christoph Schütte 3e684b298b Add proto3 installation to jenkins Dockerfile. (#590)
[RFC=0000](https://github.com/googlecartographer/rfcs/blob/master/text/0000-proto3-transition.md)
2017-11-13 18:52:10 +01:00
Christoph Schütte 5210e92533 Add proto3 install scripts to Dockerfiles and update docs. (#589) 2017-11-13 10:48:00 +01:00
Juraj Oršulić 53b9306d6e Remove io component of PCL. (#588)
The `io` component of PCL brings in VTK, which in turn creates a lot of CMake pollution (such as bringing in Qt, which is completely unnecessary for `cartographer_ros`).
2017-11-13 09:28:29 +01:00
Juraj Oršulić ef57b43323 Revert "Fix PCL linking issue in Zesty (#396)" (#574)
This reverts commit 125aee3011.

This got fixed upstream, so perception_pcl (8b32dcd078) did remove this hack too.
2017-11-10 14:38:31 +01:00
Jihoon Lee d0697e6847 Follow googlecartographer/cartographer#599 (#561)
Use submap_painter. Merge this after googlecartographer/cartographer#599.
2017-11-10 13:27:27 +01:00
Rodrigo Queiro ae6aefaf97 Don't `set -o verbose` in ros_entrypoint.sh (#558)
All it does is source some large scripts, which results in lots of
logspam when the container starts up. It then runs exec, after which the
`verbose` setting has no effect.
2017-11-09 13:36:40 +01:00