-
Notifications
You must be signed in to change notification settings - Fork 2
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
Cannot compile icub-main on pc104 with latest releases #583
Comments
It may sound trivial (but it has happened in the past) so it's worth a try. If you have, check during |
Thanks for the suggestion, but I was on PC 104 (much slower compilation with the atom processor !) and in a dedicated build directory The .so is found automatically by ccmake (it is a realtime module, directly included in the live image). The header file is not ! But it stays at the same location in the live The can hardware is fine : with the previous laptop and USB key (décembre 2015) everything is working |
If I change in /icub-main/src/libraries/icubmod/cfw2Can I can compile the full icub-main suite. But yarprobotinterface still fails during startup : |
Can you do the following, please? |
Thanks for your help. I think I did the first steps correctly...
Le 12-12-2017 09:38, Alberto Cardellino a écrit :
Can you the following, please?
Remove the build folder for icub-main on pc104
run yarpdev --list and make sure there is no canmotioncontrol module
run ccmake turning on canmotioncontrol flag
then run cmake (single 'c') from terminal and post the output.
See attached file for this log.
compile everything and run
Do you mean, with no more flags than enabled canmotioncontrol, or with
all the usual flags ?
yarp plugin --verbose canmotioncontrol and post the output
This is from the new build-pc104 directory (with only canmotioncontrol
flags)
icub@pc104:/usr/local/src/robot/icub-main/build-pc104$ yarp plugin
--verbose canmotioncontrol
Yes, this is a YARP plugin
Trying to find library
'/usr/local/src/robot/yarp/build-pc104/lib/yarp/canmotioncontrol.so'
containing function 'canmotioncontrol' -- fail
error while opening
/usr/local/src/robot/yarp/build-pc104/lib/yarp/canmotioncontrol.so:
/usr/local/src/robot/yarp/build-pc104/lib/yarp/canmotioncontrol.so:
cannot open shared object file: No such file or directory
Trying to find library
'/usr/local/src/robot/icub-main/build-pc104/lib/iCub/canmotioncontrol.so'
containing function 'canmotioncontrol' -- found
* library:
/usr/local/src/robot/icub-main/build-pc104/lib/iCub/canmotioncontrol.so
* system version: 5
* class name: yarp::dev::CanBusMotionControl
* base class: yarp::dev::DeviceDriver
I would get what seems to be the same from my previous build-pc104
directory with all the flags :
mv build-pc104 build-pc104_test
mv removed_build-pc104 build-pc104
cd build-pc104
make
icub@pc104:/usr/local/src/robot/icub-main/build-pc104$ yarp plugin
--verbose canmotioncontrol
Yes, this is a YARP plugin
Trying to find library
'/usr/local/src/robot/yarp/build-pc104/lib/yarp/canmotioncontrol.so'
containing function 'canmotioncontrol' -- fail
error while opening
/usr/local/src/robot/yarp/build-pc104/lib/yarp/canmotioncontrol.so:
/usr/local/src/robot/yarp/build-pc104/lib/yarp/canmotioncontrol.so:
cannot open shared object file: No such file or directory
Trying to find library
'/usr/local/src/robot/icub-main/build-pc104/lib/iCub/canmotioncontrol.so'
containing function 'canmotioncontrol' -- found
* library:
/usr/local/src/robot/icub-main/build-pc104/lib/iCub/canmotioncontrol.so
* system version: 5
* class name: yarp::dev::CanBusMotionControl
* base class: yarp::dev::DeviceDriver
Hope it helps, thanks !
…--
Frederic ELISEI http://www.gipsa-lab.fr/~frederic.elisei/
(33-4) 76574539 mailto:/Frederic.Elisei@gipsa-lab.grenoble-inp.fr
icub@pc104:~$ cd $ICUB_DIR
icub@pc104:/usr/local/src/robot/icub-main/build-pc104$ cd ..
icub@pc104:/usr/local/src/robot/icub-main$ mv build-pc104/ removed_build-pc104/
icub@pc104:/usr/local/src/robot/icub-main$ yarpdev --list
[INFO]Here are devices listed for your system:
[INFO]Device "test_motor", C++ class yarp::dev::TestMotor, wrapped by "controlboard"
[INFO]Device "remote_grabber", C++ class yarp::dev::RemoteFrameGrabber, wrapped by "grabber"
[INFO]Device "grabber", C++ class yarp::dev::ServerFrameGrabber, is a network wrapper.
[INFO]Device "sound_grabber", C++ class yarp::dev::ServerSoundGrabber, is a network wrapper.
[INFO]Device "pipe", C++ class yarp::dev::DevicePipe, has no network wrapper
[INFO]Device "group", C++ class yarp::dev::DeviceGroup, has no network wrapper
[INFO]Device "remote_controlboard", C++ class yarp::dev::RemoteControlBoard, wrapped by "controlboardwrapper2"
[INFO]Device "inertial", C++ class yarp::dev::ServerInertial, is a network wrapper.
[INFO]Device "controlboardwrapper2", C++ class yarp::dev::ControlBoardWrapper2, is a network wrapper.
[INFO]Device "batteryClient", C++ class batteryClient, has no network wrapper
[INFO]Device "analogsensorclient", C++ class AnalogSensorClient, has no network wrapper
[INFO]Device "analogServer", C++ class yarp::dev::AnalogWrapper, is a network wrapper.
[INFO]Device "virtualAnalogServer", C++ class yarp::dev::VirtualAnalogWrapper, is a network wrapper.
[INFO]Device "batteryWrapper", C++ class yarp::dev::BatteryWrapper, is a network wrapper.
[INFO]Device "Rangefinder2DWrapper", C++ class yarp::dev::Rangefinder2Dwrapper, is a network wrapper.
[INFO]Device "RGBDSensorWrapper", C++ class yarp::dev::RGBDSensorWrapper, is a network wrapper.
[INFO]Device "RGBDSensorClient", C++ class yarp::dev::RGBDSensorClient, is a network wrapper.
[INFO]Device "controlboardremapper", C++ class yarp::dev::ControlBoardRemapper, wrapped by "controlboardwrapper2"
[INFO]Device "remotecontrolboardremapper", C++ class yarp::dev::RemoteControlBoardRemapper, wrapped by "controlboardwrapper2"
[INFO]Device "robotDescriptionServer", C++ class RobotDescriptionServer, has no network wrapper
[INFO]Device "robotDescriptionClient", C++ class RobotDescriptionClient, has no network wrapper
[INFO]Device "grabberDual", C++ class yarp::dev::ServerGrabber, is a network wrapper.
[INFO]Device "JoypadControlServer", C++ class yarp::dev::JoypadControlServer, is a network wrapper.
[INFO]Device "JoypadControlClient", C++ class yarp::dev::JoypadControlClient, is a network wrapper.
[INFO]Device "transformServer", C++ class yarp::dev::FrameTransformServer, is a network wrapper.
[INFO]Device "transformClient", C++ class transformClient, has no network wrapper
[INFO]Device "locationsServer", C++ class yarp::dev::LocationsServer, is a network wrapper.
[INFO]Device "Rangefinder2DClient", C++ class Rangefinder2DClient, has no network wrapper
[INFO]Device "navigation2DClient", C++ class navigation2DClient, has no network wrapper
[INFO]Device "localization2DClient", C++ class localization2DClient, has no network wrapper
[INFO]Device "map2DClient", C++ class yarp::dev::Map2DClient, has no network wrapper
[INFO]Device "map2DServer", C++ class yarp::dev::map2DServer, is a network wrapper.
[INFO]Device "portaudio", available on request (found in /usr/local/src/robot/yarp/build-pc104/lib/yarp/yarp_portaudio.so library), wrapped by "grabber".
[INFO]Device "serial", available on request (found in /usr/local/src/robot/yarp/build-pc104/lib/yarp/yarp_serial.so library), is a network wrapper.
[INFO]Device "serialport", available on request (found in /usr/local/src/robot/yarp/build-pc104/lib/yarp/yarp_serial.so library), wrapped by "serial".
[INFO]Device "test_grabber", available on request (found in /usr/local/src/robot/yarp/build-pc104/lib/yarp/yarp_test_grabber.so library), wrapped by "grabber".
icub@pc104:/usr/local/src/robot/icub-main$ mkdir build-pc104
icub@pc104:/usr/local/src/robot/icub-main$ cd build-pc104
icub@pc104:/usr/local/src/robot/icub-main/build-pc104$
icub@pc104:/usr/local/src/robot/icub-main/build-pc104$ ccmake ..
icub@pc104:/usr/local/src/robot/icub-main/build-pc104$ cmake ..
-- YARP is version: 2.3.70.1
-- found libYARP_math
-- Detecting required libraries
-- CMake modules directory: /usr/local/src/robot/icub-main/conf;/usr/local/src/robot/yarp/cmake;/usr/local/src/robot/yarp/cmake/deprecated;/usr/local/src/robot/yarp/cmake/ycm-0.4.0/find-modules;/usr/local/src/robot/yarp/cmake/ycm-0.4.0/modules;/usr/local/src/robot/yarp/cmake/ycm-0.4.0/3rdparty;/usr/local/src/robot/yarp/cmake/ycm-0.4.0/cmake-proposed;/usr/local/src/robot/yarp/cmake/ycm-0.4.0/cmake-next/Modules
-- Could NOT find GLUT (missing: GLUT_glut_LIBRARY GLUT_INCLUDE_DIR)
-- Checking GNUCXX version 3/4 to determine OpenCV /opt/net/ path
-- OPENCV_LIBRARY not found turning off OPENCV_FOUND
-- OPENCV_CVAUX_LIBRARY not found turning off OPENCV_FOUND
-- OPENCV library or headers not found. Please search manually or set env. variable OPENCV_ROOT to guide search.
-- WARNING: OpenCV was not found. Please specify OpenCV directory using OpenCV_DIR env. variable
-- Could NOT find OpenCV (missing: OpenCV_LIBRARIES)
-- Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)
-- Could NOT find IPOPT (missing: IPOPT_LIBRARIES)
-- OpenCV version is .
-- GTK2 version is 2.24
-- GTK2 is at least 2.12
-- I have found the following libraries:
-- icub_firmware_shared: found
-- GSL: found
-- GLUT: NOT found
-- OpenGL: found
-- ODE: NOT found
-- SDL: NOT found
-- GTK2: found
-- ACE: found
-- IPOPT: NOT found
-- IPP: NOT found
-- OpenCV: NOT found
-- Qt5: found
-- Libraries go to /usr/local/src/robot/icub-main/build-pc104/lib
-- Executables go to /usr/local/src/robot/icub-main/build-pc104/bin
-- Using YARP from build tree: no file will we be installed into path.d folder, you need to set YARP_DATA_DIRS environment variable to /usr/local/src/robot/yarp/build-pc104/share/yarp:/usr/local/src/robot/icub-main/build-pc104/share/iCub:/usr/local/src/robot/iCubContrib/share/ICUBcontrib:/usr/local/src/robot/icub-tests/suits:/usr/local/src/robot/icub-main/build-pc104/share/iCub
-- starting plugin library: icubmod
-- +++ plugin icubmod_canmotioncontrol: enabled
-- --- plugin icubmod_cartesiancontrollerserver: disabled
-- --- plugin icubmod_cartesiancontrollerclient: disabled
-- --- plugin icubmod_cfw2can: disabled
-- --- plugin icubmod_dragonfly2: disabled
-- --- plugin icubmod_dragonfly2raw: disabled
-- --- plugin icubmod_ecan: disabled
-- --- plugin icubmod_sharedcan: disabled
-- --- plugin icubmod_socketcan: disabled
-- --- plugin icubmod_esdsniffer: disabled
-- --- plugin icubmod_fakecan: disabled
-- --- plugin icubmod_bcbBattery: disabled
-- --- plugin icubmod_bmsBattery: disabled
-- --- plugin icubmod_gazecontrollerclient: disabled
-- --- plugin icubmod_parametricCalibrator: disabled
-- --- plugin icubmod_parametricCalibratorEth: disabled
-- --- plugin icubmod_pcan: disabled
-- --- plugin icubmod_static_grabber: disabled
-- --- plugin icubmod_xsensmtx: disabled
-- --- plugin icubmod_skinprototype: disabled
-- --- plugin icubmod_skinWrapper: disabled
-- --- plugin icubmod_canBusAnalogSensor: disabled
-- --- plugin icubmod_canBusDoubleFTSensor: disabled
-- --- plugin icubmod_canBusVirtualAnalogSensor: disabled
-- --- plugin icubmod_canBusInertialMTB: disabled
-- --- plugin icubmod_canBusSkin: disabled
-- --- plugin icubmod_embObjMotionControl: disabled
-- --- plugin icubmod_embObjSkin: disabled
-- --- plugin icubmod_embObjAnalogSensor: disabled
-- --- plugin icubmod_embObjStrain: disabled
-- --- plugin icubmod_embObjMais: disabled
-- --- plugin icubmod_embObjMultiEnc: disabled
-- --- plugin icubmod_embObjInertials: disabled
-- --- plugin icubmod_embObjVirtualAnalogSensor: disabled
-- --- plugin icubmod_usbCamera: disabled
-- --- plugin icubmod_usbCameraRaw: disabled
-- --- plugin icubmod_imuST_M1: disabled
-- ending plugin library: icubmod
-- IPOPT not found/selected, skipping optimization
-- +++ tool compiling canLoaderLib
-- +++ tool compiling canLoader-console
-- +++ tool compiling canLoader
-- +++ tool compiling ethLoaderLib
-- +++ tool compiling ethLoader
-- SDL not found/selected, skipping joystickCtrl
-- Qt5 or OpenGL or GLUT not found/selected, skipping iCubGui
-- OpenCV not found/selected, skipping stereoCalib
-- Unmatched dependencies, skipping depth2kin
-- ODE or SDL not found/selected, skipping iCubSimulation and simFaceExpressions
-- OpenCV not found/selected, skipping camCalib
-- OpenCV not found/selected, skipping motionCUT
-- OpenCV not found/selected, skipping lumaChroma
-- OpenCV not found/selected, skipping templatePFTracker
-- IPOPT not found/selected, skipping iKinGazeCtrl
-- IPOPT not found/selected, skipping iKinCartesianSolver
-- Dependencies not met, skipping actionsRenderingEngine
-- Now exporting build tree
-- Installing manager.py
-- Now exporting for install
-- Installing cmake scripts
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/robot/icub-main/build-pc104
icub@pc104:/usr/local/src/robot/icub-main/build-pc104$ printenv YARP_DATA_DIRS
/usr/local/src/robot/yarp/build-pc104/share/yarp:/usr/local/src/robot/icub-main/build-pc104/share/iCub:/usr/local/src/robot/iCubContrib/share/ICUBcontrib:/usr/local/src/robot/icub-tests/suits
icub@pc104:/usr/local/src/robot/icub-main/build-pc104/yarp$ grep YARP_DATA_DIRS ~/.bashrc_iCub
export YARP_DATA_DIRS=${YARP_DIR}/share/yarp:${ICUB_DIR}/share/iCub:${ICUBcontrib_DIR}/share/ICUBcontrib:${ROBOT_CODE}/icub-tests/suits
[ 25%] Built target icubmod
Scanning dependencies of target canmotioncontrol
[ 25%] Building CXX object src/libraries/icubmod/canBusMotionControl/CMakeFiles/canmotioncontrol.dir/yarp_plugin_icubmod_canmotioncontrol.cpp.o
[ 25%] Building CXX object src/libraries/icubmod/canBusMotionControl/CMakeFiles/canmotioncontrol.dir/CanBusMotionControl.cpp.o
/usr/local/src/robot/icub-main/src/libraries/icubmod/canBusMotionControl/CanBusMotionControl.cpp: In member function ‘unsigned char yarp::dev::CanBusMotionControl::from_modevocab_to_modeint(int)’:
/usr/local/src/robot/icub-main/src/libraries/icubmod/canBusMotionControl/CanBusMotionControl.cpp:3967:17: warning: large integer implicitly truncated to unsigned type [-Woverflow]
return VOCAB_CM_UNKNOWN;
^~~~~~~~~~~~~~~~
/usr/local/src/robot/icub-main/src/libraries/icubmod/canBusMotionControl/CanBusMotionControl.cpp:3976:16: warning: large integer implicitly truncated to unsigned type [-Woverflow]
return VOCAB_CM_UNKNOWN;
^~~~~~~~~~~~~~~~
[ 26%] Building CXX object src/libraries/icubmod/canBusMotionControl/CMakeFiles/canmotioncontrol.dir/ThreadTable2.cpp.o
[ 26%] Building CXX object src/libraries/icubmod/canBusMotionControl/CMakeFiles/canmotioncontrol.dir/ThreadPool2.cpp.o
[ 26%] Linking CXX shared module ../../../../lib/iCub/canmotioncontrol.so
|
Sorry, I meant with all usual flags, but When you compiled, the header was still modified or reset as the original? In it was modified, can you try to reset it and see if it compiles now? (if not we will have to check more, but it is a different matter from the robotinterface not starting, see later) The plugin (when compiled) is correctly found by yarp. The yarprobotinterface is not starting because the log states that config files are old and no more compatible with latest version of
Also ControlBoardWrapper2 config files should be updated
This latter is already updated upstream in the For the |
Thanks for the updated ControlBoardWrapper2 files ! cfw2can still cannot be compiled with the original #include "libcfw002.h". |
icub@icubsrv:/usr/local/src/robot$ cd robots-configuration Am I missing something there ? |
Right now it is too early to determine if a firmware update is required.
|
Ok. Update in progress. |
I updated configuration files by adding missing parameters. I was not able to test them on a real robot, so please test them carefully, keeping the red button pressed during the first launch and checking with the yarpmotorgui if the encoder values of the large joints are ok (it may require a couple of minutes for the timeouts to expire and complete the calibration). AxisName parameter in file icub_face.xml shoud be modified by you, replacing joint0,joint1 etc with the following strings: jaw, eyelids, lip-right, lip-left, lip-up, lip-bottom. The order in the file should be the same one displayed by yarpmotorgui (since I don't have a talking head robot here, I'm not sure about the order of the joints). This parameter, however, does not have any effect on the control. An error message about motorPwmLimit is normal. If yarprobotinterface does not startup because some other parameter is still missing, please tell me. |
Thanks @barbalberto and @randaz81 for the update ! That's probably why we still can't start yarprobotinterface, though the previous errors It seems to complain about cfw2can : Full file is attached : log_test_yarprobotinterface_20171215.txt Just in case it helps :
I confirm I still have to include |
I'm trying to fix the issue working on a new icub-live release. |
A new release of iCub LIVE is now available. We are still testing it, but it fixes the cfw002 module loading and cfw002 API library linking. |
Indeed, the new version fixes the link/execution problem with the cfw2 problem. Thanks Matteo ! I now have the expected messages about our outofdate firmware : |
@barbalberto, I think I'll need help to update the firmware... I tried the GUI way, and the automated way :
icub@pc104:/usr/local/src/robot$ icub-firmware-build/updateRobot.sh Welcome to the automatic firmware updater toolno filename specified, using default configuration... found firmware description file: Remember: Never update the firmware if iCubInterface/robotInterface is running! |
updateRobot.sh worked sucessfully, when launched directly from icub-firmware-build :-) May I suggest to modify :
|
So, I tried to launch yarprobotinterface with red button pressed, to validate the robotconfig files that @randaz81 updated. Everything seems fine up to : This might be the cause that later it starts an automatic shutdown : Any idea of the cause for this problem ? If that helps, I see 3 files in /usr/local/src/robot/iCubContrib/share/ICUBcontrib/robots/iCubGrenoble01/calibrators : $grep TalkingHead / an extra Head before Face maybe ? |
Hi @EliseiFrederic, there is a mismatch in the wrapper config file. in https://github.com/robotology/robots-configuration/blob/master/iCubGrenoble01/wrappers/motorControl/face_mc_wrapper.xml @line 19 the keywork "Calibrator" must refer to the tag So, to cut a long story shirt, in hte wrapper files, change the "Calibrators" param to |
Thanks for this solution ! I can launch yarpmotorgui, with red button pressed, in the hope to validate than the measured/corrected joints are in the correct range within the new robotconfig xml files. $ yarpmotorgui |
Hi @EliseiFrederic , |
You're probably perfectly right about the head orientation (it is left opened during the USB key upgrade process), but my question was more generic than just for the head as I was trying to follow advices from @randaz81 about the red button depressed for our first motor-try after the file updates : Should we only validate that the 0 positions for torso, shoulders etc are ok, and not the min/max ranges ? I remember that during the previous big upgrade of the robot with the older yarpmotorgui/file format I was asked to move the joints manually to check the ranges for the first run with the red button pressed. Maybe it's a new behaviour of the release that the limits are not read if the red button is pressed ? [INFO]torso iencs->getEncoders() ok! I understand that the calibration sort of alters the range and translate some hardware-read values of the joints into the software-displayed/used range. Maybe the newer/recent yarp/icub split does not mix these anymore and that's the reason why I get these errors and don't have them displayed, but I would prefer to have an explicit confirmation before taking the risk to run the robot without the red button ;-) Thanks in advance ! |
Hi @EliseiFrederic , |
Thanks for your help, iCubGrenoble01 now compiles and run ! We still have red errors in yarprobotinterface and yarpmotorgui though :
though the sliders intervals in the GUI are displayed now and seem correct... |
It takes more than 11 seconds to start yarpmotorgui, because of all the The pending messages in yarprobotinterface are : Anything we can do about this ? |
Some error messages about something missing is perfectly normal. The motorGui, at startup, asks a lot of stuff to the robot, some of them are implemented, some other aren't, depending on the robot. That one in particular is asking the maximum allowed current the motor can handle. That's a side information the gui can safely ignore, it is just a piece of information to be displayed. The error about something missing piece of information does not have any impact on the start-up timing. |
Thanks for your answer. |
Up to 5 or 6 second is normal, 11 is quite high, but it may be related to network issues or CPU workload. |
Maybe I was not clear :
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
Hi @EliseiFrederic . I do not know if you are still able to reproduce this issue, but indeed has @barbalberto mentions that could be related to the computer on which yarpmotorgui is launched. However, I strongly suggest to open a new issue if that is still a problem, thanks! As the main problem reported (compilation failure) has been solved, I think we can close this issue. |
Description of the failure
icub-main compilation fails when building cfw2can, with libcfw002.h not found
Detailed conditions and logs of the failure
On a fresh install (new icubsrv laptop), with the last Debian image for pc104,
http://www.icub.org/download/pc104-images/icub-live_7.9-17.12.04-rt-amd64.zip
and the latest sources from git.
Firmware was not updated (should it be ?), all other things were built/configured freshly.
Scanning dependencies of target cfw2can
[ 23%] Building CXX object src/libraries/icubmod/cfw2Can/CMakeFiles/cfw2can.dir/yarp_plugin_icubmod_cfw2can.cpp.o
In file included from /usr/local/src/robot/icub-main/build-pc104/src/libraries/icubmod/cfw2Can/yarp_plugin_icubmod_cfw2can.cpp:10:0:
/usr/local/src/robot/icub-main/src/libraries/icubmod/cfw2Can/Cfw2Can.h:38:23: fatal error: libcfw002.h: No such file or directory
#include "libcfw002.h"
The text was updated successfully, but these errors were encountered: