<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://developerwiki.proventusnova.com/index.php?action=history&amp;feed=atom&amp;title=Get_started_with_PDDL_on_NVIDIA_Jetson</id>
	<title>Get started with PDDL on NVIDIA Jetson - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://developerwiki.proventusnova.com/index.php?action=history&amp;feed=atom&amp;title=Get_started_with_PDDL_on_NVIDIA_Jetson"/>
	<link rel="alternate" type="text/html" href="https://developerwiki.proventusnova.com/index.php?title=Get_started_with_PDDL_on_NVIDIA_Jetson&amp;action=history"/>
	<updated>2026-04-18T06:22:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://developerwiki.proventusnova.com/index.php?title=Get_started_with_PDDL_on_NVIDIA_Jetson&amp;diff=553&amp;oldid=prev</id>
		<title>Andres: Created page with &quot;__TOC__  == Project Overview: Symbolic AI Planning on NVIDIA Jetson ==  This project demonstrates the implementation of &#039;&#039;&#039;Symbolic AI Planning&#039;&#039;&#039; on an NVIDIA Jetson (ARM64) using &#039;&#039;&#039;PDDL&#039;&#039;&#039; (Planning Domain Definition Language). Unlike traditional machine learning, this approach focuses on deterministic logic and reasoning to solve complex multi-step tasks.  === 🛠️ Environment Setup === Because the Jetson uses an ARM64 architecture, traditional x86 planners (like...&quot;</title>
		<link rel="alternate" type="text/html" href="https://developerwiki.proventusnova.com/index.php?title=Get_started_with_PDDL_on_NVIDIA_Jetson&amp;diff=553&amp;oldid=prev"/>
		<updated>2026-02-05T00:31:41Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;__TOC__  == Project Overview: Symbolic AI Planning on NVIDIA Jetson ==  This project demonstrates the implementation of &amp;#039;&amp;#039;&amp;#039;Symbolic AI Planning&amp;#039;&amp;#039;&amp;#039; on an NVIDIA Jetson (ARM64) using &amp;#039;&amp;#039;&amp;#039;PDDL&amp;#039;&amp;#039;&amp;#039; (Planning Domain Definition Language). Unlike traditional machine learning, this approach focuses on deterministic logic and reasoning to solve complex multi-step tasks.  === 🛠️ Environment Setup === Because the Jetson uses an ARM64 architecture, traditional x86 planners (like...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== Project Overview: Symbolic AI Planning on NVIDIA Jetson ==&lt;br /&gt;
&lt;br /&gt;
This project demonstrates the implementation of &amp;#039;&amp;#039;&amp;#039;Symbolic AI Planning&amp;#039;&amp;#039;&amp;#039; on an NVIDIA Jetson (ARM64) using &amp;#039;&amp;#039;&amp;#039;PDDL&amp;#039;&amp;#039;&amp;#039; (Planning Domain Definition Language). Unlike traditional machine learning, this approach focuses on deterministic logic and reasoning to solve complex multi-step tasks.&lt;br /&gt;
&lt;br /&gt;
=== 🛠️ Environment Setup ===&lt;br /&gt;
Because the Jetson uses an ARM64 architecture, traditional x86 planners (like those found in planutils) often fail. We utilize a native Python approach for maximum compatibility.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Hardware:&amp;#039;&amp;#039;&amp;#039; NVIDIA Jetson (Nano/Xavier/Orin)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;OS:&amp;#039;&amp;#039;&amp;#039; Ubuntu 20.04/22.04 LTS&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Language:&amp;#039;&amp;#039;&amp;#039; Python 3.10+&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Library:&amp;#039;&amp;#039;&amp;#039; [https://github.com/aibasel/pyperplan Pyperplan] (Pure Python PDDL Planner)&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Install the planner&lt;br /&gt;
pip install pyperplan&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== 📋 The Logistics Domain ==&lt;br /&gt;
The domain defines the &amp;quot;physics&amp;quot; of our world. We use `:typing` to categorize objects for the planner.&lt;br /&gt;
&lt;br /&gt;
=== Domain Code (logistics_domain.pddl) ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pddl&amp;quot;&amp;gt;&lt;br /&gt;
(define (domain logistics)&lt;br /&gt;
  (:requirements :strips :typing)&lt;br /&gt;
  &lt;br /&gt;
  (:types location truck package)&lt;br /&gt;
&lt;br /&gt;
  (:predicates &lt;br /&gt;
    (at ?obj ?loc)&lt;br /&gt;
    (in ?p ?t)&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  (:action drive&lt;br /&gt;
    :parameters (?t - truck ?from - location ?to - location)&lt;br /&gt;
    :precondition (and (at ?t ?from))&lt;br /&gt;
    :effect (and (at ?t ?to) (not (at ?t ?from)))&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  (:action load&lt;br /&gt;
    :parameters (?p - package ?t - truck ?l - location)&lt;br /&gt;
    :precondition (and (at ?p ?l) (at ?t ?l))&lt;br /&gt;
    :effect (and (in ?p ?t) (not (at ?p ?l)))&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  (:action unload&lt;br /&gt;
    :parameters (?p - package ?t - truck ?l - location)&lt;br /&gt;
    :precondition (and (in ?p ?t) (at ?t ?l))&lt;br /&gt;
    :effect (and (at ?p ?l) (not (in ?p ?t)))&lt;br /&gt;
  )&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== 📍 The Problem Definition ==&lt;br /&gt;
The problem defines the specific starting state and the desired goal.&lt;br /&gt;
&lt;br /&gt;
=== Problem Code (logistics_problem.pddl) ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pddl&amp;quot;&amp;gt;&lt;br /&gt;
(define (problem delivery-task)&lt;br /&gt;
  (:domain logistics)&lt;br /&gt;
  &lt;br /&gt;
  (:objects &lt;br /&gt;
    warehouse hospital post_office - location&lt;br /&gt;
    truck1 - truck&lt;br /&gt;
    meds food - package&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  (:init &lt;br /&gt;
    (at truck1 warehouse)&lt;br /&gt;
    (at meds warehouse)&lt;br /&gt;
    (at food warehouse)&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  (:goal (and &lt;br /&gt;
    (at meds hospital)&lt;br /&gt;
    (at food post_office)&lt;br /&gt;
  ))&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== 🚀 Execution &amp;amp; Results ==&lt;br /&gt;
Run the following command in the Jetson terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
pyperplan logistics_domain.pddl logistics_problem.pddl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Expected Output ===&lt;br /&gt;
The planner uses Breadth-First Search (BFS) to find the shortest path.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Search Time:&amp;#039;&amp;#039;&amp;#039; ~0.00092s&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nodes Expanded:&amp;#039;&amp;#039;&amp;#039; 42&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Plan Length:&amp;#039;&amp;#039;&amp;#039; 6 steps&lt;br /&gt;
&lt;br /&gt;
The generated plan is saved to &amp;lt;code&amp;gt;logistics_problem.pddl.soln&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
== ⚠️ Troubleshooting &amp;amp; Lessons Learned ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Architecture Conflicts:&amp;#039;&amp;#039;&amp;#039; Avoid using &amp;lt;code&amp;gt;planutils&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;up-tamer&amp;lt;/code&amp;gt; on Jetson as they rely on x86 pre-compiled binaries or Apptainer images that lack ARM64 support.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Typing Requirement:&amp;#039;&amp;#039;&amp;#039; Ensure &amp;lt;code&amp;gt;(:requirements :typing)&amp;lt;/code&amp;gt; is declared in the domain if using typed objects (e.g., &amp;lt;code&amp;gt;- location&amp;lt;/code&amp;gt;), otherwise, Pyperplan will throw a &amp;lt;code&amp;gt;SemanticError&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Validation:&amp;#039;&amp;#039;&amp;#039; If &amp;lt;code&amp;gt;validate&amp;lt;/code&amp;gt; is missing from PATH, the plan still runs but cannot be formally verified by the software.&lt;br /&gt;
&lt;br /&gt;
[[Category:Robotics]] [[Category:Artificial Intelligence]] [[Category:Jetson]]&lt;/div&gt;</summary>
		<author><name>Andres</name></author>
	</entry>
</feed>