Clock of the message in the msg variable is one second later than the
message in delayed_message. It should be more correct to publish the
clock of the message which really has been processed in SLAM and which
affects the position and the map, rather than the one that has only
been pushed into the delayed_msgs queue.
Also change the status message printing not to include the one second
buffer into the amount of bag processed seconds. Spinning the ROS
event queue has also been moved into the inner loop.
Generates colors for different trajectories using a scheme which
ensures even hue distribution, uniform look and high contrast
between consecutive trajectories.
Change googlecartographer/cartographer#248 introduced a separation
between MapBuilder and TrajectoryOptions. The ROS repositiories require
changes to track this modification.
- Add a variable list object to the submaps plugin, containing visibility
checkboxes for individual submaps. Each DrawableSubmap creates and
manages its visibility property checkbox object. Submaps are hidden by
detaching the Ogre manual object from the Ogre scene node.
- Fetch if the submap version number is different, possibly lower
(meaning Cartographer was restarted)
- Among the lines added in #150, the one that fixes building with Qt5 is
the following line:
include_directories(${Qt5Widgets_INCLUDE_DIRS})
The rest is redundant and actually doesn't do anything. A CMake
variable named QtX_INCLUDE_DIRS is not defined when find_package()-ing
Qt. Also, there is no need to find_package() Qt5 Widgets twice.
- In documentation, add sudo to rosdep init invocation, following
http://wiki.ros.org/rosdep. Add a comment about the error which will
be printed if the user has already run sudo rosdep init since
installing ROS.
* Change mutex locker scope in SubmapsDisplay::update()
This avoids the potential unsafe situation where someone (for example,
SubmapsDisplay::Reset()) clears the trajectories vector, but update()
uses it after the mutex has been released, since the scope of the lock
was only in the try block.
Also resolve a miscellaneous signed-unsigned warning.
* Make DrawableSubmap destructor safer
Make the DrawableSubmap destructor wait for the asynchronous fetch
thread to finish - otherwise, it's possible to crash rviz by rapidly
pressing the enable checkbox of the submaps plugin. Eventually the race
condition will be triggered, and the fetch thread will write into a
deleted DrawableSubmap object, which causes a crash.
This was missed in #262. The "build_doc" target has also been renamed to
"build_doc_ros" in order to avoid conflict with the "build_doc" target
in libcartographer, in case both are being built in the same CMake
project.