Skip to content

Instantly share code, notes, and snippets.

@mik30s
Created December 23, 2017 02:00
Show Gist options
  • Save mik30s/04fecb161996f00690c01ae56afa9826 to your computer and use it in GitHub Desktop.
Save mik30s/04fecb161996f00690c01ae56afa9826 to your computer and use it in GitHub Desktop.
Generating Trajectories in Python
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[ 0.00000000e+00 8.24178404e-05 6.39036520e-04 2.08936182e-03\n",
" 4.79554936e-03 9.06495351e-03 1.51526763e-02 2.32641161e-02\n",
" 3.35575171e-02 4.61465174e-02 6.11026986e-02 7.84581342e-02\n",
" 9.82079389e-02 1.20312817e-01 1.44701612e-01 1.71273856e-01\n",
" 1.99902314e-01 2.30435542e-01 2.62700425e-01 2.96504736e-01\n",
" 3.31639676e-01 3.67882430e-01 4.04998712e-01 4.42745315e-01\n",
" 4.80872659e-01 5.19127341e-01 5.57254685e-01 5.95001288e-01\n",
" 6.32117570e-01 6.68360324e-01 7.03495264e-01 7.37299575e-01\n",
" 7.69564458e-01 8.00097686e-01 8.28726144e-01 8.55298388e-01\n",
" 8.79687183e-01 9.01792061e-01 9.21541866e-01 9.38897301e-01\n",
" 9.53853483e-01 9.66442483e-01 9.76735884e-01 9.84847324e-01\n",
" 9.90935046e-01 9.95204451e-01 9.97910638e-01 9.99360963e-01\n",
" 9.99917582e-01 1.00000000e+00]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fa8511c0d68>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import math\n",
"import numpy as np \n",
"import matplotlib.pyplot as plt\n",
"import numpy.linalg as alg\n",
"\n",
"def solve_quintic_polynomial(start, end, coeffs, step_range):\n",
" points = np.zeros(step_range)\n",
" timesteps = np.linspace(start,end,step_range)\n",
" for i,e in enumerate(timesteps):\n",
" points[i] = (coeffs[0]*(e**5) \n",
" + coeffs[1]*(e**4)\n",
" + coeffs[2]*(e**3)\n",
" + coeffs[3]*(e**2)\n",
" + coeffs[4]*e\n",
" + coeffs[5])\n",
" return points\n",
"\n",
" \n",
"def generate_quintic_trajectory(start, end, timestep):\n",
" \"\"\"\n",
" Creates a quintic polynomial trajectory\n",
" starting from [start] to [end] with [timestep]\n",
" intervals.\n",
" \"\"\"\n",
" t = math.ceil(end)\n",
" X = np.array(\n",
" [0, 0, 0, 0, 0, 1,\n",
" t**5, t**4, t**3, t**2, t, 1,\n",
" 0, 0, 0, 0, 1, 0,\n",
" 5*(t**4), 4*(t**3), 3*(t**2), 2*t, 1, 0,\n",
" 0, 0, 0, 2, 0, 0,\n",
" 20*(t**3), 12*(t**2), 6*t, 2, 0, 0]).reshape((6,6))\n",
" coeffs = alg.solve(X, np.array([start, end, 0, 0, 0, 0]))\n",
" #print(coeffs)\n",
" return solve_quintic_polynomial(start, end, coeffs, timestep)\n",
" \n",
"s = generate_quintic_trajectory(0,1,50)\n",
"#print(s)\n",
"plt.plot(range(50), s)\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment