AirSDK error while installing in real drone

Hi everyone,

I have been using the AIRSDK to install missions on the ANAFI AI. However, today i tried to build the hello mission, inside /home/user/airsdk-samples/hello, running in the real drone:

airsdk build 

And it built correctly.
After that, I tried to install the mission in the drone running:

airsdk install

But this error appears:

Error in mission.yaml file: Cannot find base SDK from path /home/jacob/airsdk-samples/hello

Do you have any clue what it can be? (It was working previously)

Thanks in advance for any help.
Regards.

1 Like

I’m having the same problem. It was working before. @ndessart ?

2 Likes

Hi,

airsdk 7.5.3 has been released with a fix for this issue.

Can you please update the parrot-airsdk-cli package and tell me if that works for you now ?
sudo apt update && sudo apt install --upgrade parrot-airsdk-cli

Thanks

1 Like

Hi,

It worked, thank you!

Regards,
Jacob

Hi @ndessart,

I can install missions on the drone. However when I try to run mission.py them, using Olympe as show in the documentation example, occurs this error Cryptodome.PublicKey.ECC.UnsupportedEccFeature: Unsupported ECC curve, the output:

2023-02-16 16:56:04,613 [INFO] 	olympe.backend - _create_pomp_loop - Creating pomp loop
2023-02-16 16:56:04,613 [INFO] 	olympe.backend - _do_create - device callbacks have been added to arsdk_ctrl
2023-02-16 16:56:04,613 [INFO] 	olympe.scheduler - _create_pomp_loop - Creating pomp loop
2023-02-16 16:56:04,617 [INFO] 	olympe.media - _create_pomp_loop - Creating pomp loop
Traceback (most recent call last):
  File "./run_mission.py", line 136, in <module>
    test_hello_mission()
  File "./run_mission.py", line 35, in test_hello_mission
    with drone.mission.from_path(HELLO_MISSION_URL).open() as hello:
  File "/home/jacob/.local/lib/python3.8/site-packages/olympe/mission.py", line 451, in open
    self._controller._open(
  File "/home/jacob/.local/lib/python3.8/site-packages/olympe/mission.py", line 305, in _open
    mission.verify()
  File "/home/jacob/.local/lib/python3.8/site-packages/olympe/mission.py", line 504, in verify
    if not self.signature.public_key.verify(final_hash, self.signature.signature):
  File "/home/jacob/.local/lib/python3.8/site-packages/olympe/mission.py", line 121, in public_key
    return PublicKey.from_der(self.pub_key_der)
  File "/home/jacob/.local/lib/python3.8/site-packages/olympe/utils/crypto.py", line 186, in from_der
    return cls.from_dict(data)
  File "/home/jacob/.local/lib/python3.8/site-packages/olympe/utils/crypto.py", line 171, in from_dict
    return dacite.from_dict(cls, data, config=_dacite_config)
  File "/home/jacob/.local/lib/python3.8/site-packages/dacite/core.py", line 87, in from_dict
    return create_instance(data_class=data_class, init_values=init_values, post_init_values=post_init_values)
  File "/home/jacob/.local/lib/python3.8/site-packages/dacite/dataclasses.py", line 25, in create_instance
    instance = data_class(**init_values)
  File "<string>", line 5, in __init__
  File "/home/jacob/.local/lib/python3.8/site-packages/olympe/utils/crypto.py", line 206, in __post_init__
    self._pycrypto_key = self._import_key(self.as_der(), key_kind=self.kind)
  File "/home/jacob/.local/lib/python3.8/site-packages/olympe/utils/crypto.py", line 231, in _import_key
    raise last_e
  File "/home/jacob/.local/lib/python3.8/site-packages/olympe/utils/crypto.py", line 228, in _import_key
    return key_type.import_key(pub_key_der)
  File "/usr/lib/python3/dist-packages/Cryptodome/PublicKey/ECC.py", line 901, in import_key
    return _import_der(encoded, passphrase)
  File "/usr/lib/python3/dist-packages/Cryptodome/PublicKey/ECC.py", line 795, in _import_der
    raise err
  File "/usr/lib/python3/dist-packages/Cryptodome/PublicKey/ECC.py", line 793, in _import_der
    return _import_subjectPublicKeyInfo(encoded, passphrase)
  File "/usr/lib/python3/dist-packages/Cryptodome/PublicKey/ECC.py", line 717, in _import_subjectPublicKeyInfo
    return _import_public_der(curve_oid, ec_point)
  File "/usr/lib/python3/dist-packages/Cryptodome/PublicKey/ECC.py", line 647, in _import_public_der
    raise UnsupportedEccFeature("Unsupported ECC curve (OID: %s)" % curve_oid)
Cryptodome.PublicKey.ECC.UnsupportedEccFeature: Unsupported ECC curve (OID: 1.3.132.0.35)
2023-02-16 16:56:04,718 [INFO] 	olympe.media - _shutdown - olympe.media shutdown
2023-02-16 16:56:04,718 [INFO] 	olympe.media - _destroy_pomp_loop - Pomp loop has been destroyed: Thread-4
2023-02-16 16:56:04,719 [INFO] 	olympe.drone - _on_device_removed - <olympe.arsdkng.cmd_itf.DisconnectedEvent object at 0x7f96b55dd4f0>
2023-02-16 16:56:04,819 [INFO] 	olympe.scheduler - _destroy_pomp_loop - Pomp loop has been destroyed: subscribers_thread
2023-02-16 16:56:04,921 [INFO] 	olympe.backend - _destroy_pomp_loop - Pomp loop has been destroyed: Thread-3

Could it be caused by the new parrot-airsdk-cli update?

Regards,
Jacob

Hi,

It seems that you don’t have Cryptodome installed in your ~/.local Python environment.
The version you’re using is provided by your distribution apt repo and may be outdated.

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