Hi Pixhawk/PX4 community,
I am trying to get started with the first application (Hello Sky) on Pixhawk 4 from the PX4 docs. Developing on a windows PC, I wrote an compiled the application using the Cygwin toolchain, and successfully uploaded it to the Pixhawk.
However, I can’t get a shell to open to communicate with the Pixhawk. When I try to pip-install
pyserial The following error occurs upon the installation of the
Error: Please make sure the libxml2 and libxslt development packages are installed.
This is an issue that apparently more people have when installing
lxml on Windows. I have tried the following solutions:
When I try this for the python 3.6 version (cp36, 64bit) or any of the other wheels, it gives the error
$ pip3 install lxml-4.5.2-cp36-cp36m-win_amd64.whl ERROR: lxml-4.5.2-cp36-cp36m-win_amd64.whl is not a supported wheel on this platform.
None of the wheels in the list seem to work, maybe because of the Cygwin environment?
2. copy the
libxslt files over to the
As per these instructions, you can just dowload the libxml2 and libxslt packages from here and place the files from the
bin folder in
As the original author writes, the
libxslt packages depend on
iconv, so I also copied the contents of those packages over.
When testing their installation using
xmllint --version it does return something:
$ xmllint --version xmllint: using libxml version 20909 compiled with: Threads Tree Output Push Reader Patterns Writer SAXv1 FTP HTTP DTDValid HTML Legacy C14N Catalog XPath XPointer XInclude Iconv ISO8859X Unicode Regexps Automata Expr Schemas Schematron Modules Debug Zlib Lzma
xsltproc --version, the following error appears:
$ xsltproc --version C:/PX4/toolchain/cygwin64/bin/xsltproc.exe: error while loading shared libraries: libxml2-2.dll: cannot open shared object file: No such file or directory
This I find very strange because the file is actually there in
toolchain/cywin64/bin. Maybe I should place the files in another location?
3. run the shell outside of Cygwin
Interestingly, I can install
lxml on my local install of Python. This made me question whether I could not just open the shell outside of the Cygwin console. I therefore made a local venv, pip installed
pyserial and tried to run
Tools/mavlink_shell.py from there.
However, this script relies on the
termios package, which is only available for Unix.
By now I am out of options what to do to make the shell connection work. I hope that someone here knows how to solve this issue. Probably other developers using the Cygwin toolchain must have come across the same problems.
Thanks a lot for your help/thoughts!