Robotics StackExchange | Archived questions

bebop_autonomy on Raspberry Pi 3 (Raspian-stretch), parrot_arsdk won't compile

Hello there!

I'm trying to run bebop_autonomy on a Raspberry Pi 3 with Raspbian Stretch (it has to be Raspbian, not Ubuntu) and ROS Kinetic. The problem is that the catkin version of the Parrot SDK provided by the autonomy lab won't compile:

In file included from /usr/include/endian.h:60:0,
                 from /usr/include/arm-linux-gnueabihf/sys/types.h:216,
                 from packages/libARSAL/Sources/ARSAL_Ftw.c:39:
/usr/include/arm-linux-gnueabihf/bits/byteswap.h: In function '__bswap_32':
/usr/include/arm-linux-gnueabihf/bits/byteswap.h:45:1: sorry, unimplemented: Thumb-1 hard-float VFP ABI
 {
 ^
packages/libARSAL/Sources/ARSAL_MD5.c: In function 'ARSAL_MD5_Manager_Init':
packages/libARSAL/Sources/ARSAL_MD5.c:50:1: sorry, unimplemented: Thumb-1 hard-float VFP ABI
 {
 ^
make[3]: *** [/home/pi/catkin_ws/build/parrot_arsdk/arsdk/src/ARSDKBuildUtils/out/arsdk-native/build/libARSAL/obj/Sources/ARSAL_MD5.c.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [/home/pi/catkin_ws/build/parrot_arsdk/arsdk/src/ARSDKBuildUtils/out/arsdk-native/build/libARSAL/obj/Sources/ARSAL_Ftw.c.o] Error 1
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
[E] Task 'build-sdk' failed (Command failed (returncode=2))
make[2]: *** [arsdk/src/ARSDKBuildUtils-stamp/ARSDKBuildUtils-build] Error 1
make[1]: *** [CMakeFiles/ARSDKBuildUtils.dir/all] Error 2
make: *** [all] Error 2

After some research, the only solution I came across with was this: building the Parrot ARSDK libraries from source, adding tag TARGET_DEFAULT_ARM_MODE := arm in file SDK_folder/products/arsdk/native/config/product.mk, and building with:

 ./build.sh -p arsdk-native -t build-sdk -j

The SDK now compiles well but bebopautonomy does not find the library path, nor the parrotarsdk package.

The file product.mk is in 10 .tgz files in the parrotarsdk package (arsdk3_stripped.tgz). Modifying those files (adding the tag `TARGETDEFAULTARMMODE := arm`) does not resolve the problem.

Does someone know how to modify the bebopautomony's CMakeList to set the from-source-compiled parrotarsdk library path? Or how to modify the parrot_arsdk ROS package to compile in the RPi3?

Thanks

Asked by pgarcia on 2019-10-19 08:34:03 UTC

Comments

Answers