open-dynamic-robot-initiative / master-board

Hardware and Firmware of the Solo Quadruped Master Board
BSD 2-Clause "Simplified" License
119 stars 41 forks source link

[SDK] Raspberry Pi #106

Closed emrecemal closed 2 years ago

emrecemal commented 2 years ago

Hello,

I am trying to run the example motor control code on Raspberry Pi, but I couldn't cmake on it. Do you know how to do that?

thomasfla commented 2 years ago

Hello,

Can you tell us what cmake is reporting? Maybe @nim65s can help with the compiling for Raspberry Pi.

emrecemal commented 2 years ago

Yes, initially I realised that the boost library is missing. I installed it using the following codes:

sudo apt-get install libboost1.74-* doxygen

Then I did the following, and here is the error I get:

pi@bunny:~/master-board/sdk/master_board_sdk/build $ cmake -DBUILD_PYTHON_INTERFACE=ON -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=$(which python3) .. -- Package version (ROS package.xml): 1.0.0 -- The CXX compiler identification is GNU 10.2.1 -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") -- Performing Test R-pedantic -- Performing Test R-pedantic - Success -- Performing Test R-Wno-long-long -- Performing Test R-Wno-long-long - Success -- Performing Test R-Wall -- Performing Test R-Wall - Success -- Performing Test R-Wextra -- Performing Test R-Wextra - Success -- Performing Test R-Wcast-align -- Performing Test R-Wcast-align - Success -- Performing Test R-Wcast-qual -- Performing Test R-Wcast-qual - Success -- Performing Test R-Wformat -- Performing Test R-Wformat - Success -- Performing Test R-Wwrite-strings -- Performing Test R-Wwrite-strings - Success -- Performing Test R-Wconversion -- Performing Test R-Wconversion - Success -- Found Doxygen: /usr/bin/doxygen (found version "1.9.1") found components: doxygen dot -- currently used C++ standard: 201402 -- minimal C++ standard upgraded to 11 -- Found Python3: /usr/bin/python3 (found version "3.9.2") found components: Interpreter Development Development.Module Development.Embed -- PythonLibraryDirs: /usr/lib/arm-linux-gnueabihf -- PythonLibVersionString: 3.9.2 -- Python site lib: lib/python3.9/site-packages CMake Warning at /usr/share/cmake-3.18/Modules/FindBoost.cmake:1187 (message): New Boost version may have incorrect or missing dependencies and imported targets Call Stack (most recent call first): /usr/share/cmake-3.18/Modules/FindBoost.cmake:1311 (_Boost_COMPONENT_DEPENDENCIES) /usr/share/cmake-3.18/Modules/FindBoost.cmake:1919 (_Boost_MISSING_DEPENDENCIES) cmake/boost.cmake:27 (FIND_PACKAGE) cmake/boost.cmake:106 (SEARCH_FOR_BOOST_COMPONENT) CMakeLists.txt:43 (SEARCH_FOR_BOOST_PYTHON)

CMake Warning at /usr/share/cmake-3.18/Modules/FindBoost.cmake:1187 (message): New Boost version may have incorrect or missing dependencies and imported targets Call Stack (most recent call first): /usr/share/cmake-3.18/Modules/FindBoost.cmake:1311 (_Boost_COMPONENT_DEPENDENCIES) /usr/share/cmake-3.18/Modules/FindBoost.cmake:1919 (_Boost_MISSING_DEPENDENCIES) cmake/boost.cmake:27 (FIND_PACKAGE) cmake/boost.cmake:106 (SEARCH_FOR_BOOST_COMPONENT) CMakeLists.txt:43 (SEARCH_FOR_BOOST_PYTHON)

CMake Warning at /usr/share/cmake-3.18/Modules/FindBoost.cmake:1187 (message): New Boost version may have incorrect or missing dependencies and imported targets Call Stack (most recent call first): /usr/share/cmake-3.18/Modules/FindBoost.cmake:1311 (_Boost_COMPONENT_DEPENDENCIES) /usr/share/cmake-3.18/Modules/FindBoost.cmake:1919 (_Boost_MISSING_DEPENDENCIES) cmake/boost.cmake:118 (FIND_PACKAGE) CMakeLists.txt:43 (SEARCH_FOR_BOOST_PYTHON)

-- Found Boost: /usr/include (found version "1.74.0") found components: python39 -- Boost_PYTHON_LIBRARY: /usr/lib/arm-linux-gnueabihf/libboost_python39.so -- Doxygen rendering: using LaTeX backend -- Configuring done -- Generating done -- Build files have been written to: /home/pi/master-board/sdk/master_board_sdk/build pi@bunny:~/master-board/sdk/master_board_sdk/build $ make /usr/bin/cmake -S/home/pi/master-board/sdk/master_board_sdk -B/home/pi/master-board/sdk/master_board_sdk/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /home/pi/master-board/sdk/master_board_sdk/build/CMakeFiles /home/pi/master-board/sdk/master_board_sdk/build//CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[1]: Entering directory '/home/pi/master-board/sdk/master_board_sdk/build' make -f CMakeFiles/master_board_sdk.dir/build.make CMakeFiles/master_board_sdk.dir/depend make[2]: Entering directory '/home/pi/master-board/sdk/master_board_sdk/build' cd /home/pi/master-board/sdk/master_board_sdk/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/pi/master-board/sdk/master_board_sdk /home/pi/master-board/sdk/master_board_sdk /home/pi/master-board/sdk/master_board_sdk/build /home/pi/master-board/sdk/master_board_sdk/build /home/pi/master-board/sdk/master_board_sdk/build/CMakeFiles/master_board_sdk.dir/DependInfo.cmake --color= Scanning dependencies of target master_board_sdk make[2]: Leaving directory '/home/pi/master-board/sdk/master_board_sdk/build' make -f CMakeFiles/master_board_sdk.dir/build.make CMakeFiles/master_board_sdk.dir/build make[2]: Entering directory '/home/pi/master-board/sdk/master_board_sdk/build' [ 7%] Building CXX object CMakeFiles/master_board_sdk.dir/src/ESPNOW_manager.cpp.o /usr/bin/c++ -Dmaster_board_sdk_EXPORTS -I/home/pi/master-board/sdk/master_board_sdk/build -I/home/pi/master-board/sdk/master_board_sdk/build/include -I/home/pi/master-board/sdk/master_board_sdk/include -pedantic -Wno-long-long -Wall -Wextra -Wcast-align -Wcast-qual -Wformat -Wwrite-strings -Wconversion -O3 -DNDEBUG -fPIC -o CMakeFiles/master_board_sdk.dir/src/ESPNOW_manager.cpp.o -c /home/pi/master-board/sdk/master_board_sdk/src/ESPNOW_manager.cpp In file included from /home/pi/master-board/sdk/master_board_sdk/include/master_board_sdk/ESPNOW_manager.h:6, from /home/pi/master-board/sdk/master_board_sdk/src/ESPNOW_manager.cpp:7: /home/pi/master-board/sdk/master_board_sdk/include/master_board_sdk/Link_manager.h:53:14: error: field ‘interface’ has incomplete type ‘std::string’ {aka ‘std::cxx11::basic_string’} 53 | std::string interface; | ^~~~~ In file included from /usr/include/c++/10/iosfwd:39, from /usr/include/c++/10/memory:74, from /usr/include/c++/10/thread:44, from /home/pi/master-board/sdk/master_board_sdk/include/master_board_sdk/Link_manager.h:4, from /home/pi/master-board/sdk/master_board_sdk/include/master_board_sdk/ESPNOW_manager.h:6, from /home/pi/master-board/sdk/master_board_sdk/src/ESPNOW_manager.cpp:7: /usr/include/c++/10/bits/stringfwd.h:74:11: note: declaration of ‘std::string’ {aka ‘class std::cxx11::basic_string’} 74 | class basic_string; | ^~~~ /home/pi/master-board/sdk/master_board_sdk/src/ESPNOW_manager.cpp: In member function ‘void ESPNOW_manager::unset_filter()’: /home/pi/master-board/sdk/master_board_sdk/src/ESPNOW_manager.cpp:16:3: error: ‘free’ was not declared in this scope 16 | free(this->bpf.filter); | ^~~~ /home/pi/master-board/sdk/master_board_sdk/src/ESPNOW_manager.cpp:8:1: note: ‘free’ is defined in header ‘’; did you forget to ‘#include ’? 7 | #include "master_board_sdk/ESPNOW_manager.h" +++ |+#include 8 | /home/pi/master-board/sdk/master_board_sdk/src/ESPNOW_manager.cpp: In member function ‘void ESPNOW_manager::set_filter(uint8_t, uint8_t)’: /home/pi/master-board/sdk/master_board_sdk/src/ESPNOW_manager.cpp:94:36: error: ‘malloc’ was not declared in this scope 94 | this->bpf.filter = (sock_filter) malloc(sizeof(sock_filter)this->bpf.len); | ^~ /home/pi/master-board/sdk/master_board_sdk/src/ESPNOW_manager.cpp:94:36: note: ‘malloc’ is defined in header ‘’; did you forget to ‘#include ’? make[2]: [CMakeFiles/master_board_sdk.dir/build.make:85: CMakeFiles/master_board_sdk.dir/src/ESPNOW_manager.cpp.o] Error 1 make[2]: Leaving directory '/home/pi/master-board/sdk/master_board_sdk/build' make[1]: [CMakeFiles/Makefile2:204: CMakeFiles/master_board_sdk.dir/all] Error 2 make[1]: Leaving directory '/home/pi/master-board/sdk/master_board_sdk/build' make: *** [Makefile:163: all] Error 2

nim65s commented 2 years ago

I @emrecemal,

I already fixed that, but I have a hard time merging my recent work on the main branch. I'll cherry-pick this fix and push it to master for you. Sorry for the inconvenience.