ORB-SLAM2_RGBD_DENSE_MAP编译、问题解决、离线加载TUM数据和在线加载D435i相机数据生成稠密地图

文章目录

  • 0 引言
  • 1 安装依赖
    • 1.1 其他库安装
    • 1.2 pcl库安装
  • 2 编译ORB-SLAM2_RGBD_DENSE_MAP
    • 2.1 build.sh
    • 2.2 build_ros.sh
  • 3 运行ORB-SLAM2_RGBD_DENSE_MAP
    • 3.1 build.sh编译版本
    • 3.2 build_ros.sh编译版本

0 引言

ORB-SLAM2_RGBD_DENSE_MAP是基于ORB-SLAM2框架的一种RGB-D稠密地图构建算法。ORB-SLAM2是一种基于单目、双目和RGB-D相机的实时定位与建图(SLAM)系统,旨在通过计算机视觉技术实现机器人和自主驾驶汽车等设备的自主定位和地图构建。

ORB-SLAM2_RGBD_DENSE_MAP的主要思想是结合ORB-SLAM2框架的稠密重建算法和体素网格(Voxel Grid)滤波器,对RGB-D相机采集到的图像数据进行处理,从而得到一个稠密的3D点云表示,进而构建出稠密的地图。该算法通过对相邻帧之间的视差图进行计算,利用三角测量法估计相机到场景中每个像素的深度值,并通过体素网格滤波器对深度图进行降采样,从而减少计算量和存储空间。最终,该算法可以生成一个具有高精度和高分辨率的稠密地图。

ORB-SLAM2_RGBD_DENSE_MAP算法的优点是具有较高的重建精度和鲁棒性,在各种环境和光照条件下均表现良好。然而,由于该算法需要进行大量的计算和存储,因此它的实时性运行效率可能受到一定的影响。

本文系统环境:

  • Ubuntu18.04
  • ROS-melodic
  • OpenCV3.2.0
  • Eigen 3.3.4
  • Pangolin-0.6
  • PCL 1.8.1
  • realsense-ros (若用硬件D435i)

1 安装依赖

1.1 其他库安装

ORB-SLAM2算法1已针对Ubuntu20.04安装ORB-SLAM2所需的依赖库,安装 OpenCVEigenPangolin 可以参考下。

1.2 pcl库安装

ORB-SLAM2_RGBD_DENSE_MAP 因为是稠密建图,还需要安装pcl1.7以上版本,本文是安装了pcl1.8大版本,可先下载 pcl 1.8.1 版本(点击Source code(zip)

先安装pcl1.8.1所需的依赖库:

sudo apt-get update  
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common 
sudo apt-get install libflann1.9 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk7.1-qt libvtk7.1
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install openjdk-8-jdk openjdk-8-jre

然后解压下载的pcl1.8.1源码,并进入到pcl1.8.1文件夹中

mkdir build
cd build
cmake ..
make -j4
sudo make install

测试pcl是否安装成功的话,可用pcl_viewer xxx.pcd;如果没有pcd文件,可去点云库PCL(Point Cloud Library)的学习资源汇总下载rabbit.pcd

pcl_viewer rabbit.pcd

请添加图片描述

2 编译ORB-SLAM2_RGBD_DENSE_MAP

编译类似ORB-SLAM2的安装,但可能会出现不一样的问题。首先下载ORB-SLAM2_RGBD_DENSE_MAP

git clone https://github.com/xiaobainixi/ORB-SLAM2_RGBD_DENSE_MAP.git

由于安装的是pcl1.8,首先将CMakeLists.txtfind_package( PCL 1.7 REQUIRED )改成了find_package( PCL 1.8 REQUIRED )

2.1 build.sh

# 下载的ORB-SLAM2_RGBD_DENSE_MAP工程目录下
chmod +x build.sh
./build.sh

tips: ./build.sh > build_log.txt 2>&1 可打印整个编译log到文件

  1. 编译问题1
make: *** [all] Error 1
Converting vocabulary to binary
./build.sh: line 30: ./tools/bin_vocabulary: Permission denied

原因是./tools/bin_vocabulary 词袋文件没有执行权限,如下给其权限

# ORB-SLAM2_RGBD_DENSE_MAP 目录下执行
sudo chmod +x tools/bin_vocabulary
  1. 编译问题2
../Thirdparty/DBoW2/lib/libDBoW2.so: undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)'
collect2: error: ld returned 1 exit status
CMakeFiles/rgbd_tum.dir/build.make:391: recipe for target '../bin/rgbd_tum' failed
make[2]: *** [../bin/rgbd_tum] Error 1
CMakeFiles/Makefile2:124: recipe for target 'CMakeFiles/rgbd_tum.dir/all' failed
make[1]: *** [CMakeFiles/rgbd_tum.dir/all] Error 2
Makefile:90: recipe for target 'all' failed
make: *** [all] Error 2
Converting vocabulary to binary
./tools/bin_vocabulary: error while loading shared libraries: libopencv_core3.so.3.3: cannot open shared object file: No such file or directory

Error1一开始以为OpenCV的问题,但后来排查到我这个是由于之前尝试编译时,第三方库DBoW2g2o没有完全编译,删除两个第三方库中的build文件夹,重新编译即可。

Error2tools中的bin_vocabulary词袋找不到libopencv_core3.so.3.3,而且ORB-SLAM2_RGBD_DENSE_MAPlib也没有该版本的opencv动态链接库,而本文系统安装的是OpenCV 3.2.0,版本也不符合,所以临时解决办法是不用bin_vocabulary词袋可执行文件,改用ORB-SLAM2工程中的词袋文件ORBvoc.txt

# 首先注释掉 build.sh 中的bin_vocabulary部分
# 最后几行注释掉# cd ..
# echo "Converting vocabulary to binary"
# ./tools/bin_vocabulary

最后复制ORB-SLAM2中的词袋文件夹VocabularyORB-SLAM2_RGBD_DENSE_MAP工程目录下。

重新编译,即可编译成功

/usr/include/eigen3/Eigen/src/Core/util/Constants.h:162:37: note: declared hereEIGEN_DEPRECATED const unsigned int AlignedBit = 0x80;^~~~~~~~~~
[ 94%] Linking CXX executable ../bin/mono_tum
[ 97%] Linking CXX executable ../bin/mono_kitti
[100%] Linking CXX executable ../bin/mono_euroc
[100%] Built target mono_tum
[100%] Built target mono_kitti
[100%] Built target mono_euroc

2.2 build_ros.sh

首先添加该工程到ROS_PACKAGE_PATH

gedit ~/.bashrc
# 最后一行新增,其中冒号后的PATH是自己ORB-SLAM2_RGBD_DENSE_MAP工程存放目录
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB-SLAM2_RGBD_DENSE_MAP/Examples/ROS
# 保存后source
source ~/.bashrc

然后执行如下命令进行编译

# 下载的ORB-SLAM2_RGBD_DENSE_MAP工程目录下
chmod +x build_ros.sh
./build_ros.sh

3 运行ORB-SLAM2_RGBD_DENSE_MAP

3.1 build.sh编译版本

由于用到rgbdepth图,所以参考ORB-SLAM2算法2下载TUMrgbd_dataset_freiburg1_desk数据集,准备好数据集后,可执行以下命令,其中PATHrgbd_dataset_freiburg1_desk文件夹的存放目录

# 下载的ORB-SLAM2_RGBD_DENSE_MAP工程目录下
./bin/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml PATH/rgbd_dataset_freiburg1_desk PATH/rgbd_dataset_freiburg1_desk/associations.txt
  1. 运行问题1
Depth Threshold (Close/Far Points): 3.09294-------
Start processing sequence ...
Images in the sequence: 573New map created with 945 points
Segmentation fault (core dumped)

这种 段错误(核心已转储)的问题本文暂未完全解决(如有,欢迎分享交流),先用以下的临时解决办法(该问题仍会偶发):

  1. CMakeLists.txtThirdparty/g2o/CMakeLists.txt中删除-march=native
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O3 -march=native ")
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O3 -march=native")set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O3")
  1. 在有定义Eigen的头文件中添加预编译命令EIGEN_MAKE_ALIGNED_OPERATOR_NEW ,分别是include路径下Converter.h、LoopClosing.h、PointCloude.h这三个文件
    Converter.h
class Converter
{public:# 添加预编译命令EIGEN_MAKE_ALIGNED_OPERATOR_NEWstatic std::vector<cv::Mat> toDescriptorVector(const cv::Mat &Descriptors);static g2o::SE3Quat toSE3Quat(const cv::Mat &cvT);static g2o::SE3Quat toSE3Quat(const g2o::Sim3 &gSim3);

LoopClosing.h(两次修改,第一个public中添加,第二个public中的注释掉)

class LoopClosing
{public:# 添加预编译命令EIGEN_MAKE_ALIGNED_OPERATOR_NEWtypedef pair<set<KeyFrame*>,int> ConsistentGroup;typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,Eigen::aligned_allocator<std::pair<const KeyFrame*, g2o::Sim3> > > KeyFrameAndPose;public:LoopClosing(Map* pMap, KeyFrameDatabase* pDB, ORBVocabulary* pVoc,const bool bFixScale, shared_ptr<PointCloudMapping> pPointCloud);void SetTracker(Tracking* pTracker);void SetLocalMapper(LocalMapping* pLocalMapper);// Main functionvoid Run();void InsertKeyFrame(KeyFrame *pKF);void RequestReset();// This function will run in a separate threadvoid RunGlobalBundleAdjustment(unsigned long nLoopKF);shared_ptr<PointCloudMapping> mpPointCloudMapping;bool isRunningGBA(){unique_lock<std::mutex> lock(mMutexGBA);return mbRunningGBA;}bool isFinishedGBA(){unique_lock<std::mutex> lock(mMutexGBA);return mbFinishedGBA;}void RequestFinish();bool isFinished();# 注释掉预编译命令// EIGEN_MAKE_ALIGNED_OPERATOR_NEWint loopcount = 0;

PointCloude.h

class PointCloude
{typedef pcl::PointXYZRGBA PointT;typedef pcl::PointCloud<PointT> PointCloud;
public:PointCloud::Ptr pcE;
public:# 添加预编译命令EIGEN_MAKE_ALIGNED_OPERATOR_NEWEigen::Isometry3d T;int pcID;
  1. 运行问题2
viewer视图中没有点云,只有坐标系

改动include文件夹中的 pointcloudmapping.h头文件

# bool loopbusy;
bool loopbusy = false;
  1. 运行问题3
    确认TUM1.yaml文件里有没有点云地图的参数,如果没有,就把以下几行加在最后面
PointCloudMapping.Resolution: 0.01
meank: 50
thresh: 2.0

重新执行./build.sh,编译完成后,重新执行:

# 下载的ORB-SLAM2_RGBD_DENSE_MAP工程目录下
./bin/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml PATH/rgbd_dataset_freiburg1_desk PATH/rgbd_dataset_freiburg1_desk/associations.txt

运行结果:

median tracking time: 0.0200984
mean tracking time: 0.0206714Saving camera trajectory to CameraTrajectory1.txt ...trajectory saved!Saving keyframe trajectory to CameraTrajectory2.txt ...trajectory saved!
globalMap save finished

Current Frame 关键帧可视化界面:

请添加图片描述
Map Viewer 轨迹地图可视化界面:

请添加图片描述
viewer 稠密地图可视化界面:

请添加图片描述
保存的稠密地图文件result.pcd可用已安装的pcl打开:
pcl_viewer result.pcd

请添加图片描述

至此,成功用TUM数据包运行非ROS版本的ORB-SLAM2_RGBD_DENSE_MAP,并可视化生成的稠密地图。

3.2 build_ros.sh编译版本

本文这里就不用TUM的开源数据测试了,因为恰好有D435i相机可以实时发出深度图和rgb图来测试(录制的一小段数据ORB-SLAM2-RGBD-DENSE-MAP-data.tar),所以以下就是以此为例。

默认已经安装realsense-ros的相机驱动,首先是相机启动文件(rs_camera.launch)的配置,保证发出与rgb图对齐的深度图:false修改成true

  <arg name="enable_depth"        default="true"/>

然后插上D435i相机后(USB3.0),新开终端启动D435i相机:

# source 激活realsense-ros的相机驱动后执行
roslaunch realsense2_camera rs_camera.launch

启动后,通过rostopic list可查的所需的rgb图和对齐的深度图的topic

# 与rgb图对齐的深度图
/camera/aligned_depth_to_color/image_raw
# rgb图
/camera/color/image_raw

然后修改代码中的两个topic,在ORB-SLAM2_RGBD_DENSE_MAP/Examples/ROS/ORB_SLAM21/src/ros_rgbd.cc文件中修改:

    // message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/kinect2/qhd/image_color_rect", 1);// message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "/kinect2/qhd/image_depth_rect", 1);message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/camera/color/image_raw", 1);message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "/camera/aligned_depth_to_color/image_raw", 1);

当然,还有对应的配置文件,在ORB-SLAM2_RGBD_DENSE_MAP/Examples/ROS/ORB_SLAM21/目录下新建配置文件d435i.yaml,主要是fx, fy, cx, cy、分辨率,帧率,baseline等要修改成所用的D435i相机对应的,好在D435i相机发出的rgb图已经是去畸变的,而且给出了内参,可通过rostopic echo /camera/color/camera_info命令查询,具体如下:

查询结果:其中K即是所需的内参

header: seq: 0stamp: secs: 1691576284nsecs: 247732162frame_id: "camera_color_optical_frame"
height: 540
width: 960
distortion_model: "plumb_bob"
D: [0.0, 0.0, 0.0, 0.0, 0.0]
K: [682.6236572265625, 0.0, 490.54339599609375, 0.0, 682.521240234375, 275.81976318359375, 0.0, 0.0, 
1.0]
R: [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
P: [682.6236572265625, 0.0, 490.54339599609375, 0.0, 0.0, 682.521240234375, 275.81976318359375, 0.0, 
0.0, 0.0, 1.0, 0.0]

d435i.yaml配置文件信息:

%YAML:1.0#--------------------------------------------------------------------------------------------
# Camera Parameters. Adjust them!
#--------------------------------------------------------------------------------------------# Camera calibration and distortion parameters (OpenCV) 
Camera.fx: 682.6236572265625
Camera.fy: 682.521240234375
Camera.cx: 490.54339599609375
Camera.cy: 275.81976318359375Camera.k1: 0.0
Camera.k2: 0.0
Camera.p1: 0.0
Camera.p2: 0.0
Camera.p3: 0.0Camera.width: 960
Camera.height: 540
# Camera frames per second 
Camera.fps: 15.0# IR projector baseline times fx (aprox.)
# bf = baseline (in meters) * fx, D435i的 baseline = 50 mm 
Camera.bf: 50.0# Color order of the images (0: BGR, 1: RGB. It is ignored if images are grayscale)
Camera.RGB: 1# Close/Far threshold. Baseline times.
ThDepth: 40.0# Deptmap values factor
DepthMapFactor: 1000.0#--------------------------------------------------------------------------------------------
# ORB Parameters
#--------------------------------------------------------------------------------------------# ORB Extractor: Number of features per image
ORBextractor.nFeatures: 1000# ORB Extractor: Scale factor between levels in the scale pyramid 	
ORBextractor.scaleFactor: 1.2# ORB Extractor: Number of levels in the scale pyramid	
ORBextractor.nLevels: 8# ORB Extractor: Fast threshold
# Image is divided in a grid. At each cell FAST are extracted imposing a minimum response.
# Firstly we impose iniThFAST. If no corners are detected we impose a lower value minThFAST
# You can lower these values if your images have low contrast			
ORBextractor.iniThFAST: 20
ORBextractor.minThFAST: 7#--------------------------------------------------------------------------------------------
# Viewer Parameters
#--------------------------------------------------------------------------------------------
Viewer.KeyFrameSize: 0.05
Viewer.KeyFrameLineWidth: 1
Viewer.GraphLineWidth: 0.9
Viewer.PointSize:2
Viewer.CameraSize: 0.08
Viewer.CameraLineWidth: 3
Viewer.ViewpointX: 0
Viewer.ViewpointY: -0.7
Viewer.ViewpointZ: -1.8
Viewer.ViewpointF: 500PointCloudMapping.Resolution: 0.01
meank: 50
thresh: 2.0

然后重新执行./build_ros.sh编译,编译成功后执行如下命令运行:

# ORB-SLAM2_RGBD_DENSE_MAP 目录下执行
rosrun ORB_SLAM21 RGBD Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM21/d435i.yaml

运行后相比原版的ORB-SLAM2多生成一个viewer的稠密建图的可视化界面:

Current Frame可视化界面:

请添加图片描述
Map Viewer可视化界面:

请添加图片描述
viewer可视化界面:

请添加图片描述
至此,成功用在线加载D435i相机发出的rgb图和对齐的深度图,运行ROS版本的ORB-SLAM2_RGBD_DENSE_MAP,并可视化生成的稠密地图。

Reference:

  1. ORB-SLAM2_RGBD_DENSE_MAP
  2. ORB-SLAM2算法1之Ubuntu20.04+ROS-noetic安装ORB-SLAM2及各种问题解决
  3. 点云库PCL(Point Cloud Library)的学习资源汇总
  4. ORB-SLAM2算法2之TUM开源数据运行ORB-SLAM2生成轨迹并用evo工具评估轨迹
  5. ORB-SLAM2-RGBD-DENSE-MAP-data.tar



须知少时凌云志,曾许人间第一流。



⭐️👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍🌔

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/78822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【视频】Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析|数据分享...

全文下载链接&#xff1a;http://tecdat.cn/?p23544 在本文中&#xff0c;长短期记忆网络——通常称为“LSTM”——是一种特殊的RNN递归神经网络&#xff0c;能够学习长期依赖关系&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 本文使用降雨量数据&#xf…

基于FPGA的图像sobel锐化实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 将FPGA的仿真结果导入到matlab显示图像效果 2.算法运行软件版本 MATLAB2022a,vivado2019.2 3.部分核心程序 .................................…

EMANE中olsrd的调试

1 调试目的 本着学习的态度&#xff0c;对emane tutorial中的示例程序进行重现&#xff0c;以加深对EMANE的理解和掌握。在示例程序0(见https://github.com/adjacentlink/emane-tutorial/wiki/Demonstration-0)中介绍了使用olsrlinkview.py脚本来通过可视化界面观察olsr节点的链…

基于Python的UG二次开发入门

文章目录 基于Python的UG二次开发入门1 二次开发环境搭建1.1 安装UG1.2 安装Pycharm1.3 环境配置1.4 测试 2 NX Open介绍2.1 基础架构2.1.1 Sessions and Parts2.1.2 Objects and Tags2.1.3 Factory Objects&#xff08;工厂对象&#xff09;2.1.4 Builder Objects&#xff08;…

9.14号作业

仿照vector手动实现自己的myVector&#xff0c;最主要实现二倍扩容功能 有些功能&#xff0c;不会 #include <iostream>using namespace std; //创建vector类 class Vector { private:int *data;int size;int capacity; public://无参构造Vector(){}//拷贝构造Vector(c…

【绝㊙️】三年开发内功心得

经典嵌套if-else问题 这个也是老生常谈问题了&#xff0c;不管哪里都能看到。 那如何解决 方法一&#xff08;重要&#xff09;&#xff1a; 如果逻辑分支过多&#xff0c; 即使你不解决嵌套if-slse&#xff0c;至少也要把每个 if的{}里的逻辑抽到一个独立的方法或者工具类…

微信小程序的疫苗接种预约设计与实现vue+uniapp

对于本小程序的疫苗预约的设计来说&#xff0c;系统开发主要是采用java语言&#xff0c;在整个系统的设计中应用MySql数据库来完成数据存储&#xff0c;具体根据疫苗预约信息的现状来进行开发的&#xff0c;具体根据现实的需求来实现疫苗预约网络化的管理&#xff0c;各类信息有…

uniapp中video播放视频上按钮没显示的问题

video标签层级很高&#xff0c;尝试了添加z-index&#xff0c;但无效果 通过查阅资料&#xff0c;得知cover-view层级比video层级高 效果图 需求是为了使直播时&#xff0c;可选是原画/流畅 解决方案 首先&#xff0c;在pages.json中配置右上角的图标 {"path" : …

YOLOv5:修改backbone为ConvNeXt

YOLOv5&#xff1a;修改backbone为ConvNeXt 前言前提条件相关介绍ConvNeXtYOLOv5修改backbone为ConvNeXt修改common.py修改yolo.py修改yolov5.yaml配置 参考 前言 记录在YOLOv5修改backbone操作&#xff0c;方便自己查阅。由于本人水平有限&#xff0c;难免出现错漏&#xff0c…

TCP/IP传输协议学习

了解完整的通信过程 1.发送方源终端设备的应用创建数据。 2.当数据在源终端设备中沿协议栈向下传递&#xff0c;对其分段和封装。 3.在协议栈网络接入层的介质上生成数据。 4.通过由介质和任意中间设备组成的网际层网络传输数据。 5.在目的终端设备中沿协议栈向上传递时对其…

微信小程序线上加载使用iconfont问题

1.在微信小程序根目录下创建style文件夹&#xff0c;里面再创建iconfont文件夹&#xff0c;用于放置iconfont图标文件和iconfont样式文件 2.给iconfont.wxss写样式&#xff08;也可以下载iconfont代码&#xff0c;拷贝iconfont.css里的代码复制进去&#xff09; font-face {fo…

Ecrett Music:AI音乐创作软件

【产品介绍】 Ecrett Music是一个由人工智能驱动的AI音乐创作软件&#xff0c;可以帮助内容创作者快速、简单、便宜地制作出适合自己的无版权音乐。无论你是做游戏、视频、播客还是其他类型的内容&#xff0c;都可以在Ecrett Music上选择场景、情绪或风格&#xff0c;然后点击一…

kali安装volatility及插件mimikatz

1.准备工作 kali安装pip2 wget https://bootstrap.pypa.io/pip/2.7/get-pip.py python2 get-pip.py 查看pip2版本 python2 -m pip -v pip2安装升级 pip2 install --upgrade setuptools 安装2个库 pip2 install construct2.10.54 pip2 install pycryptodome 下载文件d…

Kubernetes入门 十七、Helm 包管理器

目录 概述Helm 的三大概念Helm 的安装仓库管理Helm 的常用命令 chart详解目录结构Redis chart 实践升级回滚 概述 Kubernetes 上的应用对象&#xff0c;都是由特定的资源描述组成&#xff0c;包括 Deployment、Service 等&#xff0c;都保存在各自的文件中或者集中写在一个配置…

通过Git Bash将本地文件上传到本地github

1. 新建一个仓库&#xff08; Repository&#xff09; 1.1登录Github&#xff0c;点击个人头像&#xff0c;点击Your repositories&#xff0c;点击New。 1.2 填写信息 Repository name: 仓库名称 Description(可选): 仓库描述介绍,不是必填项目。~~建议填写上哦&#xff01;…

计算机专业毕业设计项目推荐02-个人医疗系统(Java+原生Js+Mysql)

个人医疗系统&#xff08;Java原生JsMysql&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以…

华三路由交换技术基础——计算机网络基础

计算机网络&#xff1a; 定义&#xff1a;一组具有自治权的计算机互联的集合 作用&#xff1a; 1.共享信息资源 2.分解式处理信息 4.负载均衡 5.综合信息服务 它是计算机技术与通信技术的两个领域的结合 一&#xff0c;计算机网络中的基本概念&#xff1a; 局域网&#xff…

web端动效 PAG

之前写过一篇lottie动效的文章&#xff1a;web端动效 lottie-web 使用&#xff0c;本篇写一下PAG-web的基础使用。 PAG是腾讯开发&#xff0c;支持移动端、桌面端以及Web端的动效工作流解决方案。目标是降低或消除动效相关的研发成本&#xff0c;能够一键将设计师在 AE&#x…

【深度学习】 Python 和 NumPy 系列教程(十四):Matplotlib详解:1、2d绘图(下):箱线图、热力图、面积图、等高线图、极坐标图

目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 0. 设置中文字体 1-5. 折线图、散点图、柱状图、直方图、饼图 6. 箱线图&#xff08;Box Plot&#xff09; 7. 热力图&#xff08;Heatmap&#xff09; 8. 面积图&#xff08;Area Plot&#xff09; 9. 等…

腾讯云2023年云服务器优惠活动价格表

腾讯云经常推出各种云产品优惠活动&#xff0c;为了帮助大家更好地了解腾讯云服务器的价格和优惠政策&#xff0c;下面给大家分享腾讯云最新云服务器优惠活动价格表&#xff0c;助力大家轻松上云&#xff01; 一、轻量应用服务器优惠活动价格表 1、轻量应用服务器&#xff1a;…