diff --git a/Unity/build.sh b/Unity/build.sh index 5e0aa93845..cee09b0b09 100755 --- a/Unity/build.sh +++ b/Unity/build.sh @@ -18,8 +18,8 @@ fi cd linux-build if [ "$(uname)" == "Darwin" ]; then - export CC=/usr/local/opt/llvm@8/bin/clang - export CXX=/usr/local/opt/llvm@8/bin/clang++ + export CC=/usr/local/opt/llvm@12/bin/clang + export CXX=/usr/local/opt/llvm@12/bin/clang++ else export CC="clang-8" export CXX="clang++-8" diff --git a/build.sh b/build.sh index 8b45d64ba1..9d9fb85cef 100755 --- a/build.sh +++ b/build.sh @@ -64,11 +64,11 @@ if [ "$(uname)" == "Darwin" ]; then export CXX="$(brew --prefix)/opt/llvm/bin/clang++" else if $gcc; then - export CC="gcc-8" - export CXX="g++-8" + export CC="gcc-12" + export CXX="g++-12" else - export CC="clang-8" - export CXX="clang++-8" + export CC="clang-12" + export CXX="clang++-12" fi fi diff --git a/cmake/cmake-modules/CommonSetup.cmake b/cmake/cmake-modules/CommonSetup.cmake index 11d0c9bcb2..f814b18fca 100644 --- a/cmake/cmake-modules/CommonSetup.cmake +++ b/cmake/cmake-modules/CommonSetup.cmake @@ -59,9 +59,9 @@ macro(CommonSetup) if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") set(CMAKE_CXX_FLAGS "-stdlib=libc++ -Wno-documentation -Wno-unknown-warning-option ${CMAKE_CXX_FLAGS}") find_package(LLVM REQUIRED CONFIG) - set(CXX_EXP_LIB "-L${LLVM_LIBRARY_DIRS} -lc++fs -ferror-limit=10") + set(CXX_EXP_LIB "-L${LLVM_LIBRARY_DIRS} -ferror-limit=10") else() - set(CXX_EXP_LIB "-lstdc++fs -fmax-errors=10 -Wnoexcept -Wstrict-null-sentinel") + set(CXX_EXP_LIB "-fmax-errors=10 -Wnoexcept -Wstrict-null-sentinel") endif () endif () diff --git a/ros2/src/airsim_ros_pkgs/CMakeLists.txt b/ros2/src/airsim_ros_pkgs/CMakeLists.txt index 6d961a430f..40233c5fff 100644 --- a/ros2/src/airsim_ros_pkgs/CMakeLists.txt +++ b/ros2/src/airsim_ros_pkgs/CMakeLists.txt @@ -13,6 +13,7 @@ find_package(image_transport REQUIRED) find_package(geometry_msgs REQUIRED) find_package(cv_bridge REQUIRED) find_package(tf2_geometry_msgs REQUIRED) +find_package(mavros_msgs REQUIRED) find_package(sensor_msgs REQUIRED) find_package(mavros_msgs REQUIRED) find_package(rosidl_default_generators REQUIRED) @@ -22,6 +23,8 @@ find_package(rosidl_typesupport_cpp REQUIRED) find_package(rosidl_default_runtime REQUIRED) find_package(airsim_interfaces REQUIRED) find_package(OpenCV REQUIRED) +find_package(std_srvs REQUIRED) +find_package(mavros_msgs REQUIRED) set(AIRSIM_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../../) @@ -30,11 +33,13 @@ add_subdirectory("${AIRSIM_ROOT}/cmake/AirLib" AirLib) add_subdirectory("${AIRSIM_ROOT}/cmake/MavLinkCom" MavLinkCom) set(CMAKE_CXX_STANDARD 14) -set(CMAKE_CXX_FLAGS "-O3 -Wall -Wextra -Wnoexcept -Wstrict-null-sentinel") +# set(CMAKE_CXX_FLAGS "-O3 -Wall -Wextra -Wnoexcept -Wstrict-null-sentinel") +# Added -Wno-deprecated-copy to fix Eigen warnings on newer GCC +set(CMAKE_CXX_FLAGS "-O3 -Wall -Wextra -Wnoexcept -Wstrict-null-sentinel -Wno-deprecated-copy -Wno-format-security") set(CXX_EXP_LIB "-nostdinc++ -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -nodefaultlibs -l/usr/lib/x86_64-linux-gnu/libc++.so -l/usr/lib/x86_64-linux-gnu/libc++abi.so -lm -lc -lgcc_s -lgcc --lstdc++fs -fmax-errors=10") +-fmax-errors=10") set(RPC_LIB_INCLUDES " ${AIRSIM_ROOT}/external/rpclib/rpclib-2.3.0/include") set(RPC_LIB rpc) message(STATUS "found RPC_LIB_INCLUDES=${RPC_LIB_INCLUDES}") @@ -46,6 +51,8 @@ set(INCLUDE_DIRS include ${AIRSIM_ROOT}/MavLinkCom/include ${AIRSIM_ROOT}/MavLinkCom/common_utils ${OpenCV_INCLUDE_DIRS} + ${std_srvs_INCLUDE_DIRS} + ${mavros_msgs_INCLUDE_DIRS} ) include_directories(${INCLUDE_DIRS}) @@ -59,6 +66,8 @@ ament_target_dependencies(pd_position_controller_simple nav_msgs geometry_msgs airsim_interfaces + tf2 + tf2_geometry_msgs ) add_library(airsim_ros src/airsim_ros_wrapper.cpp) @@ -72,12 +81,18 @@ ament_target_dependencies(airsim_ros tf2_ros cv_bridge airsim_interfaces + tf2 + tf2_geometry_msgs + mavros_msgs + std_srvs ) add_executable(airsim_node src/airsim_node.cpp) target_link_libraries(airsim_node airsim_ros AirLib) ament_target_dependencies(airsim_node rclcpp + tf2 + tf2_geometry_msgs ) add_executable(pd_position_controller_simple_node @@ -86,6 +101,8 @@ target_link_libraries(pd_position_controller_simple_node pd_position_controller_simple airsim_ros AirLib) ament_target_dependencies(pd_position_controller_simple_node rclcpp + tf2 + tf2_geometry_msgs ) # rosidl_target_interfaces(airsim_node diff --git a/ros2/src/airsim_ros_pkgs/include/pd_position_controller_simple.h b/ros2/src/airsim_ros_pkgs/include/pd_position_controller_simple.h index b2424b27f3..114678964f 100644 --- a/ros2/src/airsim_ros_pkgs/include/pd_position_controller_simple.h +++ b/ros2/src/airsim_ros_pkgs/include/pd_position_controller_simple.h @@ -15,7 +15,7 @@ STRICT_MODE_OFF //todo what does this do? #include #include #include -#include +#include #include #include #include @@ -136,4 +136,4 @@ class PIDPositionController rclcpp::TimerBase::SharedPtr update_control_cmd_timer_; }; -#endif /* _PID_POSITION_CONTROLLER_SIMPLE_ */ \ No newline at end of file +#endif /* _PID_POSITION_CONTROLLER_SIMPLE_ */ diff --git a/ros2/src/airsim_ros_pkgs/include/utils.h b/ros2/src/airsim_ros_pkgs/include/utils.h index a62f691a63..cb47e5a433 100755 --- a/ros2/src/airsim_ros_pkgs/include/utils.h +++ b/ros2/src/airsim_ros_pkgs/include/utils.h @@ -1,4 +1,4 @@ -#include +#include namespace utils { inline double get_yaw_from_quat_msg(const geometry_msgs::msg::Quaternion& quat_msg) @@ -11,4 +11,4 @@ inline double get_yaw_from_quat_msg(const geometry_msgs::msg::Quaternion& quat_m } // OdometryEuler get_eigen_odom_from_rosmsg(const nav::msgs &odom_msg); -} \ No newline at end of file +} diff --git a/ros2/src/airsim_ros_pkgs/package.xml b/ros2/src/airsim_ros_pkgs/package.xml index 74d1f44f20..4951a2eed7 100644 --- a/ros2/src/airsim_ros_pkgs/package.xml +++ b/ros2/src/airsim_ros_pkgs/package.xml @@ -35,6 +35,7 @@ image_transport message_generation message_runtime + mavros_msgs nav_msgs rclcpp rclpy diff --git a/setup.sh b/setup.sh index fd0b71e203..2a614719f5 100755 --- a/setup.sh +++ b/setup.sh @@ -50,7 +50,7 @@ else #linux software-properties-common \ wget \ libvulkan1 \ - vulkan-utils + vulkan-tools #install clang and build tools VERSION=$(lsb_release -rs | cut -d. -f1) @@ -60,7 +60,7 @@ else #linux wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - sudo apt-get update fi - sudo apt-get install -y clang-8 clang++-8 libc++-8-dev libc++abi-8-dev + sudo apt-get install -y clang-12 clang++-12 libc++-12-dev libc++abi-12-dev fi if ! which cmake; then