Ardupilot Software error: TypeError: 'NoneType' object is not iterable SIM_VEHICLE: Build failed SIM_VEHICLE: Killing tasks

I am trying to install Ardupilot on my windows 10 using ubuntu through the Microsoft store

Ubuntu 18.04 LTS running on windows 10
I have Xlaunch/Xming installed as well

The Ardupilot software is supposed to start as shown in the guide but it doesn’t, The world does not open but I was able to use Ardupilot the first time I installed it (picture attached) but after closing it I was not able to get it to start again hence the issue. I had no control of the copter (maybe because I didn’t install ROS Control)

Ardupilot initial successful trial:

The Ardupilot setup manual I am using :
https://ardupilot.org/dev/docs/using-gazebo-simulator-with-sitl.html

I try running the following in 1 terminal:
$ gazebo --verbose ~/ardupilot_gazebo/worlds/iris_arducopter_runway.world

System response:
Gazebo multi-robot simulator, version 9.19.0
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.

Gazebo multi-robot simulator, version 9.19.0
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.

[Msg] Waiting for master.
[Msg] Waiting for master.
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Publicized address: 192.168.43.111
[Msg] Publicized address: 192.168.43.111
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 143 (GLX)
Minor opcode of failed request: 5 (X_GLXMakeCurrent)
Serial number of failed request: 20
Current serial number in output stream: 20
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 143 (GLX)
Minor opcode of failed request: 5 (X_GLXMakeCurrent)
Serial number of failed request: 20
Current serial number in output stream: 20

Picture:

I run the following in Terminal 2:

$ cd ~/ardupilot/ArduCopter
/ardupilot/ArduCopter$ …/Tools/autotest/sim_vehicle.py -f gazebo-iris --console --map

System response:
SIM_VEHICLE: Start
SIM_VEHICLE: Killing tasks
SIM_VEHICLE: Starting up at SITL location
SIM_VEHICLE: WAF build
SIM_VEHICLE: Configure waf
SIM_VEHICLE: “/home/colinjayasekara/ardupilot/modules/waf/waf-light” “configure” “–board” “sitl”
Setting top to : /home/colinjayasekara/ardupilot
Setting out to : /home/colinjayasekara/ardupilot/build
Autoconfiguration : enabled
Setting board to : sitl
Using toolchain : native
Checking for ‘g++’ (C++ compiler) : /usr/lib/ccache/g++
Checking for ‘gcc’ (C compiler) : /usr/lib/ccache/gcc
Checking for c flags ‘-MMD’ : yes
Checking for cxx flags ‘-MMD’ : yes
CXX Compiler : g++ 7.5.0
Checking for need to link with librt : not necessary
Checking for feenableexcept : yes
Checking for HAVE_CMATH_ISFINITE : yes
Checking for HAVE_CMATH_ISINF : yes
Checking for HAVE_CMATH_ISNAN : yes
Checking for NEED_CMATH_ISFINITE_STD_NAMESPACE : yes
Checking for NEED_CMATH_ISINF_STD_NAMESPACE : yes
Checking for NEED_CMATH_ISNAN_STD_NAMESPACE : yes
Checking for header endian.h : yes
Checking for header byteswap.h : yes
Checking for HAVE_MEMRCHR : yes
Configured VSCode Intellisense: : no
Checking for program ‘python’ : /usr/bin/python
Checking for python version >= 2.7.0 : 2.7.17
Checking for program ‘python’ : /usr/bin/python
Checking for python version >= 2.7.0 : 2.7.17
Source is git repository : yes
Update submodules : yes
Checking for program ‘git’ : /usr/bin/git
Checking for program ‘size’ : /usr/bin/size
Benchmarks : disabled
Unit tests : enabled
Scripting : enabled
Scripting runtime checks : enabled
Debug build : disabled
Coverage build : disabled
SITL 32-bit build : disabled
Checking for program ‘rsync’ : /usr/bin/rsync
‘configure’ finished successfully (5.736s)
SIM_VEHICLE: Building
SIM_VEHICLE: “/home/colinjayasekara/ardupilot/modules/waf/waf-light” “build” “–target” “bin/arducopter”
Waf: Entering directory /home/colinjayasekara/ardupilot/build/sitl' Embedding file locations.txt:Tools/autotest/locations.txt Embedding file models/Callisto.json:Tools/autotest/models/Callisto.json Waf: Leaving directory /home/colinjayasekara/ardupilot/build/sitl’
Traceback (most recent call last):
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/Scripting.py”, line 158, in waf_entry_point
run_commands()
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/Scripting.py”, line 251, in run_commands
ctx = run_command(cmd_name)
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/Scripting.py”, line 235, in run_command
ctx.execute()
File “Tools/ardupilotwaf/ardupilotwaf.py”, line 202, in execute
return execute_method(self)
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/Scripting.py”, line 573, in execute
return execute_method(self)
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/Build.py”, line 231, in execute
self.execute_build()
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/Build.py”, line 251, in execute_build
self.compile()
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/Build.py”, line 345, in compile
self.producer.start()
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/Runner.py”, line 428, in start
self.refill_task_list()
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/Runner.py”, line 255, in refill_task_list
tasks = next(self.biter)
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/Build.py”, line 802, in get_build_iterator
self.post_group()
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/Build.py”, line 749, in post_group
tgpost(tg)
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/Build.py”, line 741, in tgpost
f()
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/TaskGen.py”, line 239, in post
v()
File “Tools/ardupilotwaf/mavgen.py”, line 80, in process_mavgen
inputs = self.to_nodes(self.bld.srcnode.find_node(self.source))
File “/home/colinjayasekara/ardupilot/modules/waf/waflib/TaskGen.py”, line 516, in to_nodes
for x in Utils.to_list(lst):
TypeError: ‘NoneType’ object is not iterable
SIM_VEHICLE: Build failed
SIM_VEHICLE: Killing tasks

Picture:


I have Xlaunch/Xming installed as well
Please let me know what I’m doing wrong and what I might be able to do to fix this issue permanently?

thanks.

This is usually a Python version problem, likely because 18.04 defaults to Python 2. Unless you have a compelling reason to use the older release, install 20.04 and create the build environment there.

1 Like

I have been told this before, I try to make do wtih 18.04 because it just seems like a lot of work wasted if I have to redo the entire process again on 20.04, I’ll continue trying to get it running on 18.04 since it did work which means it isn’t a full letdown. However I will switch if I exhaust all other measures.

Thank you for responding!
Much Appreciated!

While it might take a few extra minutes, depending on your internet connection, there isn’t much actual work involved in creating a new build environment. Once you have a terminal open, you only need to do the following on a new distro install:

sudo apt update
sudo apt upgrade
sudo apt install git
git clone https://github.com/ArduPilot/ardupilot.git
cd ardupilot
git submodule update --init --recursive
Tools/environment_install/install-prereqs-ubuntu.sh -y

@hwurzburg, is it possible that the note to use 16.04 or 18.04 in the wiki is leading folks astray here? Should that be updated, or is it still preferable for some reason to use the older distro releases with Gazebo?

they are mentioned because they were tested…feel free to add to the list of tested and verified environments…20.04lts comes to mind