-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test the repo documentation #2
Comments
Hi @Yeshasvitvs, @RiccardoGrieco did not have access to the repo. I just gave him access now |
I am trying to install the software from the CMake Error at msgs/yarp/CMakeLists.txt:1 (add_subdirectory):
The source directory
/home/riccardo/Code/human-dynamics-estimation/msgs/yarp/thrift
does not contain a CMakeLists.txt file.
-- [x] Plugin: human_state_provider (ENABLE_human_state_provider)
-- [x] Plugin: human_wrench_provider (ENABLE_human_wrench_provider)
CMake Error at devices/HumanDynamicsEstimator/CMakeLists.txt:9 (find_package):
By not providing "Findgram_savitzky_golay.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"gram_savitzky_golay", but CMake did not find one.
Could not find a package configuration file provided by
"gram_savitzky_golay" with any of the following names:
gram_savitzky_golayConfig.cmake
gram_savitzky_golay-config.cmake
Add the installation prefix of "gram_savitzky_golay" to CMAKE_PREFIX_PATH
or set "gram_savitzky_golay_DIR" to a directory containing one of the above
files. If "gram_savitzky_golay" provides a separate development package or
SDK, be sure it has been installed. I installed all the required and optional dependencies, so do you have any idea why this happens? @Yeshasvitvs |
I guess that in this branch the code from this repo is used. CMake Error at msgs/yarp/CMakeLists.txt:1 (add_subdirectory):
The source directory
/home/riccardo/Code/human-dynamics-estimation/msgs/yarp/thrift
does not contain a CMakeLists.txt file. For what concerns instead this other error, I'm still not very acquainted with thrift, so I don't have suggestions for that. |
I also noticed that the build instructions of the idyntree fork actually point to the main robotology fork: $ git clone https://github.com/robotology/idyntree |
For this issue, please check if your local repo is aligned with the latest repo in the upstream, since I think there was an issue recently solved on that branch, and the file that appear to be missing is now there |
You're right, I must have pulled only the master branch so I was missing the latest commits on this one. Thanks! |
@RiccardoGrieco That is because of another dependency that needs to be installed: https://github.com/arntanguy/gram_savitzky_golay#installation Updated the installation documentation in 9f38671 |
When compiling the iDynTree branch, if IPOPT is found within the system (as in my case), it is used, but the following build error occurs: /home/riccardo/Code/idyntree_yeshi/src/inverse-kinematics/src/InverseKinematicsNLP.cpp: In member function 'void internal::kinematics::InverseKinematicsNLP::testDerivatives(const iDynTree::VectorDynSize&, int, double, double, int)':
/home/riccardo/Code/idyntree_yeshi/src/inverse-kinematics/src/InverseKinematicsNLP.cpp:1608:13: error: reference to 'Vector3' is ambiguous
1608 | Vector3 rpy;
| ^~~~~~~
In file included from /home/riccardo/Code/idyntree_yeshi/src/inverse-kinematics/include/private/InverseKinematicsNLP.h:15,
from /home/riccardo/Code/idyntree_yeshi/src/inverse-kinematics/src/InverseKinematicsNLP.cpp:16:
/home/riccardo/Code/idyntree_yeshi/src/core/include/iDynTree/Core/VectorFixSize.h:285:31: note: candidates are: 'typedef class iDynTree::VectorFixSize<3> iDynTree::Vector3'
285 | typedef VectorFixSize<3> Vector3;
| ^~~~~~~
In file included from /home/riccardo/conda/envs/yeshienv/include/eigen3/Eigen/Core:295,
from /home/riccardo/Code/idyntree_yeshi/src/inverse-kinematics/src/InverseKinematicsNLP.cpp:21:
/home/riccardo/conda/envs/yeshienv/include/eigen3/Eigen/src/Core/Matrix.h:541:1: note: 'template<class Type> using Vector3 = Eigen::Matrix<Type, 3, 1>'
541 | EIGEN_MAKE_TYPEDEFS(3, 3)
| ^~~~~~~~~~~~~~~~~~~
/home/riccardo/Code/idyntree_yeshi/src/inverse-kinematics/src/InverseKinematicsNLP.cpp:1609:51: error: 'rpy' was not declared in this scope
1609 | currentTransform.getRotation().getRPY(rpy(0), rpy(1), rpy(2)); and so on. Just disabling the use of IPOPT did the trick but since I don't think that the issue is due to my environment, maybe it would be better to disable the dependency or at least put a note in the/warning in the readme of the branch. |
I think OsqpEigen should be added to the list of dependencies of the HDE branch, since it won't compile without: CMake Error at devices/HumanStateProvider/CMakeLists.txt:7 (find_package):
By not providing "FindOsqpEigen.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"OsqpEigen", but CMake did not find one.
Could not find a package configuration file provided by "OsqpEigen"
(requested version 0.4.0) with any of the following names:
OsqpEigenConfig.cmake
osqpeigen-config.cmake
Add the installation prefix of "OsqpEigen" to CMAKE_PREFIX_PATH or set
"OsqpEigen_DIR" to a directory containing one of the above files. If
"OsqpEigen" provides a separate development package or SDK, be sure it has
been installed. |
Regarding the previous commet, it looks like using IPOPT is required in order to build and install the inverse-kinematics library (see here), which in turn is required by the HDE: CMake Error at /home/riccardo/conda/envs/yeshienv/share/yarp/cmake/YarpPlugin.cmake:594 (add_library):
Target "HumanStateProvider" links to target
"iDynTree::idyntree-inverse-kinematics" but the target was not found.
Perhaps a find_package() call is missing for an IMPORTED target, or an
ALIAS target is missing?
Call Stack (most recent call first):
devices/HumanStateProvider/CMakeLists.txt:17 (yarp_add_plugin)
CMake Error at /home/riccardo/conda/envs/yeshienv/share/yarp/cmake/YarpPlugin.cmake:594 (add_library):
Target "HumanStatePublisher" links to target
"iDynTree::idyntree-inverse-kinematics" but the target was not found.
Perhaps a find_package() call is missing for an IMPORTED target, or an
ALIAS target is missing?
Call Stack (most recent call first):
publishers/HumanStatePublisher/CMakeLists.txt:15 (yarp_add_plugin) @Yeshasvitvs are you able to compile the iDynTree branch with IPOPT? |
@RiccardoGrieco I am not certain about it, but the @lrapetti can you please verify if the IPOPT dependency is dropped completely from the HDE upstream. Thanks. |
IPOPT dependency has never changed. Anyway @RiccardoGrieco, if I'm not wrong you have used conda instead of compiling some components, and you didn't use the superbuild right? |
As I was suggesting today, one way could be to use project tags to replicate the same robotology setup as per the working one. For finding the commit and tag used in that machine, one way could be to use this command in the robotology src folder
Then, for using the project tag, you can refer to the following documentation https://github.com/robotology/robotology-superbuild/blob/master/doc/change-project-tags.md
Hence you should have no downloaded repository in the src folder of the robotology! |
Thank you @CarlottaSartore, I will try this way then! |
Thank you all for the contributions. @Yeshasvitvs the only important point for me is that starting from scratch, the installation and code tests go smooth by following the instructions on the README. Please take care of this as soon as possible by checking what actions should be taken so as @RiccardoGrieco can retest the updated procedure. The media release of the paper is currently blocked by this! thanks. |
@DanielePucci Sure @RiccardoGrieco please update the issue once you are able to get this #2 (comment) sorted out. I will update the repo README accordingly and we test it again. Thanks for the support @RiccardoGrieco @lrapetti @CarlottaSartore |
From the Here are the tags Here is the cmake cache |
This error means that for some reason iDynTree was not compiled with the |
I forked the robotology-superbuild and created a branch where I'm setting some of the tags/commits from the files of this comment in order to reduce the steps needed. Here the link. I still experience this issue. I don't know why others don't have this issue, maybe I did something wrong. Can you try to run the superbuild from the branch mentioned above? @Yeshasvitvs |
So with this you are able to compile all the code? Did you tried to run it as well? |
That issue is due to Eigen 3.4 (that I guess you are getting as you are installing deps via conda), see robotology/idyntree#860 for the original issue and robotology/idyntree#861 for the PR that fixed. In the @Yeshasvitvs's fork, that fix was not present and this is why you are experiencing this issue. I guess that if you install dependencies via apt on Ubuntu 20.04, the Eigen version is older and you do not have this problem. For the time being, probably it could make sense to backport robotology/idyntree#861 to @Yeshasvitvs's fork as it works fine with older Eigens. |
I haven't yet.
Actually I am not using conda for this issue anymore, I'm using Eigen 3.3.7 installed via apt. |
I do not have an Ubuntu machine at the moment to test |
I did it and I was able to build the code.
I tried to run the pipeline using the configuration file from the Installation README, but I get this error: [ERROR] HumanDynamicsEstimator : Failed to find BERDY_OPTIONS configuration parameter
[ERROR] |yarp.dev.PolyDriver| Driver <human_dynamics_estimator> was found but could not open @Yeshasvitvs @lrapetti can you help me with this? In addition, it can be useful to add the configuration file into the YARP installation directory, so it is always visible by I will push both the changes related to the fix for older eigen versions and this one for the configuration files to the upstream branches. |
Probably that configuration file is not the one supposed to be used since it is missing the |
Great! Thanks @traversaro @lrapetti for the support.
@lrapetti is right, the config file pointed in the readme Is miss
UPDATE: The file that needs to be updated with |
@RiccardoGrieco I updated the configuration file with the missing |
I'm trying to run the pipeline. So now
Nevertheless, I can see the data being streamed via |
Opened PR ami-iit/idyntree-hde-fork#1 for the Eigen issue. |
You are right, I wanted to keep the installation as easy as possible, but it's way better not to create a branch/fork for this purpose only. So basically we need to create the yaml file with the tags from here and and the new commits on HDE and the iDynTree fork, and update the Installation.md with the instructions from #1 (comment). |
Added yaml file with updated tags https://github.com/ami-iit/tirupachuri-2021-access-estimation_payload_stresses/blob/main/aeps.yaml as suggested in #1 and updated the installation instructions https://github.com/ami-iit/tirupachuri-2021-access-estimation_payload_stresses/blob/main/installation.md |
@traversaro link to |
The action points from #2 (comment) are done |
Thanks, fixed in https://github.com/robotology/robotology-superbuild/pull/928/files . |
I read quickly the Installation readme. I added the Usage mention #3 @Yeshasvitvs |
Thanks @DanielePucci |
The url of iDynTree was not correct. I opened #4 to fix it. |
@Yeshasvitvs
For me it is ok, I would however say that the last word is of @RiccardoGrieco who was the one in charge of testing the repo documentation. So, @RiccardoGrieco let us know if we can close the issue now |
I will do a final test to see if everything is ok between today and tomorrow! |
Opened PR #5. I had issues running A solution to this issue for me was forcing the value of the variable inside the iDynTree CMakeLists.txt right after the line: include(iDynTreeOptions) @traversaro do you know if there is a way to fix this without updating the file? I tried setting the variable with the @Yeshasvitvs I tried running all the steps but even after calling the rpc as mentioned in the usage file I'm still not able to see the mass estimation changing. Also, the name of the rpc is incorrect. I used |
If you are using
Do you have any idea why it was not installed? |
@traversaro I can see from the first link that it is build only if the Do you think it is the case to enable also the |
Ahhh, I see. The problem is that if we want to force the installation of iDynTree with the YARP dependency enabled, a few changes are necessary to the superbuild, that otherwise will try to build iDynTree before of YARP, resulting in a compilation error. Given that this changes were done in robotology/robotology-superbuild#818, I guess you can either try to use the v2021.05 release of the superbuild, or otherwise just creating a new branch of the robotology-superbuild in the ami-iit fork (even if we wanted to avoid that) and revert some changes done in robotology/robotology-superbuild#818 . |
@RiccardoGrieco do you at least see the change in arrow magnitude at the hands, after the offset removal ? If possible please share a video. @lrapetti If there is a possibility of checking in person, please take a look at the Rviz visualization. Thanks. |
As alignment on getting the software to work, a possible way forward may be to put all the instrutions in a Dockerfile meant to be used in Gitpod, so that multiple users can access the resulting workspace and quickly debug what is still not working. An example on (almost) vanilla Ubuntu 20.04 machine can be found in https://github.com/traversaro/gitpod-ubuntu-20.04, we could copy all the files in this repo and just add to the Dockerfile the missing instructions. All the magic on the noVNC machinery on GitPod goes to @pattacini that first set it up for https://github.com/robotology/icub-gazebo-grasping-sandbox . |
To clarify what needs to be done to get a nice VNC-enabled gitpod workspace, I added a few steps in traversaro/gitpod-ubuntu-20.04#2 . |
@traversaro I was able to build the As for the visualization, @lrapetti will drop his comments from the test we were able to run on my pc. |
@RiccardoGrieco @traversaro based on your testing and comment above, I updated to using superbuild Thanks @traversaro and @pattacini for a really nice infrastructure. I tested the documentation of this repo on gitpod vokoscreen-2021-11-27_17-27-00.mp4
@RiccardoGrieco it is related to configuration file. Fixed it in robotology/human-dynamics-estimation@791c5cf#diff-88fe3162ba062a1b1fcb58263740a8cb3631b6fc873497eb03104ec5645212c2 |
That's cool @Yeshasvitvs
The required changes I noticed were the following:
|
It is related to force threshold for the estimated hand wrench. This is what I changed in the test above, but Rviz was not running smooth on gitpod.
I had the same behavior when I ran the configuration file pointed by the documentation, and noticed it is related to incorrect configuration options in the file. This is fixed in the commit pointed in #2 (comment) |
@lrapetti also, I noticed human-gazebo is pointed to master. So, opened a PR to add hands com frames |
I used the yaml file from PR #7 (branch patch). As indicated by @Yeshasvitvs I changed the tags of humman-gazebo to the current master branch, and the updated HDE branch. I was finally able to run the pipeline: Screencast.2021-11-29.19.14.55.mp4The usage file has to updated since I experienced some crashes of RViz when running it before starting to play the dataset. Also, as a side note, I would also write in the usage file to change on RViz the "Force Arrow Scale" of each hand (even only the right one) to 0.02/0.03 in order to make them visible. |
@RiccardoGrieco Updated the usage document 48d2695 |
@DanielePucci, @Yeshasvitvs we can finally close this issue! With the updates in PR #7 the documentation and the tags are complete. |
Closing then! |
Hi @RiccardoGrieco, this is a dissemination repo for a recent work we published from the AnDy team. Please check the documentation. As discussed with @DanielePucci we would like to check how the readme details of the repo are for a someone new to follow the instructions for running the code related to this paper. In this regard, we would like to request you to try this task according to your availability. Thank you.
Probably @lrapetti can give some support with this, but in general the idea is that we need to ensure that the repo documentation should be clear enough to run the code of the paper.
The text was updated successfully, but these errors were encountered: