Skip to content
Snippets Groups Projects
Select Git revision
  • f1afd6b1a348c18c8572867e2be1b4d6321c9a74
  • main default protected
2 results

2.47-final-project

2.47 Bio-Inspired Robotics Final Project

Proposal link.



Simulation

q=[θ1;θ2;x;y];q˙=[θ˙1;θ˙2;x˙;y˙];q = [\theta_1 ; \theta_2; x; y]; \\ \dot{q} = [\dot{\theta}_1 ; \dot{\theta}_2; \dot{x}; \dot{y}];

Control

simulation/optimization

All torque control with bezier curves

hardware control

Get Bezier curve path of the leg from simulation/optimization and have an Impedance control (flight stage) and torque control (stance phase)


Optimization

Variables

Two Bezier curves for torques:

ctrl_1=[T_1,T_2,..T_n] \\ ctrl_2=[T_1,T_2,..T_n] \\ n=6 \\ -0.85<T_i<085

Starting Conditions:

ground \ height = -0.164; \\ \theta_1=-36*\pi/180; \\ \theta_2=90*\pi/180;\\ x=y=0\\ \dot{\theta}_1=\dot{\theta}_2= 0\\ \dot{x}=\dot{y}= 0\\

Constraints

x^{end}>=x^{start} \\ q_1^{end}=q_1^{start} \\ q_2^{end}=q_2^{start} \\ y^{end}=y^{start} \\ \dot{q}_1^{end}=\dot{q}_1^{start} \\ \dot{q}_2^{end}=\dot{q}_2^{start} \\ \dot{x}^{end}=\dot{x}^{start} \\ \dot{y}^{end}=\dot{y}^{start} \\

Objective Function

  1. First objective: maximize height
    h'
    to push it to go up, got the max
    x'
  2. Then I added to the constraints:
    apex \ height = h' \\ x_{end}=x' \\
    and minimized cost of transport by minimizing:
    E/(m*g*d)
    which is the similar as minimizing sum of torque squared as m, g and d is fixed

Updates and Results

November 23

  • having trouble finding a gait
  • Added starting
    \dot{q_1}^{start}
    ,
    \dot{q_2}^{start}
    ,
    \dot{x}^{start}
    ,
    \dot{y}^{start}
    to the optimization variables
  • added
    q_1^{start}
    and
    q_2^{start}
    to the optimization variables
  • recently added tf as it changed the dynamics
  • Moving to casadi instead of fmincon (maybe the derivatives will help)
    • lots has to be changed as it does not support branching statements they have discontinuous derivatives, that affect the two functions discrete_impact_contact and joint_limit_constraint in simulate_leg.m
    • first the angle constraints has to be added as constraints
    • second the simulation has to be divided into three stages: stance flight and stance again. The tf of each of these stages will be come an optimization variable as well






November 12: First Hop




TODO and Questions

  • script to calculate before and after adding spring
  • Optimize with springs
  • get real physical variables
    • angle limits
    • masses
    • torques limits
    • the friction coefficients
  • try other starting conditions
  • is velocity calculation correct?
  • what if it torque not enough
  • for the control should
    T_1 = T_n
    (cyclical control?)