Skip to content

bc/stfeasibility

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


[![DOI](https://zenodo.org/badge/138075203.svg)](https://zenodo.org/badge/latestdoi/138075203)


---
output: github_document
---
dependencies on linux
```bash
sudo apt-get install libcgal-dev libglu1-mesa-dev libglu1-mesa-dev
```
```{r, echo = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "README-"
)
```
pre-installation
```r
install(dependencies=TRUE) # this should get them all
install.packages(c("lpSolve",
"hitandrun",
"ggpubr",
"reshape2",
"plyr",
"RColorBrewer",
"plotly",
"pracma",'xtable','caTools','GGally','plotrix','scatterplot3d','microbenchmark','pbmcapply','pbapply','geometry','rgl'))
load_all()
```


# stfeasibility

![some_text](https://user-images.githubusercontent.com/13772726/41803667-211f53bc-7640-11e8-9f5d-a91df3a62712.png)

The goal of stfeasibility is to evaluate, for a given force trajectory, for a static tendon-driven limb, the feasible combinations of time-varying muscle activation patterns.

make TODO: cal invite


# stfeasibility
Spatiotemporal Feasibility Theory

full task is 2 seconds
A matrix doesn't change

- [ ] Tasks: [palmar force, and distal force scaling task, arc line from palmar to distal]
- [ ] Conditions: [degenerate case, velocity constrained]

Evaluations:
	- [ ] compute: linsolve for the optimal l2 activation trajectory
	- [ ] compute: linsolve for the minimum change in activation
	- [ ] compute: generate 10k activation trajectories
		- [ ] for each activation trajectory, calculate the maximum velocity incurred
				- [ ] make cumulative distribution. x axis is max velocity for activation trajectory
		- [ ] show distribution of bottom 1% l2 activation trajectory from
comparisons: 
	- [ ] compare 10k from degenerate vs velocity-constrained to get the % remaining solutions.


Hongchul Sohn / Nichols/Birckholder - Cat hindlimb
Matt Tresch - Rat hindlimb model

Largest 30 degree cone (go around those parts)

--------------

0 torques

1. by-
2.
3.


nice to haves but definitely put in discussion
1. Acceptance of error, a cube around each point being all valid output wrenches
2. conditions += Acceleration Constraint




## Installation

You can install stfeasibility from github with:

```{r gh-installation, eval = FALSE}
# install.packages("devtools")
devtools::install_github("bc/stfeasibility")
```

## Datasets to generate
har per task for 100 tasks in force_cos_ramp in Fx distal direction, 1 Hz task frequency, 100Hz sampling frequency. constraint = 0.1/10ms == 0.1 allowable per transition. .15 for increasing.
har per task for 100 tasks in 

## Example

This is a basic example which shows you how to solve a common problem:

```{r example}
## basic example code
```


timing: s.t. constr
Unit: seconds
```
            expr        min         lq       mean     median         uq
 3 task_v_constr   3.185497   3.185497   3.185497   3.185497   3.185497
 4 task_v_constr   9.601908   9.601908   9.601908   9.601908   9.601908
 5 task_v_constr  22.970029  22.970029  22.970029  22.970029  22.970029
 6 task_v_constr  54.821506  54.821506  54.821506  54.821506  54.821506
 7 task_v_constr 100.976341 100.976341 100.976341 100.976341 100.976341
 12 task_v_constr 1365.549 1365.549 1365.549 1365.549 1365.549 1365.549  
 13 task_v_constr 1971.198 1971.198 1971.198 1971.198 1971.198 1971.198  
 14 task_v_constr 2565.451 2565.451 2565.451 2565.451 2565.451 2565.451
 15 task_v_constr 4164.274 4164.274 4164.274 4164.274 4164.274 4164.274
 ```

benchmarks <- cbind(num_tasks =c(3,4,5,6,7,12,13,14,15), minutes =c(3.185497,
9.601908,
22.970029,
54.821506,
100.976341,
1365.549  ,
1971.198  ,
2565.451,
4164.274))




timing:

100k trajectories from 49 dimensional space = 5 minutes of point picking
10k trajectories from 49 dimensional space = 2 minutes of point picking

About

Spatiotemporal Feasibility Theory

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages