Kalman-and-Bayesian-Filters.../experiments/bicycle.py
Roger Labbe 752320ad01 Formatting and experiments.
Let this check in get away from me. Bunch of small formatting sttuf
in the various chapters, some experimental animations and code, etc.
Not a clearly delineated check in.
2015-05-09 10:21:36 -07:00

44 lines
880 B
Python

# -*- coding: utf-8 -*-
"""
Created on Tue Apr 28 08:19:21 2015
@author: Roger
"""
from math import *
import numpy as np
import matplotlib.pyplot as plt
wheelbase = 100 #inches
vel = 20 *12 # fps to inches per sec
steering_angle = radians(1)
t = 1 # second
orientation = 0. # radians
pos = np.array([0., 0.]
for i in range(100):
#if abs(steering_angle) > 1.e-8:
dist = vel*t
turn_radius = tan(steering_angle)
radius = wheelbase / tan(steering_angle)
arc_len = dist / (2*pi*radius)
turn_angle = 2*pi * arc_len
cx = pos[0] - (sin(orientation) * radius)
cy = pos[1] + (cos(orientation) * radius)
orientation = (orientation + turn_angle) % (2.0 * pi)
pos[0] = cx + (sin(orientation) * radius)
pos[1] = cy - (cos(orientation) * radius)
plt.scatter(pos[0], pos[1])
plt.axis('equal')