unl-nimbus-lab / Freyja

High-level nonlinear state-space flight control for multirotors. Freyja is suitable for vehicles that already have a stabilizing autopilot.
GNU General Public License v3.0
14 stars 9 forks source link

Build Issue with Ardupilot computer_ctrl #19

Open pfletche opened 2 years ago

pfletche commented 2 years ago

Hi @ajshank,

I've been unable to build (with ./waf) the computer_ctrl version of Ardupilot (maintained here) for SITL. It also doesn't seem to build for other boards. It may be that it's inconsistent with the most recent version of Ardupilot? I tried dropping the computer_ctrl files into the most recent version of Ardupilot but there are also inconsistencies.

Have you been able to build this version of Ardupilot with computer-ctrl? If not, is Freyja supported for 'Guided' mode in Ardupilot or 'Offboard' in PX4?

Hope you are well!

ajshank commented 2 years ago

@pfletche Thanks for testing and reporting this. I'm well; hope you're too :)

I presume that you've cloned the entire repo (with --recurse-submodules)? I don't have a complete toolchain installed on my machine at the moment, but if you post a specific error, I can try to replicate it. It is also possible that a new version of Ubuntu has a new version of gcc or libc that no longer recognises some symbols. Are the precompiled binaries on Box/OneDrive for a different board than yours? Sorry, I just saw that you're looking for SITL.

Freyja will work with Guided-NoGPS mode (since Ardupilot 4.1+, some of my changes are now available in the main repository), and PX4's OFFBOARD should also work (very much untested). However, please keep in mind that there is a small segment of code in apm_handler package that looks for the string COMP_CTRL, and makes a couple of service calls. This behaviour will no longer work, but is not essential to core flight control (in general, none of Freyja's internal functions depend on anything external). If this is the route you prefer, there are a few minor adjustments that will need to be made. Please let me know, this should be doable.

pfletche commented 2 years ago

Thanks, Ajay! Yep, I did clone the entire repo. I pasted the specific error below. Looks like there are too many args in a function in AP_Generator_RichenPower.cpp.

I'm now trying Guided_NoGPS. Looks like I need to change the G2_OPTIONS parameter, where does that param live exactly? I tried changing GUID_OPTIONS in ardupilot/ArduCopter/Parameters.cpp to 3: interpret thrust as thrust, but that hasn't worked.

Maybe we could talk for a bit over Zoom? Let me know if that would work.


$ ./waf copter Waf: Entering directory `/home/paul/Ardupilot_Ajay_Original/ardupilot/build/sitl' [3/6] Compiling libraries/AP_Scripting/generator/src/main.c [4/6] Processing modules/mavlink/message_definitions/v1.0/ardupilotmega.xml [5/6] Creating build/sitl/ap_version.h Validation skipped for /home/paul/Ardupilot_Ajay_Original/ardupilot/modules/mavlink/message_definitions/v1.0/ardupilotmega.xml. Parsing /home/paul/Ardupilot_Ajay_Original/ardupilot/modules/mavlink/message_definitions/v1.0/ardupilotmega.xml Validation skipped for /home/paul/Ardupilot_Ajay_Original/ardupilot/modules/mavlink/message_definitions/v1.0/common.xml. Parsing /home/paul/Ardupilot_Ajay_Original/ardupilot/modules/mavlink/message_definitions/v1.0/common.xml Validation skipped for /home/paul/Ardupilot_Ajay_Original/ardupilot/modules/mavlink/message_definitions/v1.0/uAvionix.xml. Parsing /home/paul/Ardupilot_Ajay_Original/ardupilot/modules/mavlink/message_definitions/v1.0/uAvionix.xml Validation skipped for /home/paul/Ardupilot_Ajay_Original/ardupilot/modules/mavlink/message_definitions/v1.0/icarous.xml. Parsing /home/paul/Ardupilot_Ajay_Original/ardupilot/modules/mavlink/message_definitions/v1.0/icarous.xml Merged enum MAV_CMD Found 227 MAVLink message types in 4 XML files [6/6] Processing /home/paul/Ardupilot_Ajay_Original/ardupilot/build/sitl/libraries/AP_Scripting/lua_generated_bindings.cpp,/home/paul/Ardupilot_Ajay_Original/ardupilot/build/sitl/libraries/AP_Scripting/lua_generated_bindings.h: libraries/AP_Scripting/generator/description/bindings.desc build/sitl/gen-bindings -> build/sitl/libraries/AP_Scripting/lua_generated_bindings.cpp build/sitl/libraries/AP_Scripting/lua_generated_bindings.h Generating C implementation in directory /home/paul/Ardupilot_Ajay_Original/ardupilot/build/sitl/libraries/GCS_MAVLink/include/mavlink/v2.0/ardupilotmega Generating C implementation in directory /home/paul/Ardupilot_Ajay_Original/ardupilot/build/sitl/libraries/GCS_MAVLink/include/mavlink/v2.0/common Generating C implementation in directory /home/paul/Ardupilot_Ajay_Original/ardupilot/build/sitl/libraries/GCS_MAVLink/include/mavlink/v2.0/uAvionix Generating C implementation in directory /home/paul/Ardupilot_Ajay_Original/ardupilot/build/sitl/libraries/GCS_MAVLink/include/mavlink/v2.0/icarous Copying fixed headers for protocol 2.0 to /home/paul/Ardupilot_Ajay_Original/ardupilot/build/sitl/libraries/GCS_MAVLink/include/mavlink/v2.0 [ 7/709] Compiling libraries/AC_AttitudeControl/AC_AttitudeControl_Sub.cpp [ 8/709] Compiling libraries/AC_AttitudeControl/AC_AttitudeControl_Heli.cpp [ 9/709] Compiling libraries/AC_AttitudeControl/ControlMonitor.cpp [ 10/709] Compiling libraries/AC_AttitudeControl/AC_AttitudeControl_Multi.cpp [ 11/709] Compiling libraries/AC_AttitudeControl/AC_PosControl_Sub.cpp [ 12/709] Compiling libraries/AC_AutoTune/AC_AutoTune.cpp [ 13/709] Compiling libraries/AC_Autorotation/AC_Autorotation.cpp [ 14/709] Compiling libraries/AC_Avoidance/AP_OADatabase.cpp [ 15/709] Compiling libraries/AC_Avoidance/AP_OADijkstra.cpp [ 16/709] Compiling libraries/AC_Avoidance/AP_OABendyRuler.cpp [ 17/709] Compiling libraries/AC_Avoidance/AP_OAVisGraph.cpp [ 18/709] Compiling libraries/AC_Fence/AC_PolyFence_loader.cpp [ 19/709] Compiling libraries/AC_InputManager/AC_InputManager.cpp [ 20/709] Compiling libraries/AC_InputManager/AC_InputManager_Heli.cpp [ 21/709] Compiling libraries/AC_PID/AC_P.cpp [ 22/709] Compiling libraries/AC_PID/AC_HELI_PID.cpp [ 23/709] Compiling libraries/AC_PID/AC_PI.cpp [ 24/709] Compiling libraries/AC_PID/AC_PID.cpp [ 25/709] Compiling libraries/AC_PID/AC_PID_2D.cpp [ 26/709] Compiling libraries/AC_PID/AC_PI_2D.cpp [ 27/709] Compiling libraries/AC_PrecLand/AC_PrecLand_IRLock.cpp [ 28/709] Compiling libraries/AC_PrecLand/AC_PrecLand_SITL_Gazebo.cpp [ 29/709] Compiling libraries/AC_PrecLand/PosVelEKF.cpp [ 30/709] Compiling libraries/AC_PrecLand/AC_PrecLand_SITL.cpp [ 31/709] Compiling libraries/AC_PrecLand/AC_PrecLand.cpp [ 32/709] Compiling libraries/AC_PrecLand/AC_PrecLand_Companion.cpp [ 33/709] Compiling libraries/AC_Sprayer/AC_Sprayer.cpp [ 34/709] Compiling libraries/AC_WPNav/AC_Circle.cpp [ 35/709] Compiling libraries/AC_WPNav/AC_Loiter.cpp [ 36/709] Compiling libraries/AC_WPNav/AC_WPNav.cpp [ 37/709] Compiling libraries/AC_WPNav/AC_WPNav_OA.cpp [ 38/709] Compiling libraries/AP_ADC/AP_ADC_ADS1115.cpp [ 39/709] Compiling libraries/AP_AHRS/AP_AHRS_DCM.cpp [ 40/709] Compiling libraries/AP_AHRS/AP_AHRS_View.cpp [ 41/709] Compiling libraries/AP_AccelCal/AP_AccelCal.cpp [ 42/709] Compiling libraries/AP_AccelCal/AccelCalibrator.cpp [ 43/709] Compiling libraries/AP_AdvancedFailsafe/AP_AdvancedFailsafe.cpp [ 44/709] Compiling libraries/AP_Airspeed/AP_Airspeed_UAVCAN.cpp [ 45/709] Compiling libraries/AP_Airspeed/AP_Airspeed_MS5525.cpp [ 46/709] Compiling libraries/AP_Airspeed/AP_Airspeed_analog.cpp [ 47/709] Compiling libraries/AP_Airspeed/Airspeed_Calibration.cpp [ 48/709] Compiling libraries/AP_Airspeed/AP_Airspeed_Backend.cpp [ 49/709] Compiling libraries/AP_Airspeed/AP_Airspeed_DLVR.cpp [ 50/709] Compiling libraries/AP_Airspeed/AP_Airspeed_Health.cpp [ 51/709] Compiling libraries/AP_Airspeed/AP_Airspeed_SDP3X.cpp [ 52/709] Compiling libraries/AP_Airspeed/AP_Airspeed_MS4525.cpp [ 53/709] Compiling libraries/AP_Baro/AP_Baro_HIL.cpp [ 54/709] Compiling libraries/AP_Baro/AP_Baro_KellerLD.cpp [ 55/709] Compiling libraries/AP_Baro/AP_Baro_Dummy.cpp [ 56/709] Compiling libraries/AP_Baro/AP_Baro_ICM20789.cpp [ 57/709] Compiling libraries/AP_Baro/AP_Baro_SPL06.cpp [ 58/709] Compiling libraries/AP_Baro/AP_Baro_BMP085.cpp [ 59/709] Compiling libraries/AP_Baro/AP_Baro_UAVCAN.cpp [ 60/709] Compiling libraries/AP_Baro/AP_Baro_DPS280.cpp [ 61/709] Compiling libraries/AP_Baro/AP_Baro_Backend.cpp [ 62/709] Compiling libraries/AP_Baro/AP_Baro_BMP388.cpp [ 63/709] Compiling libraries/AP_Baro/AP_Baro_BMP280.cpp [ 64/709] Compiling libraries/AP_Baro/AP_Baro_LPS2XH.cpp [ 65/709] Compiling libraries/AP_Baro/AP_Baro_MS5611.cpp [ 66/709] Compiling libraries/AP_Baro/AP_Baro_FBM320.cpp [ 67/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_SMBus_NeoDesign.cpp [ 68/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_SMBus_Generic.cpp [ 69/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_Bebop.cpp [ 70/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_SMBus_SUI.cpp [ 71/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_Generator.cpp [ 72/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_FuelLevel_PWM.cpp [ 73/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_SMBus.cpp [ 74/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_Sum.cpp [ 75/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_SMBus_Solo.cpp [ 76/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_UAVCAN.cpp [ 77/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_BLHeliESC.cpp [ 78/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_Analog.cpp [ 79/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_FuelFlow.cpp [ 80/709] Compiling libraries/AP_BattMonitor/AP_BattMonitor_Backend.cpp [ 81/709] Compiling libraries/AP_Beacon/AP_Beacon_SITL.cpp [ 82/709] Compiling libraries/AP_Beacon/AP_Beacon.cpp [ 83/709] Compiling libraries/AP_Beacon/AP_Beacon_Backend.cpp [ 84/709] Compiling libraries/AP_Beacon/AP_Beacon_Marvelmind.cpp [ 85/709] Compiling libraries/AP_Beacon/AP_Beacon_Pozyx.cpp [ 86/709] Compiling libraries/AP_BoardConfig/canbus_interface.cpp [ 87/709] Compiling libraries/AP_BoardConfig/canbus_slcan.cpp [ 88/709] Compiling libraries/AP_BoardConfig/board_drivers.cpp [ 89/709] Compiling libraries/AP_BoardConfig/IMU_heater.cpp [ 90/709] Compiling libraries/AP_Button/AP_Button.cpp [ 91/709] Compiling libraries/AP_Camera/AP_RunCam.cpp [ 92/709] Compiling libraries/AP_Camera/AP_Camera.cpp [ 93/709] Compiling libraries/AP_Camera/AP_Camera_SoloGimbal.cpp [ 94/709] Compiling libraries/AP_Common/AP_Common.cpp [ 95/709] Compiling libraries/AP_Common/Location.cpp [ 96/709] Compiling libraries/AP_Common/AP_ExpandingArray.cpp [ 97/709] Compiling libraries/AP_Common/AP_FWVersion.cpp [ 98/709] Compiling libraries/AP_Common/c++.cpp [ 99/709] Compiling libraries/AP_Compass/Compass_learn.cpp [100/709] Compiling libraries/AP_Compass/AP_Compass_HIL.cpp [101/709] Compiling libraries/AP_Compass/AP_Compass_SITL.cpp [102/709] Compiling libraries/AP_Compass/AP_Compass_UAVCAN.cpp [103/709] Compiling libraries/AP_Compass/AP_Compass_AK09916.cpp [104/709] Compiling libraries/AP_Compass/CompassCalibrator.cpp [105/709] Compiling libraries/AP_Compass/AP_Compass_QMC5883L.cpp [106/709] Compiling libraries/AP_Compass/AP_Compass_HMC5843.cpp [107/709] Compiling libraries/AP_Compass/AP_Compass_AK8963.cpp [108/709] Compiling libraries/AP_Compass/AP_Compass_RM3100.cpp [109/709] Compiling libraries/AP_Compass/AP_Compass_MMC3416.cpp [110/709] Compiling libraries/AP_Compass/AP_Compass_LSM303D.cpp [111/709] Compiling libraries/AP_Compass/AP_Compass_MAG3110.cpp [112/709] Compiling libraries/AP_Compass/AP_Compass_LSM9DS1.cpp [113/709] Compiling libraries/AP_Compass/AP_Compass_Calibration.cpp [114/709] Compiling libraries/AP_Compass/AP_Compass_LIS3MDL.cpp [115/709] Compiling libraries/AP_Compass/AP_Compass_BMM150.cpp [116/709] Compiling libraries/AP_Compass/AP_Compass_IST8310.cpp [117/709] Compiling libraries/AP_Compass/Compass_PerMotor.cpp [118/709] Compiling libraries/AP_Compass/AP_Compass_IST8308.cpp [119/709] Compiling libraries/AP_Declination/AP_Declination.cpp [120/709] Compiling libraries/AP_Declination/tables.cpp [121/709] Compiling libraries/AP_Devo_Telem/AP_Devo_Telem.cpp [122/709] Compiling libraries/AP_EFI/AP_EFI.cpp [123/709] Compiling libraries/AP_EFI/AP_EFI_Serial_MS.cpp [124/709] Compiling libraries/AP_EFI/AP_EFI_Backend.cpp [125/709] Compiling libraries/AP_ESC_Telem/AP_ESC_Telem.cpp [126/709] Compiling libraries/AP_Filesystem/posix_compat.cpp [127/709] Compiling libraries/AP_Filesystem/AP_Filesystem_Param.cpp [128/709] Compiling libraries/AP_Filesystem/AP_Filesystem_FATFS.cpp [129/709] Compiling libraries/AP_Filesystem/AP_Filesystem.cpp [130/709] Compiling libraries/AP_Filesystem/AP_Filesystem_posix.cpp [131/709] Compiling libraries/AP_Filesystem/AP_Filesystem_ROMFS.cpp [132/709] Compiling libraries/AP_Filesystem/AP_Filesystem_Sys.cpp [133/709] Compiling libraries/AP_FlashStorage/AP_FlashStorage.cpp [134/709] Compiling libraries/AP_Frsky_Telem/AP_Frsky_Telem.cpp [135/709] Compiling libraries/AP_GPS/AP_GPS_SBF.cpp [136/709] Compiling libraries/AP_GPS/RTCM3_Parser.cpp [137/709] Compiling libraries/AP_GPS/AP_GPS_SBP.cpp [138/709] Compiling libraries/AP_GPS/GPS_Backend.cpp [139/709] Compiling libraries/AP_GPS/AP_GPS_SIRF.cpp [140/709] Compiling libraries/AP_GPS/AP_GPS_SBP2.cpp [141/709] Compiling libraries/AP_GPS/AP_GPS_UAVCAN.cpp [142/709] Compiling libraries/AP_GPS/AP_GPS_MTK.cpp [143/709] Compiling libraries/AP_GPS/AP_GPS_NMEA.cpp [144/709] Compiling libraries/AP_GPS/AP_GPS.cpp [145/709] Compiling libraries/AP_GPS/AP_GPS_NOVA.cpp [146/709] Compiling libraries/AP_GPS/AP_GPS_ERB.cpp [147/709] Compiling libraries/AP_GPS/AP_GPS_MTK19.cpp [148/709] Compiling libraries/AP_GPS/AP_GPS_MAV.cpp [149/709] Compiling libraries/AP_GPS/AP_GPS_GSOF.cpp [150/709] Compiling libraries/AP_GPS/AP_GPS_UBLOX.cpp [151/709] Compiling libraries/AP_Generator/AP_Generator_RichenPower.cpp [152/709] Compiling libraries/AP_Gripper/AP_Gripper.cpp [153/709] Compiling libraries/AP_Gripper/AP_Gripper_EPM.cpp [154/709] Compiling libraries/AP_Gripper/AP_Gripper_Servo.cpp [155/709] Compiling libraries/AP_Gripper/AP_Gripper_Backend.cpp [156/709] Compiling libraries/AP_Hott_Telem/AP_Hott_Telem.cpp [157/709] Compiling libraries/AP_ICEngine/AP_ICEngine.cpp [158/709] Compiling libraries/AP_IOMCU/AP_IOMCU.cpp [159/709] Compiling libraries/AP_IOMCU/fw_uploader.cpp [160/709] Compiling libraries/AP_IRLock/AP_IRLock_SITL_Gazebo.cpp [161/709] Compiling libraries/AP_IRLock/IRLock.cpp [162/709] Compiling libraries/AP_IRLock/AP_IRLock_I2C.cpp [163/709] Compiling libraries/AP_IRLock/AP_IRLock_SITL.cpp [164/709] Compiling libraries/AP_InertialNav/AP_InertialNav_NavEKF.cpp [165/709] Compiling libraries/AP_InertialSensor/BatchSampler.cpp [166/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_Invensense.cpp [167/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_SITL.cpp [168/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_L3G4200D.cpp [169/709] Compiling libraries/AP_InertialSensor/AuxiliaryBus.cpp [170/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_RST.cpp [171/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_LSM9DS0.cpp [172/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_LSM9DS1.cpp [173/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_BMI160.cpp [174/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_Backend.cpp [175/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_HIL.cpp [176/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_ADIS1647x.cpp [177/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_BMI055.cpp [178/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_BMI088.cpp [179/709] Compiling libraries/AP_InertialSensor/AP_InertialSensor_Invensensev2.cpp [180/709] Compiling libraries/AP_InternalError/AP_InternalError.cpp [181/709] Compiling libraries/AP_KDECAN/AP_KDECAN.cpp [182/709] Compiling libraries/AP_LTM_Telem/AP_LTM_Telem.cpp [183/709] Compiling libraries/AP_LandingGear/AP_LandingGear.cpp [184/709] Compiling libraries/AP_Logger/AP_Logger_Block.cpp [185/709] Compiling libraries/AP_Logger/AP_Logger_MAVLink.cpp [186/709] Compiling libraries/AP_Logger/AP_Logger_DataFlash.cpp [187/709] Compiling libraries/AP_Logger/AP_Logger.cpp [188/709] Compiling libraries/AP_Logger/LoggerMessageWriter.cpp [189/709] Compiling libraries/AP_Logger/AP_Logger_MAVLinkLogTransfer.cpp [190/709] Compiling libraries/AP_Logger/AP_Logger_SITL.cpp [191/709] Compiling libraries/AP_Logger/LogFile.cpp [192/709] Compiling libraries/AP_Math/vector3.cpp [193/709] Compiling libraries/AP_Math/AP_Math.cpp [194/709] Compiling libraries/AP_Math/polygon.cpp ../../libraries/AP_Generator/AP_Generator_RichenPower.cpp: In member function ‘void AP_Generator_RichenPower::send_generator_status(const GCS_MAVLINK&)’: ../../libraries/AP_Generator/AP_Generator_RichenPower.cpp:380:9: error: too many arguments to function ‘void mavlink_msg_generator_status_send(mavlink_channel_t, uint64_t, uint16_t, float, float, float, float, int16_t, float, int16_t)’ 380 | ); | ^ compilation terminated due to -Wfatal-errors.

In file included from /usr/include/string.h:495, from ../../libraries/AP_HAL/AP_HAL_Namespace.h:3, from ../../libraries/AP_HAL/AP_HAL.h:5, from ../../libraries/AP_Logger/AP_Logger.h:6, from ../../libraries/AP_Logger/AP_Logger.cpp:1: In function ‘char strncpy(char, const char, size_t)’, inlined from ‘bool AP_Logger::labels_string_is_good(const char) const’ at ../../libraries/AP_Logger/AP_Logger.cpp:323:12: /usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:34: warning: ‘char __builtin_strncpy(char, const char*, long unsigned int)’ specified bound 65 equals destination size [-Wstringop-truncation] 106 | return builtin___strncpy_chk (dest, src, len, bos (dest)); | ~~~~~~^~~~~~~~

Waf: Leaving directory `/home/paul/Ardupilot_Ajay_Original/ardupilot/build/sitl' Build failed -> task in 'objs/AP_Generator' failed (exit status 1): {task 140262601182896: cxx AP_Generator_RichenPower.cpp -> AP_Generator_RichenPower.cpp.0.o} (run with -v to display more information)

johnthelzer commented 4 months ago

@pfletche did you figure out where G2_options lives? I've been looking for a while and cannot find it. I would expect it to be accessible in mission planner parameters, but no luck.

Thanks, John

johnthelzer commented 4 months ago

@pfletche Thanks for testing and reporting this. I'm well; hope you're too :)

I presume that you've cloned the entire repo (with --recurse-submodules)? I don't have a complete toolchain installed on my machine at the moment, but if you post a specific error, I can try to replicate it. It is also possible that a new version of Ubuntu has a new version of gcc or libc that no longer recognises some symbols. ~Are the precompiled binaries on Box/OneDrive for a different board than yours?~ Sorry, I just saw that you're looking for SITL.

Freyja will work with Guided-NoGPS mode (since Ardupilot 4.1+, some of my changes are now available in the main repository), and PX4's OFFBOARD should also work (very much untested). However, please keep in mind that there is a small segment of code in apm_handler package that looks for the string COMP_CTRL, and makes a couple of service calls. This behaviour will no longer work, but is not essential to core flight control (in general, none of Freyja's internal functions depend on anything external). If this is the route you prefer, there are a few minor adjustments that will need to be made. Please let me know, this should be doable.

@ajshank I just found this thread- I'm using Freyja with Arducopter v 4.5.1 on a blue cube. I'm also using Guided_noGPS mode. Since this is a later version than Arducopter v 4.1, does it require any custom firmware package, or should it work as is?

Thanks for your help, John

ajshank commented 1 month ago

Hi @johnthelzer, Unless you have a strong dependency on 4.5, I'd recommend building this 4.4 firmware: https://github.com/ajshank/ardupilot/tree/freyja4.4 This forks from 4.4 and adds a yaw-rate control functionality that was removed from ArduCopter after 4.2. No other base functions are modified. Please feel free to start a thread on Discussions if you'd like and we can move the conversation over there.

ajshank commented 1 month ago

did you figure out where G2_options lives? I've been looking for a while and cannot find it. I would expect it to be accessible in mission planner parameters, but no luck.

@johnthelzer The option in GCS is called GUID_OPTIONS, and, if using the custom firmware I linked above, this should be set to 10 (numeric ten).

johnthelzer commented 1 month ago

@ajshank Thank you! That is very helpful.