robotology / whole-body-controllers

Simulink-based whole body controllers for humanoid robots.
116 stars 43 forks source link

Integrate the YOGA++ (floating-base-balancing-torque-control) with the matlab-whole-body-simulator #122

Closed nunoguedelha closed 3 years ago

nunoguedelha commented 3 years ago

Implements #121 .

nunoguedelha commented 3 years ago

How to test this PR

nunoguedelha commented 3 years ago

@traversaro @gabrielenava , the PR is ready for review.

traversaro commented 3 years ago

Thanks @nunoguedelha , two comments:

gabrielenava commented 3 years ago

Tested following https://github.com/robotology/whole-body-controllers/pull/122#issuecomment-834541660 on my PC with Ubuntu 20.04 LTS.

Seems working fine: image

I've found it a bit slow in the initializing and terminating processes, is it normal? The simulation instead was running with a quite good update rate.

A couple of comments:

nunoguedelha commented 3 years ago

Sure @gabrielenava , I'll do a mini-PR to update the documentation covering all the points you've listed. Thanks.

nunoguedelha commented 3 years ago

Thanks @nunoguedelha , two comments:

* Could we install `torqueControlBalancingWithSimu.mdl`, perhaps in a `matlab/examples` directory or similar? In this way the example is available also for people that install `whole-body-controllers` via conda, otherwise if the use need to know how to use git to download the examples we would lose the main advantage of a one line installation.

* Why do we need to set manually `setenv('YARP_ROBOT_NAME','iCubGazeboV2_5')` ? Can't we set it somewhere in the example initialization or similar?

and addressing this too @traversaro .

Could we install torqueControlBalancingWithSimu.mdl,

Yes indeed.

Why do we need to set manually ...

It makes usually sense to set it separately when there are several models. It makes also sense to have a working model set by default, and right now iCubGazeboV2_5 is the only one, so I'll add the setting of a default YARP_ROBOT_NAME = iCubGazeboV2_5 in the model initialization as you suggested.

nunoguedelha commented 3 years ago

I've found it a bit slow in the initializing and terminating processes, is it normal? The simulation instead was running with a quite good update rate.

It's slow for me too. Probably because there are more sub-systems treated as atomic blocks (the cntroller, the simulator, the visualizer), which results in more code generation, which is slower at compilation but faster at runtime.