Nvidia Thor远程桌面配置
[教程] NVIDIA Thor (Ubuntu 24.04) 配置 x11vnc 远程桌面全指南在 NVIDIA Thor(Drive OS / Ubuntu 24.04)开发板上,默认显示协议通常为 Wayland,且未预配置远程桌面功能。为实现稳定、可交互的远程 GUI 操作,需切换至 X11 协议并部署 x11vnc 服务。 ⚠️ 本教程适用于 Ubuntu 24.04 + GDM3 环境,操作前请确保已通过 SSH 或本地终端访问设备。 1. 环境准备:禁用 Wayland 并启用自动登录x11vnc 依赖 X11 协议,且需用户已登录图形会话才能捕获屏幕内容。 修改 GDM3 配置1sudo nano /etc/gdm3/custom.conf 修改 [daemon] 部分如下(取消注释并调整值): 1234567[daemon]# 强制使用 Xorg (X11)WaylandEnable=false# 启用自动登录(将 'jetson' 替换为实际用户名)AutomaticLoginEnable=trueAutomaticLog...
git
git 代码提交📋 完整的提交类型列表 类型 含义 使用场景 示例 feat 新功能 添加新特性 feat: 添加用户登录功能 fix 修复 Bug 修复错误 fix: 修复登录时的空指针异常 docs 文档 仅修改文档 docs: 更新 API 使用说明 style 代码格式 不影响代码逻辑的格式修改 style: 统一代码缩进为 4 空格 refactor 重构 既不是新功能也不是修复 Bug refactor: 重构用户服务层代码 perf 性能优化 提升性能的修改 perf: 优化数据库查询,减少 N+1 问题 test 测试 添加或修改测试代码 test: 添加用户服务单元测试 build 构建系统 影响构建系统或外部依赖 build: 升级 Go 版本到 1.25 ci 持续集成 修改 CI 配置文件 ci: 添加 GitHub Actions 自动测试 chore 杂务 其他不修改源码的变更 chore: 更新 .gitignore revert 回滚 撤销之前的提交 revert: 回滚 feat: 添加用户登...
go学习
全局变量var c, m []interface{}必须要使用var声明。 使用方式:var name Type 或 var name = value;不能用 var name Type{}(这是局部变量的短声明风格) []interface{}:Go 的”万能容器”,可存放任意类型,等价于[]any 使用示例: 12345678// 方案1:用 = 赋值(推荐!)var define_1 = []any{}// 方案2:先声明,后在 init/main 中初始化var define_1 []any // 零值初始化为 nilfunc init() { define_1 = []any{} // 运行时初始化} 推荐使用方法 1,该方法不存在空指针! []any []any是一个数据类型(不能单独作为值) any 是 Go 1.18+ 中 interface{} 的别名(完全等价) 花括号 {} 创建结构体实例 切片字面量 切片字面量必须写成 []any{元素} 或 []any{}(空切片),即切片字...
qmini部署代码分析
一、qmini 网络输出内容分析1.1 固定配置1.1.1 网络输出维度(12维) 前2维:步态相位频率 (0.5~3.5 Hz) 后10维:关节位置增量速度 (-13.5~13.5 rad/s) 1.1.2 控制流程 网络推理:输出12维数据,范围 [-1, 1] 输出转换 (rl_controller.cpp 第211-224行): 将 [-1,1] 映射到实际物理量 后10维映射为位置增量速度 [-13.5, 13.5] rad/s 增量累加 (rl_controller.cpp 第75-82行): 1joint_act.segment(0, NUM_ACTUAT_JOINTS) += increment.segment(NUM_LEGS, NUM_ACTUAT_JOINTS) * _rl_time_step; 增量乘以时间步长后累加到 joint_act(关节目标位置) 发送电机命令 (rl_controller.cpp 第162-181行): 12motor_command_tmp.q_target[i] = joint_act[...]...
Isaac Lab参数分析
它主要定义了关节驱动器在底层物理引擎中是如何施加作用力的。我们可以从Python 语法和物理仿真含义两个层面来解读。 Python 语法层面drive_type: dict[str, Literal[“acceleration”, “force”]] | Literal[“acceleration”, “force”] = “force” 变量名: drive_type。类型注解 (Type Hinting):| (竖线): 代表 或者 (Union)。这意味着这个变量可以接受两种类型的数据。类型一: Literal[“acceleration”, “force”]。这表示变量可以是一个字符串,但必须严格是 “acceleration” 或 “force” 其中之一。如果设为这个值,它将应用于所有关节。类型二: dict[str, Literal[“acceleration”, “force”]]。这表示变量可以是一个字典。键 (key) 是字符串(通常是关节名称的正则表达式)。值 (value) 是 “acceleration” 或 “force”。这种方式允许你...
四元数分析
四元数详解四元数 (Quaternion) 是一种用于表示三维空间旋转的数学工具,比欧拉角更稳定,没有万向锁问题。 四元数的定义四元数由 4个分量 组成: 1q = [qx, qy, qz, qw] # 或写作 q = qw + qx*i + qy*j + qz*k qx, qy, qz: 向量部分 (imaginary parts) qw: 标量部分 (real part) ⚠️ 重要说明:没有单独的”前两个分量含义”四元数的4个分量是一个整体,不能单独解释某一个或某两个分量的物理意义。它们共同描述旋转,必须作为整体来理解。 为什么不能单独解释?四元数表示旋转的公式是: 1q = cos(θ/2) + sin(θ/2) * (nx*i + ny*j + nz*k) 展开为: 1234qw = cos(θ/2) # 标量部分qx = sin(θ/2) * nx # x轴分量qy = sin(θ/2) * ny # y轴分量 qz = sin(θ/2) * nz # z轴分量 其中: θ: 旋转角度 [nx, ny, nz]: 旋转...
tmux用法
Tmux 使用指南Tmux (Terminal Multiplexer) 是一个强大的终端多路复用器,功能类似于 Screen 但更现代化。它允许你在一个终端窗口中管理多个会话、窗口和窗格。 基础概念Tmux 有三个层级结构: Session (会话): 一组窗口的集合,可以detach/attach Window (窗口): 类似于浏览器的标签页 Pane (窗格): 在一个窗口中分割出的区域 常用命令会话管理12345678910111213141516171819202122232425# 创建新会话tmux new -s my_session# 创建会话并指定名称(推荐)tmux new -s training_session# 列出所有会话tmux ls# 连接到已存在的会话tmux attach -t my_session# 或简写tmux a -t my_session# 分离当前会话(从会话内部按快捷键)Ctrl+B, D# 从外部分离某个会话tmux detach -s my_session# 杀死会话tmux kill-session -t my...
ros2 setpy.py详解
setup.py 内容分析一般setup.py基本内容如下: 12345678910111213141516171819202122232425262728293031323334from setuptools import find_packages, setupimport osfrom glob import globpackage_name = 'qmini_nav2'setup( name=package_name, version='0.0.0', packages=find_packages(exclude=['test']), data_files=[ ('share/ament_index/resource_index/packages', ['resource/' + package_name]), ('share/' + package_name, ['pa...
ros2可执行节点
一、ros2可执行节点1.1 Node定义节点(Node) 是 ROS2 中最基本的执行单元,可以理解为一个独立运行的程序。每个节点负责特定的功能,比如: 读取传感器数据 控制电机 处理图像 发布导航目标点(就像您的 qmini_nav2_waypoint.launch.py 文件那样) 1.2 Node代码结构可执行节点就是可以直接运行的 Python 或 C++ 程序,必须满足: 123456789101112131415161718192021# Python 节点的基本结构import rclpyfrom rclpy.node import Nodeclass MyNode(Node): def __init__(self): super().__init__('my_node_name') # 节点的功能代码 def func(): passdef main(args=None): rclpy.init(args=args) # 初始化 ROS2 node...