Some introductory text.
“Ask engaging questions that spark people’s curiosity and fascination that people find intriguing…”
What you will learn
- A list of 2 to 5 learning goals
Lecture
A video of slides, coding, hands-on electronics, etc.
Interactive
TODO: - add frames (wmr and global) - allow global frame to move? - add angle? - cursor style of grab and grabbing - animation? - https://ipesek.github.io/jsxgraphbook/4_3_animation_sliders.html - https://jsxgraph.org/wiki/index.php/Animations
Try dragging the robot around. You can also rotate the robot by dragging from the tip of the forward arrow.
mutable x = 0
mutable y = 0
mutable phi = 0
html`
${tex.block`
\vec{q}(t) = \begin{bmatrix}
x(t) \\
y(t) \\
\phi(t)
\end{bmatrix}
= \begin{bmatrix}
${x} \; \text{m} \\
${y} \; \text{m} \\
${(phi * 180 / Math.PI).toFixed(2)} \degree
\end{bmatrix}
\\[10pt]
R = \begin{bmatrix}
\cos(\phi) & -\sin(\phi) \\
\sin(\phi) & \cos(\phi)
\end{bmatrix}
= \begin{bmatrix}
${Math.cos(phi).toFixed(2)} & ${-Math.sin(phi).toFixed(2)} \\
${Math.sin(phi).toFixed(2)} & ${Math.cos(phi).toFixed(2)}
\end{bmatrix}
`}
`
div_id = "jsxdiv"
graph_style = `
width: ${width}px;
height: ${width}px;
user-select: none;
overflow: hidden;
position: relative;
touch-action: none;
background-color: #f5f5f5;
border: solid #DDD 1px;
border-style: solid;
border-radius: 10px;
margin: 0;
`
viewof graph = html`<div id="${div_id}" style="${graph_style}"></div>`
import { WMRGraph } from '../_interactives/WMRGraph/dist/wmr-graph.js';
function updateRotation(newPhi) {
mutable phi = newPhi.toFixed(2);
}
function updateTranslation(newX, newY) {
mutable x = newX.toFixed(2);
mutable y = newY.toFixed(2);
}
new WMRGraph(div_id, updateRotation, updateTranslation);
import { Player } from '../_interactives/Player/dist/player.js';
function testUpdate( time ) { console.log( time ); }
function testReset() { console.log( 'reset' ); }
player = new Player( 10, 0.1, testUpdate, testReset );
player.initialize();
Exercise
Each “chapter” will include the assignment/exercise. These will be completed in class.
Resources
Coordinate Transformations - How robots move through space - YouTube
- Motion modeling
- Kinematics (direct and inverse)
- Differential drive
- Ackerman steering
- Bicycle model
- Rear-wheel bicycle drive
- Unicycle model
- Tricycle drive
- Tricycle with a trailer
- Synchronous drive
- Omnidirectional drive
- Track drive
- Motion constraints
- Holonomic and non-holonomic constraints
http://msl.cs.uiuc.edu/planning/node657.html
differential kinematics from Correll 3.3