Skip to content
Snippets Groups Projects
README.md 2.12 KiB
Newer Older
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
# 2.47 Bio-Inspired Robotics Final Project
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed

Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
Proposal [link.](https://docs.google.com/document/d/1dNlEJe5-szEFqpwIeSgpptBZx4WYQ4iAs7nnBplzilc/edit)

<img src="./img/leg.png" width="50%" /><br></br>

---
## Simulation

Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
```math
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
q   = [\theta_1  ; \theta_2; x; y]; \\
\dot{q}   = [\dot{\theta}_1  ; \dot{\theta}_2; \dot{x}; \dot{y}];
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
```
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
---

## 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:
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
```math
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
ctrl_1=[T_1,T_2,..T_n] \\
ctrl_2=[T_1,T_2,..T_n] \\
n=6 \\
2<T_i<2
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
```
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed

Starting Conditions:

Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
```math
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
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\\
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
```
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed

### Constraints

Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
```math
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
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} \\
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
```
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed

### Objective Function

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




---
## Results

Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed
### First Hop
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed

<img src="./img/first_hop.gif" width="80%" /><br></br>


<img src="./img/6.1_cntrl.png" width="80%" /><br></br>
<img src="./img/6.3_cntrl.png" width="80%" /><br></br>


---
## 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?)


---
Amira Abdel-Rahman's avatar
Amira Abdel-Rahman committed