{
  "aliases": null,
  "backlinks": [
    {
      "field": "uses",
      "target": "8N5CYXWXDV"
    },
    {
      "field": "uses",
      "target": "DT45YNKWSQ"
    },
    {
      "field": "defines",
      "target": "NAD3RQNJ7V"
    }
  ],
  "body": "\n## Summary\n\nTrajectory optimization is the computation of a state trajectory and an open-loop control that minimise a cost for a [[control system|ZPDTVZQN5K]], subject to constraints.\nIt is the numerical side of [[optimal control|T3V6ZNAMDN]]: one wants one good trajectory from a given initial state, not a feedback law for every state.\nIndirect methods solve the necessary conditions, as in [[shooting|RDTESNZTKQ]], while direct methods discretise the problem into a nonlinear program, as in [[direct collocation|T58W34D60G]].\nIt is used to plan rocket ascents, satellite transfers, walking robots and vehicle manoeuvres.\n\n## Explanations\n\n### L1 human\n\nSuppose a robot arm must move from one pose to another in two seconds while using as little energy as possible and not hitting an obstacle.\nTrajectory optimization finds the whole motion in advance: the positions over time and the motor commands that produce them.\nA small example is the double integrator $x'' = u$ that must go from rest at $0$ to rest at $1$ in unit time.\nMinimising $\\int_0^1 u^2 \\, dt$ gives the smooth motion $x(t) = 3t^2 - 2t^3$ with $u(t) = 6 - 12t$.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "kind": "concept",
    "msc": [
      "49M37",
      "49M05",
      "49J15"
    ],
    "name": "Trajectory optimization",
    "same_as": {
      "wikidata": "Q7833062",
      "wikipedia": "Trajectory optimization"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Trajectory_optimization"
      }
    ],
    "specializes": [
      "T3V6ZNAMDN"
    ],
    "tag": "58895A7T4H"
  },
  "kind": "concept",
  "link": "https://tamnd.github.io/math2/node/58895A7T4H/",
  "links": [
    {
      "field": "specializes",
      "target": "T3V6ZNAMDN"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/58895A7T4H.md",
  "msc": [
    "49M37",
    "49M05",
    "49J15"
  ],
  "name": "Trajectory optimization",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/588/58895A7T4H.md",
  "status": null,
  "tag": "58895A7T4H",
  "uri": "m2://58895A7T4H",
  "url": "https://tamnd.github.io/math2/wiki/trajectory-optimization/",
  "writing": {
    "tag": "58895A7T4H",
    "kind": "concept",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      },
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
