windows11 + ubuntu2204雙系統+ros2 humble安裝

文章目錄

    • win11 + ubuntu22 雙系統
      • 準備工作
      • 步驟 1:使用 Rufus 制作 Ubuntu 啟動盤
      • 步驟 2:設置 BIOS/UEFI 啟動項
      • 步驟 3:安裝 Ubuntu 22.04
      • 步驟 4:后續配置
      • 常見問題
    • ROS2 Humble 安裝
      • 一、準備工作
      • 二、安裝 ROS 2
      • 三、設置環境變量
      • 四、驗證安裝
    • ROS2 humble & ROS1 noetic
      • ROS 1 & 2 安裝
      • ROS 2 ? ROS 1 橋接配置
    • 參考鏈接

寫于2025.06,當前ubuntu 20.04的各方面支持更加全面一點,如對ROS1和2都有良好的兼容性。如從ros bridge便能夠表現出系統對包的支持。但是新的系統對新的硬件的支持更好,以及有更長的支持,在后期對新包的支持也會更好一點。

Ubuntu VersionSupported ROS 1 VersionsSupported ROS 2 Versionsros1_bridge Support
20.04 (Focal)Noetic NinjemysFoxy Fitzroy (EOL), Galactic Geochelone (EOL), Humble Hawksbill? Full support
22.04 (Jammy)?? Partial (unsupported officially)Humble Hawksbill, Iron Irwini?? Requires building from source
24.04 (Noble)? Not availableJazzy Jalisco, Kilted Kaiju? Not supported

本文將介紹ubuntu 2204的安裝及ROS2 Humble版本的安裝。


win11 + ubuntu22 雙系統

以下是在 Windows 11 基礎上安裝 Ubuntu 22.04 LTS 的雙系統詳細指南,使用 Rufus 工具制作啟動盤:


準備工作

  1. 備份重要數據

    • 雙系統安裝可能涉及磁盤分區操作,建議提前備份 Windows 中的重要文件。
  2. 準備工具

    • 一個至少 8GB 的空U盤(制作啟動盤會清空所有數據)。
    • 下載 Ubuntu 22.04 LTS ISO-https://ubuntu.com/download/desktop。
      • 國內鏡像:
鏡像名稱鏡像地址備注
網易鏡像http://mirrors.163.com/ubuntu-releases/覆蓋主流版本
中科大鏡像http://mirrors.ustc.edu.cn/ubuntu-releases/更新及時,支持IPv6
阿里云鏡像http://mirrors.aliyun.com/ubuntu-releases/企業級CDN加速
清華大學鏡像https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/教育網優化
北京理工大學鏡像http://mirror.bit.edu.cn/ubuntu-releases/北方用戶推薦
浙江大學鏡像http://mirrors.zju.edu.cn/ubuntu-releases/華東地區節點
南京大學鏡像https://mirror.nju.edu.cn/ubuntu-releases/新增科學中心節點
上海交通大學鏡像http://ftp.sjtu.edu.cn/ubuntu-releases/上海骨干網接入
  • 下載 Rufus 工具-https://rufus.ie/)(建議最新版本)。
  1. 分配磁盤空間(可選) 如果磁盤足夠,新版本ubuntu會在安裝時,自行規劃,也可自行配置,但一定要保證有足夠的空間。

    • 在 Windows 中打開 磁盤管理(Win+X → 磁盤管理)。
    • 右鍵點擊一個分區(如 C:),選擇 壓縮卷,分配至少 50GB 未分配空間(后續安裝 Ubuntu 用)。
  2. 取消磁盤加密(關閉BitLocker)

  • 常規關閉方法

    • 打開控制面板 → 進入"BitLocker驅動器加密"
    • 找到需要解密的驅動器,點擊"關閉BitLocker"
    • 等待解密完成(時間取決于數據量)
  • 快速關閉方法(Win10/11)

    • 按Win+I打開設置 → 隱私和安全性 → 設備加密
    • 直接點擊"關閉"按鈕
  • 命令行方法(管理員權限)

    • 以管理員身份運行CMD/PowerShell
    • 輸入:manage-bde -off C:(C:為需要解密的盤符)
    • 查看進度:manage-bde -status

步驟 1:使用 Rufus 制作 Ubuntu 啟動盤

  1. 插入U盤,以管理員身份運行 Rufus
  2. 設備選擇:你的U盤(確認無誤,數據會被清空)。
  3. 鏡像選擇:點擊 選擇,找到下載的 Ubuntu 22.04 ISO 文件。
  4. 分區類型:
    • UEFI 電腦:選擇 GPT + FAT32
    • 傳統 Legacy BIOS 電腦:選擇 MBR + FAT32(現代電腦通常為 UEFI)。
  5. 其他選項保持默認,點擊 開始 → 確認警告 → 等待完成(約5-10分鐘)。

步驟 2:設置 BIOS/UEFI 啟動項

  1. 重啟電腦,在啟動時狂按 F2/F12/Del(具體鍵因品牌而異)進入 BIOS。
  2. 關鍵設置:
    • 關閉 Secure Boot(Ubuntu 支持但可能需額外驅動)。
    • 確保 UEFI 模式 開啟(如使用 GPT 分區)。
  3. 保存設置并退出(通常按 F10)。

步驟 3:安裝 Ubuntu 22.04

  1. 啟動安裝程序

    • 從U盤啟動后,選擇 Try or Install Ubuntu → 進入試用桌面后雙擊 Install Ubuntu
  2. 語言和鍵盤布局

    • 選擇語言 → 繼續 → 鍵盤布局默認(英語或中文)。
  3. 網絡連接(可選)

    • 可連接Wi-Fi,便于安裝更新和第三方驅動。
  4. 安裝類型

    • 重要!選擇“安裝類型”
      • 雙系統共存:勾選 Install Ubuntu alongside Windows Boot Manager(自動分配空間)。
      • 手動分區(推薦高級用戶):
        • 選擇之前分配的 未分配空間 → 點擊 + 創建分區:
          • /(根分區):至少 30GB,類型 ext4
          • swap(交換空間):內存大小的 1-2倍(可選)。
          • /home(用戶文件):剩余空間,類型 ext4(可選)。
        • 啟動引導器位置:選擇 EFI 分區(通常為 /dev/sda/dev/nvme0n1efi 分區)。
  5. 時區和用戶設置

    • 選擇時區(如 Shanghai)→ 輸入用戶名和密碼。
  6. 開始安裝

    • 點擊 安裝 → 等待完成(約15-30分鐘)。
  7. 重啟

    • 提示拔出U盤后重啟,此時會進入 GRUB 引導菜單,可選擇啟動 Ubuntu 或 Windows。

步驟 4:后續配置

  1. 更新系統

    • 打開終端(Ctrl+Alt+T),運行:
      sudo apt update && sudo apt upgrade -y
      
  2. 修復引導問題(如 Windows 不顯示)

    • 在 Ubuntu 終端執行:
      sudo update-grub
      
  3. 驅動管理

    • 打開 軟件和更新附加驅動,安裝推薦顯卡/Wi-Fi驅動。

常見問題

  • 無法識別 Windows 分區:確保 Windows 為 正常關機(非快速啟動)。
  • UEFI/GPT 錯誤:確認 Rufus 設置與 BIOS 模式匹配(UEFI → GPT)。
  • 磁盤空間不足:在 Windows 中壓縮更多空間后,用 Ubuntu 安裝器的 Something else 選項調整分區。
  • try and install Ubuntu 后黑屏可能是由于硬件如顯卡比較新,導致驅動不兼容問題。可以選擇第三行,使用兼容模式啟動,然后安裝。

ROS2 Humble 安裝

確保系統區域支持UTF-8編碼:

sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.

確保系統安裝了ubuntu的官方源

sudo apt install software-properties-common
sudo add-apt-repository universe

一、準備工作

  1. 系統更新

在開始安裝之前,確保你的 Ubuntu 22.04 系統是最新的。打開終端并運行以下命令:

sudo apt update
sudo apt upgrade -y
  1. 設置密鑰和源

為了安裝 ROS 2 Humble,首先,導入 ROS 2 的 GPG 密鑰:

#官方key,公鑰可能會變,可以查最新官網去拉
#官方地址:ttps://github.com/ros-infrastructure/ros-apt-source
#以下是個人拷貝
sudo curl -sSL https://gitee.com/nie_xun/ros-apt-source/tree/1.1.0/ros-apt-source/keys/ros-archive-keyring.gpg 
-o /usr/share/keyrings/ros-archive-keyring.gpg

然后,添加 ROS 2 Humble 存儲庫到你的 sources.list.d 目錄:以下二者選其一。

#官方
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null#清華:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

二、安裝 ROS 2

1. 安裝依賴項

在安裝 ROS 2 之前,你需要安裝一些依賴項:

sudo apt update
sudo apt install -y curl python3-rosdep python3-rosinstall python3-rosinstall-generator python3-vcstool build-essential cmake git

2. 初始化 rosdep

rosdep 是一個工具,它可以幫助你安裝 ROS 包所依賴的系統庫。初始化 rosdep:

sudo rosdep init
rosdep update

如果rosdep不成功,則需要對應修改:參考小魚的安裝,或直接使用他的腳本直接更改。

sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py
# 在大概64行 修改 DEFAULT_SOURCES_LIST_URL = 'https://gitee.com/tyx6/mytools/raw/main/ros/20-default.list'sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py
# 大概在68行的地址sudo gedit /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
# 大概在34行的地址sudo gedit /usr/lib/python3/dist-packages/rosdep2/rep3.py
# 大概在36行的地址

使用如下腳本內容更改:

#!/usr/bin/python3 python3
# -*- coding:utf-8 -*-
# @FileName  :Mrosdep.py
# @Author    :TFly
import os
import subprocess
from colorama import Fore,Styleurl = "https://gitee.com/tyx6/rosdistro/raw/master"
url_list = "https://gitee.com/tyx6/mytools/raw/main/ros/20-default.list" 
ros_distros = ['kinetic', 'melodic', 'noetic', 'foxy', 'galactic', 'humble', 'iron', 'rolling']def find_ros_setup_script():#ros_distros = ['melodic', 'noetic']for distro in ros_distros:setup_script = f"/opt/ros/{distro}/setup.bash"if os.path.exists(setup_script):return setup_scriptreturn Nonedef get_ros_version():try:ros_setup_script = find_ros_setup_script()if not ros_setup_script:print("ROS setup script not found.")return Nonecommand = f"source {ros_setup_script} && echo $ROS_DISTRO"ros_version = subprocess.check_output(['bash', '-c', command], universal_newlines=True).strip()return ros_versionexcept subprocess.CalledProcessError as e:print(f"An error occurred while getting ROS version: {e}")return Nonedef rep(data):flag_list = data.find("https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list")if flag_list != -1:data = data.replace("https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list",url_list)flag = data.find("https://raw.githubusercontent.com/ros/rosdistro/master")flag1 = data.find("FUERTE_GBPDISTRO_URL = \'https://raw.githubusercontent.com/ros/rosdistro")flag2 = data.find("master/releases/fuerte.yaml")if flag != -1:data = data.replace("https://raw.githubusercontent.com/ros/rosdistro/master", url)if flag1 != -1:data = data.replace("https://raw.githubusercontent.com/ros/rosdistro",url)if flag2 != -1:data = data.replace("master/releases/fuerte.yaml","releases/fuerte.yaml")return datadef re_files(fileName):try:con = ""with open(fileName,'r') as fp:con = fp.readlines()for i in range(0,len(con)):con[i] = rep(con[i])with open(fileName,'w+') as fp:for str1 in con:fp.write(str1)except FileNotFoundError:print(fileName+'not found')else:print(fileName+' is ok')if __name__ == '__main__':print(Fore.GREEN + '歡迎使用腳本,本腳本適用于ROS1、ROS2.\n'+'Test: ROS1 Melodic、ROS2 Noetic、ROS2 Humble' + Style.RESET_ALL)version = get_ros_version()if version not in ros_distros :print(Fore.RED + "不支持此版本、或版本獲取失敗!"+ Style.RESET_ALL)else:print(Fore.GREEN + "The ROS version is: " + version + Style.RESET_ALL)fileName = []if version == 'melodic' :fileName = ['/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py','/usr/lib/python2.7/dist-packages/rosdistro/__init__.py','/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py','/usr/lib/python2.7/dist-packages/rosdep2/rep3.py']else:fileName = ['/usr/lib/python3/dist-packages/rosdep2/sources_list.py','/usr/lib/python3/dist-packages/rosdistro/__init__.py','/usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py','/usr/lib/python3/dist-packages/rosdep2/rep3.py']for name in fileName:re_files(name)print("修改成功!請執行下面命令:\n"+"sudo rosdep init\n"+"rosdep update")

3. 安裝 ROS 2 核心包

現在,你可以安裝 ROS 2 Humble 的核心包了:

sudo apt install -y ros-humble-desktop

這將安裝 ROS 2 的核心功能,包括 RCL、RMW 實現、各種工具和示例節點。

三、設置環境變量

為了使 ROS 2 的命令和包在你的終端中可用,你需要將 ROS 2 的安裝目錄添加到你的 PATH 和 LD_LIBRARY_PATH 環境變量中。這通常通過在你的 shell 配置文件中添加以下行來完成(例如,~/.bashrc 或 ~/.zshrc):

source /opt/ros/humble/setup.bash

添加后,運行以下命令使更改生效:

source ~/.bashrc  # 或者 ~/.zshrc,取決于你使用的 shell

四、驗證安裝

為了驗證 ROS 2 是否正確安裝,你可以運行以下命令來檢查 ROS 2 版本并啟動一個簡單的示例節點:

ros2 --version
ros2 node list  # 在另一個終端中運行一個 ROS 2 節點后再檢查這個命令的輸出

如果你還沒有運行任何 ROS 2 節點,ros2 node list 命令可能不會返回任何內容。為了測試,你可以啟動一個簡單的 “talker” 和 “listener” 節點,它們是 ROS 2 教程中的示例節點。首先,確保你已經安裝了 ros2-examples 包:

sudo apt install -y ros-humble-examples-rclcpp-minimal

然后,在兩個不同的終端中分別運行以下命令:

# 在第一個終端中運行 talker 節點
ros2 run examples_rclcpp_minimal_talker talker
# 在第二個終端中運行 listener 節點
ros2 run examples_rclcpp_minimal_listener listener

自此,ROS2 Humble 安裝完成。


ROS2 humble & ROS1 noetic

以下是針對 Ubuntu 22.04 Jammy Jellyfish 系統實現 ROS 2 Humble 與 ROS 1 通信部署:

ROS 1 & 2 安裝

與前文humble安裝重復。

  1. ROS 2 Humble 安裝

    • 配置 UTF-8 區域設置:
      sudo apt update && sudo apt install locales && sudo locale-gen en_US en_US.UTF-8
    • 添加 ROS 2 倉庫與 GPG 密鑰(推薦國內鏡像加速):
      sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
      echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
      sudo apt update
      sudo apt install ros-humble-desktop  # 或 ros-humble-ros-base
      
  2. ROS 1 Noetic 安裝

    • 通過第三方源安裝(非官方維護但兼容 Ubuntu 22.04):
      echo "deb [trusted=yes arch=amd64] http://deb.repo.autolabor.com.cn jammy main" | sudo tee /etc/apt/sources.list.d/autolabor.list
      sudo apt update && sudo apt install ros-noetic-autolabor
      
      驗證:source /opt/ros/noetic/setup.bash && roscore
  3. 終端ROS環境配置
    可以使用如下配置,打開終端,輸入1則配置ROS1環境,輸入2則配置ROS2環境。其他數字,則先source ROS1 后source ROS2。
    vim/gedit 添加到~/.bashrc最后。

    echo "ros noetic(1) or ros2 humble(2) or ros12(Other number)?"
    read edition
    if [ "$edition" -eq "1" ]; thensource /opt/ros/noetic/setup.bash
    else if [ "$edition" -eq "2" ]; thensource /opt/ros/humble/setup.bash
    elsesource /opt/ros/noetic/setup.bashsource /opt/ros/humble/setup.bash
    fi
    

ROS 2 ? ROS 1 橋接配置

  1. 編譯 ros1_bridge

    • 創建工作空間并克隆擴展倉庫(支持更多消息類型):
      mkdir -p ros_bridge_ws/src && cd ros_bridge_ws/src
      git clone https://github.com/smith-doug/ros1_bridge.git # 社區維護版本
      
    • 關鍵編譯步驟
      cd .. && colcon build --symlink-install --packages-skip ros1_bridge
      source /opt/ros/noetic/setup.sh     # 加載 ROS1 環境
      source /opt/ros/humble/setup.sh     # 加載 ROS2 環境
      #colcon build --symlink-install --packages-select ros1_bridge --cmake-force-configure
      colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Releas
      
      注意:必須先單獨編譯其他包,再加載雙環境編譯橋接包
  2. 運行橋接

    • 啟動核心服務:
      # 終端1: 啟動 ROS1 roscore
      source /opt/ros/noetic/setup.sh && roscore
      # 終端2: 啟動 ROS2 守護進程
      source /opt/ros/humble/setup.sh && ros2 daemon start
      # 終端3: 運行橋接
      source ros_bridge_ws/install/setup.sh
      ros2 run ros1_bridge dynamic_bridge
      
    • 驗證通信:
      • ROS1終端1 發布話題:
      rosrun rospy_tutorials talker
      
      • ROS2終端2 接收:
      ros2 run demo_nodes_cpp listener
      

參考鏈接

  1. fishros-ROS1&ROS2共存-https://fishros.org.cn/forum/topic/3943/ubuntu22-04%E4%B8%8B%E5%A6%82%E4%BD%95ros2-humble%E5%92%8C-ros1-%E5%85%B1%E5%AD%98/2
  2. 官方ROS Bridge-https://carla.readthedocs.io/projects/ros-bridge/en/latest/ros_installation_ros2/
  3. ros2 humble install-https://blog.csdn.net/weixin_55944949/article/details/140373710
  4. https://docs.ros.org/en/humble/How-To-Guides/Using-ros1_bridge-Jammy-upstream.html
  5. fishros-端口映射https://fishros.org.cn/forum/topic/2811/ros2-humble-docker-%E7%9A%84%E7%AB%AF%E5%8F%A3%E6%98%A0%E5%B0%84%E9%97%AE%E9%A2%98
  6. ros-官方-https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html
  7. 小魚安裝-https://blog.csdn.net/weixin_55944949/article/details/140373710
  8. 簡潔版-https://blog.csdn.net/weixin_44197671

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

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

相關文章

基于StarRocks的指標平臺查詢加速方案

項目背景 指標管理平臺按指標查詢類型可以劃為落表指標和即席查詢指標。 落表指標:可選擇不同的維度生成多個結果表(每天提交任務寫入結果表),對指標進行取數的時候會根據查詢條件自動匹配最合適的結果表進行查詢。 即席查詢指標:不產生結果…

Javaweb - 5 事件的綁定

目錄 什么是事件 常見事件 鼠標事件 鍵盤事件 表單事件 事件的綁定方式 通過元素的屬性綁定 通過 DOM 編程動態綁定 總結: 什么是事件 HTML 事件可以是瀏覽器行為,也可以是用戶和行為。當一些行為發生時,可以自動觸發對應的 JS 函數…

怎么讓二級域名綁定到wordpesss指定的頁面

要將二級域名(如 beijing.wodepress.com)綁定到 WordPress 指定頁面(如 wodepress.com/beijing),可以通過以下步驟實現: 1. 設置泛域名解析 在域名注冊商的管理后臺,添加一條泛域名解析記錄: 主機記錄:輸入 *(星號)…

Ragflow源碼:launch_backend_service.sh

流程圖 #mermaid-svg-hRqGAXWC651HHOLZ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-hRqGAXWC651HHOLZ .error-icon{fill:#552222;}#mermaid-svg-hRqGAXWC651HHOLZ .error-text{fill:#552222;stroke:#552222;}#me…

前端的跨域問題

前端新手也能看懂的跨域問題詳解 在前端開發中,我們經常會聽到“跨域問題”。尤其是在本地調試前端和后臺接口時,瀏覽器突然拋出一堆報錯信息,比如: Access to XMLHttpRequest at [http://api.xxx.com/data](http://api.xxx.com…

TCP 連接在異常情況下的斷開機制

文章目錄 一、進程(客戶端)被 kill 掉1、kill [-15]2、kill -9 二、進程(客戶端) core 掉 一、進程(客戶端)被 kill 掉 詳細驗證流程 1、kill [-15] 2、kill -9 二、進程(客戶端) core 掉

【甲方安全建設】持續滲透測試(一)

持續滲透測試是一種現代安全方法,它對針對組織數字資產的網絡攻擊進行實時或近實時模擬,確保在漏洞出現時識別并解決漏洞… 文章目錄 行業洞察持續滲透測試不是什么?1. 非單一自動化漏洞掃描2. 非傳統人工滲透測試的替代品3. 非萬能解決方案4…

LOCAL PATTERNS GENERALIZE BETTER FOR NOVEL ANOMALIES

標題:局部模式在新穎異常上的泛化能力更強 原文鏈接:https://openreview.net/forum?id4ua4wyAQLm 源碼鏈接:https://github.com/AllenYLJiang/Local-Patterns-Generalize-Better/ 發表:ICLR-2025 摘要 視頻異常檢測(…

ABP vNext + Azure Application Insights:APM 監控與性能診斷最佳實踐

ABP vNext Azure Application Insights:APM 監控與性能診斷最佳實踐 🚀 📚 目錄 ABP vNext Azure Application Insights:APM 監控與性能診斷最佳實踐 🚀1?? 集成目標與環境要求 2?? 安裝 SDK 與注入服務 3?? 日…

OPENGLPG第九版學習 - 紋理與幀緩存 part1

文章目錄 6.1 紋理綜述6.2 基木紋理類型6.3 創建并初始化紋理代理紋理 6.4 指定紋理數據6.4.1 顯式設置紋理數據將靜態數據載入到紋理對象 6.4.2 從緩存(目標對象GL_PIXEL_UNPACK_BUFFER)中加載紋理6.4.3 從文件加載圖像(DDS為例)讀取一個圖像文件并返回內存中的紋素數據將紋素…

誰來定義未來座艙?新一代車載顯示「C位」之戰開啟

在汽車智能網聯化轉型過程中,車載顯示屏幕作為人車交互的重要載體,已經站上了迅猛發展的新起點。 一方面,伴隨著汽車智能化的加速滲透與發展,傳統中控屏與儀表顯示屏的單一顯示模式已經難以匹配智能化交互需求,車載顯…

基于JavaScript的MQTT實時通信應用開發指南

MQTT 協議入門與實踐:使用 JavaScript 構建實時通信應用 1. 什么是 MQTT? MQTT(Message Queuing Telemetry Transport)是一種輕量級的 發布/訂閱(Pub-Sub) 消息協議,專為低帶寬、高延遲或不穩…

React 19中如何向Vue那樣自定義狀態和方法暴露給父組件。

文章目錄 前言一、什么是 useImperativeHandle?1.1 為什么需要 useImperativeHandle?1.2 基本語法 二、useImperativeHandle 的常見用法3.1 暴露自定義方法3.2子組件封裝的彈窗關閉方法暴露給外部 注意點:總結 前言 在 React 的函數組件中&a…

Windows定時關機工具

自己設計了一款簡單易用的windows定時關機工具,使用簡單,使用只需兩步: 1、輸入設定的時間 2、點擊開始計時 Ps: 1、文章頂部直接下載exe文件 2、文件設置不了免費下載,只能用云盤:定時關機工具.exe - 藍奏云。 w…

楓清科技受邀參加2025數據智能大會

近日,由中國通信標準化協會主辦,中國信通院、大數據技術標準推進委員會(CCSA TC601)承辦的“2025數據智能大會”在北京隆重召開,本屆大會以“Data X AI,數據燃動智能”為主題,聚焦央國企數智化轉型、下一代數據治理、數…

黑馬頭條-數據管理平臺

目錄 項目介紹 功能 項目準備 技術 驗證碼 驗證碼登錄 驗證碼登錄-流程 關于token token的介紹 token的使用 個人信息設置 個人信息設置和axios請求攔截器 axios響應攔截器和身份驗證失敗 優化-axios響應結果 發布文章 發布文章-富文本編輯器 發布文章-頻道列…

Pytorch3D 中涉及的知識點匯總

PyTorch3D 是 Facebook(現 Meta)AI 研究院(FAIR)推出的一個基于 PyTorch 的三維計算庫,主要用于 3D 計算機視覺與圖形學任務,如 3D 重建、渲染、點云處理、網格操作等。 下面是對 PyTorch3D 中重要涉及知識…

XML在線格式化工具

XML格式化 免費在線XML格式化與壓縮工具,一鍵美化、校驗、壓縮和優化您的XML代碼。支持自定義縮進、節點折疊,提升可讀性,減小文件體積,加速數據傳輸。 https://toolshu.com/xml 本工具是一款專為處理XML(可擴展標記…

【軟件系統架構】系列四:嵌入式技術

目錄 一、嵌入式系統組成 (1)嵌入式處理器 (2)支撐硬件 (3)嵌入式操作系統 (4)支撐軟件 (5)應用軟件 二、嵌入式系統特性 三、嵌入式系統分類與分層結構 1.分類 2.嵌入式軟件的五層架構深入解析 (1)硬件層(Hardware Layer) (2)抽象層(Hardware Ab…

監管報送面試回答思路和示例

在銀行監管報送崗位的面試中,回答問題時需要展現出你的專業知識、實際操作經驗、問題解決能力以及對監管合規的重視。以下是對各類問題的回答思路和示例: 一、專業知識類問題 1. 請簡述銀行監管報送的主要類型和報送頻率 回答思路:分類介紹…