Jetson AGX Orin 下 VINS-Fusion-ROS2安装

0、本机基础环境:

CUDA:11.4        Jetpack:5.1.2        L4T:35.4.1        Ubuntu:20.04 focal   camera:zedm
软件包:GitHub - zinuok/VINS-Fusion-ROS2: ROS2 version of VINS-Fusion

Ceres 2.2 (这样是在部署系统时遇到的主要问题),由于死心眼,不想将Ceres 降到2.2以下,在部署系统遇到了如下问题:
(首先贴一下一些博主的改错方法
XTDrone和PX4学习期间问题记录(一)_error: ‘class ceres::problem’ has no member named -CSDN博客

使用Ceres-Sovler进行四元数求解优化:LocalParameterization->Manifold_ceres::localparameterization-CSDN博客 )
1、

VINS-Fusion-ROS2/global_fusion/src/globalOpt.cpp:117:20: error: ‘LocalParameterization’ is not a member of ‘ceres’
  117 |             ceres::LocalParameterization* local_parameterization = new ceres::QuaternionParameterization();

类是这种的更改ceres::LocalParameterization*为ceres::Manifold*
 

2、

VINS-Fusion-ROS2/camera_models/include/camodocal/gpl/EigenQuaternionParameterization.h:4:10: fatal error: ceres/local_parameterization.h: 没有那个文件或目录
    4 | #include "ceres/local_parameterization.h"

更改#include "ceres/local_parameterization.h" -> #include "ceres/manifold.h"

 3、

VINS-Fusion-ROS2/camera_models/src/calib/CameraCalibration.cc:512:17: error: ‘class ceres::Problem’ has no member named ‘SetParameterization’; did you mean ‘SetParameterLowerBound’?
  512 |         problem.SetParameterization(transformVec.at(i).rotationData(),

Ceres 2.2版本开始,LocalParameterization方法不可用,需要用Manifold替代。

    / 上略 /
    // Build the problem.
    double q[4];
	ceres::Problem problem;
	/****************************************/
	/* 省略调用AddResidualBlock() q是参数之一*/
	/****************************************/
    ceres::Manifold* quaternion_manifold = new ceres::QuaternionManifold;
    problem.SetManifold(q, quaternion_manifold);
    / 下略 //

就是将problem.SetParameterization 改为 problem.SetManifold

4、

VINS-Fusion-ROS2/loop_fusion/src/pose_graph.h:138:24: error: ‘AutoDiffLocalParameterization’ in namespace ‘ceres’ does not name a template type
  138 |     return (new ceres::AutoDiffLocalParameterization<AngleLocalParameterization,

AutoDiffParameterization -> AutoDiffManifold

5、

/usr/local/include/ceres/autodiff_manifold.h:161:22: error: ‘class AngleLocalParameterization’ has no member named ‘Plus’
  161 |     return functor_->Plus(x, delta, x_plus_delta);

参考博主写的,这里不想复述了。 XTDrone和PX4学习期间问题记录(一)_error: ‘class ceres::problem’ has no member named -CSDN博客

6、
ceres::LocalParameterization *local_parameterization = new                                                                                 PoseLocalParameterization();
改为->        ceres::Manifold* local_parameterization = new                                                                                 ceres::EigenQuaternionManifold();

7、最后祝贺你:

Finished <<< vins [1min 21s]

Summary: 4 packages finished [1min 22s]
  1 package had stderr output: vins

1、运行代码

1、ros2 run vins vins_node  /home/nvidia/RosTest/VinsFusion/src/VINS-Fusion-ROS2/config/euroc/euroc_stereo_imu_config.yaml

2、ros2 launch vins vins_rviz.launch.xml

3、ros2 bag play MH_01_easy.db3

Jetson AGX Orin是一款强大的嵌入式计算平台,可以轻松安装ROS 2以实现机器人及其他自动化系统的开发和运行。以下是使用300字中文回答Jetson AGX Orin安装ROS 2的步骤和注意事项。 首先,确保Jetson AGX Orin已经正常运行,并且您已经完成了基本的设置和配置。 接下来,从ROS 2官方网站(https://index.ros.org/doc/ros2/Installation/Foxy/Linux-Install-Debians/)下载适用于您的Jetson AGX OrinROS 2发行版,建议选择最新版本Foxy Fitzroy。下载完成后,将.deb文件保存到您的Jetson AGX Orin的本地存储中。 然后,在Jetson AGX Orin的终端中打开一个新的命令行窗口,以便在系统中进行安装。使用以下命令导航到.deb文件的目录: cd /path/to/deb/file 然后,使用以下命令安装ROS 2: sudo apt install ./ros-foxy-*.deb ROS 2安装过程可能会花费一些时间,具体取决于您的Jetson AGX Orin的性能和网络连接速度。在安装过程中,请耐心等待,直到安装完成。 安装完成后,您需要设置ROS 2的工作环境。使用以下命令执行此操作: source /opt/ros/foxy/setup.bash 现在,您可以开始使用ROS 2Jetson AGX Orin上进行开发和运行机器人应用程序了。请查阅ROS 2的文档和教程,以了解更多关于ROS 2Jetson AGX Orin上的使用方法和功能。 总结一下,安装ROS 2Jetson AGX Orin的过程包括下载适用于该平台的ROS 2发行版,并使用apt命令进行安装安装完成后,使用source命令设置ROS 2的工作环境。最后,您就可以开始使用ROS 2Jetson AGX Orin上进行开发和运行机器人应用程序了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值