Comments (8)
Luca's paper on skin stiffness matrix.
lucasPaperIROS14.pdf | uploaded via ZenHub
from extended-kalman-filter.
Experimental Setups
Tipping Scenario
- To launch the robot without a particular part (for whatever maintenance reason), remember you can do in
pc104
:robotInterface --config icub_all_norightarm_headtest.xml
. Those particular configuration files can be found in~/.local/share/yarp/robots/iCubGenova01
@pc104
- Sequence forward tipping scenario
torso
from0 0 0
to0 0 60
left_arm -home position-
right_leg 25 0 0 0 -2 -2
left_leg 25 0 0 0 0 0
- Sequence backward tipping scenario
torso
from0 0 20
to0 0 -18.1
in1.0 sec
right_leg -10 0 0 0 -2 -2
left_leg -10 0 0 0 0 0
- To dump data, let us use Silvio's script https://gist.github.com/traversaro/c0ba8ed463c9ecd34725 as:
python dataDumperAppGenerator.py --ports /icub/right_leg/state:o /icub/left_leg/state:o /icub/torso/state:o /icub/inertial /icub/right_leg/analog:o /icub/left_leg/analog:o /icub/left_foot/analog:o /icub/skin/right_foot --host icub15 --name "tippingExperiments
- Our script was generated as:
python dataDumperAppGenerator.py --ports /icub/left_leg/analog:o /icub/skin/left_foot /icub/inertial /icub/torso/state:o --host icub15 --name "forwardTippingTest01"
and the corresponding xml has been pushed in 6b91c55 - REMEMBER Ask for skin to be put back on the robot feet.
from extended-kalman-filter.
Using The Stiffness Vector
Skin raw readings must be processed as done in load_n_filter.m
and get_input_output.m
, i.e.:
- Assume dataSkin is a matrix of size
n x 384
(from the third column onwards, if read viayarpdatadumper
. - processedDataSkin = 256 - dataSkin( : , 3:end);
- processedDataSkin = (processedDataSkin ./ 255)
Use new functions in localParamEKF/skinFunctions/
as, e.g.
totalForceFromSkinData('backwardTipping', 4, 'left');
from extended-kalman-filter.
Offsets
Output of wholeBodyDynamicsTree
:
icub@icub15:~$ wholeBodyDynamicsTree
||| clearing context
||| adding context [wholeBodyDynamicsTree]
||| configuring
||| no policy found
||| default config file specified as wholeBodyDynamicsTree.ini
||| checking [/home/icub/wholeBodyDynamicsTree.ini] (pwd)
||| checking [/home/icub/.config/yarp/robots/iCubGenova01] (robot YARP_CONFIG_HOME)
...
...
wholeBodyDynamicsThread started
[INFO] wholeBodyDynamicsThread: complete calibration at system time : 24-02-2015 10:54:50
[INFO] wholeBodyDynamicsThread: new calibration for FT 0 is 84.4066 -18.5809 251.86 -0.844597 -5.08643 0.273151
[INFO] wholeBodyDynamicsThread: new calibration for FT 1 is 146.851 -13.9138 125.512 0.137384 -1.66051 0.109277
[INFO] wholeBodyDynamicsThread: new calibration for FT 2 is 23.0772 92.4128 -102.178 -7.17163 0.225915 -1.79807
[INFO] wholeBodyDynamicsThread: new calibration for FT 3 is -20.8565 -16.5023 11.3506 -0.204595 1.28343 -0.0546408
[INFO] wholeBodyDynamicsThread: new calibration for FT 4 is 5.64907 4.74285 -51.5791 -0.67231 1.58887 0.00297924
[INFO] wholeBodyDynamicsThread: new calibration for FT 5 is 0.875248 -0.913526 -9.40195 0.0152946 0.165867 -0.0175137
wholeBodyDynamicsTree: double support calibration for allrequested
wholeBodyDynamicsThread::calibrateOffsetOnDoubleSupport called with code all
wholeBodyDynamicsThread::calibrateOffset: current calibration for FT 0 is 84.4066 -18.5809 251.86 -0.844597 -5.08643 0.273151
wholeBodyDynamicsThread::calibrateOffset: current calibration for FT 1 is 146.851 -13.9138 125.512 0.137384 -1.66051 0.109277
wholeBodyDynamicsThread::calibrateOffset: current calibration for FT 2 is 23.0772 92.4128 -102.178 -7.17163 0.225915 -1.79807
wholeBodyDynamicsThread::calibrateOffset: current calibration for FT 3 is -20.8565 -16.5023 11.3506 -0.204595 1.28343 -0.0546408
wholeBodyDynamicsThread::calibrateOffset: current calibration for FT 4 is 5.64907 4.74285 -51.5791 -0.67231 1.58887 0.00297924
wholeBodyDynamicsThread::calibrateOffset: current calibration for FT 5 is 0.875248 -0.913526 -9.40195 0.0152946 0.165867 -0.0175137
wholeBodyDynamicsThread::calibrateOffset all called successfully, starting calibration.
wholeBodyDynamicsThread: new calibration for FT 0 is 84.1018 -18.3825 250.834 -0.822744 -5.09786 0.276386
wholeBodyDynamicsThread: new calibration for FT 1 is 146.262 -13.7526 124.946 0.142152 -1.67094 0.107521
wholeBodyDynamicsThread: new calibration for FT 2 is -4.11735 111.148 -131.104 -13.423 1.36924 -1.04304
wholeBodyDynamicsThread: new calibration for FT 3 is -52.0296 -5.64247 -18.0923 -0.516052 9.91345 0.717567
wholeBodyDynamicsThread: new calibration for FT 4 is -5.65084 -10.5031 -24.6174 1.95779 2.61084 0.0036913
wholeBodyDynamicsThread: new calibration for FT 5 is -17.4992 -0.910681 18.0613 -0.824831 3.32657 -0.252851
wholeBodyDynamicsThread::waitCalibrationDone() returning: calibration finished with success
Which translates into:
% Left arm
FT0 = [84.1018 -18.3825 250.834 -0.822744 -5.09786 0.276386];
% Right arm
FT1 = [146.262 -13.7526 124.946 0.142152 -1.67094 0.107521];
% Left leg
FT2 = [-4.11735 111.148 -131.104 -13.423 1.36924 -1.04304];
% LEft Foot
FT3 = [-52.0296 -5.64247 -18.0923 -0.516052 9.91345 0.717567];
% Right Leg
FT4 = [-5.65084 -10.5031 -24.6174 1.95779 2.61084 0.0036913];
% Right foot
FT5 = [-17.4992 -0.910681 18.0613 -0.824831 3.32657 -0.252851];
from extended-kalman-filter.
Current Foot Sole with Skin Sensors
Taxels positions are not correct as these locations saved in Tmatrix.mat
come from a calibration procedure which gives this output.
from extended-kalman-filter.
Parent/Child relationship in the URDF Format
For future references: The parent/child relationship between links and joints in URDF format is as follows:
from extended-kalman-filter.
Start/End Time of Our Experiments
@naveenoid I checked the output of the IMU and according to the datasheet the output signal is composed like this:
[ euler angles (deg) ] [ accelerometer (m/s^2)] [ gyroscope (m/s)] [ magnetometer ]
This has been confirmed from both the datasheet and the iCub wiki
http://wiki.icub.org/wiki/Inertial_Sensor
http://wiki.icub.org/images/8/82/XsensMtx.pdf
Also assigned labels and legends to the corresponding plot and it's now all clear.
Since I think this is our most sensitive sensor I would choose the start and end time of our experiments based on those readings. As it can be seen from the angular speed, we can consider the experiment started after roughly 7 seconds. We could choose 6 secs as the starting point and I would go till the very end, i.e. ~9 secs, because I usted to stop the experiment right after the robot tipped (about 1 sec after. Yeah, I Know, I'm damn fast! π)
from extended-kalman-filter.
Accelerometer
NOTE: The linear 3D accelerometers measure all accelerations, including the acceleration
due to gravity. This is inherent to all accelerometers. Therefore, if you wish to use the 3D
linear accelerations output by the MTi / MTx to estimate the βfreeβ acceleration (i.e. 2nd
derivative of position) gravity must first be subtracted
from extended-kalman-filter.
Related Issues (20)
- 5. Adaptive EKF version of the IROS paper.
- 5* Adaptive Kalman Filter research.
- 6. Estimation of gyro bias as part of the state.
- 7. Expand IROS paper work with quaternions.
- 8*. C++ Implementation of the IROS paper.
- 8. C++ implementation for Dynamic Walking 2015.
- 9. Integration with balancing.
- 10. Balancing demo.
- 11. HUMANOIDS paper.
- Run-time error of testEKF_completeLegWithSkin.m HOT 4
- Extend MatrixWrapper for the EKFModule
- Consistency check for the quaternionEKF module
- Interfacing with XSens HOT 1
- Add Kalman Smoother
- Write FindXSens.cmake module HOT 2
- Update Process Covariance each timestep
- Dynamic Walking Paper objectives HOT 2
- Real experiment for Humanoids 2015 paper HOT 2
- Performance Validation
- Typo in matrix construction
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from extended-kalman-filter.