问题描述
仿真的过程我是照着这一篇来的Ardupilot之Gazebo仿真实现及控制 - 古月居
前面都是一路绿灯,但是到了
sim_vehicle.py -v ArduCopter -f gazebo-iris -m --mav10 --map --console -I0
的时候,报了下面的错误
SIM_VEHICLE: Using defaults from (ardupilot/Tools/autotest/default_params/copter.parm,ardupilot/Tools/autotest/default_params/gazebo-iris.parm)
SIM_VEHICLE: Run ArduCopter
SIM_VEHICLE: "/home/ubuntu/ardupilot/Tools/autotest/run_in_terminal_window.sh" "ArduCopter" "/home/ubuntu/ardupilot/build/sitl/bin/arducopter" "-S" "--model" "gazebo-iris" "--speedup" "1" "--slave" "0" "--defaults" "ardupilot/Tools/autotest/default_params/copter.parm,ardupilot/Tools/autotest/default_params/gazebo-iris.parm" "--sim-address=127.0.0.1" "-I0"
RiTW: Starting ArduCopter : /home/ubuntu/ardupilot/build/sitl/bin/arducopter -S --model gazebo-iris --speedup 1 --slave 0 --defaults ardupilot/Tools/autotest/default_params/copter.parm,ardupilot/Tools/autotest/default_params/gazebo-iris.parm --sim-address=127.0.0.1 -I0
SIM_VEHICLE: Run MavProxy
SIM_VEHICLE: "mavproxy.py" "--out" "127.0.0.1:14550" "--master" "tcp:127.0.0.1:5760" "--sitl" "127.0.0.1:5501" "--mav10" "--map" "--console"
Connect tcp:127.0.0.1:5760 source_system=255
waypoint module not available; use old compat modules
Traceback (most recent call last):
File "/usr/local/bin/mavproxy.py", line 1462, in <module>
mpstate.load_module(m, quiet=True)
File "/usr/local/bin/mavproxy.py", line 374, in load_module
module = m.init(mpstate, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/MAVProxy/modules/mavproxy_wp.py", line 579, in init
return WPModule(mpstate)
File "/usr/local/lib/python3.7/dist-packages/MAVProxy/modules/mavproxy_wp.py", line 19, in __init__
super(WPModule, self).__init__(mpstate, "wp", "waypoint handling", public=True)
File "/usr/local/lib/python3.7/dist-packages/MAVProxy/modules/lib/mission_item_protocol.py", line 35, in __init__
self.completions())
File "/usr/local/lib/python3.7/dist-packages/MAVProxy/modules/lib/mission_item_protocol.py", line 105, in completions
cs = self.commands()
File "/usr/local/lib/python3.7/dist-packages/MAVProxy/modules/mavproxy_wp.py", line 162, in commands
ret.update({
AttributeError: 'NoneType' object has no attribute 'update'
SIM_VEHICLE: MAVProxy exited
SIM_VEHICLE: Killing tasks
解决过程
报错里写的是“waypoint module not available; use old compat modules”,怀疑是waypoint和mavproxy版本不兼容。
于是先给waypoint降低了版本,没用。然后又给mavproxy降低到1.8.40,这个时候waypoint模块还没出生,起效果了。
具体解决代码
先在Search results · PyPI里查找mavproxy的历史版本
找到合适的版本之后
pip3.7 install mavproxy==1.8.40