Code Monkey home page Code Monkey logo

Comments (8)

jeljaik avatar jeljaik commented on July 21, 2024

Luca's paper on skin stiffness matrix.
lucasPaperIROS14.pdf | uploaded via ZenHub

from extended-kalman-filter.

jeljaik avatar jeljaik commented on July 21, 2024

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 from 0 0 0 to 0 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 from 0 0 20 to 0 0 -18.1 in 1.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.

jeljaik avatar jeljaik commented on July 21, 2024

Using The Stiffness Vector

Skin raw readings must be processed as done in load_n_filter.m and get_input_output.m, i.e.:

  1. Assume dataSkin is a matrix of size n x 384 (from the third column onwards, if read via yarpdatadumper.
  2. processedDataSkin = 256 - dataSkin( : , 3:end);
  3. processedDataSkin = (processedDataSkin ./ 255)

Use new functions in localParamEKF/skinFunctions/ as, e.g.
totalForceFromSkinData('backwardTipping', 4, 'left');

from extended-kalman-filter.

jeljaik avatar jeljaik commented on July 21, 2024

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.

jeljaik avatar jeljaik commented on July 21, 2024

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.
footandtaxels

from extended-kalman-filter.

jeljaik avatar jeljaik commented on July 21, 2024

Parent/Child relationship in the URDF Format

For future references: The parent/child relationship between links and joints in URDF format is as follows:

parentchild

from extended-kalman-filter.

jeljaik avatar jeljaik commented on July 21, 2024

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.

imu

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.

jeljaik avatar jeljaik commented on July 21, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.