-
Notifications
You must be signed in to change notification settings - Fork 1
Characterizing an Arm
Create/copy a YAML file and edit it accordingly to match the physical parameters of your arm (number segment, masses, lengths). If you're unsure if you should modify a value, leave it be, the defaults are pretty good. Then, obtain the other parameters using characterization.
If you want to be fully hands off, compile apps/fullCharacterize.cpp
and run it:
cmake .
make fullCharacterize
./bin/fullCharacterize
This reads and writes to the config/fullCharacterize.yaml
file, so be sure that you changed that YAML's physical parameters.
You can also write your own characterizing script based on Characterize
class if you only want to determine certain parameters, as the characterizing processes are rather time intensive.
This will write a YAML containing the SoftTrunkParameters. The default parameters which are used by the Characterize
class are new_params
. To generate a new file based on them you would therefore write:
ch.new_params.write_yaml("example.yaml");
Where ch
is the name of your Characterizer
object.
This function will actuate all valves in the valvemap
vector while observing arm curvature, and thereby deduce the mapping.
The mapping will then be written to new_params
. The param maxpressure
indicates which pressure will be used during the process.
This function will actuate for a bit and use least squares to determine the stiffness of a segment. It will then write the newly estimated shear modulus to new_params
.
verticalsteps
indicates how many different intensities the arm should take per direction.
This function will estimate the "true" A matrix of a given segment and write it to new_params
. Be sure to characzerize stiffness before running this.
This is a relic from when SoPrA displayed a lot of angular error. Running it will spit out a csv to filename
listing desired angle and measured angle. This can be used to analyse manufacturing error and to correct in controls, but due to this error being relatively low it isn't really needed anymore.