Show submap ID in rviz (#447)
parent
ba28491775
commit
a40357b61d
|
@ -42,6 +42,10 @@ constexpr double kFadeOutStartDistanceInMeters = 1.;
|
|||
constexpr double kFadeOutDistanceInMeters = 2.;
|
||||
constexpr float kAlphaUpdateThreshold = 0.2f;
|
||||
|
||||
const Ogre::ColourValue kSubmapIdColor(Ogre::ColourValue::Red);
|
||||
const Eigen::Vector3d kSubmapIdPosition(0.0, 0.0, 0.3);
|
||||
constexpr float kSubmapIdCharHeight = 0.2f;
|
||||
|
||||
} // namespace
|
||||
|
||||
DrawableSubmap::DrawableSubmap(const ::cartographer::mapping::SubmapId& id,
|
||||
|
@ -53,9 +57,14 @@ DrawableSubmap::DrawableSubmap(const ::cartographer::mapping::SubmapId& id,
|
|||
: id_(id),
|
||||
display_context_(display_context),
|
||||
submap_node_(map_node->createChildSceneNode()),
|
||||
submap_id_text_node_(submap_node_->createChildSceneNode()),
|
||||
ogre_submap_(id, display_context->getSceneManager(), submap_node_),
|
||||
pose_axes_(display_context->getSceneManager(), submap_node_,
|
||||
pose_axes_length, pose_axes_radius),
|
||||
submap_id_text_(QString("(%1,%2)")
|
||||
.arg(id.trajectory_id)
|
||||
.arg(id.submap_index)
|
||||
.toStdString()),
|
||||
last_query_timestamp_(0) {
|
||||
// DrawableSubmap creates and manages its visibility property object
|
||||
// (a unique_ptr is needed because the Qt parent of the visibility
|
||||
|
@ -64,6 +73,13 @@ DrawableSubmap::DrawableSubmap(const ::cartographer::mapping::SubmapId& id,
|
|||
visibility_ = ::cartographer::common::make_unique<::rviz::BoolProperty>(
|
||||
"" /* title */, visible, "" /* description */, submap_category,
|
||||
SLOT(ToggleVisibility()), this);
|
||||
submap_id_text_.setCharacterHeight(kSubmapIdCharHeight);
|
||||
submap_id_text_.setColor(kSubmapIdColor);
|
||||
submap_id_text_.setTextAlignment(::rviz::MovableText::H_CENTER,
|
||||
::rviz::MovableText::V_ABOVE);
|
||||
// TODO(jihoonl): Make it toggleable.
|
||||
submap_id_text_node_->setPosition(ToOgre(kSubmapIdPosition));
|
||||
submap_id_text_node_->attachObject(&submap_id_text_);
|
||||
submap_node_->setVisible(visible);
|
||||
connect(this, SIGNAL(RequestSucceeded()), this, SLOT(UpdateSceneNode()));
|
||||
}
|
||||
|
@ -75,6 +91,7 @@ DrawableSubmap::~DrawableSubmap() {
|
|||
rpc_request_future_.wait();
|
||||
}
|
||||
display_context_->getSceneManager()->destroySceneNode(submap_node_);
|
||||
display_context_->getSceneManager()->destroySceneNode(submap_id_text_node_);
|
||||
}
|
||||
|
||||
void DrawableSubmap::Update(
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include "rviz/display_context.h"
|
||||
#include "rviz/frame_manager.h"
|
||||
#include "rviz/ogre_helpers/axes.h"
|
||||
#include "rviz/ogre_helpers/movable_text.h"
|
||||
#include "rviz/properties/bool_property.h"
|
||||
|
||||
namespace cartographer_rviz {
|
||||
|
@ -91,9 +92,11 @@ class DrawableSubmap : public QObject {
|
|||
::cartographer::common::Mutex mutex_;
|
||||
::rviz::DisplayContext* const display_context_;
|
||||
Ogre::SceneNode* const submap_node_;
|
||||
Ogre::SceneNode* const submap_id_text_node_;
|
||||
OgreSubmap ogre_submap_;
|
||||
::cartographer::transform::Rigid3d pose_ GUARDED_BY(mutex_);
|
||||
::rviz::Axes pose_axes_;
|
||||
::rviz::MovableText submap_id_text_;
|
||||
std::chrono::milliseconds last_query_timestamp_ GUARDED_BY(mutex_);
|
||||
bool query_in_progress_ = false GUARDED_BY(mutex_);
|
||||
int metadata_version_ = -1 GUARDED_BY(mutex_);
|
||||
|
|
Loading…
Reference in New Issue