当前位置: 首页 > news >正文

Realsense相机驱动安装及其ROS通讯配置——机器人抓取系统系列文章(四)

文章目录

    • 概要
    • 1 Realsense相机驱动安装
      • Method1: 使用Intel服务器预编译包
      • Method2: 使用ROS服务器预编译包
      • Method3: 使用SDK源代码
      • 方法对比总结
    • 2 Realsense-ROS通讯配置与使用
      • 2.1 Realsense-ROS包安装
      • 2.2 ROS节点启动
    • 小结
    • Reference

概要

本文首先阐述了Realsense相机驱动安装的三种方法,并介绍其不同点;进一步地,介绍了其与ROS通讯包的安装及使用方法。

如果要使用ROS通讯,强烈建议读完全文再安装,因为驱动包和通讯包的版本要匹配。

1 Realsense相机驱动安装

Method1: 使用Intel服务器预编译包

安装教程见文末参考网站[2],主要使用sudo apt-get install指令安装,这种安装方式的主要特点如下:

  • 适用用户:适用于大多数 Linux 用户,特别是 Jetson 用户应遵循特定的 Jetson 安装指南。
  • 特点
    1)快速安装,
    2)无需编译。
    3)包含图形工具和示例。 需要安装额外的开发包(librealsense2-dev 和 librealsense2-dkms)以进行开发。
  • 优点:简单快捷,适合一般开发者和用户。
  • 缺点:可能不包含最新的开发特性或修复。

Method2: 使用ROS服务器预编译包

这种方式直接安装适配ROS的驱动,代码如下:

sudo apt install ros-<ROS_DISTRO>-librealsense2*
  • 适用用户:适用于使用 ROS 的开发者,特别是那些不需要图形界面工具的用户。
  • 特点
    1)专注于 ROS 集成,不包含图形工具和示例。
    2)需要配置 Ubuntu 仓库。
    3)使用特定的 ROS 发行版命令安装(如 ros-humble-librealsense2*)。
  • 优点:适合 ROS 项目,可以与 ROS 其他包和工具链无缝集成。
  • 缺点:不支持所有 ROS 发行版(如 Foxy EOL)。

Method3: 使用SDK源代码

安装教程见文末参考网站[3],使用源代码的安装方式相对步骤较多,但优点也十分明显:

  • 适用用户:高级用户、开发者或需要最新特性和修复的用户。
  • 特点
    1)需要编译,可能需要更多的系统配置。
    2)允许最大的灵活性和定制性。
    3)可以获取最新的开发特性和修复。
  • 优点:包含所有最新的特性和修复,适合需要定制或最新功能的项目。
  • 缺点:安装过程更复杂,需要更多的时间和专业知识。

方法对比总结

图形工具的角度
其中Method1和Method3提供了图形工具,图形界面工具为用户提供了一种直观的方式来操作和理解 RealSense相机的功能,而不需要直接编写代码或使用命令行界面。

图形界面的运行指令为realsense-viewer,在本文也可以用来检查驱动是否安装成功,运行后如下图所示:
Realsense图形界面工具

版本的可控性

提示:如果要使用后续的realsense-ros通讯包,则需要保证librealsense包和realsense-ros包的版本要适配,适配查询参考网站[4],在查得适配的版本号之后,在网站[4]和[1]可分别下载适配的realsense-ros包和librealsense包

如果搭建的系统需要基于ROS通讯,推荐使用源代码安装的方式Method3,这种方式不仅提供realsence相机的图形界面工具,还能够控制安装的librealsense版本号。Method1安装的librealsense版本是默认的版本,版本号不可控,而且最新版的librealsense可能找不到匹配的realsense-ros通讯包。

相反如果用户后续不需要使用ROS,比如直接使用librelasense的Python接口,那么推荐Method1的方式。

2 Realsense-ROS通讯配置与使用

2.1 Realsense-ROS包安装

在使用上述Method3安装完librealsense之后,再按照上述红色提示部分,安装与librealsense版本匹配的realsense-ros包。

以ROS2为例,其步骤如下 [5]:

1)创建一个 ROS2 工作空间

mkdir -p ~/ros2_ws/src # 创建工作空间的 src 文件夹
cd ~/ros2_ws/src # 进入 src 文件夹

2)将下载到的对应版本的realsense-ros包放置到 ~/ros2_ws/src/文件夹中,并返回工作空间

# 下载到的realsense-ros包的移动可以手动也可以用如下mv指令移动:
# mv 源文件路径 目标文件路径 # 如果是压缩包,需要先解压
cd ~/ros2_ws # 返回工作空间的根目录

3)安装依赖项

sudo apt-get install python3-rosdep -y  # 安装 rosdep
sudo rosdep init  # 初始化 rosdep
rosdep update    # 更新 rosdep
rosdep install -i --from-path src --rosdistro $ROS_DISTRO --skip-keys=librealsense2 -y  # 安装工作空间的依赖项

4)构建工作空间

colcon build  # 使用 colcon 构建工作空间

5)配置环境

ROS_DISTRO=<YOUR_SYSTEM_ROS_DISTRO>  # 设置你的 ROS 发行版,如:iron, humble, foxy
source /opt/ros/$ROS_DISTRO/setup.bash  # 源 ROS 发行版的设置脚本
cd ~/ros2_ws  # 返回工作空间的根目录
. install/local_setup.bash  # 源本地设置脚本以配置环境

注意:替换 <YOUR_SYSTEM_ROS_DISTRO> 为你的系统使用的 ROS 发行版名称。

以上是针对ROS2的配置方式,针对ROS1的配置方式参考网站[6]。

2.2 ROS节点启动

下面指令分别使用了ROS2的node和launch文件启动realsense-ros [5]。
直接运行节点

ros2 run realsense2_camera realsense2_camera_node
# or, with parameters, for example - temporal and spatial filters are enabled:
ros2 run realsense2_camera realsense2_camera_node --ros-args -p enable_color:=false -p spatial_filter.enable:=true -p temporal_filter.enable:=true

或者直接运行launch文件

ros2 launch realsense2_camera rs_launch.py
ros2 launch realsense2_camera rs_launch.py depth_module.depth_profile:=1280x720x30 pointcloud.enable:=true

以上是针对ROS2的启动方式,针对ROS1的启动方式参考网站[6]。

小结

本文首先介绍了realsense相机的驱动的三种安装方法及其特点,并在此基础上,介绍了realsense-ROS通讯包的安装和使用,供相关人员参考。主要参考官方网站如下所示。

Reference

[1] Realsense SDK源代码下载网站:https://github.com/IntelRealSense/librealsense/releases
[2] Realsense驱动安装Method1:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md
[3] Realsense驱动安装Method3:https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md
[4] Realsense-ROS通讯包查询下载网站:https://github.com/IntelRealSense/realsense-ros/releases?page=2
[5] Realsense-ROS2通讯包安装教程:https://github.com/IntelRealSense/realsense-ros
[6] Realsense-ROS1通讯包安装教程:https://github.com/IntelRealSense/realsense-ros/tree/ros1-legacy

相关文章:

Realsense相机驱动安装及其ROS通讯配置——机器人抓取系统系列文章(四)

文章目录 概要1 Realsense相机驱动安装Method1: 使用Intel服务器预编译包Method2: 使用ROS服务器预编译包Method3: 使用SDK源代码方法对比总结 2 Realsense-ROS通讯配置与使用2.1 Realsense-ROS包安装2.2 ROS节点启动 小结Reference 概要 本文首先阐述了Realsense相机驱动安装…...

conntrack iptables 安全组

centos 安装yum install conntrack-tools 1. conntrack状态 NEW: 新建连接&#xff08;第一次包&#xff09;。 ESTABLISHED: 已建立连接&#xff0c;正在传输数据。 RELATED: 与已有连接相关的连接&#xff0c;如 FTP 数据连接。 INVALID: 无效连接&#xff0c;无法识别或不…...

基于springboot+vue的 嗨玩-旅游网站

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

SQL多表联查、自定义函数(字符串分割split)、xml格式输出

记录一个报表的统计&#xff0c;大概内容如下&#xff1a; 多表联查涉及的报表有&#xff1a;房间表、买家表、合同表、交易表、费用表、修改记录表 注意&#xff1a;本项目数据库使用的是sqlserver&#xff08;mssql&#xff09;&#xff0c;非mysql。 难点1:业主信息&#…...

神经网络

“损失函数 王木头学科学-哔哩哔哩_bilibili 一、transformer和注意力机制的本质&#xff0c;以及编码和解码的结构及其与注意力机制的关系&#xff0c;帮助理解transformer的优势和应用场景。 00:01 - 介绍transformer是人工智能主流技术&#xff0c;大语言模型GBT是在其基础…...

C16.【C++ Cont】string类字符串的关系运算和与string有关的函数

目录 1.知识回顾:strcmp函数 2.六个关系运算符 示例代码1 运行结果 示例代码2 运行结果 3.stoi和stol函数 1.stoi函数 函数声明 使用说明 示例代码3 运行结果 示例代码4 运行结果 示例代码5 运行结果 示例代码6 运行结果 2.stol函数 4.stod和stof函数 1.s…...

深入剖析 Wireshark:网络协议分析的得力工具

在网络技术的广阔领域中&#xff0c;网络协议分析是保障网络正常运行、优化网络性能以及进行网络安全防护的关键环节。而 Wireshark 作为一款开源且功能强大的网络协议分析工具&#xff0c;在网络工程师、安全专家以及网络技术爱好者中广受欢迎。本文将深入介绍 Wireshark 的功…...

七大排序算法(Java,便于理解)

时间换空间排序算法 一.冒泡排序 package SortDemo;import java.util.Arrays; import java.util.Comparator; import java.util.PriorityQueue;public class BubbleSort {//冒泡排序,相邻两个数两两比较private int[]a;public void swap(int i,int j){int tempa[i];a[i]a[j];…...

洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树 c语言

题目&#xff1a; P1873 [COCI 2011/2012 #5] EKO / 砍树 - 洛谷 | 计算机科学教育新生态 题目描述 伐木工人 Mirko 需要砍 M 米长的木材。对 Mirko 来说这是很简单的工作&#xff0c;因为他有一个漂亮的新伐木机&#xff0c;可以如野火一般砍伐森林。不过&#xff0c;Mirko…...

MySQL8.0新特性

第十八章_MySQL8.0新特性 1.新特性概述 1. 数据库管理和存储 1.1 数据字典 特性: MySQL 8.0 使用统一的数据字典存储元数据&#xff08;如表、列、索引等&#xff09;&#xff0c;并将其存储在 InnoDB 表中。 优点 : 提升性能&#xff1a;减少对文件系统的依赖。 提高一致…...

Browser-Use Web UI:浏览器自动化与AI的完美结合

Browser-Use Web UI:浏览器自动化与AI的完美结合 前言简介一、克隆项目二、安装与环境配置1. Python版本要求2. 安装依赖3. 安装 Playwright4. 配置环境变量(非必要步骤)三、启动 WebUI四、配置1. Agent设置2. 大模型设置3. 浏览器相关设置4. 运行 Agent结语前言 Web UI是在…...

006-excel数据输出insert语句

一、在空白列插入&#xff0c;选择需要的列 "INSERT INTO tab_name1 (code, name) VALUES ("&A1&", "&B1&");"二、 拖动填充块&#xff0c;或者双击填充块&#xff08;可以快速填充整列&#xff09; 三、直接把生成的 insert 语…...

AI大模型如何赋能电商行业并引领变革?

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于AI大模型如何赋能电商行业并引领变革的相…...

食堂采购系统源码:基于PHP的校园食堂供应链管理平台开发全解析

传统的食堂采购管理普遍存在信息不透明、流程繁琐、效率低下等问题&#xff0c;这使得开发一款高效、智能的食堂采购系统变得尤为重要。本篇文章&#xff0c;笔者将详细解析基于PHP开发的校园食堂供应链管理平台&#xff0c;从功能设计、系统架构到技术实现&#xff0c;全方位剖…...

【2024华为OD-E卷-100分-字符串分割】(题目+思路+JavaC++Python解析)

题目 字符串分割 给定一个字符串 s 和一个整数 k&#xff0c;你需要将字符串 s 分割成恰好 k 个非空子字符串&#xff0c;使得这些子字符串中字典序最大的子字符串尽可能小。 输入&#xff1a; 第一行输入一个字符串 s&#xff08;只包含小写字母&#xff09;。第二行输入一…...

MCP Server开发的入门教程(python和pip)

使用python技术栈开发的简单mcp server 需要安装 MCP server的需要使用python-sdk,python需要 3.10,安装如下 pip install mcpPS: MCP官方使用的是uv包管理工具,我平时使用pip比较多,所以文中以pip为主。因为mcp的一些依赖包版本并不是最新的,所以最好弄一个干净的环境…...

我的年度总结

这一年的人生起伏&#xff1a;从曙光到低谷再到新的曙光 其实本来没打算做年度总结的&#xff0c;无聊打开了帅帅的视频&#xff0c;结合自己最近经历的&#xff0c;打算简单聊下。因为原本打算做的内容会是一篇比较丧、低能量者的呻吟。 实习生与创业公司的零到一 第一段工…...

48_Lua错误处理

在编写Lua应用时,都可能会遇到不可预见的错误,而错误处理是确保程序稳定性和健壮性的关键环节。有效的错误处理不仅能防止程序崩溃,还能提供有用的反馈信息给开发者或最终用户,从而提高应用程序的质量。本文将详细介绍Lua中的错误处理机制。 1.错误类型 Lua中的错误类型主…...

掌握 React 关键:理解 super () 和 super (props) 的不同应用

在 React 中&#xff0c;super() 和 super(props) 都与 React 类组件的构造函数&#xff08;constructor&#xff09;以及继承有关。为了理解它们之间的区别&#xff0c;我们需要了解 JavaScript 类继承机制以及 React 类组件的工作原理。 1. super() 与 super(props) 的区别 …...

type 属性的用途和实现方式(图标,表单,数据可视化,自定义组件)

1.图标类型 <uni-icon>组件中&#xff0c;type可以用来指定图标的不同样式。 <uni-icons type"circle" size"30" color"#007aff"></uni-icons> //表示圆形 <uni-icons type"square" size"30" co…...

scala基础学习_方法函数

文章目录 方法与函数函数&#xff08;又称函数值/匿名函数&#xff09;定义方法注意 单参数函数多参数函数函数作为参数传递 方法将方法转换为函数方法的返回值总结 方法与函数 函数&#xff08;又称函数值/匿名函数&#xff09; 定义在任何地方&#xff1a;函数可以定义在类…...

linux: 文本编辑器vim

文本编辑器 vi的工作模式 (vim和vi一致) 进入vim的方法 方法一:输入 vim 文件名 此时左下角有 "文件名" 文件行数,字符数量 方法一: 输入 vim 新文件名 此时新建了一个文件并进入vim,左下角有 "文件名"[New File] 灰色的长方形就是光标,输入文字,左下…...

《深入理解Mybatis原理》Mybatis中的缓存实现原理

一级缓存实现 什么是一级缓存&#xff1f; 为什么使用一级缓存&#xff1f; 每当我们使用MyBatis开启一次和数据库的会话&#xff0c;MyBatis会创建出一个SqlSession对象表示一次数据库会话。 在对数据库的一次会话中&#xff0c;我们有可能会反复地执行完全相同的查询语句&…...

【Debug】django.db.utils.OperationalError: (1040, ‘Too many connections‘)

报错&#xff1a; django.db.utils.OperationalError: (1040, ‘Too many connections‘) 排查 可能是Mysql的连接数量超过了允许的最大连接数量&#xff1b; 查看Mysql允许最大连接数量&#xff1a; -- 查看允许连接的最大数量 SHOW VARIABLES LIKE %max_connections%;-- 查…...

常用教程备份

1.Ubuntu 系统软件安装教程 https://blog.csdn.net/weixin_51591021/article/details/134363237 2.Docker 教程 https://blog.csdn.net/weixin_51591021/article/details/134363849 3.Makefile 教程 https://blog.csdn.net/weixin_51591021/article/details/134363638 4.…...

什么是视频孪生智慧能源?视频孪生智慧能源的应用案例

‌视频孪生智慧能源是集三维地理信息系统、视频虚实融合、数字孪生、人工智能等多技术于一体的综合应用&#xff0c;旨在实现对能源系统的实时、动态、全方位监控和管理‌。 具体来说&#xff0c;视频孪生智慧能源通过以下方式实现其功能&#xff1a; ‌技术融合‌&#xff1a;…...

Kubernetes1.28 编译 kubeadm修改证书有效期到 100年.并更新k8s集群证书

文章目录 前言一、资源准备1. 下载对应源码2.安装编译工具3.安装并设置golang 二、修改证书有效期1.修改证书有效期2.修改 CA 证书有效期 三、编译kubeadm四、使用新kubeadm方式1.当部署新集群时,使用该kubeadm进行初始化2.替换现有集群kubeadm操作 前言 kubeadm 默认证书为一…...

时序数据库的订阅对比:TDengine vs InfluxDB 谁更强?

目录 1. 架构&#xff1a;内置 vs 依赖外部 TDengine: InfluxDB: 2. 灵活性&#xff1a;动态订阅 vs 静态订阅 TDengine: InfluxDB: 3. 消费机制、API 兼容性与易用性对比 4. 结语 在时序数据应用场景中&#xff0c;数据实时消费和处理能力成为衡量数据库性能和可用性的…...

OpenCV实现多尺度细节提升算法

1、算法原理 多尺度细节提升算法来源于论文*《DARK IMAGE ENHANCEMENT BASED ON PAIRWISE TARGET CONTRAST AND MULTI-SCALE DETAIL BOOSTING》*&#xff0c;算法主要是解决细节增强算法中噪声和细节的平衡问题。 常规的非锐化掩蔽&#xff08;USM&#xff09;算法在提升细节…...

按键精灵ios越狱脚本教程:多选框联动的ui界面

以下是一个简单的 iOS 代码示例&#xff0c;使用 Swift 语言来创建一个包含多选框&#xff08;复选框&#xff09;的 UI 界面&#xff0c;并实现联动效果。 import UIKitclass ViewController: UIViewController {let checkbox1 UIButton(type:.system)let checkbox2 UIButt…...

YOLOv10-1.1部分代码阅读笔记-patches.py

patches.py ultralytics\utils\patches.py 目录 patches.py 1.所需的库和模块 2.def imread(filename: str, flags: int cv2.IMREAD_COLOR): 3.def imwrite(filename: str, img: np.ndarray, paramsNone): 4.def imshow(winname: str, mat: np.ndarray): 5.def tor…...

撤回最近的 git commit

在 Git 中&#xff0c;如果你想撤回最近的 git commit&#xff0c;可以根据不同的需求选择不同的操作。以下是几种常见的撤回方式&#xff1a; 1. 撤回最后一次 commit&#xff0c;但保留修改&#xff08;soft reset&#xff09; 如果你想撤销 git commit&#xff0c;但保留修…...

基于DFT与IIR-FIR滤波器的音频分析与噪声处理

基于DFT与IIR-FIR滤波器的音频分析与噪声处理 【完整源码文档报告】 【需要可随时联系博主&#xff0c;常在线能秒回!】 系统功能与实现介绍 功能与实现 音频处理系统界面搭建&#xff1a;利用MATLAB的GUI工具&#xff0c;构建了音频分析界面&#xff0c;包括文件导入、录…...

MySQL主从部署(保姆版)

一、mysql 同步复制有关概述 一般数据库都是读取压力大于写数据压力&#xff0c;主从复制即为了实现数据库的负载均衡和读写分离。通过将Mysql的某一台主机的数据复制到其它主机&#xff08;slaves&#xff09;上&#xff0c;主服务器只负责写&#xff0c;而从服务器只负责读。…...

Golang笔记——协程同步

大家好&#xff0c;这里是Good Note&#xff0c;关注 公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍Golang的协程同步的实现和应用场景。 文章目录 协程同步是什么&#xff1f;为什么需要协程同步&#xff1f;常见的协程同步机制互斥锁&#xff0…...

1.14学习

misc buuctf-大白 由提示可以知道这个应该是修改图片的宽高了&#xff0c;下载附件后得到了图片用随波逐流直接修改图片的宽高输出即可 buuctf-乌镇峰会种图 点击下载&#xff0c;出现了一个网页为图片将图片另存为&#xff0c;用随波逐流得到的信息解不了&#xff0c;再试…...

2025 年 JavaScript 入门教程

2025 年 JavaScript 入门教程 在当今数字化时代&#xff0c;JavaScript 作为一门广泛应用于 Web 开发的编程语言&#xff0c;其重要性不言而喻。无论是前端页面的交互实现&#xff0c;还是后端服务器的逻辑处理&#xff0c;JavaScript 都发挥着关键作用。本教程旨在帮助初学者…...

paddle——站在巨人肩膀上及背刺二三事

飞桨AI Studio - 人工智能学习与实训社区 飞桨PaddlePaddle-源于产业实践的开源深度学习平台 先抛结论&#xff0c;对于想要快速了解某一领域有哪些比较适合落地的算法的从业人员来说&#xff0c;是一个很好的参考系统。从中可以知道从哪些模型里选型、如何轻量化、如何加…...

nvim , neovim , Lua 语法, text object

说明 &#xff1a; 了解一下 nvim 中的基本的 文本的类型。 基本类型有几种&#xff0c; 1 word , sentence , paragragh 2 (), {}, ,"", 3 就是 html 中的 tag 标签。 然后就是选中的类型。 1 i : 待变 inner 2 a: 代表around &#xff0c; 基本的动作有 &…...

6.2 MySQL时间和日期函数

以前我们就用过now()函数来获得系统时间&#xff0c;用datediff()函数来计算日期相差的天数。我们在计算工龄的时候&#xff0c;让两个日期相减。那么其中的这个now函数返回的就是当前的系统日期和时间。 1. 获取系统时间函数 now()函数&#xff0c;返回的这个日期和时间的格…...

批量识别图片型PDF指定区域内容识别保存表格+PDF批量改名:技术难题与项目实战总结

相关项目实战&#xff1a; 一、引言 在当今数字化办公环境中&#xff0c;批量处理PDF文件中的表格数据并进行改名是一项常见但具有挑战性的任务。无论是从大量的财务报销凭证、学术研究报告还是项目文档中提取表格信息&#xff0c;都可能遇到各种各样的技术难题。 二、批量提…...

【MySQL】索引(一)

索引 一、磁盘1、物理结构2、示意图3、定位扇区4、读写操作的基本方式 二、页1、介绍2、示例3、作用与结构4、类型&#xff08;1&#xff09;数据页&#xff08;2&#xff09;其他 5、组织与管理6、性能优化7、示意图&#xff08;B树&#xff09; 三、索引1、作用2、注意事项 四…...

缩放 对内外参的影响

当你对图像进行同比例缩小时&#xff0c;图像的内参需要相应地变化&#xff0c;但外参通常保持不变。 相机内参 相机内参&#xff08;内参矩阵&#xff09;描述了相机的固有属性&#xff0c;包括焦距和主点&#xff08;光轴与图像平面的交点&#xff09;的坐标。 当你对图像…...

excel设置好的可选择列数据后,如何快速输入到单元格中?

当设置好列的【数据】-【数据有效性】-【序列】后&#xff0c;在单元格中输入可选择数据的开头&#xff0c;就会提示出对应的可选择数据&#xff0c;然后&#xff0c;按一下键盘上的【↓】键&#xff0c;再按回车&#xff0c;即可快速输入到单元格中。...

设计一个流程来生成测试模型安全性的问题以及验证模型是否安全

要使用 Ollama 运行 llama3.3:70b 模型&#xff0c;并设计一个流程来生成测试模型安全性的问题以及验证模型是否安全&#xff0c;可以按照以下步骤进行设计和实现。整个过程包括环境配置、设计安全测试提示词、执行测试以及分析结果。以下是详细的步骤和指导&#xff1a; 1. 环…...

vue3学习日记5 - 项目起步

最近发现职场前端用的框架大多为vue&#xff0c;所以最近也跟着黑马程序员vue3的课程进行学习&#xff0c;以下是我的学习记录 视频网址&#xff1a; Day2-11.项目起步-静态资源引入和ErrorLen安装_哔哩哔哩_bilibili 学习日记&#xff1a; vue3学习日记1 - 环境搭建-CSDN博…...

ESP32,uart安装驱动uart_driver_install函数剖析,以及intr_alloc_flags 参数的意义

在 uart_driver_install 函数中&#xff0c;参数 RX_BUF_SIZE * 2 指定了接收缓冲区&#xff08;RX buffer&#xff09;的大小。这个参数对于 UART 驱动程序来说非常重要&#xff0c;因为它决定了可以存储多少接收到的数据&#xff0c;直到应用程序读取它们为止。下面是对该函数…...

android源码编译后,为什么emulator一直黑屏或者停止android界面

一、前言 最近编译了android12的源码&#xff0c;但是编译完成之后&#xff0c;emulator命令一直卡在android界面上&#xff0c;不会进入系统。经过我多方面的研究&#xff0c;终于找到解决方案。记录下来&#xff0c;希望对遇到这个问题的朋友有所帮助。 二、解决方案 网上…...

ubuntu22.04降级安装CUDA11.3

环境&#xff1a;主机x64的ubuntu22.04&#xff0c;原有CUDA12.1&#xff0c;但是现在需要CUDA11.3&#xff0c;本篇文章介绍步骤。 一、下载CUDA11.3的run文件 下载网址&#xff1a;https://developer.nvidia.com/cuda-11-3-1-download-archive?target_osLinux&target_…...

hive知识体系

hive知识体系 hive知识体系 链接: 1Hive概览 链接: 2Hive表类型 链接: 3Hive数据抽样 链接: 4Hive计算引擎 链接: 5Hive存储与压缩 链接: 6Hive Sql 大全 链接: 6Hive Sql 大全-Hive 函数 链接: 6Hive Sql 大全-窗口函数 链接: 7Hive执行计划 链接: 8Hive SQL底层执行原理 链接…...