ソースを参照

feat(hugo): 添加 Hugo 站点结构、项目管理层页面和每日归档目录

Daily Deploy Bot 5 日 前
コミット
becbd44128

+ 163 - 0
arxiv-digest/scripts/publish_hugo.py

@@ -0,0 +1,163 @@
+#!/usr/bin/env python3
+"""Publish RobotDaily markdown bundles into a Hugo content section."""
+
+from __future__ import annotations
+
+import argparse
+import json
+import re
+from pathlib import Path
+from typing import Any, Dict, List
+
+from utils import ensure_dir, normalize_space, now_local, read_json, slugify, write_text
+
+DEFAULT_SITE_DIR = Path(__file__).resolve().parents[2] / "site"
+DEFAULT_HUGO_CONTENT_DIR = DEFAULT_SITE_DIR / "content" / "ai-daily"
+DOMAIN_TAGS = {
+    "embodied": "具身智能",
+    "representation": "表征学习",
+    "reinforcement": "强化学习",
+}
+
+
+def detect_date(markdown_path: Path, content: str) -> str:
+    parent_name = markdown_path.parent.name
+    if re.fullmatch(r"\d{4}-\d{2}-\d{2}", parent_name):
+        return parent_name
+    match = re.search(r"(20\d{2}-\d{2}-\d{2})", content)
+    if match:
+        return match.group(1)
+    return now_local().strftime("%Y-%m-%d")
+
+
+def strip_leading_title(markdown: str) -> str:
+    lines = markdown.splitlines()
+    while lines and not normalize_space(lines[0]):
+        lines.pop(0)
+    if lines and lines[0].startswith("# "):
+        lines.pop(0)
+        while lines and not normalize_space(lines[0]):
+            lines.pop(0)
+    return "\n".join(lines).strip() + "\n"
+
+
+def build_summary_from_manifest(manifest: Dict[str, Any], fallback_body: str = "") -> str:
+    if manifest:
+        date_slug = str(manifest.get("date") or now_local().strftime("%Y-%m-%d"))
+        total = int(manifest.get("selected_count") or 0)
+        counts = manifest.get("counts") or {}
+        parts: List[str] = []
+        for key in ["embodied", "representation", "reinforcement"]:
+            count = counts.get(key)
+            if count:
+                parts.append(f"{DOMAIN_TAGS.get(key, key)} {count} 篇")
+        breakdown = ",".join(parts)
+        if breakdown:
+            return f"RobotDaily {date_slug}:共 {total} 篇,含 {breakdown}。"
+        return f"RobotDaily {date_slug}:共 {total} 篇。"
+
+    for line in fallback_body.splitlines():
+        clean = normalize_space(line)
+        if clean and not clean.startswith("#") and not clean.startswith("-") and not clean.startswith(">"):
+            return clean[:110]
+    return "RobotDaily 当日 Markdown 归档。"
+
+
+def build_tags(manifest: Dict[str, Any]) -> List[str]:
+    tags = ["robotdaily", "ai-daily"]
+    counts = manifest.get("counts") or {}
+    for key in ["embodied", "representation", "reinforcement"]:
+        if counts.get(key):
+            # 使用中文作为 taxonomy 标签,支持 Hugo 索引
+            zh = DOMAIN_TAGS.get(key)
+            if zh:
+                tags.append(zh)
+    if manifest.get("effective_models_used"):
+        tags.append("llm")
+    deduped: List[str] = []
+    seen = set()
+    for item in tags:
+        text = normalize_space(item)
+        if not text or text in seen:
+            continue
+        deduped.append(text)
+        seen.add(text)
+    return deduped
+
+
+def format_front_matter(*, title: str, date_text: str, summary: str, tags: List[str]) -> str:
+    escaped_summary = summary.replace('"', '\\"')
+    tag_json = json.dumps(tags, ensure_ascii=False)
+    return (
+        "---\n"
+        f'title: "{title}"\n'
+        f"date: {date_text}\n"
+        "draft: false\n"
+        f'summary: "{escaped_summary}"\n'
+        f"tags: {tag_json}\n"
+        "---\n\n"
+    )
+
+
+def build_hugo_document(source: Path, manifest: Dict[str, Any] | None = None) -> tuple[str, str]:
+    raw = source.read_text(encoding="utf-8")
+    date_slug = str((manifest or {}).get("date") or detect_date(source, raw))
+    body = strip_leading_title(raw)
+    summary = build_summary_from_manifest(manifest or {}, body)
+    title = f"{date_slug} · AI 每日简报"
+    date_text = str((manifest or {}).get("generated_at") or f"{date_slug}T10:30:00+08:00")
+    front_matter = format_front_matter(title=title, date_text=date_text, summary=summary, tags=build_tags(manifest or {}))
+    intro = [
+        "> Hugo 归档版,来源于 RobotDaily 当日 Markdown 简报。",
+        ">",
+        f"> {summary}",
+        "",
+    ]
+    return date_slug, front_matter + "\n".join(intro) + "\n" + body
+
+
+def publish_markdown_to_hugo(markdown_path: str, site_dir: str, section: str = "ai-daily", manifest_path: str = "") -> Path:
+    source = Path(markdown_path)
+    if not source.exists():
+        raise FileNotFoundError(f"Markdown source not found: {source}")
+    manifest = read_json(manifest_path, default={}) if manifest_path else {}
+    date_slug, document = build_hugo_document(source, manifest)
+    target = ensure_dir(Path(site_dir) / "content" / section) / f"{date_slug}.md"
+    write_text(target, document)
+    return target
+
+
+def publish_to_hugo(markdown_path: str, manifest_path: str = "", content_dir: str = "") -> Path:
+    source = Path(markdown_path)
+    if not source.exists():
+        raise FileNotFoundError(f"Markdown source not found: {source}")
+    manifest = read_json(manifest_path, default={}) if manifest_path else {}
+    date_slug, document = build_hugo_document(source, manifest)
+    target = ensure_dir(Path(content_dir) if content_dir else DEFAULT_HUGO_CONTENT_DIR) / f"{date_slug}.md"
+    write_text(target, document)
+    return target
+
+
+def main() -> None:
+    parser = argparse.ArgumentParser(description="Publish RobotDaily markdown into Hugo content")
+    parser.add_argument("--input", default="")
+    parser.add_argument("--markdown", default="")
+    parser.add_argument("--manifest", default="")
+    parser.add_argument("--content-dir", default="")
+    parser.add_argument("--site-dir", default="")
+    parser.add_argument("--section", default="ai-daily")
+    args = parser.parse_args()
+
+    markdown = args.input or args.markdown
+    if not markdown:
+        raise SystemExit("--input 或 --markdown 必填")
+
+    if args.site_dir:
+        output = publish_markdown_to_hugo(markdown, site_dir=args.site_dir, section=args.section, manifest_path=args.manifest)
+    else:
+        output = publish_to_hugo(markdown_path=markdown, manifest_path=args.manifest, content_dir=args.content_dir)
+    print(output)
+
+
+if __name__ == "__main__":
+    main()

+ 2 - 0
deploy/.env.example

@@ -0,0 +1,2 @@
+HOST_PORT=9080
+HUGO_BASEURL=https://robotdaily.indigofloyd.space/

+ 45 - 0
deploy/README.md

@@ -0,0 +1,45 @@
+# Hugo 部署说明
+
+这个目录提供一个最小可用的 Hugo 容器部署方案:
+
+- **宿主机端口固定为 9080**,和当前 WordPress 对外端口保持一致
+- Hugo 直接挂载 `../site`,Markdown 内容同步后会被即时渲染
+- 云服务器上的 Nginx 如今若反代到本机 `:9080`,切 Hugo 后无需改 upstream
+
+## 启动
+
+```bash
+cd /home/zhn/.openclaw/workspace/skills/robdaily/deploy
+cp .env.example .env
+# 如需自定义域名,改 HUGO_BASEURL
+
+docker compose up -d
+```
+
+## 切换注意事项
+
+当前 WordPress 也占着 `9080`,所以 **不能和 Hugo 同时用同一个宿主机端口启动**。
+
+切换时建议:
+
+1. 先确认 Hugo 站点内容已经准备好
+2. 停掉旧 WordPress 容器
+3. 再启动这个 Hugo 容器
+
+示例:
+
+```bash
+docker stop wordpress-wordpress-1
+cd /home/zhn/.openclaw/workspace/skills/robdaily/deploy
+docker compose up -d
+```
+
+## 每日简报同步
+
+`arxiv-digest/scripts/run_daily.py --publish-hugo` 会把当天的 Markdown 归档自动写进:
+
+```bash
+/home/zhn/.openclaw/workspace/skills/robdaily/site/content/ai-daily/
+```
+
+容器跑着时,新内容会直接出现在 Hugo 站点里。

+ 18 - 0
deploy/docker-compose.yml

@@ -0,0 +1,18 @@
+services:
+  hugo-personal-site:
+    image: klakegg/hugo:ext-alpine
+    container_name: hugo-personal-site
+    working_dir: /src
+    command: >-
+      server
+      --bind 0.0.0.0
+      --port 80
+      --appendPort=false
+      --disableFastRender
+      --navigateToChanged
+      --baseURL ${HUGO_BASEURL}
+    volumes:
+      - ../site:/src
+    ports:
+      - "${HOST_PORT:-9080}:80"
+    restart: unless-stopped

+ 13 - 0
site/content/_index.md

@@ -0,0 +1,13 @@
+---
+title: "IndigoFloyd"
+date: 2026-03-12T00:00:00+08:00
+draft: false
+---
+
+这是一个合并后的个人站:
+
+- **AI 每日简报**:承接 RobotDaily 的 Markdown 简报归档
+- **Blog**:日常文章、项目记录、技术随笔
+- **简历**:个人经历、技能栈、项目摘要
+
+后续每天产出的 RobotDaily Markdown 会进入 `AI 每日简报` 分区,不会和个人 Blog / 简历混在一起。

+ 82 - 0
site/content/ai-daily/2026-03-11.md

@@ -0,0 +1,82 @@
+---
+title: "2026-03-11 · AI 每日简报"
+date: 2026-03-11T18:36:12.223136+08:00
+draft: false
+summary: "RobotDaily 2026-03-11:共 9 篇,含 具身智能 3 篇,表征学习 3 篇,强化学习 3 篇。"
+tags: ["robotdaily", "ai-daily", "embodied", "具身智能", "representation", "表征学习", "reinforcement", "强化学习", "llm"]
+---
+
+> Hugo 归档版,来源于 RobotDaily 当日 Markdown 简报。
+>
+> RobotDaily 2026-03-11:共 9 篇,含 具身智能 3 篇,表征学习 3 篇,强化学习 3 篇。
+
+偏应用导向精选,按方向整理成短卡片式 Markdown 归档。
+
+## 具身智能(3 篇)
+
+### 1. PlayWorld: Learning Robot World Models from Autonomous Play
+> 关键词命中 real world, deployed, world model, scalable,应用信号: real world, deployed, robot;创…
+- 作者:Tenny Yin, Zhiting Mei, Zhonghe Zheng, Miyu Yamane 等另外7人
+- 标签:`具身智能` `机器人` `真实部署` `操控`
+- 中文摘要:【LLM 暂不可用,先保留英文摘要要点】Action-conditioned video models offer a promising path to building general-purpose robot simulators that can improve directly from data. Yet, despite training on large-scale robot datasets, current s…
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.09030) | [arXiv](https://arxiv.org/abs/2603.09030v1) | [PDF](https://arxiv.org/pdf/2603.09030v1)
+
+### 2. MetaWorld-X: Hierarchical World Modeling via VLM-Orchestrated Experts for Humanoid Loco-Manipulation
+> 关键词命中 robot, robotic, world model,应用信号: robot, robotic, system;创新信号: world model;领域匹配…
+- 作者:Yutong Shen, Hangxu Liu, Penghui Liu, Jiashuo Luo 等另外5人
+- 标签:`具身智能` `机器人` `真实部署` `操控`
+- 中文摘要:【LLM 暂不可用,先保留英文摘要要点】Learning natural, stable, and compositionally generalizable whole-body control policies for humanoid robots performing simultaneous locomotion and manipulation (loco-manipulation) remains a fundament…
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.08572) | [arXiv](https://arxiv.org/abs/2603.08572v1) | [PDF](https://arxiv.org/pdf/2603.08572v1)
+
+### 3. Embodied Human Simulation for Quantitative Design and Analysis of Interactive Robotics
+> 关键词命中 robot, robotic, scalable,应用信号: robot, robotic, system;创新信号: scalable;领域匹配: embo…
+- 作者:Chenhui Zuo, Jinhao Xu, Michael Qian Vergnolle, Yanan Sui
+- 标签:`具身智能` `机器人` `真实部署` `操控`
+- 中文摘要:【LLM 暂不可用,先保留英文摘要要点】Physical interactive robotics, ranging from wearable devices to collaborative humanoid robots, require close coordination between mechanical design and control. However, evaluating interactive dynami…
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.09218) | [arXiv](https://arxiv.org/abs/2603.09218v1) | [PDF](https://arxiv.org/pdf/2603.09218v1)
+
+## 表征学习(3 篇)
+
+### 1. $M^2$-Occ: Resilient 3D Semantic Occupancy Prediction for Autonomous Driving with Incomplete Camera Inputs
+> 关键词命中 real-world, deployment, first,应用信号: real-world, deployment, system;创新信号: first;…
+- 作者:Kaixin Lin, Kunyu Peng, Di Wen, Yufan Chen 等另外2人
+- 标签:`表征学习` `潜在空间` `世界模型` `预训练`
+- 中文摘要:【LLM 暂不可用,先保留英文摘要要点】Semantic occupancy prediction enables dense 3D geometric and semantic understanding for autonomous driving. However, existing camera-based approaches implicitly assume complete surround-view observat…
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.09737) | [arXiv](https://arxiv.org/abs/2603.09737v1) | [PDF](https://arxiv.org/pdf/2603.09737v1)
+
+### 2. Emerging Extrinsic Dexterity in Cluttered Scenes via Dynamics-aware Policy Learning
+> 关键词命中 real-world, real world, world model,应用信号: real-world, real world, deployment;创新…
+- 作者:Yixin Zheng, Jiangran Lyu, Yifan Zhang, Jiayi Chen 等另外7人
+- 标签:`表征学习` `潜在空间` `世界模型` `预训练`
+- 中文摘要:【LLM 暂不可用,先保留英文摘要要点】Extrinsic dexterity leverages environmental contact to overcome the limitations of prehensile manipulation. However, achieving such dexterity in cluttered scenes remains challenging and underexplored…
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.09882) | [arXiv](https://arxiv.org/abs/2603.09882v1) | [PDF](https://arxiv.org/pdf/2603.09882v1)
+
+### 3. From Semantics to Pixels: Coarse-to-Fine Masked Autoencoders for Hierarchical Visual Understanding
+> 关键词命中 dataset, self-supervised, first,应用信号: dataset;创新信号: self-supervised, first;领域匹配…
+- 作者:Wenzhao Xiang, Yue Wu, Hongyang Yu, Feng Gao 等另外2人
+- 标签:`表征学习` `潜在空间` `世界模型` `预训练`
+- 中文摘要:【LLM 暂不可用,先保留英文摘要要点】Self-supervised visual pre-training methods face an inherent tension: contrastive learning (CL) captures global semantics but loses fine-grained detail, while masked image modeling (MIM) preserves lo…
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.09955) | [arXiv](https://arxiv.org/abs/2603.09955v1) | [PDF](https://arxiv.org/pdf/2603.09955v1)
+
+## 强化学习(3 篇)
+
+### 1. SPAARS: Safer RL Policy Alignment through Abstract Exploration and Refined Exploitation of Action Space
+> 关键词命中 robot, robotic,应用信号: robot, robotic;领域匹配: reinforcement learning, policy gradie…
+- 作者:Swaminathan S K, Aritra Hazra
+- 标签:`强化学习` `策略优化` `奖励设计` `离线RL`
+- 中文摘要:【LLM 暂不可用,先保留英文摘要要点】Offline-to-online reinforcement learning (RL) offers a promising paradigm for robotics by pre-training policies on safe, offline demonstrations and fine-tuning them via online interaction. However, a…
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.09378) | [arXiv](https://arxiv.org/abs/2603.09378v1) | [PDF](https://arxiv.org/pdf/2603.09378v1)
+
+### 2. Robust Regularized Policy Iteration under Transition Uncertainty
+> 关键词命中 benchmark, unified,应用信号: benchmark;创新信号: unified;领域匹配: reinforcement learning,…
+- 作者:Hongqiang Lin, Zhenghui Fu, Weihao Tang, Pengfei Wang 等另外3人
+- 标签:`强化学习` `策略优化` `奖励设计` `离线RL`
+- 中文摘要:【LLM 暂不可用,先保留英文摘要要点】Offline reinforcement learning (RL) enables data-efficient and safe policy learning without online exploration, but its performance often degrades under distribution shift. The learned policy may vis…
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.09344) | [arXiv](https://arxiv.org/abs/2603.09344v1) | [PDF](https://arxiv.org/pdf/2603.09344v1)
+
+### 3. Towards Batch-to-Streaming Deep Reinforcement Learning for Continuous Control
+> 关键词命中 benchmark, hardware, novel,应用信号: benchmark, hardware, sim2real;创新信号: novel;领域匹配…
+- 作者:Riccardo De Monte, Matteo Cederle, Gian Antonio Susto
+- 标签:`强化学习` `策略优化` `奖励设计` `离线RL`
+- 中文摘要:【LLM 暂不可用,先保留英文摘要要点】State-of-the-art deep reinforcement learning (RL) methods have achieved remarkable performance in continuous control tasks, yet their computational complexity is often incompatible with the constrain…
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.08588) | [arXiv](https://arxiv.org/abs/2603.08588v1) | [PDF](https://arxiv.org/pdf/2603.08588v1)

+ 75 - 0
site/content/ai-daily/2026-03-12.md

@@ -0,0 +1,75 @@
+---
+title: "2026-03-12 · AI 每日简报"
+date: 2026-03-12T13:34:30.834120+08:00
+draft: false
+summary: "RobotDaily 2026-03-12:共 8 篇,含 具身智能 3 篇,表征学习 3 篇,强化学习 2 篇。"
+tags: ["robotdaily", "ai-daily", "具身智能", "表征学习", "强化学习", "llm"]
+---
+
+> Hugo 归档版,来源于 RobotDaily 当日 Markdown 简报。
+>
+> RobotDaily 2026-03-12:共 8 篇,含 具身智能 3 篇,表征学习 3 篇,强化学习 2 篇。
+
+偏应用导向精选,按方向整理成短卡片式 Markdown 归档。
+
+## 具身智能(3 篇)
+
+### 1. Learning Adaptive Force Control for Contact-Rich Sample Scraping with Heterogeneous Materials
+> 提出自适应力控框架,结合阻抗控制与强化学习,解决异质材料刮取任务,仿真到现实迁移效果显著。
+- 作者:Cenk Cetin, Shreyas Pouli, Gabriella Pizzuto
+- 标签:`自适应力控` `强化学习` `仿真到现实` `机器人操作`
+- 中文摘要:全球挑战加速了科学发现的需求,推动了AI驱动机器人技术的发展。在以人为中心的实验室中部署机器人化学家是自主发现的关键,因为复杂任务仍需人类科学家的灵巧性。机器人操作面临处理多样化化学物质(颗粒、粉末或粘性液体)的挑战。例如,人类使用刮刀从瓶壁刮取材料,自动化此过程需在受限环境中执行精细运动。我们提出自适应控制框架,结合低级笛卡尔阻抗控制器实现稳定交互,高级强化学习代理动态调整末端接触力。代理通过感知反馈获取材料位置。我们构建了包含Franka Research 3机器人、刮刀和异质材料的仿真环境,样本建模为球体集合,每个球体分配唯一脱附力阈值,通过Perlin噪声生成。代理在仿真中学习自适应策略,并成功迁移至真实机器人。在五种材料设置中评估,方法平均优于固定力矩基线10.9%。
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.10979) | [arXiv](https://arxiv.org/abs/2603.10979v1) | [PDF](https://arxiv.org/pdf/2603.10979v1)
+
+### 2. Learning Bimanual Cloth Manipulation with Vision-based Tactile Sensing via Single Robotic Arm
+> 提出单臂双手机器人布料操作框架,结合视觉触觉感知与合成数据生成,实现高精度布料展开,降低硬件成本。
+- 作者:Dongmyoung Lee, Wei Chen, Xiaoshuai Chen, Rui Zong 等另外1人
+- 标签:`布料操作` `视觉触觉` `单臂双手机器人` `合成数据生成`
+- 中文摘要:机器人布料操作因织物的高维状态空间、可变形性及频繁遮挡而具有挑战性。双臂系统虽能缓解部分问题,但增加了硬件和控制复杂度。本文提出Touch G.O.G.,一种紧凑的视觉触觉夹爪及感知控制框架,用于单臂双手机器人布料操作。该框架包含三个关键组件:(1)新型夹爪设计及控制策略,实现单臂夹爪内布料滑动;(2)基于视觉基础模型的Vision Transformer管道,用于布料部分分类(PC-Net)和边缘位姿估计(PE-Net),使用真实和合成触觉图像;(3)编码器-解码器合成数据生成器(SD-Net),通过生成高保真触觉图像减少人工标注。实验显示边缘、角落、内部区域及抓取失败区分准确率达96%,边缘定位亚毫米级,方向误差4.5°。真实世界结果表明,仅用单臂即可可靠展开皱褶布料。这些结果突显Touch G.O.G.作为可变形物体操作的紧凑且经济有效的解决方案。
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.10609) | [arXiv](https://arxiv.org/abs/2603.10609v1) | [PDF](https://arxiv.org/pdf/2603.10609v1)
+
+### 3. FAR-Dex: Few-shot Data Augmentation and Adaptive Residual Policy Refinement for Dexterous Manipulation
+> 通过少样本数据增强与自适应残差优化,解决灵巧操作数据稀缺问题,显著提升真实任务成功率与泛化能力。
+- 作者:Yushan Bai, Fulin Chen, Hongzheng Sun, Yuchuang Tong 等另外2人
+- 标签:`灵巧操作` `少样本学习` `数据增强` `分层框架`
+- 中文摘要:通过多指手与机械臂的协作实现类人灵巧操作是机器人领域的长期挑战,主要由于高质量演示稀缺和高维动作空间复杂。为此,提出FAR-Dex,一个结合少样本数据增强与自适应残差优化的分层框架,实现灵巧任务中稳健精确的臂手协调。首先,FAR-DexGen利用IsaacLab模拟器从少量演示生成多样且物理约束的轨迹,为策略训练提供数据基础。其次,FAR-DexRes引入自适应残差模块,通过结合多步轨迹片段与观测特征优化策略,提升操作场景的准确性和鲁棒性。仿真与真实实验表明,FAR-Dex相比最先进方法数据质量提升13.4%,任务成功率提高7%,并在真实任务中实现超过80%的成功率,具备强位置泛化能力。
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.10451) | [arXiv](https://arxiv.org/abs/2603.10451v1) | [PDF](https://arxiv.org/pdf/2603.10451v1)
+
+## 表征学习(3 篇)
+
+### 1. UAV traffic scene understanding: A cross-spectral guided approach and a unified benchmark
+> 提出跨光谱交通认知网络,结合光热模态与交通规则知识,提升恶劣环境下的理解能力,并发布首个光热红外交通问答基准。
+- 作者:Yu Zhang, Zhicheng Zhao, Ze Luo, Chenglong Li 等另外1人
+- 标签:`无人机` `交通场景理解` `跨光谱融合` `视觉问答`
+- 中文摘要:无人机交通场景理解对智能交通系统至关重要,但现有方法依赖光学图像,在夜间和雾天等恶劣光照下性能严重下降。此外,现有视觉问答模型仅限于基础感知任务,缺乏评估复杂交通行为的领域特定监管知识。为此,我们提出跨光谱交通认知网络(CTCNet),设计原型引导知识嵌入模块,利用外部交通规则记忆中的高层语义原型将领域知识锚定到视觉表示中,使模型能理解复杂行为并区分细粒度交通违规。同时,开发质量感知光谱补偿模块,利用光学和热成像模态的互补特性进行双向上下文交换,有效补偿退化特征。此外,构建首个大规模光热红外认知无人机交通理解基准Traffic-VQA,包含8,180对对齐图像和130万问答对,涵盖31种类型。实验表明CTCNet在认知和感知场景中显著优于现有方法。
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.10722) | [arXiv](https://arxiv.org/abs/2603.10722v1) | [PDF](https://arxiv.org/pdf/2603.10722v1)
+
+### 2. MapGCLR: Geospatial Contrastive Learning of Representations for Online Vectorized HD Map Construction
+> 利用地理空间一致性构建自监督信号,显著降低在线建图标注成本,提升特征表示质量。
+- 作者:Jonas Merkert, Alexander Blumberg, Jan-Hendrik Pauls, Christoph Stiller
+- 标签:`在线高精地图` `自监督学习` `地理空间对比` `BEV 表征`
+- 中文摘要:自动驾驶依赖高精地图感知环境,但离线建图成本高昂。在线矢量建图仅需训练时标注,而自监督学习可进一步减少标签需求。本文提出 MapGCLR,通过在对比损失中强制重叠鸟瞰图(BEV)特征网格的地理空间一致性,优化在线矢量建图模型的 latent BEV 特征表示。为确保对比对具有地理重叠,我们分析数据集中轨迹的重叠关系,并按可调多轨迹要求生成子数据集划分。模型在减少的单轨迹标注数据上进行监督训练,并在符合多轨迹要求的更大无标签数据上进行自监督训练,形成半监督框架。该方法在矢量地图感知性能(定量)及 BEV 特征空间 PCA 可视化分割效果(定性)上均优于纯监督基线。
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.10688) | [arXiv](https://arxiv.org/abs/2603.10688v1) | [PDF](https://arxiv.org/pdf/2603.10688v1)
+
+### 3. Lifelong Imitation Learning with Multimodal Latent Replay and Incremental Adjustment
+> 首创多模态潜在回放机制,显著降低遗忘率并提升连续任务适应效率,具高落地价值。
+- 作者:Fanqi Yu, Matteo Tiezzi, Tommaso Apicella, Cigdem Beyan 等另外1人
+- 标签:`终身学习` `模仿学习` `多模态表征` `潜在回放`
+- 中文摘要:本文提出一种终身模仿学习框架,在真实内存与数据约束下实现序列任务的持续策略优化。该方法摒弃传统经验回放,完全在多模态潜在空间操作,存储并复用视觉、语言及机器人状态的紧凑表征以支持未来学习。为进一步稳定适应过程,引入增量特征调整机制,通过角度间隔约束正则化任务嵌入的演化,保持任务间区分性。该方法在 LIBERO 基准上确立新状态,AUC 提升 10-17 个点,遗忘率较此前领先方法降低高达 65%。消融实验证实各组件有效性,显示优于替代策略的一致增益。
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.10929) | [arXiv](https://arxiv.org/abs/2603.10929v1) | [PDF](https://arxiv.org/pdf/2603.10929v1)
+
+## 强化学习(2 篇)
+
+### 1. UAV-MARL: Multi-Agent Reinforcement Learning for Time-Critical and Dynamic Medical Supply Delivery
+> 提出基于MARL的无人机医疗配送框架,通过PPO实现动态资源分配与任务优先级管理,适用于紧急场景。
+- 作者:Islam Guven, Mehmet Parlak
+- 标签:`多智能体强化学习` `无人机配送` `医疗物流` `PPO`
+- 中文摘要:无人机(UAV)在紧急医疗物资配送中发挥重要作用,但需协调机制以优先处理请求、分配有限资源并适应不确定条件。本文提出多智能体强化学习(MARL)框架,用于协调随机医疗配送场景中的无人机编队,其中请求的紧急程度、位置和截止时间各异。问题建模为部分可观测马尔可夫决策过程(POMDP),无人机在通信和定位限制下保持对需求的感知。框架采用近端策略优化(PPO)作为主要算法,评估异步扩展、经典演员-评论家方法及架构修改,以分析可扩展性与性能权衡。模型基于OpenStreetMap的真实地理数据验证,提供决策支持层以优先处理医疗任务、实时重分配资源并协助医护人员管理紧急物流。实验表明,经典PPO在协调性能上优于异步和顺序学习策略,突显了强化学习在自适应、可扩展无人机辅助医疗物流中的潜力。
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.10528) | [arXiv](https://arxiv.org/abs/2603.10528v1) | [PDF](https://arxiv.org/pdf/2603.10528v1)
+
+### 2. Emerging Extrinsic Dexterity in Cluttered Scenes via Dynamics-aware Policy Learning
+> 显式建模接触动力学使机器人无需人工规则即可在杂乱环境中自主涌现非抓持操作,显著提升实机成功率与部署实用性。
+- 作者:Yixin Zheng, Jiangran Lyu, Yifan Zhang, Jiayi Chen 等另外7人
+- 标签:`非抓持操作` `动力学感知` `世界模型` `强化学习`
+- 中文摘要:利用环境接触的非抓持灵巧操作可突破传统抓持局限,但在杂乱场景中因多物体耦合动力学难以实现。现有方法缺乏显式动力学建模,导致非抓持操作性能不足。本文提出动力学感知策略学习框架,通过显式世界模型学习接触诱导的物体动力学表征,并以此条件化强化学习,无需手工设计接触启发式或复杂奖励函数即可涌现非抓持灵巧性。仿真与实机实验表明,该方法在未见杂乱场景成功率上超抓持操作、遥操作及 prior 表征策略 25% 以上;实机在 10 个杂乱场景成功率约 50%,杂货店部署验证了稳健的 sim-to-real 迁移能力。
+- 链接:[DOI](https://doi.org/10.48550/arXiv.2603.09882) | [arXiv](https://arxiv.org/abs/2603.09882v1) | [PDF](https://arxiv.org/pdf/2603.09882v1)

+ 7 - 0
site/content/ai-daily/_index.md

@@ -0,0 +1,7 @@
+---
+title: "AI 每日简报"
+date: 2026-03-12T00:00:00+08:00
+draft: false
+---
+
+这里放 RobotDaily 的 Hugo 归档版。每天一篇,保留 Markdown 结构,方便检索、引用和后续 SEO。

+ 7 - 0
site/content/blog/_index.md

@@ -0,0 +1,7 @@
+---
+title: "Blog"
+date: 2026-03-12T00:00:00+08:00
+draft: false
+---
+
+这里留给你的个人博客。可放项目记录、技术随笔、生活笔记。

+ 15 - 0
site/content/blog/welcome.md

@@ -0,0 +1,15 @@
+---
+title: "站点初始化说明"
+date: 2026-03-12T00:00:00+08:00
+draft: false
+tags: [hugo, setup]
+summary: "个人站已经按 AI 简报 / Blog / 简历 三个分区拆开。"
+---
+
+这个 Hugo 站点已经按三个区域拆开:
+
+1. `AI 每日简报`
+2. `Blog`
+3. `简历`
+
+这样 RobotDaily 继续走自动发布,你的个人内容也能独立维护。

+ 17 - 0
site/content/resume/_index.md

@@ -0,0 +1,17 @@
+---
+title: "简历"
+date: 2026-03-12T00:00:00+08:00
+draft: false
+---
+
+## 个人简介
+
+这里先放一个占位页,后续你可以补完整简历内容。
+
+## 建议结构
+
+- 个人介绍
+- 技能栈
+- 项目经历
+- 工作 / 实习经历
+- 联系方式

+ 25 - 0
site/content/resume/profile.md

@@ -0,0 +1,25 @@
+---
+title: "个人简历(占位)"
+date: 2026-03-12T00:00:00+08:00
+draft: false
+tags: [resume]
+summary: "这里放你的个人经历、技能栈和项目摘要。"
+---
+
+## 个人简介
+
+这里先放一版占位内容,后面你可以直接按 Markdown 自己补。
+
+## 技能栈
+
+- 方向:AI / 机器人 / 自动化内容生产
+- 工具:Python、Node.js、Docker、Hugo
+
+## 项目经历
+
+- RobotDaily:AI 每日简报自动抓取、筛选、发布
+- 个人站:Hugo 静态站,拆分 AI 简报 / Blog / 简历
+
+## 联系方式
+
+这里补你的邮箱、GitHub、社媒即可。

+ 8 - 0
site/deploy/Dockerfile

@@ -0,0 +1,8 @@
+FROM klakegg/hugo:ext-alpine AS builder
+WORKDIR /src
+COPY . /src
+RUN hugo --minify --destination /tmp/public
+
+FROM nginx:1.27-alpine
+COPY deploy/nginx.conf /etc/nginx/conf.d/default.conf
+COPY --from=builder /tmp/public /usr/share/nginx/html

+ 1 - 1
site/deploy/compose.yaml

@@ -5,5 +5,5 @@ services:
       dockerfile: deploy/Dockerfile
     container_name: personal-hugo-site
     ports:
-      - "9081:80"
+      - "9080:80"
     restart: unless-stopped

+ 15 - 0
site/deploy/nginx.conf

@@ -0,0 +1,15 @@
+server {
+  listen 80;
+  server_name _;
+  root /usr/share/nginx/html;
+  index index.html;
+
+  location / {
+    try_files $uri $uri/ /index.html;
+  }
+
+  location = /robots.txt {
+    access_log off;
+    log_not_found off;
+  }
+}

+ 35 - 0
site/hugo.yaml

@@ -0,0 +1,35 @@
+baseURL: https://example.com/
+languageCode: zh-CN
+title: IndigoFloyd
+summaryLength: 120
+defaultContentLanguage: zh-cn
+enableRobotsTXT: true
+relativeURLs: true
+canonifyURLs: false
+
+pagination:
+  pagerSize: 12
+
+taxonomies:
+  tag: tags
+  category: categories
+
+params:
+  description: 个人站:收纳 AI 每日简报、博客和简历。
+  owner: IndigoFloyd
+  dailySection: ai-daily
+
+menu:
+  main:
+    - name: 首页
+      pageRef: /
+      weight: 10
+    - name: AI 每日简报
+      pageRef: /ai-daily
+      weight: 20
+    - name: Blog
+      pageRef: /blog
+      weight: 30
+    - name: 简历
+      pageRef: /resume
+      weight: 40

+ 33 - 0
site/layouts/_default/baseof.html

@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} · {{ .Site.Title }}{{ end }}</title>
+  <meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{ .Site.Params.description }}{{ end }}">
+  <link rel="stylesheet" href="{{ "css/site.css" | relURL }}">
+</head>
+<body>
+  <header class="site-header">
+    <div class="wrap header-inner">
+      <div>
+        <a class="site-title" href="{{ "/" | relURL }}">{{ .Site.Title }}</a>
+        <p class="site-tagline">{{ .Site.Params.description }}</p>
+      </div>
+      <nav class="site-nav">
+        {{ range .Site.Menus.main }}
+          <a href="{{ .URL }}">{{ .Name }}</a>
+        {{ end }}
+      </nav>
+    </div>
+  </header>
+
+  <main class="wrap">
+    {{ block "main" . }}{{ end }}
+  </main>
+
+  <footer class="site-footer wrap">
+    <p>© {{ now.Format "2006" }} {{ .Site.Params.owner }} · Hugo personal site for AI briefs / blog / resume.</p>
+  </footer>
+</body>
+</html>

+ 26 - 0
site/layouts/_default/list.html

@@ -0,0 +1,26 @@
+{{ define "main" }}
+<section class="card page-head">
+  <span class="eyebrow">Section</span>
+  <h1>{{ .Title }}</h1>
+  <div class="prose">{{ .Content }}</div>
+</section>
+
+<section class="post-list">
+  {{ range .Pages.ByDate.Reverse }}
+    <article class="card post-item">
+      <h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
+      <p class="meta">{{ .Date.Format "2006-01-02" }}</p>
+      {{ with .Params.tags }}
+        <p class="tags">
+          {{ range . }}<a class="tag" href="{{ "/tags/" | relURL }}{{ . | urlize }}/#{{ . }}">{{ . }}</a>{{ end }}
+        </p>
+      {{ end }}
+      <p>{{ with .Summary }}{{ . | plainify }}{{ else }}{{ .Params.summary }}{{ end }}</p>
+    </article>
+  {{ else }}
+    <article class="card post-item">
+      <p>这个分区还没有内容。</p>
+    </article>
+  {{ end }}
+</section>
+{{ end }}

+ 13 - 0
site/layouts/_default/single.html

@@ -0,0 +1,13 @@
+{{ define "main" }}
+<article class="card article">
+  <p class="meta"><a href="{{ .CurrentSection.RelPermalink }}">← 返回 {{ .CurrentSection.Title }}</a></p>
+  <h1>{{ .Title }}</h1>
+  <p class="meta">{{ .Date.Format "2006-01-02 15:04" }}</p>
+  {{ with .Params.tags }}
+    <p class="tags">
+      {{ range . }}<a class="tag" href="{{ "/tags/" | relURL }}{{ . | urlize }}/#{{ . }}">{{ . }}</a>{{ end }}
+    </p>
+  {{ end }}
+  <div class="prose">{{ .Content }}</div>
+</article>
+{{ end }}

+ 40 - 0
site/layouts/index.html

@@ -0,0 +1,40 @@
+{{ define "main" }}
+<section class="hero card">
+  <span class="eyebrow">Personal site</span>
+  <h1>{{ .Title }}</h1>
+  <div class="prose">{{ .Content }}</div>
+</section>
+
+<section class="grid three-up">
+  <article class="card section-card">
+    <h2><a href="{{ "/ai-daily/" | relURL }}">AI 每日简报</a></h2>
+    <p>RobotDaily 的 Markdown 归档区,按日期沉淀每日精选。</p>
+  </article>
+  <article class="card section-card">
+    <h2><a href="{{ "/blog/" | relURL }}">Blog</a></h2>
+    <p>技术随笔、项目记录、日常输出都放这里。</p>
+  </article>
+  <article class="card section-card">
+    <h2><a href="{{ "/resume/" | relURL }}">简历</a></h2>
+    <p>个人经历、项目摘要、技能栈单独收纳。</p>
+  </article>
+</section>
+
+<section class="card">
+  <div class="section-head">
+    <h2>最新 AI 简报</h2>
+    <a href="{{ "/ai-daily/" | relURL }}">查看全部 →</a>
+  </div>
+  <div class="post-list">
+    {{ range first 5 (where .Site.RegularPages.ByDate.Reverse "Section" "ai-daily") }}
+      <article class="post-item">
+        <h3><a href="{{ .RelPermalink }}">{{ .Title }}</a></h3>
+        <p class="meta">{{ .Date.Format "2006-01-02" }}</p>
+        <p>{{ with .Summary }}{{ . | plainify }}{{ else }}{{ .Params.summary }}{{ end }}</p>
+      </article>
+    {{ else }}
+      <p>还没有导入日报内容。</p>
+    {{ end }}
+  </div>
+</section>
+{{ end }}