MDP的 Commands模塊

文章目錄

  • Isaac Lab Commands 模塊詳細指南
    • 📋 模塊概述
    • 🏗? 模塊架構
    • 🎪 命令類型詳解
      • 1. 🚫 空命令 (NullCommand)
      • 2. 🏃 速度命令 (VelocityCommand)
        • 🎲 均勻分布速度命令 (UniformVelocityCommand)
        • 🎯 帶閾值的均勻分布速度命令 (UniformThresholdVelocityCommand)
        • 📊 正態分布速度命令 (NormalVelocityCommand)
      • 3. 🎯 姿態命令 (PoseCommand)
      • 4. 🗺? 2D姿態命令 (Pose2dCommand)
        • 🎲 均勻 2D 姿態命令 (UniformPose2dCommand)
        • 🏔? 基于地形的 2D 姿態命令 (TerrainBasedPose2dCommand)
      • 5. 🎮 離散命令控制器 (DiscreteCommandController)
    • 🔄 命令生成流程
      • 1. 初始化階段
      • 2. 命令重采樣
      • 3. 命令更新
      • 4. 度量更新
    • 🎨 可視化系統
      • 速度命令可視化
      • 姿態命令可視化
      • 離散命令可視化
    • ?? 配置示例
      • 移動機器人速度命令配置
      • 帶閾值的速度命令配置
      • 機械臂姿態命令配置
      • 離散命令控制器配置
    • 🎯 應用場景
      • 1. 移動機器人導航
      • 2. 機械臂操作
      • 3. 多任務學習
      • 4. 分層強化學習
    • 🔧 擴展開發
      • 創建自定義連續命令類型
      • 創建自定義離散命令類型
      • 混合命令控制器
    • 📊 核心方法詳解
      • CommandTerm 基類方法
      • 命令屬性
      • 擴展命令類型對比
    • 🎉 總結
      • 🚀 新增特性亮點

Isaac Lab Commands 模塊詳細指南

📋 模塊概述

commands 模塊是 Isaac Lab 中負責生成和管理機器人任務命令的核心系統。它為強化學習環境提供了多樣化的目標命令生成機制,是任務導向訓練的重要組成部分。

🏗? 模塊架構

commands/
├── __init__.py              # 模塊導出
├── commands_cfg.py          # 命令配置類
├── null_command.py          # 空命令(無任務)
├── velocity_command.py      # 速度命令
├── pose_command.py          # 姿態命令
├── pose_2d_command.py       # 2D姿態命令
└── custom_commands.py       # 自定義命令擴展

🎪 命令類型詳解

1. 🚫 空命令 (NullCommand)

用途:用于不需要任何命令的環境

class NullCommand(CommandTerm):"""不生成任何命令的命令生成器Command generator that does nothing.用于不需要任何命令的環境。Used for environments that do not require any commands."""@propertydef command(self):"""空命令 - 總是拋出運行時錯誤Null command - Always raises RuntimeError"""raise RuntimeError("NullCommandTerm does not generate any commands.")

應用場景

  • 自由探索環境
  • 無目標任務
  • 基礎技能學習

2. 🏃 速度命令 (VelocityCommand)

核心功能:生成 SE(2) 空間中的速度命令(線速度 + 角速度)

🎲 均勻分布速度命令 (UniformVelocityCommand)
class UniformVelocityCommand(CommandTerm):"""從均勻分布生成 SE(2) 速度命令Command generator that generates velocity command in SE(2) from uniform distribution.命令包括:- x 和 y 方向的線速度- 繞 z 軸的角速度- 在機器人基座坐標系中給出The command comprises:- Linear velocity in x and y direction  - Angular velocity around z-axis- Given in robot's base frame"""

配置參數

@configclass
class UniformVelocityCommandCfg(CommandTermCfg):asset_name: str = MISSING  # 資產名稱heading_command: bool = False  # 是否使用航向命令heading_control_stiffness: float = 1.0  # 航向控制剛度rel_standing_envs: float = 0.0  # 靜止環境比例rel_heading_envs: float = 1.0  # 航向環境比例@configclassclass Ranges:lin_vel_x: tuple[float, float] = MISSING  # x方向線速度范圍lin_vel_y: tuple[float, float] = MISSING  # y方向線速度范圍  ang_vel_z: tuple[float, float] = MISSING  # z軸角速度范圍heading: tuple[float, float] | None = None  # 航向范圍

特殊功能

  • 航向控制:可以從航向誤差計算角速度
  • 靜止模式:支持部分環境保持靜止
  • 可視化:提供目標和當前速度的可視化
🎯 帶閾值的均勻分布速度命令 (UniformThresholdVelocityCommand)
class UniformThresholdVelocityCommand(UniformVelocityCommand):"""帶閾值的均勻分布速度命令生成器Uniform velocity command generator with threshold filtering.繼承自基礎的均勻速度命令生成器,增加了閾值過濾功能。當生成的速度命令小于設定閾值時,會被設置為零,避免產生過小的速度命令導致機器人行為不穩定。特點:- 基于均勻分布生成SE(2)空間的速度命令(x, y, yaw)- 自動過濾小于閾值的命令,提高訓練穩定性- 適用于需要明確運動意圖的場景Features:- Generate SE(2) velocity commands from uniform distribution- Automatically filter commands below threshold for stability- Suitable for scenarios requiring clear motion intentions"""

核心改進

  • 閾值過濾:自動將小于 0.2 m/s 的線速度命令設為零
  • 穩定性提升:避免微小速度命令導致的不穩定行為
  • 明確意圖:確保機器人要么靜止,要么有明確的運動方向

配置參數

@configclass
class UniformThresholdVelocityCommandCfg(UniformVelocityCommandCfg):class_type: type = UniformThresholdVelocityCommand# 繼承所有父類配置參數,無需額外配置
📊 正態分布速度命令 (NormalVelocityCommand)
class NormalVelocityCommand(UniformVelocityCommand):"""從正態分布生成 SE(2) 速度命令Command generator that generates velocity command in SE(2) from normal distribution.特點:- 使用正態分布采樣- 支持零速度概率設置- 可以隨機翻轉符號"""

配置參數

@configclass
class Ranges:mean_vel: tuple[float, float, float] = MISSING  # 平均速度std_vel: tuple[float, float, float] = MISSING   # 標準差zero_prob: tuple[float, float, float] = MISSING # 零速度概率

3. 🎯 姿態命令 (PoseCommand)

核心功能:生成 6DOF 姿態跟蹤命令

class UniformPoseCommand(CommandTerm):"""均勻生成姿態命令Command generator for generating pose commands uniformly.功能:- 在指定笛卡爾空間區域內均勻采樣位置- 均勻采樣歐拉角并轉換為四元數- 在機器人基座坐標系中生成命令Features:- Uniformly sample positions within specified cartesian regions- Uniformly sample euler angles and convert to quaternions  - Generate commands in robot's base frame"""

配置參數

@configclass
class UniformPoseCommandCfg(CommandTermCfg):asset_name: str = MISSING  # 資產名稱body_name: str = MISSING   # 目標身體部位名稱make_quat_unique: bool = False  # 是否使四元數唯一@configclassclass Ranges:pos_x: tuple[float, float] = MISSING  # x位置范圍pos_y: tuple[float, float] = MISSING  # y位置范圍pos_z: tuple[float, float] = MISSING  # z位置范圍roll: tuple[float, float] = MISSING   # 滾轉角范圍pitch: tuple[float, float] = MISSING  # 俯仰角范圍yaw: tuple[float, float] = MISSING    # 偏航角范圍

重要特性

  • 坐標系轉換:自動處理基座坐標系到世界坐標系的轉換
  • 誤差計算:提供位置和方向誤差的度量
  • 可視化:顯示目標姿態和當前姿態

4. 🗺? 2D姿態命令 (Pose2dCommand)

核心功能:生成平面導航任務的 2D 姿態命令

🎲 均勻 2D 姿態命令 (UniformPose2dCommand)
class UniformPose2dCommand(CommandTerm):"""均勻 2D 姿態命令生成器Uniform 2D-pose command generator.用于平面導航任務:- 生成 (x, y, 航向) 命令- 支持簡單航向模式- 適用于移動機器人導航For planar navigation tasks:- Generate (x, y, heading) commands- Support simple heading mode- Suitable for mobile robot navigation"""
🏔? 基于地形的 2D 姿態命令 (TerrainBasedPose2dCommand)
class TerrainBasedPose2dCommand(UniformPose2dCommand):"""基于地形的位置命令生成器Terrain-based position command generator.特點:- 考慮地形約束- 智能目標點選擇- 避免不可達區域Features:- Consider terrain constraints- Intelligent target point selection  - Avoid unreachable areas"""

5. 🎮 離散命令控制器 (DiscreteCommandController)

核心功能:管理預定義的離散命令集合

class DiscreteCommandController(CommandTerm):"""離散命令控制器Discrete command controller.用于為環境分配預定義的離散命令。命令以整數列表的形式存儲,控制器通過索引映射這些命令(例如:索引0 -> 10,索引1 -> 20)。應用場景:- 需要特定離散動作的任務- 分層強化學習中的高級命令- 多模態行為切換特點:- 支持任意整數命令集合- 隨機采樣或指定命令分配- 實時命令更新和監控Use cases:- Tasks requiring specific discrete actions- High-level commands in hierarchical RL- Multi-modal behavior switchingFeatures:- Support arbitrary integer command sets- Random sampling or specified command assignment- Real-time command updates and monitoring"""

配置參數

@configclass
class DiscreteCommandControllerCfg(CommandTermCfg):class_type: type = DiscreteCommandControlleravailable_commands: list[int] = []"""可用的離散命令列表,每個元素都是整數Available discrete commands list, each element is an integer示例/Example: [10, 20, 30, 40, 50]說明/Description:- 列表中的每個整數代表一個可選的命令- 控制器會隨機從這些命令中選擇- 可以根據具體任務需求定義命令的含義- Each integer represents an optional command- Controller randomly selects from these commands- Command meanings can be defined based on task requirements"""

核心特性

  • 靈活配置:支持任意整數命令集合
  • 隨機采樣:自動從可用命令中隨機選擇
  • 實時監控:提供當前命令狀態的實時訪問
  • 類型安全:確保所有命令都是整數類型

使用示例

# 配置離散命令控制器
discrete_command_cfg = DiscreteCommandControllerCfg(class_type=DiscreteCommandController,available_commands=[10, 20, 30, 40, 50],  # 5個離散命令resampling_time_range=(5.0, 10.0),        # 5-10秒重采樣
)# 在環境中使用
# 命令值可以表示不同的行為模式:
# 10 - 慢速前進
# 20 - 快速前進  
# 30 - 左轉
# 40 - 右轉
# 50 - 停止

🔄 命令生成流程

1. 初始化階段

def __init__(self, cfg: CommandTermCfg, env: ManagerBasedEnv):"""初始化命令生成器Initialize command generator步驟:1. 解析配置參數2. 獲取相關資產引用3. 創建命令緩沖區4. 初始化度量指標"""

2. 命令重采樣

def _resample_command(self, env_ids: Sequence[int]):"""重新采樣命令Resample commands根據配置的分布類型生成新的命令:- 均勻分布采樣- 正態分布采樣- 地形約束采樣- 離散命令選擇- 閾值過濾處理"""

3. 命令更新

def _update_command(self):"""后處理命令Post-process commands執行特殊邏輯:- 航向控制計算- 靜止環境處理- 約束應用- 閾值過濾- 離散命令映射"""

4. 度量更新

def _update_metrics(self):"""更新性能度量Update performance metrics計算:- 跟蹤誤差- 完成率- 其他任務相關指標"""

🎨 可視化系統

每種命令類型都提供豐富的可視化功能:

速度命令可視化

  • 綠色箭頭:目標速度
  • 藍色箭頭:當前速度
  • 動態縮放:根據速度大小調整箭頭長度
  • 閾值指示:顯示是否觸發閾值過濾

姿態命令可視化

  • 坐標框架:顯示目標姿態
  • 當前框架:顯示當前姿態
  • 誤差指示:顏色編碼顯示跟蹤精度

離散命令可視化

  • 命令標簽:顯示當前激活的命令值
  • 狀態指示器:不同顏色表示不同命令
  • 切換動畫:命令變化時的視覺反饋

?? 配置示例

移動機器人速度命令配置

velocity_command_cfg = UniformVelocityCommandCfg(class_type=UniformVelocityCommand,asset_name="robot",resampling_time_range=(10.0, 10.0),heading_command=True,heading_control_stiffness=1.0,rel_standing_envs=0.2,  # 20% 環境保持靜止ranges=UniformVelocityCommandCfg.Ranges(lin_vel_x=(-1.0, 1.0),    # ±1 m/slin_vel_y=(-0.5, 0.5),    # ±0.5 m/s  ang_vel_z=(-1.0, 1.0),    # ±1 rad/sheading=(-3.14, 3.14),    # ±π rad),
)

帶閾值的速度命令配置

threshold_velocity_command_cfg = UniformThresholdVelocityCommandCfg(class_type=UniformThresholdVelocityCommand,asset_name="robot",resampling_time_range=(8.0, 12.0),heading_command=True,heading_control_stiffness=1.2,rel_standing_envs=0.3,  # 30% 環境保持靜止ranges=UniformThresholdVelocityCommandCfg.Ranges(lin_vel_x=(-1.5, 1.5),    # ±1.5 m/slin_vel_y=(-0.8, 0.8),    # ±0.8 m/s  ang_vel_z=(-1.2, 1.2),    # ±1.2 rad/sheading=(-3.14, 3.14),    # ±π rad),
)
# 注:小于0.2 m/s的線速度會被自動過濾為零

機械臂姿態命令配置

pose_command_cfg = UniformPoseCommandCfg(class_type=UniformPoseCommand,asset_name="robot",body_name="end_effector",resampling_time_range=(8.0, 8.0),make_quat_unique=True,ranges=UniformPoseCommandCfg.Ranges(pos_x=(0.3, 0.7),         # 工作空間 x 范圍pos_y=(-0.3, 0.3),        # 工作空間 y 范圍pos_z=(0.1, 0.5),         # 工作空間 z 范圍roll=(-0.5, 0.5),         # 滾轉角范圍pitch=(-0.5, 0.5),        # 俯仰角范圍yaw=(-3.14, 3.14),        # 偏航角范圍),
)

離散命令控制器配置

# 基礎離散命令配置
discrete_command_cfg = DiscreteCommandControllerCfg(class_type=DiscreteCommandController,available_commands=[0, 1, 2, 3, 4],  # 5個基礎命令resampling_time_range=(3.0, 7.0),    # 3-7秒重采樣
)# 高級離散命令配置(用于復雜任務)
advanced_discrete_cfg = DiscreteCommandControllerCfg(class_type=DiscreteCommandController,available_commands=[100, 200, 300, 400, 500, 600],  # 6個高級命令resampling_time_range=(5.0, 15.0),   # 5-15秒重采樣
)# 命令含義示例:
# 100 - 探索模式
# 200 - 跟蹤模式  
# 300 - 搜索模式
# 400 - 返回模式
# 500 - 待機模式
# 600 - 緊急停止

🎯 應用場景

1. 移動機器人導航

  • 速度命令:控制機器人移動
  • 帶閾值速度命令:避免微小抖動,提高穩定性
  • 2D姿態命令:導航到目標點
  • 地形命令:復雜環境導航
  • 離散命令:行為模式切換(探索/跟蹤/返回)

2. 機械臂操作

  • 姿態命令:末端執行器定位
  • 速度命令:連續軌跡跟蹤
  • 空命令:自由運動學習
  • 離散命令:操作模式切換(抓取/放置/移動)

3. 多任務學習

  • 組合命令:同時使用多種命令類型
  • 條件命令:根據任務階段切換命令
  • 層次命令:高層規劃 + 低層執行
  • 離散-連續混合:離散任務選擇 + 連續參數控制

4. 分層強化學習

  • 高層策略:使用離散命令選擇子任務
  • 低層策略:使用連續命令執行具體動作
  • 任務分解:復雜任務拆分為離散子任務
  • 行為原語:預定義的基礎行為模塊

🔧 擴展開發

創建自定義連續命令類型

class CustomContinuousCommand(CommandTerm):"""自定義連續命令生成器Custom continuous command generator"""def __init__(self, cfg, env):super().__init__(cfg, env)# 初始化自定義邏輯def _resample_command(self, env_ids):# 實現自定義采樣邏輯passdef _update_command(self):# 實現自定義更新邏輯  passdef _update_metrics(self):# 實現自定義度量計算pass

創建自定義離散命令類型

class CustomDiscreteCommand(CommandTerm):"""自定義離散命令生成器Custom discrete command generator"""def __init__(self, cfg, env):super().__init__(cfg, env)# 初始化命令集合和權重self.command_weights = cfg.command_weightsdef _resample_command(self, env_ids):# 基于權重的采樣邏輯sampled_commands = torch.multinomial(self.command_weights, len(env_ids), replacement=True)self.command_buffer[env_ids] = sampled_commandsdef _update_command(self):# 更新命令狀態pass

混合命令控制器

class HybridCommandController(CommandTerm):"""混合命令控制器Hybrid command controller combining discrete and continuous commands"""def __init__(self, cfg, env):super().__init__(cfg, env)# 初始化離散和連續命令組件self.discrete_controller = DiscreteCommandController(cfg.discrete_cfg, env)self.continuous_controller = UniformVelocityCommand(cfg.continuous_cfg, env)@propertydef command(self):# 組合離散和連續命令discrete_cmd = self.discrete_controller.commandcontinuous_cmd = self.continuous_controller.commandreturn torch.cat([discrete_cmd, continuous_cmd], dim=-1)

📊 核心方法詳解

CommandTerm 基類方法

方法名功能描述調用時機
__init__()初始化命令生成器環境創建時
reset()重置命令狀態環境重置時
compute()計算和更新命令每個時間步
_resample_command()重新采樣命令達到重采樣時間時
_update_command()后處理命令每次計算后
_update_metrics()更新性能指標每個時間步

命令屬性

屬性名類型描述
commandtorch.Tensor當前命令值
metricsdict性能度量字典
num_envsint環境數量
devicetorch.device計算設備

擴展命令類型對比

命令類型輸出類型主要用途特殊功能
UniformVelocityCommand連續基礎速度控制航向控制、靜止模式
UniformThresholdVelocityCommand連續穩定速度控制閾值過濾、抖動抑制
DiscreteCommandController離散行為模式切換隨機采樣、狀態監控
UniformPoseCommand連續姿態跟蹤坐標轉換、誤差計算
NullCommand自由探索異常處理

🎉 總結

Commands 模塊是 Isaac Lab 中任務導向訓練的核心,提供了:

  • 多樣化的命令類型:滿足不同任務需求
    • 連續命令:速度、姿態控制
    • 離散命令:行為模式切換
    • 混合命令:復雜任務分解
  • 靈活的配置系統:易于定制和擴展
  • 強大的可視化功能:便于調試和分析
  • 高效的實現:支持大規模并行訓練
  • 模塊化設計:便于組合和復用
  • 擴展友好:支持自定義命令類型開發

🚀 新增特性亮點

  1. 閾值過濾機制UniformThresholdVelocityCommand 自動過濾微小速度命令,提升訓練穩定性
  2. 離散命令支持DiscreteCommandController 支持預定義離散命令集合,適用于分層強化學習
  3. 類型安全保證:嚴格的類型檢查和驗證機制
  4. 實時監控能力:提供命令狀態的實時訪問和監控
  5. 混合控制模式:支持離散和連續命令的組合使用

通過合理使用 Commands 模塊,可以構建復雜的機器人學習任務,實現從基礎運動控制到高級任務規劃的全方位訓練。

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

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

相關文章

全流程開源!高德3D貼圖生成系統,白模一鍵生成真實感紋理貼圖

導讀 MVPainter 隨著3D生成從幾何建模邁向真實感還原,貼圖質量正逐漸成為決定3D資產視覺表現的核心因素。我們團隊自研的MVPainter系統,作為業內首個全流程開源的3D貼圖生成方案,僅需一張參考圖與任意白模,即可自動生成對齊精確…

Levenberg-Marquardt算法詳解和C++代碼示例

Levenberg-Marquardt(LM)算法是非線性最小二乘問題中常用的一種優化算法,它融合了高斯-牛頓法和梯度下降法的優點,在數值計算與SLAM、圖像配準、機器學習等領域中應用廣泛。 一、Levenberg-Marquardt算法基本原理 1.1 問題定義 …

理解網絡協議

1.查看網絡配置 : ipconfig 2. ip地址 : ipv4(4字節, 32bit), ipv6, 用來標識主機的網絡地址 3.端口號(0~65535) : 用來標識主機上的某個進程, 1 ~ 1024 知名端口號, 如果是服務端的話需要提供一個特定的端口號, 客戶端的話是隨機分配一個端口號 4.協議 : 簡單來說就是接收數據…

如何計算光伏工程造價預算表?

在光伏工程的推進過程中,造價預算表的編制是至關重要的環節,傳統的光伏工程造價預算編制方法,往往依賴人工收集數據、套用定額,再進行繁瑣的計算與匯總,不僅效率低下,而且容易出現人為誤差,導致…

新聞速遞|Altair 與佐治亞理工學院簽署合作備忘錄,攜手推動航空航天領域創新

近日,全球計算智能領域領先企業 Altair 與佐治亞理工學院正式簽署合作備忘錄,旨在深化航空航天領域的技術創新合作。 根據協議,佐治亞理工學院的航空航天系統設計實驗室 (ASDL) 將獲得 Altair 的技術支持,運用仿真與數據分析 (DA)…

PLSQLDeveloper配置OracleInstantClient連接Oracle數據庫

PL/SQLDeveloper配置Oracle Instant Client連接Oracle數據庫 文章目錄 PL/SQLDeveloper配置Oracle Instant Client連接Oracle數據庫 1. Oracle Instant Client下載與配置1. Oracle Instant Client下載2. Oracle Instant Client解壓配置1. 解壓2. 配置 2. PL/SQL Developer下載、…

數據庫系統學習

關系型數據庫 關系型數據庫建立在關系模型基礎上的數據庫,關系型數據庫是由多張能相互相連的二維表組成的數據庫 優點: 都是使用表結構,格式一致,易于維護使用通用的sql語言操作,使用方便,可用于復雜查詢…

美國大休斯頓都會區電網數據

美國大休斯頓都會區(Houston-The Woodlands-Sugar Land Metropolitan Area)電網數據。數據包括:發電、輸電、變電、配電。而且配電線路也很完善!下面是截圖: 輸電線路 配電線路 變電站 開關站 電廠

信創主機性能測試實例(升騰P860)

文章目錄 一、引言二、基準測試(Unixbench )三、CPU測試(SPEC CPU 2006)四、GPU測試(Glmark2)五、IO測試(Iozone )六、內存基準測試(Stream )七、網絡性能基準…

Web前端基礎:HTML-CSS

1.標題 1.1標題排版 超鏈接 a 標簽&#xff1a; 標簽&#xff1a;<a href"....." target".....">央視網</a> 屬性&#xff1a; href: 指定資源訪問的urltarget: 指定在何處打開資源鏈接 _self: 默認值&#xff0c;在當前頁面打開_blank: 在…

Python數學可視化:3D參數曲面與隱式曲面繪制技術

Python數學可視化&#xff1a;3D參數曲面與隱式曲面繪制技術 引言 在科學研究、工程設計和數學教學中&#xff0c;3D可視化技術是理解復雜幾何形狀和空間關系的重要工具。本文將介紹如何使用Python實現參數曲面和隱式曲面的3D可視化&#xff0c;通過數學公式和代碼示例展示球…

傳輸層:udp與tcp協議

目錄 再談端口號 端口號范圍劃分 認識知名端口號(Well-Know Port Number) 兩個問題 netstat pidof 如何學習下三層協議 UDP協議 UDP協議端格式 UDP的特點 面向數據報 UDP的緩沖區 UDP使用注意事項 基于UDP的應用層協議 TCP協議 TCP協議段格式 1.源端口號…

java 實現excel文件轉pdf | 無水印 | 無限制

文章目錄 目錄 文章目錄 前言 1.項目遠程倉庫配置 2.pom文件引入相關依賴 3.代碼破解 二、Excel轉PDF 1.代碼實現 2.Aspose.License.xml 授權文件 總結 前言 java處理excel轉pdf一直沒找到什么好用的免費jar包工具,自己手寫的難度,恐怕高級程序員花費一年的事件,也…

Keil調試模式下,排查程序崩潰簡述

在Keil調試模式下&#xff0c;若程序崩潰&#xff0c;可以通過以下步驟來定位崩潰的位置&#xff1a; 一、查看調用棧&#xff08;Call Stack&#xff09; 打開調用棧窗口&#xff1a; 在Keil的調試模式下&#xff0c;點擊菜單欄的“View” -> “Call Stack Window”&…

深度解析Mysql中MVCC的工作機制

MVCC,多版本并發控制 定義&#xff1a;維護一個數據的多個版本&#xff0c;使讀寫操作沒有沖突&#xff0c;依賴于&#xff1a;隱藏字段&#xff0c;undo log日志&#xff0c;readView MVCC會為每條版本記錄保存三個隱藏字段 DB_TRX_ID: 記錄最近插入或修改該記錄的事務IDDB_R…

uniapp+vue3實現CK通信協議(基于jjc-tcpTools)

1. TCP 服務封裝 (tcpService.js) export class TcpService {constructor() {this.connections uni.requireNativePlugin(jjc-tcpTools)this.clients new Map() // 存儲客戶端連接this.servers new Map() // 存儲服務端實例}// 創建 TCP 服務端 (字符串模式)createStringSe…

學習設計模式《十二》——命令模式

一、基礎概念 命令模式的本質是【封裝請求】命令模式的關鍵是把請求封裝成為命令對象&#xff0c;然后就可以對這個命令對象進行一系列的處理&#xff08;如&#xff1a;參數化配置、可撤銷操作、宏命令、隊列請求、日志請求等&#xff09;。 命令模式的定義&#xff1a;將一個…

Webpack的基本使用 - babel

Mode配置 Mode配置選項可以告知Webpack使用相應模式的內置優化 默認值是production&#xff08;什么都不設置的情況下&#xff09; 可選值有&#xff1a;none | development | production; 這幾個選項有什么區別呢&#xff1f; 認識source-map 我們的代碼通常運行在瀏覽器…

「基于連續小波變換(CWT)和卷積神經網絡(CNN)的心律失常分類算法——ECG信號處理-第十五課」2025年6月6日

一、引言 心律失常是心血管疾病的重要表現形式&#xff0c;其準確分類對臨床診斷具有關鍵意義。傳統的心律失常分類方法主要依賴于人工特征提取和經典機器學習算法&#xff0c;但這些方法往往受限于特征選擇的主觀性和模型的泛化能力。 隨著深度學習技術的發展&#xff0c;基于…

C++.OpenGL (11/64)材質(Materials)

材質(Materials) 真實感材質系統 #mermaid-svg-NjBjrmlcpHupHCFQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-NjBjrmlcpHupHCFQ .error-icon{fill:#552222;}#mermaid-svg-NjBjrmlcpHupHCFQ .error-text{fill:…