robotology / icub-firmware-shared Goto Github PK
View Code? Open in Web Editor NEWProtocols and Other Stuff Used both by iCub Firmware and iCub Software
License: GNU Lesser General Public License v2.1
Protocols and Other Stuff Used both by iCub Firmware and iCub Software
License: GNU Lesser General Public License v2.1
The file embOBJporting.h
contains some defines of float32_t
. This causes issues with this PR in YARP, where we have a typedef for yarp::conf::float32_t
, and as a consequence icub-main compilation fails
While following the installation for FT Shoes related software on a windows laptop, the following error occurs while building icub-firmware-shared :
fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration
A quick solution is documented in the installation notes. It is to comment out the following line in eth/embobj/core/core/embOBJporting.h
header file.
// #define snprintf sprintf_s
A permanent solution is presented here suggesting to use the following lines instead:
#if _MSC_VER < 1900
#define snprintf _snprintf
#endif
On iCubLisboa01's pc104 we are running "Debian GNU/Linux 6.0.7 (squeeze) + iCub-oc 3.2" and CMake 2.8.7.
Today we tried to update yarp, icub-main and the recently required icub-firmware-shared, following the pc104 manual page at http://wiki.icub.org/wiki/Compilation_on_the_pc104
We generated icub-firmware-shared correctly (with its environment variables set). Then, when trying to build icub-main we got this:
CMake Error at /usr/local/src/robot/icub-firmware-shared/build/icub_firmware_shared-config-version.cmake:23 (math):
math cannot parse the expression: " * 8": syntax error, unexpected
exp_TIMES, expecting exp_OPENPARENT or exp_NUMBER (2)
Call Stack (most recent call first):
conf/iCubFindDependencies.cmake:30 (find_package)
CMakeLists.txt:74 (include)
ERROR canBusMotionControl: cannot find icub_firmware_shared library, turn off device
embObj library can now be found in the icub-firmware-shared package that
can be downloaded from here:
.
https://github.com/robotology/icub-firmware-shared
.
We managed to fix the problem by editing icub-firmware-shared/build/icub_firmware_shared-config-version.cmake
and changing the offending line from
math(EXPR installedBits " * 8")
to
math(EXPR installedBits "${CMAKE_SIZEOF_VOID_P} * 8")
Hi @marcoaccame , I was setting the device/remapper/wrapper configuration files for using the new Multiple Analog Sensors interfaces, and for that I went through the recent changes in icub-firmware-shared
as well as the new template iCubTemplates/iCubTemplateV4_0/hardware/inertials/body_part-ebX-IMU.xml
. I would have a few questions on the configuration parameters :
eOas_inertial3_type_t
to be deprecated or will it be eOas_sensor_t
instead?eobrd_mtb4
for the future MTB boards integrating IMUs instead of accelerometers, or do we use it with the current hardware, instead of the eobrd_mtb
type?Missing:
CMAKE_INSTALL_PREFIX
Hi @marcoaccame
Just spotted this build error during icub-main
CI (see https://github.com/robotology/icub-main/actions/runs/1776034784):
[ 10%] Building CXX object embot/CMakeFiles/embot.dir/prot/eth/embot_prot_eth_diagnostic_Node.cpp.o
2022-02-01T02:35:42.3193101Z In file included from /home/runner/work/icub-main/icub-main/icub-firmware-shared/embot/prot/eth/embot_prot_eth_diagnostic_Node.h:17,
2022-02-01T02:35:42.3195229Z from /home/runner/work/icub-main/icub-main/icub-firmware-shared/embot/prot/eth/embot_prot_eth_diagnostic_Node.cpp:13:
2022-02-01T02:35:42.3197451Z /home/runner/work/icub-main/icub-main/icub-firmware-shared/embot/core/embot_core.h: In member function ‘bool embot::prot::eth::diagnostic::Node::Impl::init(const embot::prot::eth::diagnostic::Node::Config&)’:
2022-02-01T02:35:42.3200548Z /home/runner/work/icub-main/icub-main/icub-firmware-shared/embot/prot/eth/embot_prot_eth_diagnostic_Node.cpp:153:9: in ‘constexpr’ expansion of ‘embot::core::Data(0, ((size_t)((uint16_t)embot::prot::eth::diagnostic::InfoBasic::sizeofobject)))’
2022-02-01T02:35:42.3201660Z /home/runner/work/icub-main/icub-main/icub-firmware-shared/embot/core/embot_core.h:130:59: error: conversion of ‘const void*’ null pointer to ‘void*’ is not a constant expression
2022-02-01T02:35:42.3202256Z 130 | constexpr Data(const void *p, size_t s) : pointer(const_cast<void*>(p)), capacity(s) {}
2022-02-01T02:35:42.3202623Z | ^~~~~~~~~~~~~~~~~~~~
2022-02-01T02:35:42.3203630Z /home/runner/work/icub-main/icub-main/icub-firmware-shared/embot/prot/eth/embot_prot_eth_diagnostic_Node.cpp:165:9: in ‘constexpr’ expansion of ‘embot::core::Data(0, ((size_t)((uint16_t)embot::prot::eth::diagnostic::Info::sizeofobject)))’
2022-02-01T02:35:42.3204626Z /home/runner/work/icub-main/icub-main/icub-firmware-shared/embot/core/embot_core.h:130:59: error: conversion of ‘const void*’ null pointer to ‘void*’ is not a constant expression
2022-02-01T02:35:42.3249625Z /home/runner/work/icub-main/icub-main/icub-firmware-shared/embot/prot/eth/embot_prot_eth_diagnostic_Node.cpp:176:9: in ‘constexpr’ expansion of ‘embot::core::Data(0, ((size_t)((uint16_t)embot::prot::eth::diagnostic::InfoLarge::sizeofobject)))’
2022-02-01T02:35:42.3250724Z /home/runner/work/icub-main/icub-main/icub-firmware-shared/embot/core/embot_core.h:130:59: error: conversion of ‘const void*’ null pointer to ‘void*’ is not a constant expression
2022-02-01T02:35:42.3594102Z make[2]: *** [embot/CMakeFiles/embot.dir/build.make:160: embot/CMakeFiles/embot.dir/prot/eth/embot_prot_eth_diagnostic_Node.cpp.o] Error 1
2022-02-01T02:35:42.3597373Z make[1]: *** [CMakeFiles/Makefile2:161: embot/CMakeFiles/embot.dir/all] Error 2
2022-02-01T02:35:42.3597789Z make: *** [Makefile:136: all] Error 2
2022-02-01T02:35:42.3622006Z ##[error]Process completed with exit code 2.
Could you please have a look at it?
Hi,
as iCub software is moving to v1.1.16, please update accordingly the tags of icub-firmware-shared, so we know which version is safely compiling with v1.1.16.
See also: robotology/community#20
A lot of users got confused on the purpose of this repo, see for example : robotology/community#72 ( I also see people confused by this when doing remote assistance to European partners).
The purpose of this issue is to keep track of the icub-firmware-shared parts touched by the improvements in the low level motor control. The new EMS board firmware will be able to exploit features already present in the 2FOC motor board. In particular, we'll be able to control the iCub motors by velocity and current closed control loops in addition to the pwm open loop now available.
https://github.com/robotology/icub-firmware-shared/tree/fmi
PR: #29
While compiling another project, I noticed a lot of warnings of this form on MSVC:
2022-06-21T21:12:53.8896867Z D:\a\icub-firmware-shared\icub-firmware-shared\eth\embobj\core\core\EoCommon.h(76,1): warning C4103: alignment changed after including header, may be due to missing #pragma pack(pop) [D:\a\icub-firmware-shared\icub-firmware-shared\build\eth\embobj.vcxproj]
Indeed, this seems to be related to https://github.com/robotology/icub-firmware-shared/blob/v1.25.1/eth/embobj/core/core/embOBJporting.h#L145 . Perhaps the absence of pack(pop)
is intendend, but anyhow I preferred to report this warning just in case, as this may lead to tricky ABI-related bugs.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.