UAVCAN error while building px4 firmware
-
https://forum.modalai.com/post/23375
@Alex-Kushleyev @Eric-Katzfey
Hello guys, I am facing a new error where when I try to use Optical flow by enabling the UAVCAN in the default.px4board, since it was commented out. Whenever try to enable it and build it is giving error. I want to use CAN port on the FC v2 for Optical Flow. It would be of great help , if you could help with this or guide me.FAILED: src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_servers.cpp.obj /usr/bin/ccache /opt/gcc-arm-none-eabi-9-2020-q2-update/bin/arm-none-eabi-g++ -DCONFIG_ARCH_BOARD_MODALAI_FC_V2 -DMODULE_NAME=\"uavcan\" -DPX4_BOARD_LABEL=\"default\" -DPX4_BOARD_NAME=\"MODALAI_FC_V2\" -DPX4_MAIN=uavcan_app_main -DUAVCAN_CPP_VERSION=UAVCAN_CPP03 -DUAVCAN_DRIVER=uavcan_stm32h7 -DUAVCAN_IMPLEMENT_PLACEMENT_NEW=1 -DUAVCAN_MEM_POOL_BLOCK_SIZE=48 -DUAVCAN_NO_ASSERTIONS -DUAVCAN_PLATFORM=generic -DUAVCAN_STM32H7_NUM_IFACES=2 -DUAVCAN_STM32H7_NUTTX=1 -DUAVCAN_STM32H7_TIMER_NUMBER=2 -D_SYS_CDEFS_H_ -D_SYS_REENT_H_ -D__CUSTOM_FILE_IO__ -D__PX4_NUTTX -D__STDC_FORMAT_MACROS -I/home/t/p/px4-firmware/boards/modalai/fc-v2/src -I/home/t/p/px4-firmware/platforms/nuttx/src/px4/common/include -I/home/t/p/px4-firmware/build/modalai_fc-v2_default -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/src/lib -I/home/t/p/px4-firmware/platforms/nuttx/src/px4/stm/stm32h7/include -I/home/t/p/px4-firmware/platforms/common -I/home/t/p/px4-firmware/platforms/common/include -I/home/t/p/px4-firmware/src -I/home/t/p/px4-firmware/src/include -I/home/t/p/px4-firmware/src/lib -I/home/t/p/px4-firmware/src/lib/matrix -I/home/t/p/px4-firmware/src/modules -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/arch/arm/src/armv7-m -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/arch/arm/src/chip -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/arch/arm/src/common -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/apps/include -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/uORB/topics -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/external/Install/include -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/src/drivers/uavcan/include/dsdlc_generated -I/home/t/p/px4-firmware/src/drivers/uavcan/libuavcan/libuavcan/include -I/home/t/p/px4-firmware/src/drivers/uavcan/libuavcan/libuavcan/include/dsdlc_generated -I/home/t/p/px4-firmware/src/drivers/uavcan/libuavcan/libuavcan_drivers/posix/include -I/home/t/p/px4-firmware/src/drivers/uavcan/uavcan_drivers/stm32h7/driver/include -isystem /home/t/p/px4-firmware/platforms/nuttx/NuttX/include/cxx -isystem /home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/include/cxx -isystem /home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/include -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -Os -DNDEBUG -std=gnu++14 -g -fdata-sections -ffunction-sections -fomit-frame-pointer -fmerge-all-constants -fno-signed-zeros -fno-trapping-math -freciprocal-math -fno-math-errno -fno-strict-aliasing -fvisibility=hidden -include visibility.h -Wall -Wextra -Werror -Warray-bounds -Wcast-align -Wdisabled-optimization -Wdouble-promotion -Wfatal-errors -Wfloat-equal -Wformat-security -Winit-self -Wlogical-op -Wpointer-arith -Wshadow -Wuninitialized -Wunknown-pragmas -Wunused-variable -Wno-missing-field-initializers -Wno-missing-include-dirs -Wno-unused-parameter -fdiagnostics-color=always -Wno-stringop-truncation -fno-builtin-printf -fno-strength-reduce -Wformat=1 -Wunused-but-set-variable -Wno-format-truncation -fcheck-new -Wreorder -Wno-overloaded-virtual -fno-rtti -fno-exceptions -fno-sized-deallocation -fno-threadsafe-statics -nostdinc++ -Wno-cast-align -Wno-deprecated-copy -Wno-address-of-packed-member -Wframe-larger-than=4096 -Wno-format-security -D__KERNEL__ -MD -MT src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_servers.cpp.obj -MF src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_servers.cpp.obj.d -o src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_servers.cpp.obj -c /home/t/p/px4-firmware/src/drivers/uavcan/uavcan_servers.cpp In file included from /home/t/p/px4-firmware/src/drivers/uavcan/uavcan_servers.cpp:52: /home/t/p/px4-firmware/src/drivers/uavcan/uavcan_main.hpp:79:10: fatal error: uORB/topics/uavcan_parameter_request.h: No such file or directory 79 | #include <uORB/topics/uavcan_parameter_request.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. [596/1151] Building CXX object src/dri...rivers__uavcan.dir/uavcan_main.cpp.obj FAILED: src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_main.cpp.obj /usr/bin/ccache /opt/gcc-arm-none-eabi-9-2020-q2-update/bin/arm-none-eabi-g++ -DCONFIG_ARCH_BOARD_MODALAI_FC_V2 -DMODULE_NAME=\"uavcan\" -DPX4_BOARD_LABEL=\"default\" -DPX4_BOARD_NAME=\"MODALAI_FC_V2\" -DPX4_MAIN=uavcan_app_main -DUAVCAN_CPP_VERSION=UAVCAN_CPP03 -DUAVCAN_DRIVER=uavcan_stm32h7 -DUAVCAN_IMPLEMENT_PLACEMENT_NEW=1 -DUAVCAN_MEM_POOL_BLOCK_SIZE=48 -DUAVCAN_NO_ASSERTIONS -DUAVCAN_PLATFORM=generic -DUAVCAN_STM32H7_NUM_IFACES=2 -DUAVCAN_STM32H7_NUTTX=1 -DUAVCAN_STM32H7_TIMER_NUMBER=2 -D_SYS_CDEFS_H_ -D_SYS_REENT_H_ -D__CUSTOM_FILE_IO__ -D__PX4_NUTTX -D__STDC_FORMAT_MACROS -I/home/t/p/px4-firmware/boards/modalai/fc-v2/src -I/home/t/p/px4-firmware/platforms/nuttx/src/px4/common/include -I/home/t/p/px4-firmware/build/modalai_fc-v2_default -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/src/lib -I/home/t/p/px4-firmware/platforms/nuttx/src/px4/stm/stm32h7/include -I/home/t/p/px4-firmware/platforms/common -I/home/t/p/px4-firmware/platforms/common/include -I/home/t/p/px4-firmware/src -I/home/t/p/px4-firmware/src/include -I/home/t/p/px4-firmware/src/lib -I/home/t/p/px4-firmware/src/lib/matrix -I/home/t/p/px4-firmware/src/modules -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/arch/arm/src/armv7-m -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/arch/arm/src/chip -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/arch/arm/src/common -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/apps/include -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/uORB/topics -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/external/Install/include -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/src/drivers/uavcan/include/dsdlc_generated -I/home/t/p/px4-firmware/src/drivers/uavcan/libuavcan/libuavcan/include -I/home/t/p/px4-firmware/src/drivers/uavcan/libuavcan/libuavcan/include/dsdlc_generated -I/home/t/p/px4-firmware/src/drivers/uavcan/libuavcan/libuavcan_drivers/posix/include -I/home/t/p/px4-firmware/src/drivers/uavcan/uavcan_drivers/stm32h7/driver/include -isystem /home/t/p/px4-firmware/platforms/nuttx/NuttX/include/cxx -isystem /home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/include/cxx -isystem /home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/include -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -Os -DNDEBUG -std=gnu++14 -g -fdata-sections -ffunction-sections -fomit-frame-pointer -fmerge-all-constants -fno-signed-zeros -fno-trapping-math -freciprocal-math -fno-math-errno -fno-strict-aliasing -fvisibility=hidden -include visibility.h -Wall -Wextra -Werror -Warray-bounds -Wcast-align -Wdisabled-optimization -Wdouble-promotion -Wfatal-errors -Wfloat-equal -Wformat-security -Winit-self -Wlogical-op -Wpointer-arith -Wshadow -Wuninitialized -Wunknown-pragmas -Wunused-variable -Wno-missing-field-initializers -Wno-missing-include-dirs -Wno-unused-parameter -fdiagnostics-color=always -Wno-stringop-truncation -fno-builtin-printf -fno-strength-reduce -Wformat=1 -Wunused-but-set-variable -Wno-format-truncation -fcheck-new -Wreorder -Wno-overloaded-virtual -fno-rtti -fno-exceptions -fno-sized-deallocation -fno-threadsafe-statics -nostdinc++ -Wno-cast-align -Wno-deprecated-copy -Wno-address-of-packed-member -Wframe-larger-than=4096 -Wno-format-security -D__KERNEL__ -MD -MT src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_main.cpp.obj -MF src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_main.cpp.obj.d -o src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_main.cpp.obj -c /home/t/p/px4-firmware/src/drivers/uavcan/uavcan_main.cpp In file included from /home/t/p/px4-firmware/src/drivers/uavcan/uavcan_main.cpp:63: /home/t/p/px4-firmware/src/drivers/uavcan/uavcan_main.hpp:79:10: fatal error: uORB/topics/uavcan_parameter_request.h: No such file or directory 79 | #include <uORB/topics/uavcan_parameter_request.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. [603/1151] Building CXX object src/dri..._uavcan.dir/sensors/ice_status.cpp.obj ninja: build stopped: subcommand failed. make: *** [Makefile:227: modalai_fc-v2_default] Error 1
-
@Jetson-Nano The issue is that those messages were commented out in
msg/CMakeLists.txt
. The reason for that is that there is a limit in PX4 of 256 different types and there are too many. CAN isn't supported on VOXL 2 so those messages were commented out. If you want to use our fork on FCv2 you can uncomment those messages and comment out some of the VOXL 2 specific messages that aren't used on FCv2. For example:ParameterClientResetResponse.msg ParameterClientSetValueRequest.msg ParameterClientSetValueResponse.msg ParameterServerSetUsedResponse.msg ParameterServerSetUsedRequest.msg ParameterServerSetValueRequest.msg ParameterServerSetValueResponse.msg
-
@Eric-Katzfey Thank you for reverting back, I was able to build the firmware now, with the changes you suggested.
There were some errors showing with respect to size, I had to disable fixed wing based parameters indefault.px4board
. Just for reference for anyone trying to replicate. I had to comment out certain parameters in cpp files in modules, It may change according to the parameter you want to disable and enable.I wanted to know what are these parameters you suggested to comment out. what are they used for, will it create any performance issues.
-
@Jetson-Nano Those are topic messages used to communicate between the applications processor and the DSP in the VOXL2 split architecture. They are unused on non-VOXL2 platforms.