mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
Updated version to 0.8.0
Libraries are installed in lib directly with symbolic links, not in lib/rtabmap-0.8. Removed the need of RPATH in cmake. Saving variance of each link in database (new field Link.variance). The variance is used to generate the constraint information matrices for TORO optimization. ICP: computing variance instead of fitness. ICP3: added correspondences ratio parameter Added OdometryInfo class Refactoring: renamed depth2d stuff to laserScan. rtabmap::Memory and rtabmap::Signature classes (no more distinct neighbor, loop closure or child loop closure links, only links with different types)
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
|
||||
#include "UPlot.h"
|
||||
#include "rtabmap/utilite/ULogger.h"
|
||||
#include "rtabmap/utilite/UMath.h"
|
||||
|
||||
#include <QtGui/QGraphicsScene>
|
||||
#include <QtGui/QGraphicsView>
|
||||
@@ -1341,6 +1342,8 @@ UPlotLegendItem::UPlotLegendItem(UPlotCurve * curve, QWidget * parent) :
|
||||
_aResetText = new QAction(tr("Reset text..."), this);
|
||||
_aChangeColor = new QAction(tr("Change color..."), this);
|
||||
_aCopyToClipboard = new QAction(tr("Copy curve data to the clipboard"), this);
|
||||
_aShowStdDev = new QAction(tr("Show std deviation"), this);
|
||||
_aShowStdDev->setCheckable(true);
|
||||
_aMoveUp = new QAction(tr("Move up"), this);
|
||||
_aMoveDown = new QAction(tr("Move down"), this);
|
||||
_aRemoveCurve = new QAction(tr("Remove this curve"), this);
|
||||
@@ -1349,6 +1352,7 @@ UPlotLegendItem::UPlotLegendItem(UPlotCurve * curve, QWidget * parent) :
|
||||
_menu->addAction(_aResetText);
|
||||
_menu->addAction(_aChangeColor);
|
||||
_menu->addAction(_aCopyToClipboard);
|
||||
_menu->addAction(_aShowStdDev);
|
||||
_menu->addSeparator();
|
||||
_menu->addAction(_aMoveUp);
|
||||
_menu->addAction(_aMoveDown);
|
||||
@@ -1416,6 +1420,20 @@ void UPlotLegendItem::contextMenuEvent(QContextMenuEvent * event)
|
||||
clipboard->setText((textX+"\n")+textY);
|
||||
}
|
||||
}
|
||||
else if(action == _aShowStdDev)
|
||||
{
|
||||
if(_aShowStdDev->isChecked())
|
||||
{
|
||||
connect(_curve, SIGNAL(dataChanged(const UPlotCurve *)), this, SLOT(updateStdDev()));
|
||||
}
|
||||
else
|
||||
{
|
||||
disconnect(_curve, SIGNAL(dataChanged(const UPlotCurve *)), this, SLOT(updateStdDev()));
|
||||
QString nameSpaced = _curve->name();
|
||||
nameSpaced.replace('_', ' ');
|
||||
this->setText(nameSpaced);
|
||||
}
|
||||
}
|
||||
else if(action == _aRemoveCurve)
|
||||
{
|
||||
emit legendItemRemoved(_curve);
|
||||
@@ -1442,6 +1460,17 @@ QPixmap UPlotLegendItem::createSymbol(const QPen & pen, const QBrush & brush)
|
||||
return pixmap;
|
||||
}
|
||||
|
||||
void UPlotLegendItem::updateStdDev()
|
||||
{
|
||||
QVector<float> x, y;
|
||||
_curve->getData(x, y);
|
||||
float stdDev = std::sqrt(uVariance(y.data(), y.size()));
|
||||
QString nameSpaced = _curve->name();
|
||||
nameSpaced.replace('_', ' ');
|
||||
nameSpaced += QString(" (%1=%2)").arg(QChar(0xc3, 0x03)).arg(stdDev);
|
||||
this->setText(nameSpaced);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -356,6 +356,9 @@ signals:
|
||||
void moveUpRequest(UPlotLegendItem *);
|
||||
void moveDownRequest(UPlotLegendItem *);
|
||||
|
||||
private slots:
|
||||
void updateStdDev();
|
||||
|
||||
protected:
|
||||
virtual void contextMenuEvent(QContextMenuEvent * event);
|
||||
|
||||
@@ -366,6 +369,7 @@ private:
|
||||
QAction * _aResetText;
|
||||
QAction * _aChangeColor;
|
||||
QAction * _aCopyToClipboard;
|
||||
QAction * _aShowStdDev;
|
||||
QAction * _aRemoveCurve;
|
||||
QAction * _aMoveUp;
|
||||
QAction * _aMoveDown;
|
||||
|
||||
Reference in New Issue
Block a user