视觉SLAM十四讲中P61作业7。

设有小萝卜 1 一号和小萝卜二号位于世界坐标系中。小萝卜一号的位姿为: q 1 = [0.55, 0.3, 0.2, 0.2], t 1 = [0.7, 1.1, 0.2] T (q 的第一项为实部)。这里的 q 和 t 表达的是 T cw ,也就是世界到相机的变换关系。小萝卜
二号的位姿为 q 2 = [−0.1, 0.3, −0.7, 0.2], t 2 = [−0.1, 0.4, 0.8] T 。现在,小萝卜一号看到某个点在自身的坐
标系下,坐标为 p 1 = [0.5, −0.1, 0.2] T ,求该向量在小萝卜二号坐标系下的坐标。请编程实现此事,并提交
你的程序。
提示:

  1. 四元数在使用前需要归一化。
  2. 请注意 Eigen 在使用四元数时的虚部和实部顺序。
  3. 参考答案为 p 2 = [1.08228, 0.663509, 0.686957] T 。你可以用它验证程序是否正确。
int main ( int argc, char** argv )
{
  Eigen::Quaternion<double> q1(0.55,0.3, 0.2, 0.2 );//小萝卜1号坐标相对于世界坐标的四元数
  Eigen::Quaternion<double> q2(-0.1,0.3, -0.7, 0.2);//小萝卜2号坐标相对于世界坐标的四元数
  q1.normalize();//四元数归一化
  q2.normalize();//四元数归一化
  
  Eigen::Vector3d t1(0.7, 1.1, 0.2);//小萝卜1号坐标相对于世界坐标的平移向量
  Eigen::Vector3d t2(-0.1, 0.4, 0.8);//小萝卜2号坐标相对于世界坐标的平移向量
  
  Eigen::Matrix3d R1 = q1.toRotationMatrix();//小萝卜1号的四元数 转为 旋转矩阵
  Eigen::Matrix3d R2 = q2.toRotationMatrix();//小萝卜2号的四元数 转为 旋转矩阵
  
  Eigen::Isometry3d Tcw1(R1);//创建小萝卜1号相对于世界坐标的欧氏变换矩阵,并用旋转矩阵 初始化  
  Eigen::Isometry3d Tcw2(R2);//创建小萝卜2号相对于世界坐标的欧氏变换矩阵,并用旋转矩阵 初始化   
  Tcw1.pretranslate(t1);//接着,用平移向量初始化小萝卜1号的欧氏变换矩阵
  Tcw2.pretranslate(t2);//接着,用平移向量初始化小萝卜2号的欧氏变换矩阵
  
  Eigen::Vector3d p1(0.5, -0.1, 0.2);//点d在小萝卜1号坐标下的向量表示
  Eigen::Vector3d pd_w = Tcw1.inverse() * p1;//算出点d在世界坐标下的向量表示,其中,Tcw表示world to camera 的坐标变换,Tcw.inverse表示camera to world的变换
  Eigen::Vector3d p2 = Tcw2 * pd_w;//算出点d在小萝卜2号的向量表示
  
  cout << p2.transpose() << endl;
  
  return 0;
}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
视觉SLAM十四》的第七章主要介绍了ORB特征的手写实现。ORB特征是一种基于FAST角点检测和BRIEF描述子的特征提取方法,它在计算效率和鲁棒性上表现出色,被广泛应用于视觉SLAM。 第七章还介绍了ORB特征的主要步骤,包括角点检测、特征描述子计算和特征匹配。在角点检测,通过FAST算法检测图像的角点位置。然后,利用BRIEF描述子计算对应角点位置的特征描述子。最后,通过特征匹配算法将当前帧的ORB特征与地图的ORB特征进行匹配,从而实现相机的位姿估计和地图构建。 除了手写ORB特征的实现,第七章还介绍了ORB-SLAM系统的整体框架和关键技术。该系统结合了特征点法和直接法,实现了在无GPS和IMU信息的情况下进行实时的视觉SLAM。通过利用ORB特征进行初始化、追踪和建图,ORB-SLAM系统在室内和室外环境下都取得了良好的效果。 总而言之,视觉SLAM的第七章《视觉SLAM十四》介绍了手写ORB特征的实现方法,并介绍了ORB-SLAM系统的整体框架和关键技术。这些内容对于理解和应用视觉SLAM具有重要意义。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [视觉SLAM十四——ch7](https://blog.csdn.net/weixin_58021155/article/details/123496372)[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_1"}}] [.reference_item style="max-width: 50%"] - *2* [《视觉slam十四》学习笔记——ch7实践部分 比较opencv库下的ORB特征的提取和手写ORB的区别](https://blog.csdn.net/weixin_70026476/article/details/127415318)[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_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值