TE

thomaszb/evergreenslam

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

39 stars 质量 69 趋势 33Apache-2.0

始终在线的二维激光雷达SLAM,带有命名地点,作为LLM代理的空间记忆

概览

带有命名地点的始终在线二维激光雷达SLAM,作为大型语言模型代理的空间记忆。 Pixi 运行 -e ros 演示:制图师的公共revo_lds包(Neato Revo LDS,16分钟驾驶时间)在浏览器调试视图中以8倍速重放。会话#0和#1依次冻结,#2开始映射。 使用工具的智能体可以编写代码并操作计算机;但它们在物理机器人上的应用较为成熟。无论采用何种模型,此类智能体都需要空间记忆:它必须能够记住命令、句子或照片中的地点,之后将机器人送回该位置,并在上下文压缩、地图重优化和进程重启时保持这些记忆。EvergreenSLAM 是一款围绕这一需求设计的二维激光雷达SLAM。 - 它作为一个后台进程运行,没有单独的映射和本地化模式:它总是映射到当前会话,同时对已冻结的会话进行本地化,且当会话添加了足够多的新区域且姿势受限良好时,会自行冻结。

概述(AI 翻译)

带有命名地点的始终在线二维激光雷达SLAM,作为大型语言模型代理的空间记忆。

英文 |中文


你好,世界

Pixi run -e ros 演示:制图师的公共revo_lds包(Neato Revo LDS,16分钟 在浏览器调试视图中以8倍速度重播。会话#0和#1依次冻结,#2开始。 绘制地图。

一位被要求从冰箱取可乐的代理理解请求,但不理解家庭:其中 冰箱是通往厨房的方向,可乐最后被看到的地方。无论用什么型号,它 需要空间记忆:它必须能够记住某个地点,无论是命令、一句话还是一张照片, 稍后让机器人回去,并在上下文压缩和映射中保留内存 重新优化和流程重启。EvergreenSLAM 是一款围绕此设计的二维激光雷达 SLAM 需求。

  • 一个模式,无操作符。 它作为后台进程运行,没有单独映射,且 本地化模式:它总是映射到当前的会话,同时本地化对会话 它已经冻结了,会话在添加足够多的新区域后会冻结自己,而且它的 体式受限。
  • **按区域划分,不按运行时间划分。

本页由 AI 翻译,技术细节请以原文为准。

README

以下为原文 README 节选,完整内容请查看原文。

EvergreenSLAM

Always-on 2D lidar SLAM with named places, as a spatial memory for LLM agents.

English | 中文


https://github.com/user-attachments/assets/ecc5e8f2-d290-4b70-8356-79e4789ae43c

An agent (Claude Code) using EvergreenSLAM as the memory of a home robot; 1:44, wall clock and playback speed on screen. Day 1, from an empty map: asked for the balcony, it finds it through one line of its own exploration notes. Day 2, after a night powered off: a new session with no chat history finds the scissors from memory. No teleoperation, no mapping or localization by hand. Full video (3:18): YouTube; details under Experiments.

Hello, world

$ egs here
current places/dock 2.4m
closest places/dock 2.4m frozen; places/kitchen 15.3m frozen
robot 0.48,1.02,-2.72  keyframe 0s  @solve 135
base 0.75 (cover 98%)  since base match 0.0m  match 0.70 (avg 0.70)

An agent asked to fetch a cola from the fridge understands the request but not the home: where the fridge is, how to reach the kitchen, where the cola was last seen. Whatever model is used, it needs a spatial memory: it must be able to remember a place from a command, a sentence or a photo, send the robot back there later, and keep that memory across context compaction, map re-optimization and process restarts. EvergreenSLAM is a 2D lidar SLAM designed around this requirement.

  • One mode, no operator. It runs as a background process with no separate mapping and localization modes: it always maps into the current session while localizing against sessions it has already frozen, and a session freezes itself once it has added enough new area and its poses are well constrained.
  • Bounded by area, not uptime. Trimming marginalizes what it removes and sparsifies the result to a Chow-Liu tree, and frozen poses are held constant in the optimizer, so that memory and CPU are bounded by the mapped area rather than by uptime.
  • Places that keep resolving. A place is an anchor bound to a submap of the pose graph rather than to coordinates, exposed to the agent as a directory tree plus a small CLI (egs, also served as MCP tools).
  • One cheap sensor. A 2D lidar and a CPU; no IMU, wheel odometry, camera or GPU. It has been run on a 215 CNY lidar and an RK3588 board, and on the public 2D datasets.

The scan matching and the submaps follow Cartographer; the lifelong layer above them is the project’s own. How it relates to slam_toolbox is under Related work.

在 GitHub 查看完整 README

推荐工具

换一个关键词,或者移除筛选条件。

安装

npx skillfish add thomaszb/evergreenslam
新手?先看 mcpskill.org 教程 →