Search everything the robot has seen, and drive back to it
While MARS drives, it keeps useful views tied to their place on the map. A skill can search these in plain language, like “the kitchen” or “my keys”, and get back the best match with a photo and coordinates. Requires OS 0.7.0 or newer.
Search and drive there
from innate import Skill, SpatialMemoryfrom innate_skills.navigate_to_position import NavigateToPositionclass GoToRemembered(Skill): memory: SpatialMemory navigate: NavigateToPosition def guidelines(self) -> str: return "Find something the robot has seen before, and drive there." def execute(self, query: str): verdict = self.wait_for(self.memory.begin(query), timeout=150.0) if verdict is None or verdict.error: self.fail("Memory search failed") if not verdict.found: return f"I don't remember seeing {query}." self.say(verdict.message) self.navigate(x=verdict.x, y=verdict.y, local_frame=False) return f"Went to where I last saw {query}"
A search can take a couple of minutes on a big map, so begin() returns a reader you wait on. Waiting with self.wait_for() keeps Stop working.
Result
Field
Contents
found
Whether anything matched. False is a valid answer, not an error.
message
The answer, ready to say out loud
image
JPEG bytes of the remembered view
x, y, theta
Where the robot stood, in the map frame. theta is in radians.
seen_stamp
When it was seen
explanation
Why the model picked this view
error
Set only if the search itself broke
The shipped search_memory skill does the search and returns SkillOutput(verdict.message, image=verdict.image), so the agent can look at the photo. Add it to an agent and the robot will check its memory before saying it hasn’t seen something.
Memories are stored per map on the robot. Browse or clear them on the web app’s Nav page.
{"docsConfig":{"theme":"sequoia","$schema":"https://mintlify.com/docs.json","name":"Innate Docs","colors":{"primary":"#401FFB","light":"#7569FD","dark":"#130A77"},"logo":{"light":"https://mintcdn.com/innateinc/hx7RaA7br-n-YY5y/images/logo-light.png?fit=max\u0026auto=format\u0026n=hx7RaA7br-n-YY5y\u0026q=85\u0026s=6ca6f9d3575f0f581ad26f5af367738f","dark":"https://mintcdn.com/innateinc/hx7RaA7br-n-YY5y/images/logo-dark.png?fit=max\u0026auto=format\u0026n=hx7RaA7br-n-YY5y\u0026q=85\u0026s=dfc43356a7668a5dc96cab2e74fafc7f"},"favicon":"https://mintcdn.com/innateinc/Cap2mVXDJD-XjNyr/images/logo-white-on-blue-512.png?fit=max\u0026auto=format\u0026n=Cap2mVXDJD-XjNyr\u0026q=85\u0026s=f812c576822192aae6f26cdd3cb59331","fonts":{"heading":{"family":"MD IO","weight":600,"source":"fonts/mdiotrial-semibold.woff","format":"woff"}},"styling":{"codeblocks":{"languages":{"custom":["/languages/python-typed.json"]}},"latex":false},"metadata":{"timestamp":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"innateinc","hasAudioNarration":false,"actualSubdomain":"innateinc","customDomains":["docs.innate.bot"],"gitSource":{"type":"github","owner":"innate-inc","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ac975738e8760df0e6c43ff","clientVersion":"0.0.4128","searchFilterCounts":[{"language":"default","tag":"Build Agents and Skills","count":10},{"language":"default","tag":"MARS","count":9},{"language":"default","tag":"Go Deeper","count":7},{"language":"default","tag":"Train a Policy","count":7},{"language":"default","tag":"Skills","count":6},{"language":"default","tag":"Simulator","count":3},{"language":"default","tag":"Reference","count":3},{"language":"default","tag":"Get Started","count":2},{"language":"default","tag":"Help","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:\"MD IO\";src:url(\"/fonts/mdiotrial-regular.woff\") format(\"woff\");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:\"MD IO\";src:url(\"/fonts/mdiotrial-medium.woff\") format(\"woff\");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:\"MD IO\";src:url(\"/fonts/mdiotrial-semibold.woff\") format(\"woff\");font-style:normal;font-weight:600;font-display:swap}h1,h2,h3,h4,h5,h6{font-family:\"MD IO\", ui-sans-serif, system-ui, sans-serif!important;font-weight:600!important;font-synthesis:none}code,kbd,samp,pre,.code-block,.code-block *{font-family:\"MD IO\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,\n \"Liberation Mono\", \"Courier New\", monospace!important}#content p>img{width:auto!important;max-width:100%!important;height:auto!important}#sidebar-content .sidebar-group-header{color:#111827!important}#sidebar-content .sidebar-group-header h3,#sidebar-content .sidebar-group-header h5,#sidebar-content .sidebar-group-header .sidebar-title{color:#111827!important;font-size:1.05rem!important;font-weight:600!important;line-height:1.35!important;letter-spacing:0.01em!important}.dark #sidebar-content .sidebar-group-header,.dark #sidebar-content .sidebar-group-header h3,.dark #sidebar-content .sidebar-group-header h5,.dark #sidebar-content .sidebar-group-header .sidebar-title{color:#ffffff!important}#content-area{max-width:920px!important}#content-area .mdx-content p,#content-area .mdx-content span[data-as=\"p\"]{line-height:1.6!important}.dark #content-area .mdx-content p,.dark #content-area .mdx-content li,.dark #content-area .mdx-content span[data-as=\"p\"]{color:#d1d5db!important}#pagination{display:none!important}@media (min-width: 1280px){#content-area{margin-left:max(0px, calc(50vw - 460px - 18rem))!important}}@media (min-width: 1024px){#navbar .hidden.lg\\:flex a[data-slot=\"context-menu-trigger\"]{display:inline-flex;align-items:center;gap:0.55rem}#navbar .hidden.lg\\:flex a[data-slot=\"context-menu-trigger\"]::after{content:\"Innate Docs\";font-family:\"MD IO\", ui-sans-serif, system-ui, sans-serif;font-size:0.95rem;font-weight:600;letter-spacing:0.01em;color:#111827;line-height:1}.dark #navbar .hidden.lg\\:flex a[data-slot=\"context-menu-trigger\"]::after{color:#ffffff}}.version-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.version-badge{display:inline-flex;align-items:stretch;border:1px solid #dadcf0;border-radius:8px;overflow:hidden;font-family:\"MD IO\", ui-sans-serif, system-ui, sans-serif;font-size:0.8rem;line-height:1;white-space:nowrap}.version-badge-name{padding:6px 9px;background:#f6f7ff;color:#130a77;font-weight:600}.version-badge-value{padding:6px 9px;background:#401ffb;color:#ffffff;font-weight:600}.dark .version-badge{border-color:#353551}.dark .version-badge-name{background:#16162a;color:#cdc8ff}.dark .version-badge-value{background:#401ffb;color:#ffffff}#content-area .calibration-app-screens{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:16px;margin-top:10px}@media (max-width: 900px){#content-area .calibration-app-screens{grid-template-columns:1fr}}#content-area .platform-grid{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:20px;margin:24px 0 8px}@media (max-width: 768px){#content-area .platform-grid{grid-template-columns:1fr}}#content-area .platform-card{display:flex;flex-direction:column;gap:18px;padding:28px;border:1px solid rgba(17, 24, 39, 0.08);border-radius:16px}.dark #content-area .platform-card{border-color:rgba(255, 255, 255, 0.1)}#content-area .platform-card-head{display:flex;align-items:center;gap:16px}#content-area .platform-icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:52px;height:52px;border:1px solid rgba(17, 24, 39, 0.08);border-radius:12px;background:#f5f5f6}.dark #content-area .platform-icon{border-color:rgba(255, 255, 255, 0.1);background:rgba(255, 255, 255, 0.06)}#content-area .platform-title{font-family:\"MD IO\", ui-sans-serif, system-ui, sans-serif;font-size:1.15rem;font-weight:600}#content-area .platform-sub{margin-top:2px;font-size:0.95rem;opacity:0.7}#content-area .platform-body{line-height:1.65}#content-area .platform-tags{display:flex;flex-wrap:wrap;gap:8px}#content-area .platform-tag{padding:4px 10px;border-radius:8px;font-family:\"MD IO\", ui-monospace, monospace;font-size:0.8rem;background:rgba(17, 24, 39, 0.05)}.dark #content-area .platform-tag{background:rgba(255, 255, 255, 0.07)}#content-area a.platform-link{margin-top:auto;font-weight:500;color:#401ffb;border-bottom:none;text-decoration:none}.dark #content-area a.platform-link{color:#a59dff}.dark #content-area .platform-icon svg,.dark #content-area .platform-icon svg *{color:#a59dff!important;fill:currentColor}.dark #content-area .platform-icon [style*=\"mask\"]{background-color:#a59dff!important}#content-area .home-hero{position:relative;overflow:hidden;min-height:500px;border-radius:20px;background:#eceeef}#content-area img.home-hero-photo{position:absolute;inset:0;width:100%;height:100%;margin:0;border-radius:0;object-fit:cover;object-position:right center}#content-area .home-hero::after{content:\"\";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg, rgba(240, 242, 243, 0.85) 0%, rgba(240, 242, 243, 0.6) 45%, rgba(240, 242, 243, 0) 68%)}#content-area .home-hero-text{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:14px;max-width:64%;min-height:500px;padding:52px 60px;color:#111827}#content-area .home-hero-eyebrow{font-family:\"MD IO\", ui-monospace, monospace;font-size:0.9rem;letter-spacing:0.08em;text-transform:uppercase;color:#4b5563}#content-area .home-hero-title{font-family:\"MD IO\", ui-sans-serif, system-ui, sans-serif;font-size:clamp(2.2rem, 3.6vw, 3.4rem);font-weight:600;line-height:1.08;white-space:nowrap;text-transform:uppercase;color:#111827}#content-area .home-hero-sub{max-width:30rem;font-size:1.3rem;line-height:1.5;color:#374151}#content-area .home-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}#content-area a.home-hero-button{padding:8px 18px;border-radius:9px;font-size:1rem;font-weight:500;border-bottom:none;text-decoration:none}#content-area a.home-hero-button.primary{color:#ffffff;background:#401ffb}#content-area a.home-hero-button.secondary{color:#111827;background:rgba(255, 255, 255, 0.85);border:1px solid rgba(17, 24, 39, 0.12)}@container columns-container (max-width: 900px){#content-area .home-hero,#content-area .home-hero-text{min-height:420px}#content-area .home-hero-text{max-width:70%;padding:40px 36px}#content-area .home-hero-sub{max-width:21rem;font-size:1.1rem}}@container columns-container (max-width: 720px){#content-area .home-hero::after{display:none}#content-area img.home-hero-photo{position:static;height:220px;object-position:85% center}#content-area .home-hero-text{max-width:none;min-height:0;padding:28px 24px 32px}#content-area .home-hero-title{font-size:1.9rem;white-space:normal}}body:has(.home-hero) #content-area{max-width:76rem!important;padding-top:16px!important}body:has(.home-hero) #content{margin-top:0!important}body:has(.home-hero) #header{display:none}#content-area .section-eyebrow{margin-top:56px;margin-bottom:-20px;font-family:\"MD IO\", ui-monospace, monospace;font-size:0.8rem;letter-spacing:0.1em;text-transform:uppercase;color:#6b7280}.dark #content-area .section-eyebrow{color:#9ca3af}#content-area .platform-icon img.platform-icon-img{display:block;width:36px!important;max-width:none!important;height:36px!important;margin:0!important;border-radius:0}.dark #content-area img.platform-icon-img{filter:invert(1) hue-rotate(180deg)}#content-area .platform-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:auto}#content-area a.buy-button{position:relative;display:inline-flex;align-items:center;padding:9px 26px;border:1px solid rgba(255, 255, 255, 0.18);border-radius:999px;font-family:\"MD IO\", ui-monospace, monospace;font-size:0.95rem;letter-spacing:0.06em;text-transform:uppercase;color:#ffffff;background:#401ffb;box-shadow:0 6px 18px rgba(64, 31, 251, 0.25);text-decoration:none}#content-area a.buy-button:hover{background:#3517d6}#content-area .buy-price{position:absolute;top:-14px;right:-18px;padding:2px 8px;border-radius:4px;font-size:0.75rem;letter-spacing:0;color:#130a77;background:#ffffff;box-shadow:0 2px 6px rgba(17, 24, 39, 0.18);transform:rotate(12deg)}#content-area .platform-actions a.platform-link{margin-top:0}#content-area .card:has(.feature-video),#content-area .card:has(.feature-video) div:has(.feature-video){display:flex;flex:1 1 auto;flex-direction:column}#content-area video.feature-video{display:block;width:100%;aspect-ratio:3 / 2;margin-top:auto;border-radius:10px;object-fit:cover}#content-area .card:has(.feature-video) [data-component-part=\"card-content\"]>:not(video){margin-bottom:14px}"}],"page":{"pagePath":"software/skills/code-defined-skills/spatial-memory","slug":"/software/skills/code-defined-skills/spatial-memory","pageMetadata":{"title":"Spatial Memory","description":"Search everything the robot has seen, and drive back to it","href":"/software/skills/code-defined-skills/spatial-memory"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Search everything the robot has seen, and drive back to it\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,em:`em`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,OptimizedImage,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`While MARS drives, it keeps useful views tied to their place on the map. A skill can search these in plain language, like `,_jsx(_components.em,{children:`“the kitchen”`}),` or `,_jsx(_components.em,{children:`“my keys”`}),`, and get back the best match with a photo and coordinates. Requires OS 0.7.0 or newer.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/innateinc/-3Cr_HpcyCCYRg3_/images/main/software/skills/spatial-memory-nav.png?fit=max\u0026auto=format\u0026n=-3Cr_HpcyCCYRg3_\u0026q=85\u0026s=c89a1c6265b6a58c186f0a5fe428001c`,alt:`Remembered views on the map, in the web app's Nav page`,\"data-og-width\":`1600`,width:`1600`,\"data-og-height\":`938`,height:`938`,\"data-path\":`images/main/software/skills/spatial-memory-nav.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/innateinc/-3Cr_HpcyCCYRg3_/images/main/software/skills/spatial-memory-nav.png?w=280\u0026fit=max\u0026auto=format\u0026n=-3Cr_HpcyCCYRg3_\u0026q=85\u0026s=0dca548e2d2ec0e5ff9debcd4f0127f4 280w, https://mintcdn.com/innateinc/-3Cr_HpcyCCYRg3_/images/main/software/skills/spatial-memory-nav.png?w=560\u0026fit=max\u0026auto=format\u0026n=-3Cr_HpcyCCYRg3_\u0026q=85\u0026s=0009f8ee53d10fb68963bcceac4c51bd 560w, https://mintcdn.com/innateinc/-3Cr_HpcyCCYRg3_/images/main/software/skills/spatial-memory-nav.png?w=840\u0026fit=max\u0026auto=format\u0026n=-3Cr_HpcyCCYRg3_\u0026q=85\u0026s=129df547595cda18cb14e5fdbc6d3ca1 840w, https://mintcdn.com/innateinc/-3Cr_HpcyCCYRg3_/images/main/software/skills/spatial-memory-nav.png?w=1100\u0026fit=max\u0026auto=format\u0026n=-3Cr_HpcyCCYRg3_\u0026q=85\u0026s=ea7542491c89dd0bb97d35dfcfc677bd 1100w, https://mintcdn.com/innateinc/-3Cr_HpcyCCYRg3_/images/main/software/skills/spatial-memory-nav.png?w=1650\u0026fit=max\u0026auto=format\u0026n=-3Cr_HpcyCCYRg3_\u0026q=85\u0026s=54c7299b1d824eb445b2da26d43b1178 1650w, https://mintcdn.com/innateinc/-3Cr_HpcyCCYRg3_/images/main/software/skills/spatial-memory-nav.png?w=2500\u0026fit=max\u0026auto=format\u0026n=-3Cr_HpcyCCYRg3_\u0026q=85\u0026s=4deb3d2490ff6810e66c9f79b2478292 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`search-and-drive-there`,children:`Search and drive there`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`21`,language:`innatepy`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`innatepy`,children:_jsxs(_components.code,{language:`innatepy`,numberOfLines:`21`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` innate `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Skill`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`SpatialMemory`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` innate_skills.navigate_to_position `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` NavigateToPosition`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`class`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` GoToRemembered`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`Skill`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` memory: `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`SpatialMemory`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` navigate: `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`NavigateToPosition`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` guidelines`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Find something the robot has seen before, and drive there.\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` execute`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`query`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` verdict `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.wait_for(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.memory.begin(query), `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`timeout`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`150.0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` verdict `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`is`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` None`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` or`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` verdict.error:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.fail(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Memory search failed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` not`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` verdict.found:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"I don't remember seeing `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`query`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`.\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.say(verdict.message)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` self`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.navigate(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`x`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`verdict.x, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`y`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`verdict.y, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`local_frame`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`False`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Went to where I last saw `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`query`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`A search can take a couple of minutes on a big map, so `,_jsx(_components.code,{children:`begin()`}),` returns a reader you wait on. Waiting with `,_jsx(_components.code,{children:`self.wait_for()`}),` keeps Stop working.`]}),`\n`,_jsx(Heading,{level:`2`,id:`result`,children:`Result`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Contents`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`found`})}),_jsxs(_components.td,{children:[`Whether anything matched. `,_jsx(_components.code,{children:`False`}),` is a valid answer, not an error.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`message`})}),_jsx(_components.td,{children:`The answer, ready to say out loud`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`image`})}),_jsx(_components.td,{children:`JPEG bytes of the remembered view`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`x`}),`, `,_jsx(_components.code,{children:`y`}),`, `,_jsx(_components.code,{children:`theta`})]}),_jsxs(_components.td,{children:[`Where the robot stood, in the map frame. `,_jsx(_components.code,{children:`theta`}),` is in radians.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`seen_stamp`})}),_jsx(_components.td,{children:`When it was seen`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`explanation`})}),_jsx(_components.td,{children:`Why the model picked this view`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`error`})}),_jsx(_components.td,{children:`Set only if the search itself broke`})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`The shipped `,_jsx(_components.code,{children:`search_memory`}),` skill does the search and returns `,_jsx(_components.code,{children:`SkillOutput(verdict.message, image=verdict.image)`}),`, so the agent can look at the photo. Add it to an agent and the robot will check its memory before saying it hasn’t seen something.`]})}),`\n`,_jsxs(_components.p,{children:[`Memories are stored per map on the robot. Browse or clear them on the web app’s `,_jsx(_components.strong,{children:`Nav`}),` page.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"languages":{"custom":["/languages/python-typed.json"]}},"config":{},"pageMetadata":{"title":"Spatial Memory","description":"Search everything the robot has seen, and drive back to it","href":"/software/skills/code-defined-skills/spatial-memory"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Search and drive there","slug":"search-and-drive-there","depth":2,"children":[]},{"title":"Result","slug":"result","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"innateinc","siteName":"Innate Docs","title":"Spatial Memory - Innate Docs","navMaps":{"firstHrefInVersion":{"OS 0.8.0":{"href":"/software/skills/code-defined-skills/spatial-memory","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-09-15T09:10:42.785Z","originalFileLocation":"software/skills/code-defined-skills/spatial-memory.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Search everything the robot has seen, and drive back to it\">\u003cmeta data-mint-head name=\"application-name\" content=\"Innate Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/innateinc/_1yqpN4AQ5CIfvhd/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/innateinc/_1yqpN4AQ5CIfvhd/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/innateinc/_1yqpN4AQ5CIfvhd/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/innateinc/_1yqpN4AQ5CIfvhd/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/innateinc/_1yqpN4AQ5CIfvhd/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/innateinc/_1yqpN4AQ5CIfvhd/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/innateinc/_1yqpN4AQ5CIfvhd/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/innateinc/_1yqpN4AQ5CIfvhd/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/innateinc/_1yqpN4AQ5CIfvhd/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Spatial Memory - Innate Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Search everything the robot has seen, and drive back to it\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Innate Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.innate.bot/software/skills/code-defined-skills/spatial-memory\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://innateinc.mintlify.site/_mintlify/api/og/v2?division=Reference\u0026amp;title=Spatial+Memory\u0026amp;description=Search+everything+the+robot+has+seen%2C+and+drive+back+to+it\u0026amp;theme=61c68eec6f21c03074c42fe6\u0026amp;signature=bb3d818ee0e3782423aaaecd08dea4cdc31bf3e04745a4fdd1540b92c49905dd\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Spatial Memory - Innate Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Search everything the robot has seen, and drive back to it\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://innateinc.mintlify.site/_mintlify/api/og/v2?division=Reference\u0026amp;title=Spatial+Memory\u0026amp;description=Search+everything+the+robot+has+seen%2C+and+drive+back+to+it\u0026amp;theme=61c68eec6f21c03074c42fe6\u0026amp;signature=bb3d818ee0e3782423aaaecd08dea4cdc31bf3e04745a4fdd1540b92c49905dd\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/innateinc/_1yqpN4AQ5CIfvhd/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Innate Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#401FFB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.innate.bot/software/skills/code-defined-skills/spatial-memory\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/software/skills/code-defined-skills/spatial-memory.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.innate.bot/#organization\",\"name\":\"Innate Docs\",\"url\":\"https://docs.innate.bot\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/innateinc/hx7RaA7br-n-YY5y/images/logo-light.png?fit=max\u0026auto=format\u0026n=hx7RaA7br-n-YY5y\u0026q=85\u0026s=6ca6f9d3575f0f581ad26f5af367738f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.innate.bot#website\",\"name\":\"Innate Docs\",\"url\":\"https://docs.innate.bot\",\"publisher\":{\"@id\":\"https://docs.innate.bot/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.innate.bot/software/skills/code-defined-skills/spatial-memory#webpage\",\"url\":\"https://docs.innate.bot/software/skills/code-defined-skills/spatial-memory\",\"name\":\"Spatial Memory\",\"description\":\"Search everything the robot has seen, and drive back to it\",\"dateModified\":\"2026-09-15T09:10:42.785Z\",\"isPartOf\":{\"@id\":\"https://docs.innate.bot#website\"},\"breadcrumb\":{\"@id\":\"https://docs.innate.bot/software/skills/code-defined-skills/spatial-memory#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.innate.bot/software/skills/code-defined-skills/spatial-memory#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Build Agents and Skills\",\"item\":\"https://docs.innate.bot/software/your-first-agent\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Skills\",\"item\":\"https://docs.innate.bot/software/skills\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Reference\",\"item\":\"https://docs.innate.bot/software/skills/code-defined-skills/body-control-interfaces\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Spatial Memory\",\"item\":\"https://docs.innate.bot/software/skills/code-defined-skills/spatial-memory\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.innate.bot/software/skills/code-defined-skills/spatial-memory#article\",\"headline\":\"Spatial Memory\",\"name\":\"Spatial Memory\",\"description\":\"Search everything the robot has seen, and drive back to it\",\"url\":\"https://docs.innate.bot/software/skills/code-defined-skills/spatial-memory\",\"mainEntityOfPage\":{\"@id\":\"https://docs.innate.bot/software/skills/code-defined-skills/spatial-memory#webpage\"},\"dateModified\":\"2026-09-15T09:10:42.785Z\",\"publisher\":{\"@id\":\"https://docs.innate.bot/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.innate.bot#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Innate Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Innate Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/software/skills/code-defined-skills/spatial-memory.md","siteName":"Innate Docs","nav":{"global":null,"versions":[{"version":"OS 0.8.0","default":true,"groups":[{"group":"Get Started","pages":[{"title":"Introduction","mode":"wide","href":""},{"title":"Examples","href":"/get-started/mars-example-use-cases"}]},{"group":"Simulator","pages":[{"title":"Simulator","href":"/simulator"},{"title":"Setup","href":"/simulator/setup"},{"title":"Working with the Simulator","href":"/simulator/working-with-the-simulator"}]},{"group":"Build Agents and Skills","pages":[{"title":"Your First Agent and Skill","href":"/software/your-first-agent"},{"title":"Agents","href":"/software/agents"},{"group":"Skills","pages":[{"title":"Skills","sidebarTitle":"Overview","href":"/software/skills"},{"title":"Code Skills","href":"/software/skills/code-defined-skills"},{"title":"Policy-Defined Skills","href":"/software/skills/policy-defined-skills"},{"group":"Reference","pages":[{"title":"Movement API","href":"/software/skills/code-defined-skills/body-control-interfaces"},{"title":"Robot State","description":"Reference for sensor feeds a skill can read: cameras, odometry, map, and more","href":"/software/skills/code-defined-skills/robot-state"},{"title":"Spatial Memory","href":"/software/skills/code-defined-skills/spatial-memory"}]}]},{"title":"Inputs","description":"Feed live data into a running agent: sensors, network events, robot status","href":"/software/inputs"},{"title":"How the Agent Decides","href":"/software/agent-loop"}]},{"group":"MARS","pages":[{"title":"Quick Start","href":"/get-started/mars-quick-start"},{"title":"Hardware","href":"/robots/mars"},{"title":"Phone and Web Apps","href":"/robots/apps"},{"title":"Driving and Teleoperation","href":"/robots/mars/control-and-connectivity"},{"title":"Connect via SSH","href":"/robots/mars/connecting-via-ssh"},{"title":"Develop on MARS","href":"/software/development-setup"},{"title":"Maintenance","href":"/robots/mars/updates-and-maintenance"},{"title":"Stereo Depth Calibration","href":"/robots/mars/stereo-depth-calibration"},{"title":"Extending MARS","href":"/robots/mars/extending-mars"}]},{"group":"Train a Policy","pages":[{"title":"Training Overview","href":"/training/overview"},{"title":"Record a Dataset","href":"/training/data-collection"},{"title":"Train in the Cloud","href":"/training/train-act-policy"},{"title":"Deploy and Iterate","href":"/training/deploy-trained-skill"},{"title":"Train with LeRobot","href":"/training/lerobot"},{"title":"Dataset Format","href":"/training/dataset-format"},{"title":"Training from the CLI","href":"/training/training-cli"}]},{"group":"Go Deeper","pages":[{"title":"Modify Innate OS","href":"/software/advanced-development"},{"title":"Configuration","href":"/software/configuration"},{"title":"Innate CLI","href":"/software/innate-cli"},{"title":"Foxglove","href":"/software/foxglove-setup"},{"title":"ROS 2 Overview","href":"/software/ros2-core"},{"title":"Interfaces","href":"/software/ros2/interfaces"},{"title":"Debugging","href":"/software/ros2/debugging"}]},{"group":"Help","pages":[{"title":"Troubleshooting","href":"/robots/mars/troubleshooting"}]}]}]},"basePath":"","title":"Spatial Memory - Innate Docs","buildId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","deploymentId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-9bQKnClW.js","lightbox-handle-r17bVUz3.js"]}