DOI


output: github_document

dependencies on linux

sudo apt-get install libcgal-dev libglu1-mesa-dev libglu1-mesa-dev
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "README-"
)

pre-installation

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

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

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:

# 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:

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



bc/stfeasibility documentation built on May 25, 2022, 6:04 a.m.