PX4-Autopilot icon indicating copy to clipboard operation
PX4-Autopilot copied to clipboard

Update GZ Plugin OpticalFlow CMake configuration for library paths

Open farhangnaderi opened this issue 1 month ago • 11 comments

Solved Problem

Using .so library format is not what macOS is building (dylib). This approach is more general.

Solution

Changelog Entry

For release notes:

Generalized OpticalFlow GZ plugin library

Alternatives

Not that I know of.

Test coverage

CI is happy + locally tested on macOS and Ubuntu.

make px4_sitl gz_x500
-- PX4_GIT_TAG: v1.17.0-alpha1-125-gcd22b281d2
CMake Warning (dev) at CMakeLists.txt:176 (find_package):
  Policy CMP0148 is not set: The FindPythonInterp and FindPythonLibs modules
  are removed.  Run "cmake --help-policy CMP0148" for policy details.  Use
  the cmake_policy command to set the policy and suppress this warning.

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found PythonInterp: /home/farhang/.pyenv/shims/python3 (found suitable version "3.12.3", minimum required is "3") 
-- PX4 config file: /home/farhang/PX4-Autopilot/boards/px4/sitl/default.px4board
-- PLATFORM posix
-- ROMFSROOT px4fmu_common
-- TESTING y
-- ETHERNET y
-- ROOT_PATH .
-- PARAM_FILE /fs/mtd_params
-- PX4 config: px4_sitl_default
-- PX4 platform: posix
-- PX4 lockstep: enabled
-- The CXX compiler identification is GNU 13.3.0
-- The C compiler identification is GNU 13.3.0
-- The ASM compiler identification is GNU
-- Found assembler: /usr/lib/ccache/cc
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/lib/ccache/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/lib/ccache/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- cmake build type: RelWithDebInfo
-- ccache enabled via symlink (/usr/lib/ccache/c++ -> /usr/bin/ccache)
-- Looking for gz-transport13 -- found version 13.4.1
-- Searching for dependencies of gz-transport13
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so (found version "3.21.12") 
-- Config-file not installed for ZeroMQ -- checking for pkg-config
-- Checking for module 'libzmq >= 4'
--   Found libzmq, version 4.3.5
-- Found ZeroMQ: TRUE (Required is at least version "4") 
-- Checking for module 'uuid'
--   Found uuid, version 2.39.3
-- Found UUID: TRUE  
-- Looking for gz-utils2 -- found version 2.2.1
-- Searching for dependencies of gz-utils2
-- Searching for <gz-utils2> component [cli]
-- Looking for gz-utils2-cli -- found version 2.2.1
-- Searching for dependencies of gz-utils2-cli
-- Looking for gz-msgs10 -- found version 10.3.2
-- Searching for dependencies of gz-msgs10
-- Looking for gz-utils2 -- found version 2.2.1
-- Looking for gz-math7 -- found version 7.5.2
-- Searching for dependencies of gz-math7
-- Looking for gz-utils2 -- found version 2.2.1
-- Checking for module 'tinyxml2'
--   Found tinyxml2, version 10.0.0
-- Found Python3: /home/farhang/.pyenv/shims/python3 (found version "3.12.3") found components: Interpreter 
-- Looking for gz-transport13 -- found version 13.4.1
-- Searching for dependencies of gz-transport13
-- Config-file not installed for ZeroMQ -- checking for pkg-config
-- Checking for module 'libzmq >= 4'
--   Found libzmq, version 4.3.5
-- Checking for module 'uuid'
--   Found uuid, version 2.39.3
-- Looking for gz-utils2 -- found version 2.2.1
-- Searching for dependencies of gz-utils2
-- Searching for <gz-utils2> component [cli]
-- Looking for gz-utils2-cli -- found version 2.2.1
-- Searching for dependencies of gz-utils2-cli
-- Looking for gz-msgs10 -- found version 10.3.2
-- Searching for dependencies of gz-msgs10
-- Looking for gz-utils2 -- found version 2.2.1
-- Looking for gz-math7 -- found version 7.5.2
-- Searching for dependencies of gz-math7
-- Looking for gz-utils2 -- found version 2.2.1
-- Checking for module 'tinyxml2'
--   Found tinyxml2, version 10.0.0
-- Looking for gz-sim8 -- found version 8.9.0
-- Searching for dependencies of gz-sim8
-- Looking for sdformat14 -- found version 14.7.0
-- Searching for dependencies of sdformat14
-- Looking for gz-math7 -- found version 7.5.2
-- Looking for gz-utils2 -- found version 2.2.1
-- Looking for gz-plugin2 -- found version 2.0.4
-- Searching for dependencies of gz-plugin2
-- Looking for gz-utils2 -- found version 2.2.1
-- Searching for <gz-plugin2> component [loader]
-- Looking for gz-plugin2-loader -- found version 2.0.4
-- Searching for dependencies of gz-plugin2-loader
-- Searching for <gz-plugin2> component [register]
-- Looking for gz-plugin2-register -- found version 2.0.4
-- Searching for dependencies of gz-plugin2-register
-- Looking for gz-transport13 -- found version 13.4.1
-- Searching for dependencies of gz-transport13
-- Config-file not installed for ZeroMQ -- checking for pkg-config
-- Checking for module 'libzmq >= 4'
--   Found libzmq, version 4.3.5
-- Looking for gz-utils2 -- found version 2.2.1
-- Looking for gz-msgs10 -- found version 10.3.2
-- Searching for <gz-transport13> component [log]
-- Looking for gz-transport13-log -- found version 13.4.1
-- Searching for dependencies of gz-transport13-log
-- Searching for <gz-transport13> component [parameters]
-- Looking for gz-transport13-parameters -- found version 13.4.1
-- Searching for dependencies of gz-transport13-parameters
-- Looking for gz-msgs10 -- found version 10.3.2
-- Looking for gz-common5 -- found version 5.7.1
-- Searching for dependencies of gz-common5
-- Looking for gz-utils2 -- found version 2.2.1
-- Looking for dlfcn.h - found
-- Looking for libdl - found
-- Found DL: TRUE  
-- Searching for <gz-common5> component [av]
-- Looking for gz-common5-av -- found version 5.7.1
-- Searching for dependencies of gz-common5-av
-- Checking for module 'libswscale'
--   Found libswscale, version 7.5.100
-- Found SWSCALE: TRUE  
-- Checking for module 'libavdevice >= 56.4.100'
--   Found libavdevice, version 60.3.100
-- Found AVDEVICE: TRUE (Required is at least version "56.4.100") 
-- Checking for module 'libavformat'
--   Found libavformat, version 60.16.100
-- Found AVFORMAT: TRUE  
-- Checking for module 'libavcodec'
--   Found libavcodec, version 60.31.102
-- Found AVCODEC: TRUE  
-- Checking for module 'libavutil'
--   Found libavutil, version 58.29.100
-- Found AVUTIL: TRUE  
-- Searching for <gz-common5> component [events]
-- Looking for gz-common5-events -- found version 5.7.1
-- Searching for dependencies of gz-common5-events
-- Looking for gz-math7 -- found version 7.5.2
-- Searching for <gz-common5> component [graphics]
-- Looking for gz-common5-graphics -- found version 5.7.1
-- Searching for dependencies of gz-common5-graphics
-- Looking for gz-math7 -- found version 7.5.2
-- Found GzAssimp: TRUE (found version "5.3.0") 
-- Searching for <gz-common5> component [io]
-- Looking for gz-common5-io -- found version 5.7.1
-- Searching for dependencies of gz-common5-io
-- Searching for <gz-common5> component [profiler]
-- Looking for gz-common5-profiler -- found version 5.7.1
-- Searching for dependencies of gz-common5-profiler
-- Looking for gz-fuel_tools9 -- found version 9.1.1
-- Searching for dependencies of gz-fuel_tools9
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so (found version "8.5.0")  
-- Checking for module 'jsoncpp'
--   Found jsoncpp, version 1.9.5
-- Found JSONCPP: TRUE  
-- Checking for module 'yaml-0.1'
--   Found yaml-0.1, version 0.2.5
-- Found YAML: TRUE  
-- Checking for module 'libzip'
--   Found libzip, version 1.7.3
-- Found ZIP: TRUE  
-- Looking for gz-utils2 -- found version 2.2.1
-- Looking for gz-common5 -- found version 5.7.1
-- Searching for dependencies of gz-common5
-- Looking for gz-utils2 -- found version 2.2.1
-- Looking for dlfcn.h - found
-- Looking for libdl - found
-- Searching for <gz-common5> component [testing]
-- Looking for gz-common5-testing -- found version 5.7.1
-- Searching for dependencies of gz-common5-testing
-- Looking for gz-math7 -- found version 7.5.2
-- Looking for gz-msgs10 -- found version 10.3.2
-- Looking for gz-gui8 -- found version 8.4.0
-- Searching for dependencies of gz-gui8
-- Looking for gz-utils2 -- found version 2.2.1
-- Looking for gz-math7 -- found version 7.5.2
-- Looking for gz-common5 -- found version 5.7.1
-- Looking for gz-plugin2 -- found version 2.0.4
-- Looking for gz-transport13 -- found version 13.4.1
-- Looking for gz-rendering8 -- found version 8.2.2
-- Searching for dependencies of gz-rendering8
-- Looking for gz-math7 -- found version 7.5.2
-- Searching for dependencies of gz-math7
-- Looking for gz-utils2 -- found version 2.2.1
-- Searching for <gz-math7> component [eigen3]
-- Looking for gz-math7-eigen3 -- found version 7.5.2
-- Searching for dependencies of gz-math7-eigen3
-- Looking for gz-common5 -- found version 5.7.1
-- Searching for dependencies of gz-common5
-- Looking for gz-utils2 -- found version 2.2.1
-- Looking for dlfcn.h - found
-- Looking for libdl - found
-- Searching for <gz-common5> component [graphics]
-- Searching for <gz-common5> component [events]
-- Searching for <gz-common5> component [geospatial]
-- Looking for gz-common5-geospatial -- found version 5.7.1
-- Searching for dependencies of gz-common5-geospatial
-- Looking for gz-math7 -- found version 7.5.2
-- Looking for gz-common5 -- found version 5.7.1
-- Looking for gz-plugin2 -- found version 2.0.4
-- Searching for dependencies of gz-plugin2
-- Looking for gz-utils2 -- found version 2.2.1
-- Searching for <gz-plugin2> component [all]
-- Looking for all libraries of gz-plugin2 -- found version 2.0.4
-- Looking for gz-plugin2 -- found version 2.0.4
-- Looking for gz-utils2 -- found version 2.2.1
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so  found components: OpenGL 
-- Looking for gz-msgs10 -- found version 10.3.2
-- Looking for gz-physics7 -- found version 7.5.0
-- Searching for dependencies of gz-physics7
-- Looking for gz-common5 -- found version 5.7.1
-- Looking for gz-math7 -- found version 7.5.2
-- Looking for gz-plugin2 -- found version 2.0.4
-- Looking for gz-utils2 -- found version 2.2.1
-- Searching for <gz-physics7> component [heightmap]
-- Looking for gz-physics7-heightmap -- found version 7.5.0
-- Searching for dependencies of gz-physics7-heightmap
-- Looking for gz-common5 -- found version 5.7.1
-- Searching for <gz-physics7> component [mesh]
-- Looking for gz-physics7-mesh -- found version 7.5.0
-- Searching for dependencies of gz-physics7-mesh
-- Looking for gz-common5 -- found version 5.7.1
-- Searching for <gz-physics7> component [sdf]
-- Looking for gz-physics7-sdf -- found version 7.5.0
-- Searching for dependencies of gz-physics7-sdf
-- Looking for sdformat14 -- found version 14.7.0
-- Looking for gz-sensors8 -- found version 8.2.2
-- Searching for dependencies of gz-sensors8
-- Looking for gz-math7 -- found version 7.5.2
-- Looking for gz-common5 -- found version 5.7.1
-- Looking for gz-transport13 -- found version 13.4.1
-- Looking for gz-rendering8 -- found version 8.2.2
-- Looking for gz-msgs10 -- found version 10.3.2
-- Looking for sdformat14 -- found version 14.7.0
-- Searching for <gz-sensors8> component [air_pressure]
-- Looking for gz-sensors8-air_pressure -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-air_pressure
-- Searching for <gz-sensors8> component [air_speed]
-- Looking for gz-sensors8-air_speed -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-air_speed
-- Searching for <gz-sensors8> component [altimeter]
-- Looking for gz-sensors8-altimeter -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-altimeter
-- Searching for <gz-sensors8> component [imu]
-- Looking for gz-sensors8-imu -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-imu
-- Searching for <gz-sensors8> component [force_torque]
-- Looking for gz-sensors8-force_torque -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-force_torque
-- Searching for <gz-sensors8> component [logical_camera]
-- Looking for gz-sensors8-logical_camera -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-logical_camera
-- Searching for <gz-sensors8> component [magnetometer]
-- Looking for gz-sensors8-magnetometer -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-magnetometer
-- Searching for <gz-sensors8> component [navsat]
-- Looking for gz-sensors8-navsat -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-navsat
-- Searching for <gz-sensors8> component [dvl]
-- Looking for gz-sensors8-dvl -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-dvl
-- Looking for gz-sensors8 -- found version 8.2.2
-- Searching for dependencies of gz-sensors8
-- Looking for gz-math7 -- found version 7.5.2
-- Looking for gz-common5 -- found version 5.7.1
-- Looking for gz-transport13 -- found version 13.4.1
-- Looking for gz-rendering8 -- found version 8.2.2
-- Looking for gz-msgs10 -- found version 10.3.2
-- Looking for sdformat14 -- found version 14.7.0
-- Searching for <gz-sensors8> component [rendering]
-- Looking for gz-sensors8-rendering -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-rendering
-- Searching for <gz-sensors8> component [rendering]
-- Searching for <gz-sensors8> component [lidar]
-- Looking for gz-sensors8-lidar -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-lidar
-- Looking for gz-sensors8 -- found version 8.2.2
-- Searching for <gz-sensors8> component [gpu_lidar]
-- Looking for gz-sensors8-gpu_lidar -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-gpu_lidar
-- Looking for gz-sensors8 -- found version 8.2.2
-- Searching for <gz-sensors8> component [camera]
-- Looking for gz-sensors8-camera -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-camera
-- Looking for gz-sensors8 -- found version 8.2.2
-- Searching for <gz-sensors8> component [boundingbox_camera]
-- Looking for gz-sensors8-boundingbox_camera -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-boundingbox_camera
-- Searching for <gz-sensors8> component [segmentation_camera]
-- Looking for gz-sensors8-segmentation_camera -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-segmentation_camera
-- Searching for <gz-sensors8> component [depth_camera]
-- Looking for gz-sensors8-depth_camera -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-depth_camera
-- Looking for gz-sensors8 -- found version 8.2.2
-- Searching for <gz-sensors8> component [rgbd_camera]
-- Looking for gz-sensors8-rgbd_camera -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-rgbd_camera
-- Looking for gz-sensors8 -- found version 8.2.2
-- Searching for <gz-sensors8> component [thermal_camera]
-- Looking for gz-sensors8-thermal_camera -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-thermal_camera
-- Looking for gz-sensors8 -- found version 8.2.2
-- Searching for <gz-sensors8> component [wide_angle_camera]
-- Looking for gz-sensors8-wide_angle_camera -- found version 8.2.2
-- Searching for dependencies of gz-sensors8-wide_angle_camera
-- Looking for gz-rendering8 -- found version 8.2.2
-- Looking for gz-math7 -- found version 7.5.2
-- Looking for gz-utils2 -- found version 2.2.1
-- Looking for gz-sensors8 -- found version 8.2.2
-- Looking for gz-plugin3 -- found version 3.1.0
-- Searching for dependencies of gz-plugin3
-- Looking for gz-utils3 -- found version 3.1.1
-- Searching for dependencies of gz-utils3
-- Searching for <gz-utils3> component [cli]
-- Looking for gz-utils3-cli -- found version 3.1.1
-- Searching for dependencies of gz-utils3-cli
-- Found OpenCV: /usr (found version "4.6.0") 
-- Found OpenCV: /usr (found version "4.6.0") found components: core imgproc 
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1") 
-- Checking for module 'gstreamer-1.0'
--   Found gstreamer-1.0, version 1.24.2
-- Checking for module 'gstreamer-app-1.0'
--   Found gstreamer-app-1.0, version 1.24.2
-- Found Java: /usr/bin/java (found version "11.0.28") 
-- ROMFS: ROMFS/px4fmu_common
Architecture:  amd64
==> CPACK_INSTALL_PREFIX = @DEB_INSTALL_PREFIX@
-- Configuring done (4.7s)
-- Generating done (0.2s)
-- Build files have been written to: /home/farhang/PX4-Autopilot/build/px4_sitl_default
[0/1107] git submodule src/drivers/gps/devices
[3/1107] git submodule src/modules/mavlink/mavlink
[5/1107] git submodule src/modules/uxrce_dds_client/Micro-XRCE-DDS-Client
[22/1107] Performing download step (git clone) for 'OpticalFlow'
Cloning into 'OpticalFlow'...
Already on 'master'
Your branch is up to date with 'origin/master'.
Submodule 'external/klt_feature_tracker' (https://github.com/PX4/klt_feature_tracker.git) registered for path 'external/klt_feature_tracker'
Cloning into '/home/farhang/PX4-Autopilot/build/px4_sitl_default/OpticalFlow/src/OpticalFlow/external/klt_feature_tracker'...
Submodule path 'external/klt_feature_tracker': checked out 'a2733b54f17b571dd958be498b57479a4104d8cd'
[40/1107] Performing configure step for 'OpticalFlow'
-- The C compiler identification is GNU 13.3.0
-- The CXX compiler identification is GNU 13.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/lib/ccache/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/lib/ccache/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenCV: /usr (found version "4.6.0") 
-- Building klt_feature_tracker without catkin
-- Building OpticalFlow with OpenCV
-- Configuring done (0.2s)
-- Generating done (0.0s)
-- Build files have been written to: /home/farhang/PX4-Autopilot/build/px4_sitl_default/OpticalFlow/src/OpticalFlow-build
[123/1107] Performing build step for 'OpticalFlow'
[1/7] Building CXX object CMakeFiles/OpticalFlow.dir/src/px4flow.cpp.o
[2/7] Building CXX object CMakeFiles/OpticalFlow.dir/src/optical_flow.cpp.o
[3/7] Building CXX object CMakeFiles/OpticalFlow.dir/src/flow_px4.cpp.o
[4/7] Building CXX object klt_feature_tracker/CMakeFiles/klt_feature_tracker.dir/src/trackFeatures.cpp.o
[5/7] Linking CXX static library klt_feature_tracker/libklt_feature_tracker.a
[6/7] Building CXX object CMakeFiles/OpticalFlow.dir/src/flow_opencv.cpp.o
[7/7] Linking CXX shared library libOpticalFlow.so
[765/1107] Performing install step for 'OpticalFlow'
[0/1] Install the project...
-- Install configuration: ""
-- Installing: /home/farhang/PX4-Autopilot/build/px4_sitl_default/OpticalFlow/install/lib/libOpticalFlow.so
-- Installing: /home/farhang/PX4-Autopilot/build/px4_sitl_default/OpticalFlow/install/include
-- Installing: /home/farhang/PX4-Autopilot/build/px4_sitl_default/OpticalFlow/install/include/trackFeatures.h
-- Up-to-date: /home/farhang/PX4-Autopilot/build/px4_sitl_default/OpticalFlow/install/include
-- Installing: /home/farhang/PX4-Autopilot/build/px4_sitl_default/OpticalFlow/install/include/flow_opencv.hpp
-- Installing: /home/farhang/PX4-Autopilot/build/px4_sitl_default/OpticalFlow/install/include/px4flow.hpp
-- Installing: /home/farhang/PX4-Autopilot/build/px4_sitl_default/OpticalFlow/install/include/optical_flow.hpp
-- Installing: /home/farhang/PX4-Autopilot/build/px4_sitl_default/OpticalFlow/install/include/flow_px4.hpp
-- Installing: /home/farhang/PX4-Autopilot/build/px4_sitl_default/OpticalFlow/install/FindOpticalFlow.cmake
[1106/1107] cd /home/farhang/PX4-Autopilot/build/px4_sitl_default/src/...P=127.0.0.1 /home/farhang/PX4-Autopilot/build/px4_sitl_default/bin/px4

______  __   __    ___ 
| ___ \ \ \ / /   /   |
| |_/ /  \ V /   / /| |
|  __/   /   \  / /_| |
| |     / /^\ \ \___  |
\_|     \/   \/     |_/

px4 starting.

INFO  [px4] startup script: /bin/sh etc/init.d-posix/rcS 0
INFO  [init] found model autostart file as SYS_AUTOSTART=4001
INFO  [param] selected parameter default file parameters.bson
INFO  [param] selected parameter backup file parameters_backup.bson
  SYS_AUTOCONFIG: curr: 0 -> new: 1
  SYS_AUTOSTART: curr: 0 -> new: 4001
  CAL_ACC0_ID: curr: 0 -> new: 1310988
  CAL_GYRO0_ID: curr: 0 -> new: 1310988
  CAL_ACC1_ID: curr: 0 -> new: 1310996
  CAL_GYRO1_ID: curr: 0 -> new: 1310996
  CAL_ACC2_ID: curr: 0 -> new: 1311004
  CAL_GYRO2_ID: curr: 0 -> new: 1311004
  CAL_MAG0_ID: curr: 0 -> new: 197388
  CAL_MAG0_PRIO: curr: -1 -> new: 50
  CAL_MAG1_ID: curr: 0 -> new: 197644
  CAL_MAG1_PRIO: curr: -1 -> new: 50
  SENS_BOARD_X_OFF: curr: 0.0000 -> new: 0.0000
  SENS_DPRES_OFF: curr: 0.0000 -> new: 0.0010
INFO  [dataman] data manager file './dataman' size is 1208528 bytes
INFO  [init] Gazebo simulator 8.9.0
INFO  [init] Starting gazebo with world: /home/farhang/PX4-Autopilot/Tools/simulation/gz/worlds/default.sdf
INFO  [init] Starting gz gui
INFO  [init] Waiting for Gazebo world...
INFO  [init] Gazebo world is ready
INFO  [init] Spawning Gazebo model
Warning [Utils.cc:132] [/sdf/model[@name="x500_base"]/link[@name="base_link"]/sensor[@name="air_pressure_sensor"]/gz_frame_id:/home/farhang/PX4-Autopilot/Tools/simulation/gz/models/x500_base/model.sdf:L219]: XML Element[gz_frame_id], child of element[sensor], not defined in SDF. Copying[gz_frame_id] as children of [sensor].
Warning [Utils.cc:132] [/sdf/model[@name="x500_base"]/link[@name="base_link"]/sensor[@name="magnetometer_sensor"]/gz_frame_id:/home/farhang/PX4-Autopilot/Tools/simulation/gz/models/x500_base/model.sdf:L233]: XML Element[gz_frame_id], child of element[sensor], not defined in SDF. Copying[gz_frame_id] as children of [sensor].
Warning [Utils.cc:132] [/sdf/model[@name="x500_base"]/link[@name="base_link"]/sensor[@name="imu_sensor"]/gz_frame_id:/home/farhang/PX4-Autopilot/Tools/simulation/gz/models/x500_base/model.sdf:L259]: XML Element[gz_frame_id], child of element[sensor], not defined in SDF. Copying[gz_frame_id] as children of [sensor].
Warning [Utils.cc:132] [/sdf/model[@name="x500_base"]/link[@name="base_link"]/sensor[@name="navsat_sensor"]/gz_frame_id:/home/farhang/PX4-Autopilot/Tools/simulation/gz/models/x500_base/model.sdf:L311]: XML Element[gz_frame_id], child of element[sensor], not defined in SDF. Copying[gz_frame_id] as children of [sensor].
INFO  [gz_bridge] world: default, model: x500_0
INFO  [lockstep_scheduler] setting initial absolute time to 3860000 us
INFO  [commander] LED: open /dev/led0 failed (22)
WARN  [health_and_arming_checks] Preflight Fail: ekf2 missing data
WARN  [health_and_arming_checks] Preflight Fail: system power unavailable
WARN  [health_and_arming_checks] Preflight Fail: No connection to the GCS
INFO  [uxrce_dds_client] init UDP agent IP:127.0.0.1, port:8888
INFO  [mavlink] mode: Normal, data rate: 4000000 B/s on udp port 18570 remote port 14550
INFO  [mavlink] mode: Onboard, data rate: 4000000 B/s on udp port 14580 remote port 14540
INFO  [mavlink] mode: Onboard, data rate: 4000 B/s on udp port 14280 remote port 14030
INFO  [mavlink] mode: Gimbal, data rate: 400000 B/s on udp port 13030 remote port 13280
INFO  [logger] logger started (mode=all)
INFO  [logger] Start file log (type: full)
INFO  [logger] [logger] ./log/2025-11-21/03_29_41.ulg	
INFO  [logger] Opened full log file: ./log/2025-11-21/03_29_41.ulg
INFO  [mavlink] MAVLink only on localhost (set param MAV_{i}_BROADCAST = 1 to enable network)
INFO  [mavlink] MAVLink only on localhost (set param MAV_{i}_BROADCAST = 1 to enable network)
INFO  [px4] Startup script returned successfully
pxh> INFO  [tone_alarm] home set
WARN  [health_and_arming_checks] Preflight Fail: No connection to the GCS

farhangnaderi avatar Nov 21 '25 02:11 farhangnaderi

Is this also related to the problems I am seeing on Ubuntu?

image

Jaeyoung-Lim avatar Nov 23 '25 14:11 Jaeyoung-Lim

Likely, I assume it must be 24.04? Since I don't see the issue on 22.04

dakejahl avatar Nov 24 '25 02:11 dakejahl

Is this also related to the problems I am seeing on Ubuntu?

image

@Jaeyoung-Lim That is different thing I assume which I was trying to solve it in #25921

farhangnaderi avatar Nov 24 '25 18:11 farhangnaderi

@dakejahl Nope, on 22.04. It happens often and a make distclean solves it

Jaeyoung-Lim avatar Nov 24 '25 19:11 Jaeyoung-Lim

@dakejahl Nope, on 22.04. It happens often and a make distclean solves it

I've never seen it, if you can provide steps to reproduce it then I'll fix it

dakejahl avatar Nov 24 '25 19:11 dakejahl

so I assume we are not happy with this PR? Shall we close it?

farhangnaderi avatar Nov 24 '25 20:11 farhangnaderi

@farhangnaderi this had happened to me on 24.04 but as Jaeyoung Lim mentioned, a make distclean resolves it

dirksavage88 avatar Dec 02 '25 13:12 dirksavage88

@farhangnaderi this had happened to me on 24.04 but as Jaeyoung Lim mentioned, a make distclean resolves it

Thanks, Good to know. But I am not sure how on a non-Linux OS this works. Libraries are defined as specific .so format here. Maybe am wrong.

farhangnaderi avatar Dec 02 '25 17:12 farhangnaderi

Steps to reproduce on ubuntu 24.04 (cmake 3.28.3:

  1. Install fresh PX4 on the filesystem
  2. make px4_sitl
  3. After the first compile, switch branches to an older (1.16)
  4. repeat step 2
  5. Then switch back to px4 main
  6. repeat step 2
  7. liboptical flow permissions error should occur during compile
[4/1072] Performing install step for 'OpticalFlow'
FAILED: OpticalFlow/src/OpticalFlow-stamp/OpticalFlow-install /home/papadrew/source/Firmware/build/px4_sitl_default/OpticalFlow/src/OpticalFlow-stamp/OpticalFlow-install 
cd /home/papadrew/source/Firmware/build/px4_sitl_default/OpticalFlow/src/OpticalFlow-build && /usr/bin/cmake --build . --target install && /usr/bin/cmake -E touch /home/papadrew/source/Firmware/build/px4_sitl_default/OpticalFlow/src/OpticalFlow-stamp/OpticalFlow-install
[0/1] Install the project...
-- Install configuration: ""
-- Installing: /usr/local/lib/libOpticalFlow.so
CMake Error at cmake_install.cmake:52 (file):
  file INSTALL cannot copy file
  "/home/papadrew/source/Firmware/build/px4_sitl_default/OpticalFlow/src/OpticalFlow-build/libOpticalFlow.so"
  to "/usr/local/lib/libOpticalFlow.so": Permission denied.

@farhangnaderi the issue at least for ubuntu 24.04 is that Cmake install prefix installed to system wide lacks the necessary permissions to copy to "/usr/local". . See https://runebook.dev/en/docs/cmake/variable/cmake_install_prefix

My guess is the cmake prefix is not initialized to default, so that condition fails and it falls back to the cmake_install_prefix directory (which is system wide) instead of the cmake_binary_dir (local to px4)

dirksavage88 avatar Dec 03 '25 23:12 dirksavage88

The offending lines in the code that result in reproduction of the issue are here:

    else()
        set(OPTICAL_FLOW_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
    endif()

dirksavage88 avatar Dec 03 '25 23:12 dirksavage88

The offending lines in the code that result in reproduction of the issue are here:

    else()
        set(OPTICAL_FLOW_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
    endif()

https://github.com/PX4/PX4-Autopilot/pull/25921 Then this should have been merged?

farhangnaderi avatar Dec 04 '25 02:12 farhangnaderi