Code Monkey home page Code Monkey logo

Comments (7)

diegoferigo avatar diegoferigo commented on August 18, 2024 2

If I understood what @Yeshasvitvs meant, the new HumanControlBoard will have the support of attaching to IHumanState and IHumanDynamics interfaces. This means that it will run within the same yarprobotinterface process (that means same xml file).

This conforms to the architectural choice of HDE v2. As we discussed for all the HDE v2 devices, as soon as we need network transparency we can develop the pairs wrapper-client for each interface. This would allow to run HumanControlBoard on a different process / different machine.

from human-dynamics-estimation.

yeshasvitirupachuri avatar yeshasvitirupachuri commented on August 18, 2024 2

HumanControlBoard is added to devices. I implemented only the core methods to access data in matlab simulink through controlboardremapper. Accordingly, we get joint positions and joint velocities from IHumanState interface and joint torques from IHumanDynamics interace. Ideally, joint accelerations should also be available through IHumanDynamics interface but currently they are not set in HumanDynamicsEstimator. So, I am setting them to zero in HumanControlBoard device.

On reading <HumanControlBoard>/stateExt:o data we can read correctly the joint positions, velocities, accelerations and torques indicated by [ok] at the end of the data. But the other methods display [fail] as they are not implemented in HumanControlBoard and are not necessary to get human joint data in simulink.

screenshot from 2019-02-01 16-06-29

This test is done with offline wearable data. I will test this correctly in simulink controller next with both offline and online data next.

from human-dynamics-estimation.

yeshasvitirupachuri avatar yeshasvitirupachuri commented on August 18, 2024 2

I added the tests for HumanControlBoard device here and ran the test HumanSimulinkController with offline wearable data from xsens suit device.

Accordingly, with the data set of left knee movement of 90 degrees, I see the correct joint angles in simulink scope

screenshot from 2019-02-03 16-47-15

For the right knee movement of 90 degrees, I see the correct joint angles in simulink scope

screenshot from 2019-02-03 16-50-35

Also, the joint torques values are read correctly on simulink side from the HumanControlBoard device

screenshot from 2019-02-03 16-48-20

screenshot from 2019-02-03 16-52-24

NOTE: The joint torque values may not be reasonable with respect to the knee joint angles. This is because the time synchronization differences in the playback of xsens werable data and the ftshoes wearable data.

A final test with online data from suit and shoes with a human subject has to be done before closing this issue. @lrapetti and I will do this test soon and update the issue.

from human-dynamics-estimation.

diegoferigo avatar diegoferigo commented on August 18, 2024 1

🔝

Ideally, joint accelerations should also be available through IHumanDynamics interface

From IHumanState.

from human-dynamics-estimation.

yeshasvitirupachuri avatar yeshasvitirupachuri commented on August 18, 2024 1

During this testing, https://github.com/dic-iit/component_andy/issues/193#issuecomment-461117811 @lrapetti and I tested the new HumanControlBoard device with the human movements as shown below

  • A set of arms to T pose 5 times
  • A set of two feet squat 5 times

ezgif com-video-to-gif 16

The corresponding joint angle data in degree seen in Matlab scope is shown below

screenshot from 2019-02-06 17-57-03

screenshot from 2019-02-06 17-57-24

The corresponding joint torques seen in Matlab scope is shown below

screenshot from 2019-02-06 17-59-55

screenshot from 2019-02-06 18-00-40

So, the simulink controller gets the human joint data faithfully from HumanControlBoard device.

One key details a new user has to be aware of is that in case of feet or knee values and direction being wrong in the Matlab scope. The problem could be feet or knee distortion as observed in this case
https://github.com/dic-iit/component_andy/issues/188#issuecomment-461118542.

We can close this issue now and when we perform another test of HDEv2 with another human subject and the corresponding urdf model, we can update this issue with the Matlab plots from the test.

@DanielePucci @lrapetti

from human-dynamics-estimation.

lrapetti avatar lrapetti commented on August 18, 2024

Discussing with @diegoferigo, I understood this task may be blocked by the HumanDynamicWrapper which for what I understood has not been developed yet. (also I don't know the state of HumanStateWrapper)

from human-dynamics-estimation.

yeshasvitirupachuri avatar yeshasvitirupachuri commented on August 18, 2024

Not necessarily. The first one was designed as a module to work with modules but subscribing to the output ports streaming joint data in thrift format. Now I want to change it to a device called HumanControlBorad that will read joint position, velocity through IHumanState interface and then subscribe to joint torques output port from HumanDynamicsWrapper. Later when we implement HumanDynamicsWrapper to expose data through IHumanDynamics we can update from the logic of reading joint torques port to reading IHumanDynamics interface.

from human-dynamics-estimation.

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.