Comments (7)
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.
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.
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.
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
For the right knee movement of 90 degrees, I see the correct joint angles in simulink scope
Also, the joint torques values are read correctly on simulink side from the HumanControlBoard
device
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.
🔝
Ideally, joint accelerations should also be available through
IHumanDynamics
interface
From IHumanState
.
from human-dynamics-estimation.
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
The corresponding joint angle data in degree seen in Matlab scope is shown below
The corresponding joint torques seen in Matlab scope is shown below
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.
from human-dynamics-estimation.
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.
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)
- [HumanLogger] Logger silently failing to save file when attach device not found HOT 15
- Remove teleoperation models for icub2.5 and icub3 HOT 2
- Remove implementation of both IWrapper and IMultipleWrapper from devices HOT 2
- Add joint information to HumanLogger HOT 2
- Migrate MacOS CI from homebrew to conda HOT 2
- Human Logger not terminating when directory not created HOT 3
- [HumanLogger] logger not starting because interface is not ready HOT 2
- Replace usage of `analogServer` HOT 17
- Change Wrapper/Remapper naming convention to `nws`/`nwc` HOT 2
- Add status information to `IHumanState`, `IHumanDynamics` and `IHumanWrench`
- Implement HumanWrenchWrapper and HumanWrenchRemapper devices HOT 1
- HumanControlBoard fails to attach to iHumanState HOT 2
- HumanStateVisualizer is stuck waiting data from HumanStateWrench HOT 2
- CI failing on Windows HOT 3
- Release human-dynamics-estimation v3.0.0 HOT 2
- Add video recording in HumanLogger HOT 1
- cannot set `useDirectBaseMeasurement` to true HOT 1
- Compilation failure with ``yarp`` 3.10
- RViz crashes when launched by yarpmanager
- Re-enable macos and Windows CI April 2024 HOT 1
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 human-dynamics-estimation.