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
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