如何Ubuntu 22.04.5 LTS 64 位 操作系统部署运行SLAM3! 详细流程
以下是在本地部署运行 ORB-SLAM3 的详细步骤,基于官方 README.md 和最佳实践整理,适用于 Ubuntu 16.04/18.04/20.04/22.04 系统:
一、系统要求与依赖项安装
1. 基础系统要求
- 操作系统:Ubuntu 16.04/18.04/20.04/22.04(64 位)
- 硬件:推荐 i7 及以上处理器(确保实时性能),支持 OpenGL 的显卡(用于 Pangolin 可视化)
2. 安装依赖项
# 安装基础工具
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential cmake git libgl1-mesa-glx# 安装Eigen3(线性代数库)
sudo apt install libeigen3-dev# 安装Python(用于轨迹评估,需numpy)
sudo apt install python3-numpy libpython3-dev# 安装OpenCV(3.2+,推荐4.x,22.04默认4.6.0+)
sudo apt install libopencv-dev python3-opencv# 安装Pangolin(可视化库)
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
sudo make install
cd .. && rm -rf Pangolin # 清理临时文件
3. 可选:安装 ROS(如需运行 ROS 节点)
Ubuntu 18.04 (Melodic):
sudo apt install ros-melodic-desktop-full
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
Ubuntu 22.04 (Humble):
sudo apt install ros-humble-desktop
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
这里因为考虑到很多安装SLAM3的朋友在本地都没有安装ROS2,所以这里更新一篇ROS2的安装教学。
报错解决:
这里我在运行:cmake .. -DCMAKE_BUILD_TYPE=Release的时候出现问题:
ZERO:/media/chengq/soft/Dev_soft/Slam3/Pangolin/build$ cmake .. -DCMAKE_BUILD_TYPE=Release
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- libpng Found and Enabled
-- libjpeg Found and Enabled
-- libtiff Found and Enabled
-- libopenexr Found and Enabled
-- Found Eigen: '/usr/include/eigen3'
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):Could NOT find OpenGL (missing: OPENGL_opengl_LIBRARY OPENGL_egl_LIBRARYOPENGL_INCLUDE_DIR OpenGL EGL)
Call Stack (most recent call first):/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)/usr/share/cmake-3.22/Modules/FindOpenGL.cmake:443 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)components/pango_opengl/CMakeLists.txt:49 (find_package)CMakeLists.txt:124 (include)-- Configuring incomplete, errors occurred!
See also "/media/chengq/soft/Dev_soft/Slam3/Pangolin/build/CMakeFiles/CMakeOutput.log".
chengq@chengq-ZERO:/media/chengq/soft/Dev_soft/Slam3/Pangolin/build$ cmake .. -DCMAKE_BUILD_TYPE=Release
-- libpng Found and Enabled
-- libjpeg Found and Enabled
-- libtiff Found and Enabled
-- libopenexr Found and Enabled
-- Found Eigen: '/usr/include/eigen3'
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):Could NOT find OpenGL (missing: OPENGL_opengl_LIBRARY OPENGL_egl_LIBRARYOPENGL_INCLUDE_DIR OpenGL EGL)
Call Stack (most recent call first):/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)/usr/share/cmake-3.22/Modules/FindOpenGL.cmake:443 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)components/pango_opengl/CMakeLists.txt:49 (find_package)CMakeLists.txt:124 (include)-- Configuring incomplete, errors occurred!
See also "/media/chengq/soft/Dev_soft/Slam3/Pangolin/build/CMakeFiles/CMakeOutput.log".
这个问题是由于缺少 OpenGL 开发库 导致的编译错误。以下是针对 Ubuntu 22.04 的解决步骤:
一、安装 OpenGL 开发库
sudo apt install -y libgl1-mesa-dev libglu1-mesa-dev libegl1-mesa-dev
libgl1-mesa-dev:提供 OpenGL 核心开发库(必装)。libglu1-mesa-dev:提供 OpenGL 实用库(GLU)。libegl1-mesa-dev:提供 EGL(Embedded Systems Graphics Library)开发库(Pangolin 可能依赖)。
二、安装 epoxy 开发库
sudo apt install -y libepoxy-dev
libepoxy-dev包含 epoxy 的头文件和库文件,是 Pangolin 可视化模块的依赖项。
三、重新编译 Pangolin
# 清理之前的构建文件(可选)
cd .. && rm -rf build
mkdir build && cd build# 重新执行 CMake 配置
cmake .. -DCMAKE_BUILD_TYPE=Release
四、继续编译并安装
make -j$(nproc) # 使用多核编译(加快速度)
sudo make install # 安装到系统路径
二、克隆项目与构建
1. 克隆代码仓库
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
cd ORB_SLAM3
2. 编译项目
chmod +x build.sh
./build.sh # 自动编译第三方库(DBoW2、g2o、Sophus)和ORB-SLAM3
- 编译完成后,生成动态库
libORB_SLAM3.so和可执行文件(位于Examples目录)。
3. 编译 ROS 节点(可选)
chmod +x build_ros.sh
./build_ros.sh # 生成ROS节点,需已安装ROS
报错解决:
在执行 ./build.sh # 自动编译第三方库(DBoW2、g2o、Sophus)和ORB-SLAM3
编译的时候又出现错误: 执行到30% 左右无法编译。
报错:
/media/chengq/soft/Dev_soft/Slam3/ORB_SLAM3/src/LoopClosing.cc: In member function ‘void ORB_SLAM3::LoopClosing::SearchAndFuse(const std::vector<ORB_SLAM3::KeyFrame*>&, std::vector<ORB_SLAM3::MapPoint*>&)’:/media/chengq/soft/Dev_soft/Slam3/ORB_SLAM3/src/LoopClosing.cc:2161:9: warning: unused variable ‘total_replaces’ [-Wunused-variable]2161 | int total_replaces = 0;| ^~~~~~~~~~~~~~/media/chengq/soft/Dev_soft/Slam3/ORB_SLAM3/src/Tracking.cc: In member function ‘void ORB_SLAM3::Tracking::Track()’:/media/chengq/soft/Dev_soft/Slam3/ORB_SLAM3/src/Tracking.cc:2167:96: warning: comparison of integer expressions of different signedness: ‘long unsigned int’ and ‘int’ [-Wsign-compare]2167 | if((mCurrentFrame.mnId<(mnLastRelocFrameId+mnFramesToResetIMU)) && (mCurrentFrame.mnId > mnFramesToResetIMU) &&| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~/media/chengq/soft/Dev_soft/Slam3/ORB_SLAM3/src/Tracking.cc: In member function ‘void ORB_SLAM3::Tracking::SearchLocalPoints()’:/media/chengq/soft/Dev_soft/Slam3/ORB_SLAM3/src/Tracking.cc:3413:13: warning: unused variable ‘matches’ [-Wunused-variable]3413 | int matches = matcher.SearchByProjection(mCurrentFrame, mvpLocalMapPoints, th, mpLocalMapper->mbFarPoints, mpLocalMapper->mThFarPoints);| ^~~~~~~/media/chengq/soft/Dev_soft/Slam3/ORB_SLAM3/src/Tracking.cc: In member function ‘void ORB_SLAM3::Tracking::UpdateFrameIMU(float, const ORB_SLAM3::IMU::Bias&, ORB_SLAM3::KeyFrame*)’:/media/chengq/soft/Dev_soft/Slam3/ORB_SLAM3/src/Tracking.cc:3983:18: warning: unused variable ‘index’ [-Wunused-variable]3983 | unsigned int index = mnFirstFrameId;| ^~~~~make[2]: *** [CMakeFiles/ORB_SLAM3.dir/build.make:76:CMakeFiles/ORB_SLAM3.dir/src/System.cc.o] 错误 1make[2]: *** 正在等待未完成的任务....make[2]: *** [CMakeFiles/ORB_SLAM3.dir/build.make:104:CMakeFiles/ORB_SLAM3.dir/src/LocalMapping.cc.o] 错误 1make[2]: *** [CMakeFiles/ORB_SLAM3.dir/build.make:118:CMakeFiles/ORB_SLAM3.dir/src/LoopClosing.cc.o] 错误 1make[2]: *** [CMakeFiles/ORB_SLAM3.dir/build.make:90:CMakeFiles/ORB_SLAM3.dir/src/Tracking.cc.o] 错误 1make[1]: *** [CMakeFiles/Makefile2:148:CMakeFiles/ORB_SLAM3.dir/all] 错误 2make: *** [Makefile:91:all] 错误 2
解决:
原因分析:
ORB-SLAM3 是一个相对较早的项目,主要基于 C++11 标准编写。在较新的 Ubuntu 版本(如 20.04 或 22.04)中,默认的 GCC/G++ 编译器版本比较高(通常是 GCC 9+ 或 GCC 11+),这些新版本的编译器默认使用的是 C++14 或 C++17 标准,并且对 C++语法和标准库的使用要求更严格。这常常会导致一些在 C++11 下没问题,但在 C++14/17 下会报错(或被视为错误)的代码。这是 ORB-SLAM3 在新系统上编译时非常常见的问题。
解决方案:
最常见的解决办法是告诉 CMake 在编译 ORB-SLAM3 时使用 C++11 标准进行编译。
-
修改
CMakeLists.txt文件:- 进入 ORB_SLAM3 的根目录:
cd /media/chengq/soft/Dev_soft/Slam3/ORB_SLAM3(根据你的实际路径) - 打开根目录下的
CMakeLists.txt文件进行编辑(可以使用gedit,nano,vim等编辑器): Bashgedit CMakeLists.txt # 或者 nano CMakeLists.txt - 在文件的开头部分,通常在
cmake_minimum_required(...)后面,添加或找到并修改以下行: CMake
如果已经有set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON)set(CMAKE_CXX_STANDARD ...)的行,确保它被设置为11。如果这两行不存在,就直接添加到文件开头合适的位置(比如在project(...)之前或之后)。
- 进入 ORB_SLAM3 的根目录:
-
清理之前的构建文件:
- 由于 CMake 会缓存配置,在修改
CMakeLists.txt后,需要清理之前失败的构建尝试生成的文件。进入build目录并删除所有内容: Bashcd build rm -rf * cd .. # 回到ORB_SLAM3根目录 - 或者直接删除并重新创建
build目录: Bashrm -rf build mkdir build - 重要提示: ORB-SLAM3 的
./build.sh脚本理论上应该处理 CMake 的配置和构建,但手动清理build目录能确保 CMake 从头开始配置,读取你修改后的CMakeLists.txt。
- 由于 CMake 会缓存配置,在修改
-
重新运行编译脚本:
- 回到 ORB_SLAM3 的根目录,再次执行编译脚本: Bash
./build.sh
- 回到 ORB_SLAM3 的根目录,再次执行编译脚本: Bash
三、准备数据集与配置文件
1. 下载示例数据集
-
TUM RGB-D 数据集(用于 RGB-D 相机示例):
从 TUM RGB-D 数据集 下载序列(如fr1/xyz),解压后记录路径(如~/datasets/tum/fr1/xyz)。 -
EuRoC 数据集(用于立体 / 惯性示例):
从 EuRoC 数据集 下载 ASL 格式序列,解压后修改euroc_examples.sh中的数据集路径。
2. 配置文件说明
- 词汇表:已包含在
Vocabulary/ORBvoc.txt(无需额外下载)。 - 相机参数文件:
- RGB-D 示例:
Examples/RGB-D/TUM1.yaml(根据数据集修改分辨率、畸变参数)。 - 立体 / 惯性示例:
Examples/Stereo-Inertial/EuRoC.yaml(包含 IMU 参数和相机内参)。
- RGB-D 示例:
四、运行示例程序
1. 运行 RGB-D 相机示例(以 TUM fr1/xyz 为例)
bash
# 格式:./Examples/RGB-D/rgbd_tum 词汇表路径 配置文件路径 图像路径 关联文件路径
./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml ~/datasets/tum/fr1/xyz ~/datasets/tum/fr1/xyz/associations.txt
- 输出:Pangolin 窗口显示实时地图,终端输出轨迹信息,结果保存在
CameraTrajectory.txt。
2. 运行立体惯性示例(EuRoC 数据集)
bash
# 格式:./Examples/Stereo-Inertial/stereo_inertial_euroc 词汇表路径 配置文件路径 数据集路径
./Examples/Stereo-Inertial/stereo_inertial_euroc Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/EuRoC.yaml ~/datasets/euroc/V1_02_medium
3. 运行 ROS 节点(以单目为例)
bash
# 1. 设置ROS包路径(需先编辑~/.bashrc,添加以下行并source)
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/path/to/ORB_SLAM3/Examples/ROS# 2. 运行节点(格式:rosrun ORB_SLAM3 Mono 词汇表路径 配置文件路径)
rosrun ORB_SLAM3 Mono Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml
五、常见问题与解决方案
1. 编译错误:第三方库未找到
- 原因:
Thirdparty目录下的库(如 g2o)编译失败。 - 解决:手动编译第三方库:
bash
cd Thirdparty/g2o mkdir build && cd build cmake .. -DG2O_USE_CSPARSE=ON make -j$(nproc) cd ../../../
2. OpenCV 版本冲突(如 4.x 兼容性问题)
- 报错:
undefined reference to cv::imread。 - 解决:修改代码中 OpenCV 函数(如
cv::IMREAD_COLOR替换为cv::ImreadModes::IMREAD_COLOR),或确保 CMake 正确链接系统 OpenCV 路径。
3. Pangolin 窗口无法显示
- 原因:OpenGL 依赖缺失或版本不兼容。
- 解决:安装 OpenGL 开发库:
bash
sudo apt install libglew-dev libglfw3-dev
4. ROS 话题映射错误
- 原因:话题名称不匹配(如
/camera/image_raw应为/image_raw)。 - 解决:修改 ROS 节点订阅的话题名称,或使用
rosbag play重映射话题:bash
rosbag play --remap /cam0/image_raw:=/image_raw dataset.bag
六、项目结构与扩展
- 核心代码:
src/和include/包含 SLAM 系统核心逻辑(跟踪、建图、回环检测)。 - 示例程序:
Examples/目录按传感器类型分类(RGB-D、立体、惯性等),可参考示例编写自定义相机接口。 - 配置文件:
Examples/下的.yaml文件定义相机内参、IMU 参数等,需根据实际传感器校准结果修改(参考Calibration_Tutorial.pdf)。
七、验证安装成功
- 运行示例后,Pangolin 窗口应显示 3D 地图和相机轨迹。
- 终端输出关键帧信息、跟踪状态(
OK/LOST)及统计数据。 - 生成的轨迹文件(如
CameraTrajectory.txt)可通过工具(如 Evince)查看或与真值对比。
按照以上步骤操作,即可在本地成功部署运行 ORB-SLAM3。如需自定义传感器(如鱼眼相机、自定义 IMU),需根据Calibration_Tutorial.pdf校准参数并修改配置文件,编译对应的示例程序。
相关文章:
如何Ubuntu 22.04.5 LTS 64 位 操作系统部署运行SLAM3! 详细流程
以下是在本地部署运行 ORB-SLAM3 的详细步骤,基于官方 README.md 和最佳实践整理,适用于 Ubuntu 16.04/18.04/20.04/22.04 系统: 一、系统要求与依赖项安装 1. 基础系统要求 操作系统:Ubuntu 16.04/18.04/20.04/22.04ÿ…...
LLMs可在2位精度下保持高准确率
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
爆改 toxml 组件 支持数据双向绑定 解决数据刷新问题
GGGGGGGGGGGGGGGGGithub地址自行研究 sbfkcel/towxml: 微信小程序HTML、Markdown渲染库https://github.com/sbfkcel/towxml原组件是以导入数据渲染信息为目的、本文以AI数据返回小程序为模拟效果演示 默认情况只在ready 环节进行渲染静态资源 1、对传入数据容器的位置做处理 …...
Unreal如何使用后处理材质实现一个黑屏渐变效果
文章目录 前言相机后期处理材质创建材质相机设置动态修改FadeAlpha参数使用示例最后前言 UE5 开发VR ,如何通过PostProcess轻松实现黑屏渐变效果 最简单的办法,其实是使用一个半球形模型,遮挡住相机,然后控制这个半球形遮罩的颜色透明度,至少Unity中默认的Tunneling是这么…...
施磊老师基于muduo网络库的集群聊天服务器(四)
文章目录 实现登录业务登录业务代码补全数据库接口:查询,更新状态注意学习一下里面用到的数据库api测试与问题**问题1:****问题2:** 用户连接信息与线程安全聊天服务器是长连接服务器如何找到用户B的连接?在业务层存储用户的连接信息多线程安全问题加锁! 处理客户端…...
Java多线程编程初阶指南
目录 一.线程基础概念 线程是什么? 线程与进程对比 为啥要有线程 二.线程实现方式 继承Thread类 实现Runnable接口 常规实现方式 匿名内部类写法 Lambda表达式写法(Java8) 对比总结 三.Thread 类及常见方法 核心功能 核心构造方…...
DB-GPT支持mcp协议配置说明
简介 在 DB-GPT 中使用 MCP(Model Context Protocol)协议,主要通过配置 MCP 服务器和智能体协作实现外部工具集成与数据交互。 开启mcp服务,这里以网页抓取为例 npx -y supergateway --stdio "uvx mcp-server-fetch" …...
CoT-Drive:利用 LLM 和思维链提示实现自动驾驶的高效运动预测
25年3月来自澳门大学和 MIT 的论文“CoT-Drive: Efficient Motion Forecasting for Autonomous Driving with LLMs and Chain-of-Thought Prompting”。 准确的运动预测对于安全的自动驾驶 (AD) 至关重要。本研究提出 CoT-Drive,这是一种利用大语言模型 (LLM) 和思…...
Flowable7.x学习笔记(十)分页查询已部署 BPMN XML 流程
前言 上一篇文章我们已经完成了流程的部署功能,那么下一步就是要激活流程了,但是我们要需要明确的指定具体要激活部署后的哪一条流程,所以我们先把已部署的基础信息以及具体定义信息分页查询出来,本文先把基础代码生成以及完成分页…...
【仓颉 + 鸿蒙 + AI Agent】CangjieMagic框架(15):NaiveExecutor
CangjieMagic框架:使用华为仓颉编程语言编写,专门用于开发AI Agent,支持鸿蒙、Windows、macOS、Linux等系统。 这篇文章剖析一下 CangjieMagic 框架中的 NaiveExecutor。 1 NaiveExecutor是什么? #mermaid-svg-u9WgSijieH1Pk0xU…...
Office文档图片批量提取工具
Office.Files.Images 是一款专注于从 Word、Excel、PPT 等 Office 文档中批量提取图片的轻量级工具,支持 .docx、.xlsx、.pptx 格式文件。该软件体积仅 343KB,无需安装即可运行,通过拖拽操作实现快速解析与导出,尤其适合需批量…...
33-公交车司机管理系统
技术: 基于 B/S 架构 SpringBootMySQLvueelementui 环境: Idea mysql maven jdk1.8 node 用户端功能 1.首页:展示车辆信息及车辆位置和线路信息 2.模块:车辆信息及车辆位置和线路信息 3.公告、论坛 4.在线留言 5.个人中心:修改个人信息 司机端功能…...
PyCharm 初级教程:从安装到第一个 Python 项目
作为 Python 程序员,无论是刚入门还是工作多年,PyCharm 都是一个绕不开的开发工具。它是 JetBrains 出品的一款强大的 Python IDE,有自动补全、调试、虚拟环境支持、代码检查等等功能,体验比命令行 记事本舒服一百倍。 今天这篇…...
文件上传漏洞3
1. 例题:文件上传限制 1)上传漏洞靶场介绍 项目名称: upload-labs开发语言: 使用PHP语言编写功能定位: 专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场关卡数量: 目前共21关,每关包含不同上传方式注意事项: 每关没有固定通关方法,不要自限…...
QML FontDialog:使用FontDialog实现字体选择功能
目录 引言相关阅读FontDialog基本介绍字体属性 实例演示项目结构代码实现Main.qmlmain.cpp 代码解析运行效果 总结 引言 在桌面应用程序开发中,字体选择是一个常见的需求。Qt Quick提供了FontDialog组件来实现这一功能。本文将介绍如何在Qt Quick应用程序中使用Fon…...
力扣刷题Day 27:环形链表(141)
1.题目描述 2.思路 创建一个结点集合,遍历链表,如果遇到已经加进集合的结点就说明链表有环。 3.代码(Python3) class Solution:def hasCycle(self, head: Optional[ListNode]) -> bool:node headnode_set set()while node…...
1.1软考系统架构设计师:系统架构的定义与作用 - 超简记忆要点、知识体系全解、考点深度解析、真题训练附答案及解析
超简记忆要点 定义:结构决策 | 抽象概念 | 多视图模型(逻辑/物理/动态)作用:解耦复杂需求 | 集成扩展 | 指导开发(蓝图)要素:构件(原子/复合) | 连接件(API/…...
研发效率破局之道阅读总结(3)工程优化
研发效率破局之道阅读总结(3)工程优化 Author: Once Day Date: 2025年4月22日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: 程序的艺术_Once-Day…...
metasploit(2)生成dll木马
声明!本文章所有的工具分享仅仅只是供大家学习交流为主,切勿用于非法用途,如有任何触犯法律的行为,均与本人及团队无关!!! 一、dll文件基本概念 DLL 是一种包含可由多个程序同时使用的代码和数…...
数据结构--并查集-高效处理连通性问题
目录 一、理论基础 (1)并查集的功能及实现原理 (2)代码模版 (3)模拟过程 (4)应用 二、基础题练习 (1)寻找存在的路径(模版题) …...
PLOG安装
Plog可以通过以下命令安装 cd ~ && git clone https://github.com/SergiusTheBest/plog.gitcd plog && mkdir buildcd build && cmake ..make && sudo make installcd ~ && sudo rm -rf ./plog若无法科学上网,可使用git cl…...
LeetCode 热题 100_分割等和子集(89_416_中等_C++)(动态规划)
LeetCode 热题 100_分割等和子集(89_416) 题目描述:输入输出样例:题解:解题思路:思路一(动态规划): 代码实现代码实现(思路一(动态规划࿰…...
WPS Office安卓版云文档同步速度与PDF转换体验测评
WPS Office安卓版是很多人常用的移动办公软件。它支持在线编辑、文档同步、格式转换等功能,适合手机和平板用户随时处理文档。我们用它配合谷歌浏览器打开网页文档时,也可以将内容快速保存到云端或转换成PDF格式使用。 先说云文档同步。在打开WPS Office…...
Eureka、LoadBalance和Nacos
Eureka、LoadBalance和Nacos 一.Eureka引入1.注册中心2.CAP理论3.常见的注册中心 二.Eureka介绍1.搭建Eureka Server 注册中心2.搭建服务注册3.服务发现 三.负载均衡LoadBalance1.问题引入2.服务端负载均衡3.客户端负载均衡4.Spring Cloud LoadBalancer1).快速上手2)负载均衡策…...
【Linux网络】构建基于UDP的简单聊天室系统
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
【每天一个知识点】大模型的幻觉问题
“大模型的幻觉问题”是指大语言模型(如GPT系列、BERT衍生模型等)在生成内容时,产生不符合事实或逻辑的虚假信息,即所谓的“幻觉”(hallucination)。这在诸如问答、摘要、翻译、代码生成等任务中尤其常见。…...
机器学习06-RNN
RNN(循环神经网络)学习笔记 一、RNN 概述 循环神经网络(Recurrent Neural Network,RNN)是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神…...
[大模型]什么是function calling?
什么是function calling? 大模型的 Function Calling(函数调用)是一种让大语言模型(如 GPT、Claude 等)与外部工具、API 或自定义函数交互的机制。 它的核心目的是让模型能够根据用户的需求,…...
C语言高频面试题——嵌入式系统中中断服务程序
在嵌入式系统中,中断服务程序(ISR)的设计需遵循严格的规则以确保系统稳定性和实时性。以下是对这段代码的分析及改进建议: 代码分析 __interrupt double compute_area (double radius) { double area PI * radius * radius; pri…...
Java高频面试之并发编程-05
hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:线程有哪些调度方法? 在Java中,线程的调用方法主要包括以下几种方式,每种方式适用于…...
