pangolin-task5

orb-slam3 的 pangolin gui
摘要由CSDN通过智能技术生成

Task5

orb-slam3的 pangolin gui,工作流:

  • new Viewer
// 130 System.cc
if(bUseViewer)
{
	mpViewer = new Viewer(this, mpFrameDrawer,mpMapDrawer,mpTracker,strSettingsFile);
	// 开了一个新线程,运行pangolin
	mptViewer = new thread(&Viewer::Run, mpViewer);
	mpTracker->SetViewer(mpViewer);
	mpLoopCloser->mpViewer = mpViewer;
	mpViewer->both = mpFrameDrawer->both;
}
  • Viewer::Run 运行 pangolin

逐行解析

对 Viewer::Run 中的代码进行解析,挑着看。

// 166 Viewer.cc
pangolin::OpenGlMatrix Twc, Twr;
Twc.SetIdentity();
pangolin::OpenGlMatrix Ow; // Oriented with g in the z axis
Ow.SetIdentity();
pangolin::OpenGlMatrix Twwp; // Oriented with g in the z axis, but y and x from camera
Twwp.SetIdentity();

//...

// 188
mpMapDrawer->GetCurrentOpenGLCameraMatrix(Twc,Ow,Twwp);

三个矩阵:

  • Twc,slam相机的位姿(旋转+平移)增量
  • Twr,slam相机的平移增量
  • Twwp,没有用

后面说Twc、Twr的作用。

通过GetCurrentOpenGLCameraMatrix来获得slam相机的位姿增量,更新三个矩阵。

// 195 
if(menuFollowCamera && bFollow)
{
	if(bCameraView)
		s_cam.Follow(Twc);
	else
		s_cam.Follow(Ow);
}

Follow 是根据位姿矩阵变换观察相机的位置和姿态。 Twc 是slam相机的位姿矩阵增量,它会使观察相机的位置和姿态随着slam相机变动。Ow 只有slam相机的平移,观察相机会跟随slam相机运动,但姿态保持不变。后面的都差不多,就不写了。

if(menuLocalizationMode && !bLocalizationMode)
{
	mpSystem->ActivateLocalizationMode();
	bLocalizationMode = true;
}
else if(!menuLoca
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值