ami-iit / paper_darvish_2022_humanoids_action-kindyn-predicition

MIT License
1 stars 1 forks source link

Test the instructions and code #1

Open Zweisteine96 opened 1 year ago

Zweisteine96 commented 1 year ago

I would follow the repo instructions to test the code, results will be reported in this issue.

Zweisteine96 commented 1 year ago

Test Results

Together with @lrapetti, the test results are updated here.

Installation of mamba and robotology

I didn't install mamba but just creating a virtual environment. Since I already have robotology on my computer, so I didn't install it again in the mamba environment.

Installation of project

Totally fine except I can't run pytest, I think it's because I didn't install it?

collect required data

annotate the data

Training

Online test using logged data and visualization

peekLV8U11.webm

In general, the instructions are doable, I can basically let everything run. But at some points we may add more notes?

cc @DanielePucci @kouroshD @lrapetti

kouroshD commented 1 year ago

Hi @Zweisteine96 ; thank you for testing out the repo and instruction. While I will be happy to help you to debug with your custom environment, the purpose of this issue is to exactly follow the instructions provided here. Please as indicated in README, follow the instructions for installing the repo, download the data as mentioned in the repo. If you face any problem, LMK. Thanks. I have tested the repo several times in different mamba envs and did not face any if your problems.

N.B. Regarding the running c++ binaries; if your installation folder is not added to the path, then you should go to your intallation directory to run. For this purpose, as suggested, you can install it in the installation directory of superbuild.

Zweisteine96 commented 1 year ago

Hi @kouroshD, I agree with you. Since I didn't follow the very first installation instruction, so I can imagine I would encounter some unexpected problems. The issues reported above are actually not very serious problems, so I think both code and instructions are ready to go.

kouroshD commented 1 year ago

Thank you for your comment @Zweisteine96 . I belive it is @DanielePucci's call on that to close the issue or not. But what I can say is that following the whole instructions should be very fast.

DanielePucci commented 1 year ago

But what I can say is that following the whole instructions should be very fast.

@Zweisteine96 may you try to give a try?

lrapetti commented 1 year ago

But what I can say is that following the whole instructions should be very fast.

@Zweisteine96 may you try to give a try?

@Zweisteine96 I think the bast way to test this avoiding having conflicts with what is already installed in your system is to:

@traversaro I don't know if you have any additional suggestion or comment on top of this

Zweisteine96 commented 1 year ago

@Zweisteine96 may you try to give a try?

Yes I can try it soon.

Zweisteine96 commented 1 year ago

With the help of @lrapetti , I finished testing the whole pipeline in mamba . I think all the instructions are clear and lead to the successful running of all programs. But there are several points I think could be modified a little bit for better understanding:

If you do not have robotology-superbuild installed in your system, follow the instructions in here to install it in motion-prediction mamba env.

build and install the c++ modules by:

Sorry again for the delay. Apart from the points mentioned above, the instructions are good for me to go.

cc @DanielePucci @kouroshD

kouroshD commented 1 year ago

If robotology-superbuild is already installed in the global environment, it's still okay to use that (no need to install a new one in mamba).

I would say, however, I haven't tried it out.

If CMAKE_INSTALL_PREFIX is not /build/install but a user-defined directory, then when running the following command: humanDataPreparationModule --from humanDataAcquisitionForLogging.ini, remember to copy the configuration files (also the other required .ini files) to build/install/bin folder.

About this, off course if you do not install it in a path that is passed to PATH env variable, you should go to it directly to use. As you can see here, https://github.com/ami-iit/paper_darvish_2022_humanoids_action-kindyn-predicition/blob/1f3e8f837b2139abd6298cd855ab6b330b4a7cf7/src/humanDataPreparation/app/CMakeLists.txt#L6 , we set it to install in a specific directory. So, if you install in Robotology superbuild install directory, you can find it anywhere. But the behavior you have observed is expected. If you have a better suggestion, lmk please.

Thanks. If there is no other comments, we may close the issue. @DanielePucci should we close this issue. I believe this is done.

lrapetti commented 1 year ago

If CMAKE_INSTALL_PREFIX is not /build/install but a user-defined directory, then when running the following command: humanDataPreparationModule --from humanDataAcquisitionForLogging.ini, remember to copy the configuration files (also the other required .ini files) to build/install/bin folder.

About this, off course if you do not install it in a path that is passed to PATH env variable, you should go to it directly to use. As you can see here,

https://github.com/ami-iit/paper_darvish_2022_humanoids_action-kindyn-predicition/blob/1f3e8f837b2139abd6298cd855ab6b330b4a7cf7/src/humanDataPreparation/app/CMakeLists.txt#L6

, we set it to install in a specific directory. So, if you install in Robotology superbuild install directory, you can find it anywhere. But the behavior you have observed is expected. If you have a better suggestion, lmk please.

Maybe you can specify that if not installed to the superbuild install directory, you should make sure that the <install-directory>/share/yarp path is added to the YARP_DATA_DIRS env variable, and the <install-directory>/bin is added to the PATH env variable

traversaro commented 1 year ago

Just a small comment: in paper repos, tipically we try to provide instructions that will also valid in the future, so providing some pin for the dependencies, because future version of the library that we listed in https://github.com/ami-iit/paper_darvish_2022_humanoids_action-kindyn-predicition/blob/main/environment.yml could not work with the existing code. For doing so, tipically we pin at least the "big libraries" installed in https://github.com/ami-iit/paper_darvish_2022_humanoids_action-kindyn-predicition/blob/main/environment.yml down to the patch version, and then suggest a precise distro release of the superbuild to use. This is also why we should not suggested the users to use an existing robotology-superbuild installation if they already have it.

Furthermore, note that all packages installed by the robotology-superbuild is available also as conda-binaries, either from the conda-forge channel or the robotology channel. Which packages are actually used from the superbuild? A possible strategy to simplify the installation is to install all of them directly from the environment.yml, without the need to manually compile the superbuild.

traversaro commented 1 year ago

Furthermore, note that all packages installed by the robotology-superbuild is available also as conda-binaries, either from the conda-forge channel or the robotology channel. Which packages are actually used from the superbuild? A possible strategy to simplify the installation is to install all of them directly from the environment.yml, without the need to manually compile the superbuild.

Ok, this may not be true, as the environment is using the defaults channel that in general contains packages that are not ABI compatible (see https://conda-forge.org/docs/user/tipsandtricks.html#why-does-that-happen), i.e. from the top of the environment.yml file:

    - defaults
    - conda-forge
    - anaconda

probably switching to conda-forge may be complicated and change the results, so at this point I suggest to just pin some dependencies in environment.yml and specify the distro release used by the superbuild. Furthermore, for future reference it is great if anyone that has a valid installation that is working could store the version of package installed in its environment by pasting in this this discussion the output of mamba list.