AirSDK Connection

Hello,

I’m trying to upload the Hello mission to the the real drone, after being successful in doing it on the simulated drone on Sphinx, but I can’t seem to establish a connection between AIrSDK and the real drone when trying to airsdk install or airsdk list.

The things I’ve tried and the corresponding errors:

Connected directly to the drone Wi-Fi AP,
airsdk list:

Traceback (most recent call last):

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connection.py", line 174, in _new_conn
    conn = connection.create_connection(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/util/connection.py", line 72, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

  File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):

socket.gaierror: [Errno -2] Name or service not known


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connectionpool.py", line 703, in urlopen
    httplib_response = self._make_request(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connectionpool.py", line 398, in _make_request
    conn.request(method, url, **httplib_request_kw)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connection.py", line 239, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)

  File "/usr/lib/python3.8/http/client.py", line 1256, in request
    self._send_request(method, url, body, headers, encode_chunked)

  File "/usr/lib/python3.8/http/client.py", line 1302, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)

  File "/usr/lib/python3.8/http/client.py", line 1251, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)

  File "/usr/lib/python3.8/http/client.py", line 1011, in _send_output
    self.send(msg)

  File "/usr/lib/python3.8/http/client.py", line 951, in send
    self.connect()

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connection.py", line 205, in connect
    conn = self._new_conn()

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connection.py", line 186, in _new_conn
    raise NewConnectionError(

urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f361a245c70>: Failed to establish a new connection: [Errno -2] Name or service not known


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/adapters.py", line 489, in send
    resp = conn.urlopen(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    retries = retries.increment(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/util/retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))

urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='anafi-ai.local', port=80): Max retries exceeded with url: /api/v1/info/properties (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f361a245c70>: Failed to establish a new connection: [Errno -2] Name or service not known'))


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/usr/bin/airsdk", line 10, in <module>
    sys.exit(main())

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/airsdk_cli/main.py", line 353, in list
    mission_list = Webserver(ip=ip).list()

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/airsdk_cli/mission/webserver.py", line 22, in __init__
    resp = requests.get(f"{self.api_url}/info/properties")

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/api.py", line 73, in get
    return request("get", url, params=params, **kwargs)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/adapters.py", line 565, in send
    raise ConnectionError(e, request=request)

requests.exceptions.ConnectionError: HTTPConnectionPool(host='anafi-ai.local', port=80): Max retries exceeded with url: /api/v1/info/properties (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f361a245c70>: Failed to establish a new connection: [Errno -2] Name or service not known'))

Tried again, forcing the 192.168.42.1 IP address,

airsdk list --ip 192.168.42.1:

Traceback (most recent call last):

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connection.py", line 174, in _new_conn
    conn = connection.create_connection(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/util/connection.py", line 95, in create_connection
    raise err

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/util/connection.py", line 85, in create_connection
    sock.connect(sa)

OSError: [Errno 101] Network is unreachable


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connectionpool.py", line 703, in urlopen
    httplib_response = self._make_request(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connectionpool.py", line 398, in _make_request
    conn.request(method, url, **httplib_request_kw)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connection.py", line 239, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)

  File "/usr/lib/python3.8/http/client.py", line 1256, in request
    self._send_request(method, url, body, headers, encode_chunked)

  File "/usr/lib/python3.8/http/client.py", line 1302, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)

  File "/usr/lib/python3.8/http/client.py", line 1251, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)

  File "/usr/lib/python3.8/http/client.py", line 1011, in _send_output
    self.send(msg)

  File "/usr/lib/python3.8/http/client.py", line 951, in send
    self.connect()

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connection.py", line 205, in connect
    conn = self._new_conn()

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connection.py", line 186, in _new_conn
    raise NewConnectionError(

urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f60ef0d0c70>: Failed to establish a new connection: [Errno 101] Network is unreachable


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/adapters.py", line 489, in send
    resp = conn.urlopen(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    retries = retries.increment(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/util/retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))

urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='192.168.42.1', port=80): Max retries exceeded with url: /api/v1/info/properties (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f60ef0d0c70>: Failed to establish a new connection: [Errno 101] Network is unreachable'))


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/usr/bin/airsdk", line 10, in <module>
    sys.exit(main())

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/airsdk_cli/main.py", line 353, in list
    mission_list = Webserver(ip=ip).list()

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/airsdk_cli/mission/webserver.py", line 22, in __init__
    resp = requests.get(f"{self.api_url}/info/properties")

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/api.py", line 73, in get
    return request("get", url, params=params, **kwargs)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/adapters.py", line 565, in send
    raise ConnectionError(e, request=request)

requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.168.42.1', port=80): Max retries exceeded with url: /api/v1/info/properties (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f60ef0d0c70>: Failed to establish a new connection: [Errno 101] Network is unreachable'))

Then, I’ve also tried connecting through USB to the controller and again use airsdk list:

Traceback (most recent call last):

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connection.py", line 174, in _new_conn
    conn = connection.create_connection(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/util/connection.py", line 72, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):

  File "/usr/lib/python3.8/socket.py", line 918, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):

socket.gaierror: [Errno -2] Name or service not known


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connectionpool.py", line 703, in urlopen
    httplib_response = self._make_request(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connectionpool.py", line 398, in _make_request
    conn.request(method, url, **httplib_request_kw)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connection.py", line 239, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)

  File "/usr/lib/python3.8/http/client.py", line 1256, in request
    self._send_request(method, url, body, headers, encode_chunked)

  File "/usr/lib/python3.8/http/client.py", line 1302, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)

  File "/usr/lib/python3.8/http/client.py", line 1251, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)

  File "/usr/lib/python3.8/http/client.py", line 1011, in _send_output
    self.send(msg)

  File "/usr/lib/python3.8/http/client.py", line 951, in send
    self.connect()

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connection.py", line 205, in connect
    conn = self._new_conn()

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connection.py", line 186, in _new_conn
    raise NewConnectionError(

urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f05fe678c70>: Failed to establish a new connection: [Errno -2] Name or service not known


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/adapters.py", line 489, in send
    resp = conn.urlopen(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    retries = retries.increment(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/urllib3/util/retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))

urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='anafi-ai.local', port=80): Max retries exceeded with url: /api/v1/info/properties (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f05fe678c70>: Failed to establish a new connection: [Errno -2] Name or service not known'))


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/usr/bin/airsdk", line 10, in <module>
    sys.exit(main())

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/airsdk_cli/main.py", line 353, in list
    mission_list = Webserver(ip=ip).list()

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/airsdk_cli/mission/webserver.py", line 22, in __init__
    resp = requests.get(f"{self.api_url}/info/properties")

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/api.py", line 73, in get
    return request("get", url, params=params, **kwargs)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/requests/adapters.py", line 565, in send
    raise ConnectionError(e, request=request)

requests.exceptions.ConnectionError: HTTPConnectionPool(host='anafi-ai.local', port=80): Max retries exceeded with url: /api/v1/info/properties (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f05fe678c70>: Failed to establish a new connection: [Errno -2] Name or service not known'))

And finally trying to specify the IP of the drone,
airsdk list --ip 192.168.53.1:

Traceback (most recent call last):

  File "/usr/bin/airsdk", line 10, in <module>
    sys.exit(main())

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/airsdk_cli/main.py", line 353, in list
    mission_list = Webserver(ip=ip).list()

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.8/site-packages/airsdk_cli/mission/webserver.py", line 39, in __init__
    raise AirsdkError(f"Bad drone model {model}")

airsdk_cli.mission.common.AirsdkError: Bad drone model Skycontroller 4

So I’m wondering what’s the correct method to connect to the real drone using AirSDK? Shouldn’t AirSDK be able to identify anafi-ai.local on the drone’s Wi-Fi AP network?

I’m running firmware versions 7.5.0. Sorry for the long post and thank you for your time.

2 Likes

Hi,

Have you enabled the “Direct Connection” setting from FreeFlight?

https://developer.parrot.com/docs/webserver-api/overview.html#anafi-ai

It seems that the AirSDK documentation needs to be clarified here.

2 Likes

Ok, I connected an ios device and went to the direct connection setting through the app. It appeared as already enabled, but disabling it and enabling it again worked.

Yes, maybe some clarification about this setup is necessary.

Thank you!

2 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.