forked from cartographer-project/cartographer_ros
-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RB-1716] Add option to run zone mapping for cartographer in offline … #4
Open
schayapathy
wants to merge
82
commits into
BossaNova:master
Choose a base branch
from
schayapathy:RB-1716
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Prevents confusion with TrajectoryState and GetTrajectoryStates() of the pose graph interface. The affected data is only local.
…apher-project#910) cartographer-project/rfcs#35 - makes use of the trajectory state in `map_builder` and `node` - adds a service to query the trajectory states - follow-up to cartographer-project/cartographer#1214 that takes the deleted state into account in the `/finish_trajectory` service (could crash otherwise)
…project#912) We don't need it after the occupancy grid is drawn. Reduces the memory consumption especially for large maps.
- minimal counter, gauge and histogram implementations - metric family interfaces as defined in libcartographer - serializable to ROS messages RFC: cartographer-project/rfcs#26
…er-project#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
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 ```
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.
…rapher-project#927) `DIRECTORY` by itself doesn't work as reliable as expected.
Use mutex locker instead of atomic operations in Gauge. Remove unnecessary constructor overload from Histogram.
This adds a .clang-format file, so that git clang-format uses Google style without the need to remember the commandline flag. Similar to cartographer-project/cartographer#1249.
`std::bind` is bug prone and should be avoided. Lambdas are a more general and safer replacement. Similar to cartographer-project/cartographer#1261.
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.
cartographer-project/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.
- 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 cartographer-project/cartographer#1268
…apher-project#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`
…pher-project#1071) See `./publish_fake_random_landmarks.py --help` for documentation.
…t#952) This restructures the doc as a tutorial leading newcomers to becoming experimented users. It adds pages on: - how to get started with Cartographer on a new .bag - how Cartographer works and can be tuned step-by-step - how to use "extra" features of Cartographer - how to contribute to Cartographer It also provides some cosmethic changes with: new titles, non-indented code blocks, various illustrations, reworked paragraphs for clarity...
…#1087) * Update /write_state call in assets writer docs. Follow-up to cartographer-project#966 Closes cartographer-project#1086 * typo * bump googlebot
This fixes cartographer-project#1050. Tested standalone compilation and with the debian fakeroot tool. I had to build with a custom Protobuf3 instance though, so another build-check on a regular setup would be appreciated. Before this change all *.cc files would be included. If subprojects were run individually with the Debian package generator. This resulted in an inclusion of temporarily checked out *.cc from the abseil include. This change fixes the import behaviour and enables the creation of a valid package.
…rapher-project#1089) * Consider waiting trajectories with a sensor bridge as active. Fixes a corner case where trajectories that didn't start SLAMing yet couldn't be finished, e.g. due to waiting for sensor data. They don't appear in the trajectory states list of the pose graph yet but already have a trajectory builder. cartographer-project/cartographer#1367
…-project#1120) Fixes also the other flag descriptions.
Surprising that this has not lead to any issues yet. This just works by chance on other systems if QT has been find_packaged before.
…er-project#1157) * Don't run final optimization in visualize_pbstream.launch Replaces the offline node with the normal node. The problem is that the offline node immediately runs a final optimization with `visualize_pbstream.lua`, which is most likely not the configuration that was used to generate the pbstream. This can lead to effects like distortions in the map e.g. due to different weights, even though the actual saved state is fine. * Drop all /echoes or /imu messages. * Use -start_trajectory_with_default_topics=false
…ographer-project#1160) Without this, it might look like the processing hangs.
…pher-project#1166) For every trajectory, writes tf FLAGS_parent_frame --> trajectory_`trajectory_id`
The expected topic name for the cartographer seems to be landmark not landmarks even tough a list of landmarks is expected.
…#1235) The metrics registry is used as a raw pointer reference in map builder and must outlive it. Since C++ destroys in reverse declaration order, we have to put the registry declaration before the map builder bridge. Fixes cartographer-project#1234.
…ct#1244) ...in some places that can be called frequently.
Added a note to point out that even if all the SLAM options are set for a 2D SLAM the landmarks will remain 3D objects.
Expanded landmarks to included more information and make it more clear and first-time user friendly. Used knowledge from the issues, especially issue cartographer-project#909 and cartographer-project#1067
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 llvm-mirror/clang@62e3198
…ject#1262) Some service handlers need to check if a trajectory is in a valid state for the requested operation. If it's not, they return an error response. `Node::CheckTrajectoryState` allows to avoid code duplication in such situations.
I have added a few lines to the doc to alert users to remove ros abseil-cpp and also to change the rosinstall file if they wish to checkout a different version of cartographer. As discussed in cartographer-project#1208
…pher-project#1204) This allows to serialize the state also when no bagfile is given, e.g. when the offline node is used to run an optimization and/or trimming configuration on a pbstream. Or simply when one wants to use a custom name directly. This doesn't break compatibility with the previous CLI.
…er-project#1222) This `/trajectory_query` service allows to look up trajectory segments from the pose graph. This can be useful if one wants to get optimized trajectory data from the current SLAM run and listening to live TF data would be too noisy. For example, to stitch buffered point cloud data from a depth sensor based on a recent localization trajectory segment of a robot. Before, the pose graph trajectory nodes were not available except for the trajectory marker topic (only positions, no orientation; inefficient) or after serialization (which is not practical in live operation).
* Simplify start_trajectory. * Ran clang-format. * Make corrections based on the review * Make corrections based on review BossaNova#2, remove obsolete functions * Remove unnecessary local variables
akshay-prsd
reviewed
Aug 28, 2019
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Just some comments would be helpful if we have time. Thanks
@@ -267,7 +271,7 @@ void RunOfflineNode(const MapBuilderFactory& map_builder_factory) { | |||
LOG(WARNING) << "Available topics in bag file(s) are " | |||
<< bag_topics_string.str(); | |||
} | |||
|
|||
int prev_trajectory_id = -1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should only be changed if multi trajectory option is selected?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.