Hi guys,
when I am trying to run command for magfit, I am facing this issue, (refer below image)
command --->> magfit_WMM.py --cmot --elliptical --mag 1 --reduce 10 /home/orion/ardupilot/modules/mavlink/pymavlink/tools/test1_grey_vtol_qhover_160323.bin
LOGS—
orion@asus:~/ardupilot/modules/mavlink/pymavlink/tools$ magfit_WMM.py --cmot --elliptical --mag 1 --reduce 10 /home/orion/ardupilot/modules/mavlink/pymavlink/tools/test1_grey_vtol_qhover_160323.bin
Processing log /home/orion/ardupilot/modules/mavlink/pymavlink/tools/test1_grey_vtol_qhover_160323.bin
Attitude source XKF1
Extracted 513 points
Current: Vector3(-178.19, -198.93, 191.47) diag: Vector3(0.98, 1.02, 0.99) offdiag: Vector3(-0.02, -0.00, -0.00) cmot_mode: 0.0 cmot: Vector3(0.10, -1.07, 0.56) scale: 1.00
Traceback (most recent call last):
File "/home/orion/.local/bin/magfit_WMM.py", line 491, in <module>
magfit(args.log)
File "/home/orion/.local/bin/magfit_WMM.py", line 399, in magfit
c = fit_WWW()
File "/home/orion/.local/bin/magfit_WMM.py", line 222, in fit_WWW
(p,err,iterations,imode,smode) = optimize.fmin_slsqp(wmm_error, p, bounds=bounds, full_output=True, iter=args.iter)
File "/usr/lib/python2.7/dist-packages/scipy/optimize/slsqp.py", line 207, in fmin_slsqp
constraints=cons, **opts)
File "/usr/lib/python2.7/dist-packages/scipy/optimize/slsqp.py", line 370, in _minimize_slsqp
raise ValueError("Objective function must return a scalar")
ValueError: Objective function must return a scalar
I tried with mavproxy>tools also, even there I was facing errors, (I followed this video - Demonstration of MagFit utility within MAVExplorer.py - YouTube) from official documentation.
documentation link - Refining Calibration Parameters using a Flight Log — Copter documentation
Logs -
Attitude source ATT mtypes=['GPS', 'MAG', 'ATT', 'BAT']
Extracted 54 points
Current: Vector3(-178.19, -198.93, 191.47) diag: Vector3(0.98, 1.02, 0.99) offdiag: Vector3(-0.02, -0.00, -0.00) cmot: Vector3(0.00, 0.00, 0.00) scale: 1.00
Traceback (most recent call last):
File "/home/orion/.local/lib/python2.7/site-packages/MAVProxy/modules/lib/magfit.py", line 686, in OnButton
self.callbacks[event.GetId()]()
File "/home/orion/.local/lib/python2.7/site-packages/MAVProxy/modules/lib/magfit.py", line 691, in run
magfit(self.mlog, self.timestamp_in_range)
File "/home/orion/.local/lib/python2.7/site-packages/MAVProxy/modules/lib/magfit.py", line 366, in magfit
c = fit_WWW()
File "/home/orion/.local/lib/python2.7/site-packages/MAVProxy/modules/lib/magfit.py", line 183, in fit_WWW
(p,err,iterations,imode,smode) = optimize.fmin_slsqp(wmm_error, p, bounds=bounds, full_output=True)
File "/usr/lib/python2.7/dist-packages/scipy/optimize/slsqp.py", line 207, in fmin_slsqp
constraints=cons, **opts)
File "/usr/lib/python2.7/dist-packages/scipy/optimize/slsqp.py", line 370, in _minimize_slsqp
raise ValueError("Objective function must return a scalar")
ValueError: Objective function must return a scalar
Please suggest any solutions, Thanks in advance!