SLAM學習系列——ORB-SLAM3安裝(Ubuntu20-ROS/Noetic)

ORB-SLAM3學習(Ubuntu20-ROS)

  • 0 主要參考文獻
  • 1 ORB-SLAM3安裝環境配置
    • 1.0 前言
      • 1.0.0 關于ORB-SLAM3安裝版本選擇
      • 1.0.1 本文配置操作匯總(快速配置)
        • 1.0.1.1 ORB_SLAM3環境配置:
        • 1.0.1.2 ORB_SLAM3安裝
        • 1.0.1.3 ORB_SLAM的ROS接口
    • 1.1 C++(11)編譯器配置
    • 1.2 Pangolin安裝
    • 1.3 OpenCV安裝
    • 1.4 Eigen3安裝
    • 1.5 DBoW2 and g2o (Included in Thirdparty folder)
    • 1.6 python要求
    • 1.7 ROS (optional)
    • 1.8 realsense2(選裝 )
  • 2 ORB-SLAM3安裝與測試(Building ORB-SLAM3 library and examples)
    • 2.1 下載ORB-SLAM3源文件
    • 2.2 修改CMakeLists文件
    • 2.3 編譯安裝
    • 2.4 測試(EuRoC Examples)
  • 3 ORB-SLAM3的ROS接口
    • 3.0 各種問題參考
    • 3.1 設置ORB-SLAM3的ROS接口路徑
    • 3.2 修改ORB-SLAM3的ROS接口CMakeLists文件
    • 3.3 修改build_ros.sh腳本文件
    • 3.4 安裝ROS接口
    • 3.5 ORB-SLAM之ROS測試
      • 3.5.1 查看數據集topic信息
      • 3.5.2 運行

0 主要參考文獻

安裝及問題解決主要參考以下文獻:
ubuntu 20.04+ORB_SLAM3 安裝并行全記錄(無坑版)(一)
ubuntu 20.04+ORB_SLAM3 安裝并行全記錄(無坑版)(二)
Ubuntu20.04安裝orb-slam3
Ubuntu20.04 —— 新系統從頭安裝ORB-SLAM3過程(2022年)
Ubuntu18.04 —— 新系統從頭安裝ORB-SLAM3過程(2022年)
Ubuntu 20.04配置ORB-SLAM2和ORB-SLAM3運行環境+ROS實時運行ORB-SLAM+Gazebo仿真運行ORB-SLAM2+各種相關庫的安裝
Ubuntu 20.04 安裝 ORB_SLAM3(包含ROS版)
ORB_SLAM3 v1.0 ROS接口編譯問題匯總

1 ORB-SLAM3安裝環境配置

1.0 前言

1.0.0 關于ORB-SLAM3安裝版本選擇

目前時間:2023年1月24日。 思考了很久安裝ORB-SLAM3哪個版本,因為有博客說新版本似乎有些bug。但看了ORB-SLAM3在github上的發布時間,最近的提交時間為2022年2月10日,感覺應該修改完成了。因此,還是直接選擇Master版本,(分支4452a3c):
在這里插入圖片描述因為感覺v1.0-release的提升還挺大的。

-OpenCV靜態矩陣更改為特征矩陣。跟蹤和映射的平均代碼加速分別為16%和19%。ORB-SLAM 3論文中報告的時間。
- 新校準文件格式,參見文件Calibration_Tutorial。增加了立體校正和圖像大小調整選項。
- 添加了加載/保存地圖功能。
- 添加了使用英特爾實感攝像頭的實時SLAM示例。
- 修正了幾個錯誤

下面根據官方文檔配置依賴環境及安裝。

1.0.1 本文配置操作匯總(快速配置)

PS:準備環境為Ubuntu20.04,已安裝ROS-Noetic。

# 配置前
ubuntu: 20.04
ROS:Noetic
#配置關鍵依賴版本:
gcc: 9.4.0
ORB_SLAM3: Master,4452 a3c , Feb 10, 2022
cmake:3.16.3 
opencv: 4.2.0 (與ROS版本中使用的一致)
eigen3: 3.3.7 (該版本高于3.2會有大量警告,但無影響)
Pangolin: v0.6  (注意:高版本的庫不能工作)

可直接根據所有安裝指令安裝(依次執行,已安裝過的會自動驗證跳過),但建議通讀文檔獲取更深的理解。

1.0.1.1 ORB_SLAM3環境配置:
cd ~/ThirdParty
sudo apt install g++
sudo apt install libgl1-mesa-dev  libglew-dev cmake
sudo apt install libpython2.7-dev pkg-config libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
git checkout dd801d2
mkdir build
cd build
cmake ..
cmake --build .
sudo apt install libopencv-dev
sudo apt install libeigen3-dev
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
sudo ln -s /usr/include/eigen3/unsupported /usr/include/unsupported
sudo apt install libpython2.7-dev
sudo apt-get install ros-noetic-realsense2-camera
1.0.1.2 ORB_SLAM3安裝
cd ~/ThirdParty
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
cd ORB_SLAM3
git checkout 4452a3c
gedit CMakeLists.txt
# find_package(OpenCV 4.4)
find_package(OpenCV 4 REQUIRED)
chmod +x build.sh
./build.sh
1.0.1.3 ORB_SLAM的ROS接口
gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/ThirdParty/ORB_SLAM3/Examples_old/ROS
cd /Examples_old/ROS/ORB_SLAM3
gedit CMakeLists.txt
#find_package(OpenCV 3.0 QUIET)
find_package(OpenCV 4 QUIET)
include_directories(
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/../../../
${PROJECT_SOURCE_DIR}/../../../include
${PROJECT_SOURCE_DIR}/../../../include/CameraModels
${PROJECT_SOURCE_DIR}/../../../Thirdparty/Sophus
${Pangolin_INCLUDE_DIRS}
)
#rosbuild_add_executable(MonoAR
#src/AR/ros_mono_ar.cc
#src/AR/ViewerAR.h
#src/AR/ViewerAR.cc
#)
cd ~/ThirdParty/ORB_SLAM3
gedit build_ros.sh
#cd Examples/ROS/ORB_SLAM3
cd Examples_old/ROS/ORB_SLAM3
chmod +x build_ros.sh
./build_ros.sh

1.1 C++(11)編譯器配置

原文:

We use the new thread and chrono functionalities of C++11. 
我們使用C++11的新線程和計時功能。

要求:c++11及以上 。保證環境要求:

sudo apt install g++

1.2 Pangolin安裝

根據ORB-SLAM3官方原文:

We use Pangolin for visualization and user interface. Dowload and install instructions can be found at: https://github.com/stevenlovegrove/Pangolin.
我們使用Pangolin作為可視化和用戶界面。下載和安裝說明可在以下網址找到:https://github.com/stevenlovegrove/Pangolin.

因此,Pangolin僅作為一個可視化工具,版本沒做要求。
根據參考文獻,使用v0.6版本是一個比較好的選擇。
但本人在安裝v0.6版本必要依賴后編譯時警告較多,因此,嘗試了安裝master版本(分支:fe57db5)后,在ORB-SLAM3編譯過程中會出現錯誤error: ‘slots_reference’ was not declared in this scope cow_copy_type<list_type, Lockable>,導致編譯不通過,原因是Pangolin版本太高…
因此,還是安裝了v0.6版本…
安裝過程說明見:SLAM學習系列——ORB-SLAM3之Pangolin安裝
安裝必要及建議依賴:

//必要依賴
sudo apt install libgl1-mesa-dev  libglew-dev cmake
// 建議依賴
sudo apt install libpython2.7-dev pkg-config libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols

針對v0.6版本:

git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
git checkout dd801d2
mkdir build
cd build
cmake ..
cmake --build .

1.3 OpenCV安裝

ORB-SLAM3官方原文:

We use OpenCV to manipulate images and features. Dowload and install instructions can be found at:  http://opencv.org. Required at leat 3.0.   Tested with OpenCV 3.2.0 and 4.4.0.

即,Opencv的作用是:操作圖像和特征。最低需要3.0版本。官方使用用Opencv 3.2.0和4.4.0進行測試。
opencv的:下載和安裝說明見:http://opencv.org. 根據版本需要下載安裝。
note:根據參考文獻建議,盡量先裝ROS,然后使OpenCV與ROS的版本一樣,這樣后面用ROS時會少走很多坑。裝了ROS noetic就可以直接忽略這一步,省了許多麻煩。
安裝

  1. ubuntu中提供apt安裝版本(默認版本是 4.2.0(2023/1/24),與ROS版本一致)。
sudo apt install libopencv-dev
  1. 如需安裝其他版本,可參考上述(文章開頭)參考文獻。

1.4 Eigen3安裝

ORB-SLAM3官方原文:

Required by g2o (see below). Download and install instructions can be found at: http://eigen.tuxfamily.org. Required at least 3.1.0.

安裝Eigen3為G2O所需(見下文)。下載安裝說明見:http://eigen.tuxfamily.org. 最低需要3.1.0。

ubuntu中同樣提供apt安裝版本(默認版本是3.3.7),可直接安裝即可,但需要注意安裝位置位于/usr/include/eigen3,其存在問題

[1]而通常我們如果只使用find_package(Eigen3 REQUIRED)命令的話有可能無法找到。
[2]在很多程序中include時經常使用#include <Eigen/Dense>而不是使用#include <eigen3/Eigen/Dense>。

因此,一般我們還需要設置軟鏈接,全部命令如下:

sudo apt install libeigen3-dev
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
sudo ln -s /usr/include/eigen3/unsupported /usr/include/unsupported

參考:
Ubuntu16.04源碼安裝eigen3并為其設置軟鏈接
在Ubuntu中安裝Eigen3庫

1.5 DBoW2 and g2o (Included in Thirdparty folder)

ORB-SLAM3官方原文:

We use modified versions of the DBoW2 library to perform place recognition and g2o library to perform non-linear optimizations. Both modified libraries (which are BSD) are included in the Thirdparty folder.

ORB-SLAM3修改了DobW2和g2o兩個依賴庫,并將其放在了Thirdparty文件夾中。不需要,單獨下載安裝。

1.6 python要求

ORB-SLAM3官方原文:

Required to calculate the alignment of the trajectory with the ground truth. Required Numpy module.(win) http://www.python.org/downloads/windows(deb) sudo apt install libpython2.7-dev(mac) preinstalled with osx 

即:需要計算軌跡與地面真實的對齊度。所需的Numpy模塊。且使用依賴于libpython2.7-dev(Pangolin已安裝,可再次運行確認)。

sudo apt install libpython2.7-dev

1.7 ROS (optional)

截止目前(2023/01/24),官方文僅在18.04(ROS Melodic)中測試過,因此,在Ubuntu20.4中還沒有測試過。這部分將在第3節進行配置:

We provide some examples to process input of a monocular, monocular-inertial, stereo, stereo-inertial or RGB-D camera using ROS. Building these examples is optional. These have been tested with ROS Melodic under Ubuntu 18.04.

譯:我們提供了一些使用ROS處理單目、單目-慣性、立體、立體-慣性或RGB - D相機輸入的例子。構建這些例子是可選的。在Ubuntu 18.04下使用ROS Melodic的進行測試。

1.8 realsense2(選裝 )

官方文檔中沒有說明,但在源碼文件的CMakeLists文件中有:

find_package(realsense2)

若在ROS下安裝可參考:Ubuntu20.04(ROS1 noetic)使用D435深度相機記錄
運行ROS下安裝命令后會自動安裝相關依賴包

sudo apt-get install ros-noetic-realsense2-camera

2 ORB-SLAM3安裝與測試(Building ORB-SLAM3 library and examples)

2.1 下載ORB-SLAM3源文件

從官網下載ORB-SLAM3源文件:

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3

2.2 修改CMakeLists文件

根據配置 修改CMakeLists.txt文件。

# find_package(OpenCV 4.4)
find_package(OpenCV 4 REQUIRED)

2.3 編譯安裝

官方:我們提供了一個腳本build.sh來構建第三方庫和ORB-SLAM3。請確保您已安裝所有必需的依賴項。執行:

cd ORB_SLAM3
chmod +x build.sh
./build.sh

這將創建 libORB_SLAM3.so 在 lib 文件夾和可執行文件于Examples文件夾。

2.4 測試(EuRoC Examples)

step1 下載數據集
從 http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets下載數據集(ASL 格式) 。
這是測試可先下載一個即可(第1個)
[]

step2 數據集設置
在ORB-SLAM3文件夾下新建dataset文件夾,并將數據集復制到dataset下,解壓并將其命名為:MH_01_easy。

在這里插入圖片描述
step3:打開可視化界面
默認是沒有打開可視化界面的,需要修改。
打開/ORB_SLAM3/Examples/Monocular/mono_euroc.cc的第83行,將“false”改為“true”。
終端運行:

cd Examples/Monocular/
gedit mono_euroc.cc

修改文件:

//ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, false);
ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, true);

改完之后保存,重新編譯ORB_SLAM3,打開終端輸入:

cd ORB_SLAM3
chmod +x build.sh
./build.sh

step4 MH_01數據集驗證
在build/Examples文件夾下,打開終端,輸入如下命令。

./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./dataset/MH_01_easy ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt

step5 測試結果

ORB-SLAM3測試成功

參考文獻:
【算法】跑ORB-SLAM3遇到的問題、解決方法、效果展示(環境:Ubuntu18.04+ROS melodic)
Ubuntu 20.04 安裝 ORB_SLAM3(包含ROS版)
ubuntu 20.04+ORB_SLAM3 安裝并行全記錄(無坑版)(二)

3 ORB-SLAM3的ROS接口

3.0 各種問題參考

打到一些值得參考的問題解決方案:
ORB_SLAM3 v1.0 ROS接口編譯問題匯總
v1.0 release ros版本編譯,提示找不到sophus庫,及 Sophus::SE3f, cv::MAT,Eigen::Vector3f類型轉換報錯
‘build_ros.sh’ is waiting for updating #479
NVIDIA Jetson TX2 安裝ORB-SLAM3 ROS 錯誤總結
buildros.sh

3.1 設置ORB-SLAM3的ROS接口路徑

note:以前版本中,ROS文件夾在Examples文件夾下,新版本(本版本中)ROS文件夾在Examples_old文件夾下。
添加路徑 Examples_old/ROS/ORB_SLAM3 添加到ROS_PACKAGE_PATH環境變量。
打開.bashrc文件:

gedit ~/.bashrc

并在~/.bashrc文件末尾添加以下行。

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples_old/ROS

將PATH替換為克隆ORB_SLAM3的文件夾,如我的為:

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/ThirdParty/ORB_SLAM3/Examples_old/ROS

3.2 修改ORB-SLAM3的ROS接口CMakeLists文件

cd ~/ThirdParty/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3
gedit CMakeLists.txt

step1:修改OpenCV 版本信息

#find_package(OpenCV 3.0 QUIET)
find_package(OpenCV 4 QUIET)

step2:添加Souphus庫(采用其自帶的包(修改后的))信息

#include_directories(
#${PROJECT_SOURCE_DIR}
#${PROJECT_SOURCE_DIR}/../../../
#${PROJECT_SOURCE_DIR}/../../../include
${PROJECT_SOURCE_DIR}/../../../include/CameraModels
${Pangolin_INCLUDE_DIRS}
#)include_directories(
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/../../../
${PROJECT_SOURCE_DIR}/../../../include
${PROJECT_SOURCE_DIR}/../../../include/CameraModels
${PROJECT_SOURCE_DIR}/../../../Thirdparty/Sophus
${Pangolin_INCLUDE_DIRS}
)

step3:MonoAR部分

  1. 如果不會用到的話:注釋與AR相關的編譯
rosbuild_add_executable(MonoAR
src/AR/ros_mono_ar.cc
src/AR/ViewerAR.h
src/AR/ViewerAR.cc
)#rosbuild_add_executable(MonoAR
#src/AR/ros_mono_ar.cc
#src/AR/ViewerAR.h
#src/AR/ViewerAR.cc
)
  1. 如果會用到的話:修改代碼文件,參考 buildros.sh

3.3 修改build_ros.sh腳本文件

cd ORB_SLAM3
gedit build_ros.sh

第3行:

#cd Examples/ROS/ORB_SLAM3
cd Examples_old/ROS/ORB_SLAM3

3.4 安裝ROS接口

執行 build_ros. sh腳本:

cd ORB_SLAM3
chmod +x build_ros.sh
./build_ros.sh

不出意外的話,可以編譯完成了,過程中會有很多關于Eigen3的警告,原因是eigen版本太高,但沒有影響(某些變量處于正準備取消階段)。

3.5 ORB-SLAM之ROS測試

參考: Ubuntu 20.04 安裝 ORB_SLAM3(包含ROS版)

3.5.1 查看數據集topic信息

在數據集路徑下打開終端,輸入命令查看數據集信息

rosbag info MH_01_easy.bag  

根據topics信息,修改/Examples_old/ROS/ORB_SLAM3/src/ros_mono_inertial.cc文件中的相應代碼,如下所示:

//ros::Subscriber sub_imu = n.subscribe("/imu", 1000, &ImuGrabber::GrabImu, &imugb);
//ros::Subscriber sub_img0 = n.subscribe("/cam/image_raw", 100, &ImageGrabber::GrabImage, &igb);ros::Subscriber sub_imu = n.subscribe("/imu0", 1000, &ImuGrabber::GrabImu, &imugb);
ros::Subscriber sub_img0 = n.subscribe("/cam0/image_raw", 100, &ImageGrabber::GrabImage, &igb);

之后再次編譯

cd ORB_SLAM3
chmod +x build_ros.sh
./build_ros.sh

3.5.2 運行

打開一個終端,啟動roscore,如下所示

roscore

打開第二個終端,在Examples文件夾下執行

rosrun ORB_SLAM3 Mono_Inertial ../Vocabulary/ORBvoc.txt ./Monocular-Inertial/EuRoC.yaml

打開第三個終端,在數據集文件夾下執行

rosbag play MH_01_easy.bag 

運行效果
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/77476.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/77476.shtml
英文地址,請注明出處:http://en.pswp.cn/web/77476.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【應用密碼學】實驗二 分組密碼(2)

一、實驗要求與目的 1&#xff09; 學習AES密碼算法原理 2&#xff09; 學習AES密碼算法編程實現 二、實驗內容與步驟記錄&#xff08;只記錄關鍵步驟與結果&#xff0c;可截圖&#xff0c;但注意排版與圖片大小&#xff09; 字符串加解密 運行python程序&#xff0c;輸入…

區塊鏈基石解碼:分布式賬本的運行奧秘與技術架構

區塊鏈技術的革命性源于其核心組件——分布式賬本&#xff08;Distributed Ledger&#xff09;。這一技術通過去中心化、透明性和不可篡改性&#xff0c;重塑了傳統數據存儲與交易驗證的方式。本文將從分布式賬本的核心概念、實現原理、應用場景及挑戰等方面展開&#xff0c;揭…

AUTOSAR_RS_ClassicPlatformDebugTraceProfile

AUTOSAR經典平臺調試、跟蹤與分析支持 AUTOSAR組件調試、跟蹤與分析功能詳解 目錄 簡介ARTI核心擴展 核心特定ARTI擴展結構核心參數定義 操作系統和任務擴展 OS特定ARTI擴展任務特定ARTI擴展軟件組件特定擴展 總體架構 組件結構接口定義 錯誤處理 默認錯誤跟蹤器(DET) 總結 1.…

SpringBoot配置RestTemplate并理解單例模式詳解

在日常開發中&#xff0c;RestTemplate 是一個非常常用的工具&#xff0c;用來發起HTTP請求。今天我們通過一個小例子&#xff0c;不僅學習如何在SpringBoot中配置RestTemplate&#xff0c;還會深入理解單例模式在Spring中的實際應用。 1. 示例代碼 我們首先來看一個基礎的配置…

DPIN在AI+DePIN孟買峰會闡述全球GPU生態系統的戰略愿景

DPIN基金會在3月29日于印度孟買舉行的AIDePIN峰會上展示了其愿景和未來5年的具體發展計劃&#xff0c;旨在塑造去中心化算力的未來。本次活動匯集了DPIN、QPIN、社區成員和Web3行業資深顧問&#xff0c;深入探討DPIN構建全球領先的去中心化GPU算力網絡的戰略&#xff0c;該網絡…

央視兩次采訪報道愛藏評級,聚焦生肖鈔市場升溫,評級幣成交易安全“定心丸”

CCTV央視財經頻道《經濟信息聯播》《第一時間》兩檔節目分別對生肖賀歲鈔進行了5分鐘20秒的專題報道。長期以來&#xff0c;我國一直保持著發行生肖紀念鈔和紀念幣的傳統&#xff0c;生肖紀念鈔和紀念幣在收藏市場保持著較高的熱度。特別是2024年初&#xff0c;央行發行了首張賀…

【計算機哲學故事1-2】輸入輸出(I/O):你吸收什么,便成為什么

“我最近&#xff0c;是不是廢了……”她癱在沙發上&#xff0c;手機扣在胸口&#xff0c;盯著天花板自言自語。 我坐在一旁&#xff0c;隨手翻著桌上的雜志&#xff0c;沒接話&#xff0c;等著她把情緒發泄完。 果然&#xff0c;幾秒后&#xff0c;她重重地嘆了口氣&#xf…

封裝el-autocomplete,接口調用

組件 <template><el-autocompletev-model"selectedValue":fetch-suggestions"fetchSuggestions":placeholder"placeholder"select"handleSelect"clearablev-bind"$attrs"/> </template><script lang&…

GPUStack昇騰Atlas300I duo部署模型DeepSeek-R1【GPUStack實戰篇2】

2025年4月25日GPUStack發布了v0.6版本&#xff0c;為昇騰芯片910B&#xff08;1-4&#xff09;和310P3內置了MinIE推理&#xff0c;新增了310P芯片的支持&#xff0c;很感興趣&#xff0c;所以我馬上來搗鼓玩玩看哈 官方文檔&#xff1a;https://docs.gpustack.ai/latest/insta…

Linux進程詳細解析

1.操作系統 概念 任何計算機系統都包含?個基本的程序集合&#xff0c;稱為操作系統(OS)。籠統的理解&#xff0c;操作系統包括&#xff1a; ? 內核&#xff08;進程管理&#xff0c;內存管理&#xff0c;文件管理&#xff0c;驅動管理&#xff09; ? 其他程序&#xff08…

解決兩個技術問題后小有感觸-QZ Tray使用經驗小總結

老朋友都知道&#xff0c;我現在是一家軟件公司銷售部門的項目經理和全棧開發工程師&#xff0c;就是這么“奇怪”的崗位&#xff0c;大概我是公司銷售團隊里比較少有技術背景、銷售業績又不那么理想的銷售。 近期在某個票務系統項目上駐場&#xff0c;原來我是這個項目的項目…

Centos 7.6安裝redis-6.2.6

1. 安裝依賴 確保系統已經安裝了必要的編譯工具和庫&#xff1a; sudo yum groupinstall "Development Tools" -y sudo yum install gcc make tcl -y 2. 解壓 Redis 源碼包 進入 /usr/local/ 目錄并解壓 redis-6.2.6.tar.gz 文件&#xff1a; cd /usr/local/ sudo ta…

Ejs模版引擎介紹,什么是模版引擎,什么是ejs,ejs基本用法

** EJS 模板引擎**&#xff0c;讓你徹底搞明白什么是模板引擎、什么是 EJS、怎么用、語法、最佳實踐等等&#xff1a; &#x1f4da; 一、什么是模板引擎&#xff1f; 模板引擎是前后端分離之前的一種服務器端“渲染技術”。它的主要作用是&#xff1a; 將 HTML 頁面和后端傳遞…

2025.4.21-2025.4.26學習周報

目錄 摘要Abstract1 文獻閱讀1.1 模型架構1.1.1 動態圖鄰接矩陣的構建1.1.2 多層次聚合機制模塊1.1.3 AHGC-GRU 1.2 實驗分析 總結 摘要 在本周閱讀的論文中&#xff0c;作者提出了一種名為AHGCNN的自適應層次圖卷積神經網絡。AHGCNN通過將監測站點視為圖結構中的節點&#xf…

6.1 客戶服務:智能客服與自動化支持系統的構建

隨著企業數字化轉型的加速&#xff0c;客戶服務作為企業與用戶交互的核心環節&#xff0c;正經歷從傳統人工服務向智能化、自動化服務的深刻變革。基于大語言模型&#xff08;LLM&#xff09;和智能代理&#xff08;Agent&#xff09;的技術為構建智能客服與自動化支持系統提供…

java Optional

我還沒用過java8的一些語法&#xff0c;有點老古董了&#xff0c;記錄下Optional怎么用。 從源碼看&#xff0c;Optional內部持有一個對象&#xff0c; 有一些api對這個對象進行判空處理。 靜態方法of &#xff0c;生成Optional對象&#xff0c; 但這個value不能為空&#…

【Java面試筆記:進階】24.有哪些方法可以在運行時動態生成一個Java類?

在Java中,運行時動態生成類是實現動態編程、框架擴展(如AOP、ORM)和插件化系統的關鍵技術。 1.動態生成Java類的方法 1.從源碼生成 直接生成源碼文件:通過Java程序生成源碼并保存為文件。編譯源碼: 使用ProcessBuilder啟動javac進程進行編譯。使用Java Compiler API(ja…

基于Jamba模型的天氣預測實戰

深入探索Mamba模型架構與應用 - 商品搜索 - 京東 DeepSeek大模型高性能核心技術與多模態融合開發 - 商品搜索 - 京東 由于大氣運動極為復雜&#xff0c;影響天氣的因素較多&#xff0c;而人們認識大氣本身運動的能力極為有限&#xff0c;因此以前天氣預報水平較低 。預報員在預…

GAMES202-高質量實時渲染(Real-Time Shadows)

目錄 Shadow MappingshadowMapping的問題shadow mapping背后的數學PCF&#xff08;Percentage Closer Filtering&#xff09;PCSS&#xff08;Percentage closer soft shadows&#xff09;VSSM&#xff08;Variance Soft Shadow Mapping&#xff09;優化步驟3優化步驟1SAT&…

iphonex uniapp textarea標簽兼容性處理過程梳理

嗨&#xff0c;我是小路。今天主要和大家分享的主題是“iphonex uniapp textarea標簽兼容性處理過程梳理”。 在uniapp項目中&#xff0c;經常會使用到uniapp原生的textarea標簽&#xff0c;但在手機兼容性這塊&#xff0c;textarea并不是很好用&#xff0c;會出現一些…