# 2026-04-09 每日总结 ## 📅 日期和当日概览 - **日期:** 2026年4月9日(周四) - **时间:** 下午 3:00 (UTC) - **状态:** 活跃对话日 --- ## 💬 主要对话话题 ### 1. 🐛 copyparty 文件服务器权限问题 - 解决 admin 用户无法读取文件列表的问题 - 深入理解 copyparty 的 `-v` 参数权限配置语法 - 最终配置:`/root/copyparty-files:/files:r:rw,admin` ### 2. 📐 线性代数:机器人变换矩阵 - 学习 4×4 齐次变换矩阵(平移 + 旋转) - 掌握复合变换的右乘法则 - 实际应用案例:2D 机械臂末端位置计算、无人机姿态变换 - 欧拉角旋转矩阵与万向节死锁概念 --- ## ✅ 完成的待办事项 - ✅ 解决 copyparty 文件服务器权限配置问题 - ✅ 搭建可用的文件传输方案(copyparty) - ✅ 线性代数:机器人变换矩阵学习 --- ## 📌 未完成的待办事项(需要后续跟进) - ⏳ IEEE MDM 2026 Demo 论文准备(投稿截止:4月26日,还有17天) - ⏳ OpenWrt 旁路由项目(Passwall/OpenClash 依赖包问题) - ⏳ FRP 内网穿透配置(测试外网访问、设置开机自启) - ⏳ 蓝桥杯备赛 --- ## 📝 重要决定或约定 - 建立 copyparty 文件服务器作为 AI 与用户之间传输大文件的方案 - 服务器地址:`http://129.211.3.54:3923/files/` --- ## 💡 学到的知识点或新发现 ### copyparty 权限配置 ```bash # 格式:src:dst:perm1:perm2... -v /data:/files:r:rw,admin # 公开只读 + admin 可写 ``` ### 机器人变换矩阵核心要点 - **右乘法则**:先进行的变换写在右边 `P' = T × R × P` - **旋转矩阵正交性**:`R⁻¹ = Rᵀ` - **万向节死锁**:欧拉角中间轴旋转90°会丢失一个自由度 --- ## 🎯 明日提醒 - IEEE MDM 2026 Demo 论文投稿截止:**4月26日**(还有17天) - 蓝桥杯备赛进行中 --- ## 📁 附件:详细工作记录
🐛 copyparty 文件服务器权限问题(详细) ### 问题现象 - copyparty 服务启动后,admin 用户无法读取文件列表 - API 返回 `"dirs": [], "files": []`,目录显示为空 ### 根本原因 copyparty 的 `-v`(volume)参数配置错误: ```bash # ❌ 错误配置:只给了写权限,没给读权限 -v /root/copyparty-files:/files:w,admin ``` ### 解决方法 ```bash # ✅ 正确配置:r 给所有人读权限,rw,admin 给 admin 读写权限 -v /root/copyparty-files:/files:r:rw,admin ``` ### copyparty -v 参数详解 **格式:** `src:dst:perm1:perm2:permN:volflag...` | 部分 | 说明 | 示例 | |------|------|------| | `src` | 本地路径 | `/root/copyparty-files` | | `dst` | URL 路径 | `/files` | | `perm` | 权限配置 | `r`, `w,user1`, `rw,admin` | | `volflag` | 卷标志 | `c` (cookie), `nodupe` 等 | **权限格式:** `权限字母,用户1,用户2,...` | 权限 | 含义 | |------|------| | `r` | 读取(列出目录、下载文件) | | `w` | 写入(上传文件) | | `m` | 移动文件/目录 | | `d` | 删除 | | `a` | 管理员(看上传者IP、重载配置) | | `A` | 全部权限(rwmda.) | **常见配置示例:** ```bash # 公开只读 + admin 可写 -v /data:/files:r:rw,admin # 仅特定用户可读写 -v /data:/files:rw,alice:rw,bob # 多目录挂载 -v /music:/music:r -v /docs:/docs:rw,admin ``` ### 验证结果 - ✅ 匿名用户 → 403 Forbidden(无法访问) - ✅ admin 登录 → 正常显示所有文件,可上传下载
📐 线性代数:机器人变换矩阵(详细) ### 1. 基础变换矩阵 #### 平移矩阵 T ``` | 1 0 0 tx | T = | 0 1 0 ty | | 0 0 1 tz | | 0 0 0 1 | ``` #### 绕 Z 轴旋转矩阵 Rz(θ) ``` | cosθ -sinθ 0 0 | Rz = | sinθ cosθ 0 0 | | 0 0 1 0 | | 0 0 0 1 | ``` #### 绕 X/Y 轴旋转矩阵 ``` | 1 0 0 0 | | cosθ 0 sinθ 0 | Rx = | 0 cosθ -sinθ 0 | Ry = | 0 1 0 0 | | 0 sinθ cosθ 0 | | -sinθ 0 cosθ 0 | | 0 0 0 1 | | 0 0 0 1 | ``` ### 2. 复合变换核心规则:右乘法则 **变换顺序非常重要!先进行的变换写在右边。** ``` P' = T × R × P # 先旋转 R,再平移 T ``` #### 推导示例 点 P 先绕 Z 轴旋转 θ,再沿 X 轴平移 d: ``` P₁ = Rz(θ) × P # 第一步:旋转 P' = T × P₁ = T × Rz(θ) × P # 第二步:平移 复合矩阵: | cosθ -sinθ 0 d | T×Rz = | sinθ cosθ 0 0 | | 0 0 1 0 | | 0 0 0 1 | ``` ### 3. 实际例子 #### 例子 1:2D 机械臂末端位置 ```python import numpy as np def rot_z(theta): c, s = np.cos(theta), np.sin(theta) return np.array([[c,-s,0,0], [s,c,0,0], [0,0,1,0], [0,0,0,1]]) def translate(x, y, z=0): return np.array([[1,0,0,x], [0,1,0,y], [0,0,1,z], [0,0,0,1]]) # 机械臂参数 L1, L2 = 2, 1.5 theta1, theta2 = np.radians(30), np.radians(45) # 变换链:基座 → 关节1 → 关节2 → 末端 T_joint1 = rot_z(theta1) @ translate(L1, 0) T_joint2 = rot_z(theta2) @ translate(L2, 0) T_total = T_joint1 @ T_joint2 # 计算末端位置 end = T_total @ np.array([0, 0, 0, 1]) # 结果: (1.366, 2.299) ``` #### 例子 2:无人机姿态变换 无人机依次进行: 1. 绕 Z 轴偏航(Yaw)45° 2. 绕 Y 轴俯仰(Pitch)30° 3. 绕 X 轴翻滚(Roll)15° 4. 向前飞行 10 米 ``` T_total = Translate(10,0,0) × Rx(15°) × Ry(30°) × Rz(45°) ``` **注意:** 顺序很重要!先偏航改变"前"方向,后续操作都基于新的姿态。 #### 例子 3:欧拉角旋转矩阵 ``` R = Rz(γ) × Ry(β) × Rx(α) | cγcβ cγsβsα-sγcα cγsβcα+sγsα | = | sγcβ sγsβsα+cγcα sγsβcα-cγsα | | -sβ cβsα cβcα | ``` (c=cos, s=sin) ### 4. 重要注意事项 | 注意点 | 说明 | |--------|------| | ⚠️ 顺序很重要 | `T × R ≠ R × T`,矩阵乘法不满足交换律 | | ⚠️ 万向节死锁 | 欧拉角中,中间轴旋转90°会丢失自由度 | | ✅ 逆变换 | 旋转矩阵正交:`R⁻¹ = Rᵀ` | ### 5. 总结 | 操作 | 矩阵 | 说明 | |------|------|------| | 平移 | T(tx,ty,tz) | 沿向量移动 | | 旋转 | Rx/Ry/Rz(θ) | 绕坐标轴旋转 | | 复合 | T₂ × R₂ × T₁ × R₁ | 右乘法则,先右后左 | | 逆变换 | T⁻¹, R⁻¹=Rᵀ | 旋转矩阵正交性质 |
--- *总结生成时间:2026-04-09 15:00 UTC* *用户:Deshill*