Commit Graph

488 Commits (54e8aa4f6d1c7c46911c4896ad758892dcd16ba5)

Author SHA1 Message Date
gaschler b8d63f3cc9 Handle multiple textures in protobuf. (#503)
Handle the protobuf change from
googlecartographer/cartographer#519
by forwarding the first SubmapTexture if multiple are available.

* Nit.

* Check.

* Nit.
2017-09-13 16:43:25 +02:00
Wolfgang Hess 44b9e7b531 Follow googlecartographer/cartographer#498. (#495) 2017-09-01 16:15:16 +02:00
Christoph Schütte 0305ac67d8 Add mem stats for offline node. (#493) 2017-08-30 16:34:48 +02:00
Wolfgang Hess 7d609695cf Remove unused options. (#491)
The adaptive_voxel_filter option is no longer used in 3D.
2017-08-25 17:30:08 +02:00
Wolfgang Hess af28b769b4 Follow googlecartographer/cartographer#462. (#486) 2017-08-18 17:59:14 +02:00
Yutaka Takaoka 5a2db79fc3 Add flag to start first trajectory. (#482) 2017-08-16 11:49:56 +02:00
Juraj Oršulić cf13f76c82 Perform final optimization at the end. (#483) 2017-08-10 12:30:57 +02:00
Juraj Oršulić 102a3b0db3 Release mutex in Node during final optimization (#480)
Enables servicing callbacks during final optimization, thus
enabling visualization of its progress in RViz. Fixes #476.
2017-08-10 09:55:52 +02:00
Wolfgang Hess 4173beaf04 Only write pbstream file on success. (#481)
The offline node will now only write the pbstream with the results if the
node finished processing without being interrupted. Partial results are
no longer written.

This also adds logging so that it is clear whether output was written.
2017-08-10 09:18:16 +02:00
Wolfgang Hess f43e05626e Also extrapolate based on odometry if available. (#479) 2017-08-09 12:36:50 +02:00
Mikael Arguedas 9867aeb1a3 Add Lunar to build matrix. (#478) 2017-08-08 12:41:21 +02:00
Mikael Arguedas b6acc27553 Depend on Ceres 1.12.0 instead of 1.12.0rc4 (#477) 2017-08-08 11:41:39 +02:00
Juraj Oršulić 7f616b4cc7 Use trajectory ID as namespace for trajectory marker (#473)
Also simplifies marker IDs since they must only be unique within a unique namespace.
2017-08-07 15:59:41 +02:00
Wolfgang Hess ab1ca30353 Fix typo in the issue template. (#474) 2017-08-07 13:04:51 +02:00
Juraj Oršulić b99c8b4cda Keep offline node running, republish the clock. (#468) 2017-08-04 17:46:16 +02:00
Wolfgang Hess 4034f4f801 Deduplicate LoadOptions(). (#471) 2017-08-03 15:47:17 +02:00
Juraj Oršulić 2042b73010 Remove custom SIGINT handler from offline node. (#470) 2017-08-03 12:29:07 +02:00
Wolfgang Hess 63aba81e31 Reuse the Node::Handle*() functions. (#466)
This moves adding IMU data to the extrapolator to
Node::HandleImuMessage() so that in the offline node extrapolation
for tf publishing can benefit from IMU data.

Fixes crash in offline node by setting the trajectories as active
as they are added.
2017-08-01 18:16:21 +02:00
Juraj Oršulić 76b1903488 Make Node thread-safe. (#443)
Accessing the MapBuilderBridge was not previously guarded by a mutex.
2017-08-01 17:07:58 +02:00
Wolfgang Hess 061731399a Fix ValidateTrajectoryOptions(). (#465)
The checks in ValidateTrajectoryOptions() are both obsolete. Instead
we now just check that the correct trajectory builder options exist
at all.

Also checks options in Node::StartTrajectoryWithDefaultTopics() now.
2017-08-01 16:04:12 +02:00
Wolfgang Hess ace7ab5f05 Crash fix in offline node. (#464)
This adds trajectories at the Node object. It makes sure all
necessary extrapolators exist. Before the offline node would crash
when extrapolating.

Also deduplicates the logic to compute the topics for a trajectory.
2017-08-01 13:38:34 +02:00
Wolfgang Hess cbc26545ad Follow googlecartographer/cartographer#436. (#459) 2017-08-01 11:28:03 +02:00
Holger Rapp 46b0cc6497 Add documentation for the assets_writer. (#449)
Fixes #239.
2017-07-31 11:26:06 +02:00
Wolfgang Hess b6b1c572f6 Also extrapolate based on IMU if available. (#458) 2017-07-28 17:52:39 +02:00
Jihoon Lee a40357b61d Show submap ID in rviz (#447) 2017-07-28 16:40:25 +02:00
Holger Rapp ba28491775 Update ROS API documentation. (#450)
Add mentions of the offline node and the occupancy grid node.

Fixes #448.
2017-07-28 14:35:46 +02:00
Holger Rapp 698fc1043f Beginnings of a tuning guide. (#445)
Related to #397.
2017-07-28 14:17:16 +02:00
Holger Rapp 7e272f2e2b Add toggleable trajectories to RViz plugin (#456)
Implementation of #422 by @ojura. Original feature idea and implementation by @jihoonl.
2017-07-28 13:46:58 +02:00
Wolfgang Hess 2ee9a77a73 Fix fixed frame issues of the RViz SubmapsDisplay. (#454)
Adds a 'map_node_' which gets updated with the transform to RViz's
fixed frame. Before, submaps rendered incorrectly if a fixed frame
different from the map frame was chosen.

Removes the map frame property since this data is published on the
submap list topic.

Renames node names to reflect the frames they represent.
2017-07-28 12:10:26 +02:00
Wolfgang Hess 4bad3c4702 Crash fix when "extrapolating". (#453)
It can happen that ros::Time::now() is slightly behind the latest pose
timestamp if sensor data had newer timestamps. We would crash before.
Instead, we now publish the latest pose which is even newer that what
we tried to publish before.
2017-07-27 14:52:41 +02:00
damienrg 907586a7fc Track googlecartographer/cartographer#423 (#446) 2017-07-27 11:59:09 +02:00
Wolfgang Hess d60e1e2e11 Use extrapolators to provide higher frequency tf. (#451)
Fixes googlecartographer/cartographer#102 for Cartographer ROS.
Direct users of the Cartographer library can make use of
googlecartographer/cartographer#430.
2017-07-26 16:08:48 +02:00
Wolfgang Hess 44459e1810 Extract the Ogre related submap code into a separate class. (#444) 2017-07-25 16:21:41 +02:00
Wolfgang Hess e49fecbf11 Publish the scan matched point cloud in the map frame. (#442)
This is to make sure that the scan match result is visualized
with correct pose in RViz independent of tf timing.
2017-07-25 15:22:12 +02:00
Holger Rapp d022b8182f Track googlecartographer/cartographer#421. (#441) 2017-07-25 14:32:21 +02:00
Wolfgang Hess e6d214c51d Fix flickering submaps. (#440)
The 'slice_pose' must be updated together with the texture. Right
now it is updated before the texture so the submap will be shown
in the wrong pose for a short time.

The fix is to move the handling of poses over to Ogre:
The 'scene_node_' now transforms both the shown submap and the axes
into the submap frame. The 'submap_node_' applies the 'slice_pose'
so that the textured rectangle is shown in the correct pose in
the submap frame.
2017-07-24 15:19:43 +02:00
Holger Rapp 3dceac9a46 Track googlecartographer/cartographer#420. (#439) 2017-07-24 14:00:42 +02:00
Holger Rapp 99da2f20d8 Enable OccupancyGridNode and remove generating of assets in the node. (#436)
This will allow us to keep way less information in memory for SLAMing and fixes crashes related to multi trajectory (e.g. this fixes #413).

It also means that to get to an X-Ray or a map, users need to run the asset writer now after SLAMing, which is inconvenient.
Remove dependency on YAML and delete more dead code.
2017-07-21 17:19:47 +02:00
Holger Rapp 1ea5f90b8b New node that creates a ROS map from submap textures. (#432)
Fixes #343.
2017-07-21 16:19:14 +02:00
Wolfgang Hess e5c2881b90 Support multiple LaserScan and MultiEchoLaserScan topics. (#435)
This fixes #212.
2017-07-21 14:07:15 +02:00
Juraj Oršulić bd28ec1a58 Display submap poses in Submaps plugin (#416)
- simplify code around toggling submap visibility
- pass DisplayContext to DrawableSubmap
- add parent scene node for both submap and axes
- remove unnecessary const

Fixes #405.
2017-07-21 11:52:25 +02:00
Wolfgang Hess 1358f719a5 Simplify sensor subscribers. (#434) 2017-07-21 10:38:22 +02:00
Holger Rapp 603439ac05 Pull out FetchSubmapTexture into cartographer_ros. (#433) 2017-07-20 17:43:29 +02:00
Holger Rapp fed96d8cee Reuse code from cartographer_ros in cartographer_rviz. (#431)
Refactor a bit for readability.
2017-07-20 15:10:07 +02:00
Wolfgang Hess cf1e2d6cfc Fix handling of IMU for 3D SLAM. (#430)
In the (non-offline) node, subscribing to the IMU topic was
controlled by the 2D options even for 3D SLAM. It now correctly
subscribes always similar to the offline node.
2017-07-20 09:00:16 +02:00
Wolfgang Hess c58a262d56 Add support for subdividing laser scan messages. (#428)
This adds an option to subdivide sensor_msgs/LaserScan and
sensor_msgs/MultiEchoLaserScan messages into multiple point
clouds. For slow spinning laser scanners this allows unwarping
using googlecartographer/cartographer#408.
2017-07-19 14:15:11 +02:00
Holger Rapp b12e32d6fc Improve crash logging on deprecated frame_ids. (#427) 2017-07-19 12:25:50 +02:00
Wolfgang Hess 5417a4ab9d Add performance info to the offline node. (#420)
Outputs elapsed wall clock time and process CPU usage when the
node finishes.
2017-07-11 14:57:30 +02:00
Holger Rapp 6f171dc5a7 Use SubmapId in cartographer_rviz. (#419) 2017-07-10 15:43:11 +02:00
Wolfgang Hess 35389d0adb Follow googlecartographer/cartographer#396. (#417) 2017-07-07 17:46:59 +02:00