Update GZ Plugin OpticalFlow CMake configuration for library paths
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
Is this also related to the problems I am seeing on Ubuntu?
Likely, I assume it must be 24.04? Since I don't see the issue on 22.04
Is this also related to the problems I am seeing on Ubuntu?
![]()
@Jaeyoung-Lim That is different thing I assume which I was trying to solve it in #25921
@dakejahl Nope, on 22.04. It happens often and a make distclean solves it
@dakejahl Nope, on 22.04. It happens often and a
make distcleansolves it
I've never seen it, if you can provide steps to reproduce it then I'll fix it
so I assume we are not happy with this PR? Shall we close it?
@farhangnaderi this had happened to me on 24.04 but as Jaeyoung Lim mentioned, a make distclean resolves it
@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.
Steps to reproduce on ubuntu 24.04 (cmake 3.28.3:
- Install fresh PX4 on the filesystem
- make px4_sitl
- After the first compile, switch branches to an older (1.16)
- repeat step 2
- Then switch back to px4 main
- repeat step 2
- 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)
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()
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?