SLAM中提到的相机位姿到底指什么?——高翔《视觉SLAM十四讲》的一点小错误

不小心又绕进去了,所以掰一下。

以我个人最直观的理解,假设无旋转,相机在世界坐标系的(5,0,0)^T的位置上,所谓“位姿”,应该反映相机的位置,所以相机位姿应该如下:

    Eigen::Matrix4d T = Eigen::Matrix4d::Identity(); // 假设T是一个4x4的矩阵,初始化为单位矩阵
    T(0, 3) = 5.0;

但是根据我对位姿的这个理解,再结合高翔博士的《十四讲》第五章,第二版P99,世界坐标系的点变换到相机坐标系,是直接“左乘”“相机位姿”,Pc=T*Pw,那么这就出现了一些小问题

问题点:相机坐标是(5,0,0)^T,世界坐标点位置是(100,0,0)^T,相机坐标系下,这个点肯定是100-5,是(95,0,0)^T,但是又因为相机“位姿”是(5,0,0)^T,直接左乘相机“位姿”就得到了第一个结果"Pc=105 0 0",这明显和预期不一样,按照这种T的声明与定义,需要左乘T的逆才能得到预期的结果“Pc3 = 95 0 0 1”(齐次)

所以高翔博士提到的位姿是可以直接左乘的,和我认为的位姿是逆的关系。

根据习惯定义,想把Pw转换为Pc,应该是Pc=Tcw*Pw,高翔博士称为位姿的是Tcw。

根据主观习惯,相机在世界坐标系的位姿应该是Twc。想获得Pc应该是Pc=Twc^(-1)*Pw。

所以,我们产生了两种位姿描述。哪一种是正确的呢?很遗憾,我目前没有答案,网上搜到的一些关于位姿的解释则更加“和稀泥”,Tcw和Twc两种都可以叫位姿。根据有限的学识,我只能说我们清楚什么变换能干什么,能通过调整用法获得自己想要的结果就好,个别说法不能较真。

根据“和稀泥”博客的提醒,高翔博士也用Twc表示位姿?仔细看这个博客,我又去翻了一下书joinMap.cpp,果真如此。而我发现的投影公式是Tcw,所以,高翔博士把两种位姿混用了?他在讲相机投影时使用Tcw作为位姿,在实现joinMap.cpp时使用Twc作为位姿。或者说,他用相机位姿把世界点投影到相机点,也用相机位姿把相机点投影到世界点!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高翔视觉SLAM(Simultaneous Localization and Mapping)十四是一本关于视觉SLAM算法和实践的教材,其包含了完整的代码实现。在这本教材,作者提供了一个已经下载好的文件夹,里面包含了完整的代码文件,可以避免因版本不同而导致的编译错误。 如果你想查看具体的代码实现,你可以在github上找到该教材的代码仓库,其包含了主要的代码文件。 此外,你还可以在Bilibili网站上找到高翔视觉SLAM十四的视频教程,通过观看视频来更好地理解和学习SLAM算法和实践。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [高翔视觉slam十四有完整库的代码文件](https://download.csdn.net/download/weixin_51938716/86566040)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SLAM十四 高翔](https://blog.csdn.net/shike951128/article/details/124921532)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值