1.Eigen3不同版本切换
2.四足机器人雷达-视觉导航2:Elevation mapping局部高程图测试
3.C++在线工具分享
4.ORB-SLAM2 的源译编译运行(ubuntu20.04)以及ROS1安装
5.Eigen的介绍、安装与入门操作
6.vs2019已经在vc++目录中加入eigen的码编目录为什么还是提示找
Eigen3不同版本切换
在探索SLAM技术的过程中,版本问题常常成为编译挑战的源译关键。为此,码编我整理了一篇关于Eigen版本切换的源译实用指南,帮助你在不同项目中轻松转换。码编qgit源码让我们从apt-get安装开始,源译它是码编最常用且便捷的方式:
首先,你可以使用sudo apt-get install libeigen3-dev命令,源译apt-get的码编安装路径通常在/usr/include下的eigen3文件夹中(见下图)。如果你需要特定版本,源译如Eigen3.3.9,码编源码编译是源译你的选择。以这个版本为例:
首先,码编从GitHub或GitLab下载所需的源译版本,比如:# git clone /libeigen/eigen.git
wget /libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.zip
unzip eigen-3.3.9.zip
cd eigen-3.3.9
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=~/eigen_output ..
make && make install
编译完成后,你将在~/eigen_output目录下找到eigen3库。之后,将生成的库文件重命名,如sudo mv eigen3 eigen,便于版本区分。
Ubuntu系统通过eigen3.pc文件管理版本查找。apt-get安装的版本位于/usr/share/pkgconfig,而源码编译的版本在安装目录的share/pkgconfig。对比两者,确保保留适当的eigen3.pc文件,修改Version行指向所需的版本,然后重命名eigen3路径:
执行如下命令进行版本切换:sudo mv eigen3 eigen,将当前版本重命名;sudo mv eigen eigen3,源码超市陈列颜色将新版本设置为主用。这样,通过路径重定向,版本切换顺利完成。如果你在实际操作中遇到问题,这个指南希望能作为参考。祝你在Eigen版本管理上得心应手!
(注意:以上内容旨在提供指导,实际操作时请确保对文件和路径有充分的理解,以避免可能的冲突。)
四足机器人雷达-视觉导航2:Elevation mapping局部高程图测试
为了四足机器人实现高效的局部高程图构建,结合视觉与雷达技术,确保导航的准确性和稳定性,本文将详细阐述这一过程。四足机器人相较于自动驾驶,需要主动选择落足点,因此局部高程图尤为重要。获取高程图,视觉与雷达传感器各有优劣,例如视觉传感器易受光照、遮挡等因素影响,而雷达传感器在噪声、死区和点云稀疏等问题上则有所欠缺。因此,融合视觉与雷达数据,形成互补,成为目前较为稳定的解决方案。
雷达提供长期可靠的源码下载视频配音里程计信息,而深度视觉则用于获取局部深度数据,从而建立高程图。这种方案分为实时高程图与全局高程图两种。实时高程图基于深度信息快速构建,实现简便,速度较快,甚至可能无需全局定位数据。然而,视角和深度图质量问题可能导致噪声和空洞。全局高程图则先建立整个环境的地图,然后基于里程计信息提取局部信息,这种方案需要全局定位信息,但通过利用机器人多视角下的数据采集,不断优化修正全局高程地图,最终提取的局部高程图质量更高。
实现高程图建立的项目,以ETH开源的“elevation mapping”为代表。本文提供了一个从最初下载、编译到最终基于Gazebo仿真运行简单Demo的过程,旨在帮助快速部署项目。首先,确保ROS的正确安装与更新,采用melodic版本。其次,安装Grid Map、kindr、pcl点云库等依赖库,注意在编译过程中可能遇到的源码下载小说文案内存不足等问题,确保编译环境的资源充足。在进行PCL库编译时,遇到的“error: ‘PCL_MAKE_ALIGNED_OPERATOR_NEW’ does not name a type”问题,可以通过修改为“EIGEN_MAKE_ALIGNED_OPERATOR_NEW”解决。在下载和编译kindr_ros与elevation mapping后,通过catkin_make进行编译,可能遇到的编译错误如“fatal error”问题,需要找到并修正hpp文件中的错误。
在完成安装与编译后,通过下载turtlebot3与相关ROS包,建立新的catkin工作空间,下载源码并编译。在编译过程中,可能需要解决与python版本匹配、文件路径等细节问题。运行Demo,基于turtlebot3和RealSense的示例,注意可能需要对脚本进行修改以适应特定的环境或系统配置,如Python版本匹配问题,以及修改地图文件路径。在运行中,通过Rviz观察点云和高程图数据,验证高程图构建的实时性和准确性。
然而,在实际应用中,还存在一些挑战。例如,运算速度可能无法满足实时需求,源码集合符号id尤其是不采用GPU的情况下,刷新频率可能较低。真实世界中的传感器噪声相比仿真环境更大,地图构建效果可能不如预期。此外,需要进一步开发代码以提取局部高程图,并通过UDP或共享内存等方式将其发送给步态控制器。随着机器人运动,全局地图的构建与维护对于计算资源的要求较高,尤其是使用低成本处理器时。面对这些问题,可能需要优化算法、改进资源管理,或直接构建局部地图以适应不同环境与设备的性能限制。
综上所述,结合视觉与雷达技术构建的高程图,对于四足机器人的局部导航具有重要价值。通过合理利用开源资源与技术工具,可以实现从环境感知到高程图构建的全流程,为机器人的自主导航提供坚实的支撑。面对实际应用中的挑战,持续的技术优化与创新将推动四足机器人在复杂环境下的高效导航与操作能力。
C++在线工具分享
分享几个好用的C++在线工具,有助于深入理解C++。
其中,Godbolt是一个曾经在cppcon上介绍过的在线汇编代码分析网站,它将C++代码编译成汇编语言,并以一种用户十分友好的方式显示出来,将C++代码和汇编代码用相同颜色对应起来,当你将鼠标放到汇编指令时,会有对应的指令介绍。它支持不同版本的编译器和优化级别,支持使用第三方库,如boost、eigen等。许多文章的汇编分析都是通过它完成的。此外,Godbolt还提供了GitHub仓库,对于不方便将源代码放置在网上进行分析的公司,可以在内部部署该工具。
Wandbox是一个支持多种语言的在线编译器网站,我们可以快速地在里面编写实验代码。它支持的语言包括C++、C、rust、python、java等。它支持多个编译器版本,使我们能够测试C++的新功能。Wandbox也是一个方便的资源,用于在不同语言间进行代码比较和实验。
Quick C++ Benchmark是一个在线C++代码性能基准测试工具,它允许我们快速测试和比较小型代码片段的性能。这个工具能够帮助开发者评估代码效率和优化潜力。
Compare C++ Build则是一个对代码编译性能进行测量的工具,它关注编译时间、CPU使用率、内存消耗等开销指标。与Quick C++ Benchmark由同一个人开发,它们共同提供了全面的性能测试解决方案。
C++ Insight则提供了一种独特的视角,让我们可以看到C++编译器如何将C++代码转换成中间文件,尤其是模版的展开情况。这种深入的见解对于理解C++编译过程和优化代码具有重要意义。
C++ Jupyter Notebook是Jupyter和C++解释器Cling的结合体,它允许开发者快速测试代码和可视化数据。这对于数据科学和高性能计算领域的C++开发者来说,是一个非常有用的工具。
ORB-SLAM2 的编译运行(ubuntu.)以及ROS1安装
在 Ubuntu . 环境中,编译并运行 ORB-SLAM2 需要一系列的准备工作和库的安装。首先,确保已安装了所需的依赖项,然后按照指定链接从 GitHub 下载并安装 Pangolin-0.6 稳定版。
接着,进行 OpenCV-3.4.5 的安装,包括下载、配置编译环境和查询版本信息以验证安装是否成功。对于 Eigen3,建议源码安装默认的 Eigen 版本(3.3.9),并将其头文件复制到相应目录以确保正常工作。若需要使用特定版本(如3.3.7),需手动安装并调整位置。
在编译 ORB-SLAM2 时,需处理常见的报错,例如在 `System.h` 中添加 `#include` 以解决 `usleep` 报错,并根据特定链接调整 `LoopClosing.h` 文件中的代码以解决第二个报错。第三个报错需删除 `CMakeCache.txt` 文件并重新执行 `cmake ..` 和 `make` 命令。
成功编译后,需在特定目录下运行 ORB-SLAM2,确保使用正确的终端打开以找到可执行文件。此外,安装 ROS1 可以通过一键安装工具完成,注意管理日志目录的大小以避免警告。在安装完成后,启动 ROS Master、小海龟仿真器和海龟控制节点,以验证 ROS1 是否已成功安装。
安装过程中可能遇到的问题包括 ROS 目录的位置和库查找问题,以及如何在编译 ORB-SLAM2 时指定依赖目录。通过将 ROS 目录添加到环境变量(如 `PYTHONPATH` 或 `LD_LIBRARY_PATH`)中,可以解决这些问题并确保库的正确查找。
Eigen的介绍、安装与入门操作
Eigen是一个C++的开源模板库,专用于线性代数运算,包括向量和矩阵操作,以及数值分析等。它以头文件形式存在,无需编译,只需在cpp文件中添加`#include "Eigen/Dense"`即可使用。安装与入门
在Ubuntu Server .上,Eigen的安装有两条路径:通过apt命令或手动编译。1. apt命令安装
虽然简单,但apt包更新较慢,可能不是最新版本,这可能影响依赖于最新Eigen的库的使用。检查版本的命令是:`apt-cache policy eigen`。2. 手动编译安装
从Eigen官网下载源码或使用wget,解压后进入目录,然后进行编译。安装成功后,可以通过编写并运行代码验证,如`MatrixXd matrix = MatrixXd::Random(2, 2); cout << matrix << endl;`。实例演示
矩阵操作
创建一个2x2矩阵,赋值并输出,如`MatrixXd m = MatrixXd::Random(2, 2); cout << m << endl;`。矩阵与向量
定义一个3x3矩阵和3维向量,进行矩阵加常数和矩阵向量乘法,展示其运算结果。总结
本文简要介绍了Eigen的基本概念、安装方法、头文件使用以及入门级的矩阵向量操作。深入学习Eigen,还有更多内容等待探索。vs已经在vc++目录中加入eigen的目录为什么还是提示找
欲在Visual Studio 中集成著名的矩阵运算库Eigen,本文提供详细步骤。首先,访问Eigen官网下载3.3.8版本源码。在Visual Studio中创建空项目。为简化管理,不勾选将解决方案和项目置于同一目录选项,以确保文件结构清晰。创建src、include、deps、config等文件夹,Eigen源码置于deps/eigen目录下。
配置项目属性,添加Eigen目录。在项目属性页中选择C/C++标签进行调整,确保文件夹路径正确设置。创建test_eigen.cpp文件进行代码测试,验证配置是否正确。若项目多于一个,例如Project2,需将Eigen目录添加至其C/C++属性页的附加包含目录中,并确保路径相对项目文件夹。创建Project2/src目录,添加测试代码,并设置Project2为启动项,运行以验证配置。
总结,本文详细阐述了如何在Visual Studio 中集成Eigen库,并说明了处理多项目情况的方法。此过程对于集成其他库应具相似性。欢迎关注个人网站以及GzH: SLAM学习er,作者将持续更新更多内容。