getLastStereoFrame:226: videoFrame err=22(Invalid argument)

Hi,

When I use “Hello, Drone” mission, with a MoveBy command from Olympe, drone’s log has lot of guidance error like :

**01-01 01:00:37.871 E guidance    (guidance-345)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)**

But I can’t find any getLastStereoFrame call in “Hello, Drone” code. Any ideas ?

Best,
Clément

Hi Clément,

In order to better understand what happens, I would need a bit more context :

  • Are you using a real drone or a simulated one on Sphinx ?
  • If you are using a simulated drone, are the stereo cameras enabled ? Could you share the content of the .drone file you are using ?
  • Did you activate obstacle avoidance ?

The function you are referring to is an internal function, outside of the mission.

Best,
Gauthier

Hi @g.rousseau,

Yes this problem is related to simulated drone on Sphinx. Here is the anafi_ai.drone I’m using :

<?xml version="1.0" encoding="UTF-8"?>
<drone name="anafi_ai" hardware="anafi2">
  <pose>default</pose>
  <wifi_iface>auto</wifi_iface>
  <wan_access>false</wan_access>
  <remote_ctrl_ip></remote_ctrl_ip>
  <int_storage_size>500MB</int_storage_size>
  <ext_storage_size>10G</ext_storage_size>

  <with_front_cam>1</with_front_cam>
  <with_gimbal>1</with_gimbal>
  <with_front_stcam>1</with_front_stcam>
  <with_depth_hil>0</with_depth_hil>
  <hil_ip>auto</hil_ip>
  <with_tracking_hil>0</with_tracking_hil>
  <photo_high_res>0</photo_high_res>
  <invisible_body>0</invisible_body>
</drone>

I don’t think I activated obstacle avoidance, should I ?

Best,
Clément

Hi Clément,

Thank you for the info. No need to activate obstacle avoidance it was just to get more context. I transmitted your issue to the Sphinx simulator team, they are currently investigating it.

Best,
Gauthier

1 Like

Hi,

Could you please provide:

  • the sphinx version you are using
  • the anafi2-pc firmware version
  • the command line you execute to run sphinx

Thanks

Hi @slekieffre,

I’m using sphinx 2.7, and anafi2-pc firmware seems to be 7.1.0.

Here is how I launch sphinx :

sphinx "/opt/parrot-sphinx/usr/share/sphinx/drones/anafi_ai.drone"::firmware="ftp://<my_username>:<my_password>@ftp2.parrot.biz/versions/anafi2/pc/%23latest/images/anafi2-pc.ext2.zip" & parrot-ue4-empty

We cannot reproduce the issue.
Could you share the python script you use to load, start the hello mission and run a moveby command?

Hi @slekieffre,

First, I used Hello mission from GitHub - Parrot-Developers/airsdk-samples, where I added the RELATIVE_MOVE_STATE in flying children state :

from fsup.missions.default.flying.stage import FLYING_STAGE as DEF_FLYING_STAGE
from fsup.missions.default.flying.manual import MANUAL_STATE
from fsup.missions.default.flying.relative_move import RELATIVE_MOVE_STATE


FLYING_STAGE = {
    "name": "flying",
    "class": DEF_FLYING_STAGE["class"],
    "initial": "manual",
    "children": [MANUAL_STATE, RELATIVE_MOVE_STATE],
}

Then, in Olympe, here is the python script I use :

from cmath import pi
import logging
import olympe
import olympe.log
import os
import pprint
import time
import math
from olympe.controller import Disconnected
from olympe.messages.ardrone3.Piloting import TakeOff, moveBy, Landing
from olympe.messages.ardrone3.PilotingState import FlyingStateChanged
from olympe.messages.common.Common import Reboot
from olympe.messages import mission, gimbal

DRONE_IP = os.environ.get("DRONE_IP", "10.202.0.1")
HELLO_MISSION_URL = os.environ.get("HELLO_MISSION_URL", "com.parrot.missions.samples.hello.tar.gz")

olympe.log.update_config({"loggers": {"olympe": {"level": "WARNING"}}})
logger = logging.getLogger("olympe")

def test_hello_mission():
    drone = olympe.Drone(DRONE_IP)
    with drone.mission.from_path(HELLO_MISSION_URL).open() as hello:

        # Install the 'hello' mission and reboot the drone
        assert drone.connect()
        assert hello.install(allow_overwrite=True)
        assert drone(Reboot() >> Disconnected()).wait()

        #Connect to the drone after reboot, load and activate the 'hello' mission
        assert drone.connect(retry=5)

        # load and activate the hello mission
        mission_activated = drone(
            mission.load(uid=hello.uid)
            >> mission.activate(uid=hello.uid)
        )
        assert mission_activated.wait(), mission_activated.explain()
 
        flyingAction = drone(
            TakeOff()
            >> FlyingStateChanged(state="hovering", _timeout=10)
        ).wait()

        flyingAction = drone(
            moveBy(0, 8, -7, 0)
            >> FlyingStateChanged(state="hovering", _timeout=25)
        ).wait()

        assert drone(Landing()).wait()
        
        assert drone.disconnect()

if __name__ == "__main__":
    test_hello_mission()

As soon a the moveBy command is sent, the drone execute the command and tons of 01-01 01:00:31.726 E guidance (guidance-352) : getLastStereoFrame:226: videoFrame err=22(Invalid argument) appears.

Hello,

I cannot reproduce the issue with your script and latest firmware version.

  1. Have you tried with the latest firmware 7.2.2 (published today)?
  2. Can you try the same command with the default mission?

Thanks,

Hi @Ronan,

This is insane … Firmware is 7.2.2 and default mission has the same problem, so it doesn’t come from hello world mission. At least we progress :smiley:

In one terminal, I launch sphinx :
sphinx "/opt/parrot-sphinx/usr/share/sphinx/drones/anafi_ai.drone"::firmware=pwd/anafi2-pc.ext2.zip

In an other one, I run parrot-ue4-empty

In the third one, I execute this python script :

import logging
import olympe
import olympe.log
import os
from olympe.controller import Disconnected
from olympe.messages.ardrone3.Piloting import TakeOff, moveBy, Landing
from olympe.messages.ardrone3.PilotingState import FlyingStateChanged

DRONE_IP = os.environ.get("DRONE_IP", "10.202.0.1")

olympe.log.update_config({"loggers": {"olympe": {"level": "WARNING"}}})
logger = logging.getLogger("olympe")

def test_hello_mission():
    drone = olympe.Drone(DRONE_IP)

    #Connect to the drone after reboot, load and activate the 'hello' mission
    assert drone.connect(retry=5)


    flyingAction = drone(
        TakeOff()
        >> FlyingStateChanged(state="hovering", _timeout=10)
    ).wait()

    flyingAction = drone(
        moveBy(2, 0, -7, 0)
        >> FlyingStateChanged(state="hovering", _timeout=25)
    ).wait()

    assert drone(Landing()).wait()
    
    assert drone.disconnect()

if __name__ == "__main__":
    test_hello_mission()

And the ULOGS are :

01-01 01:00:45.267 I             (guidance-568)                   : Obstacle avoidance disabled
01-01 01:00:45.267 N fsup.flyingstmgr(fsup-569)                   : EVT:AUTOPILOT;state='flying.relative_move';flying_state='flying';message='Autopilot.relative_move_start'
01-01 01:00:45.267 I             (guidance-568)                   : reset mode
01-01 01:00:45.267 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.286 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.316 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.346 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.366 N colibrylite (drone-controlle-287)            : EVT:COLIBRY;event='is_horizontal_steady';value='false'
01-01 01:00:45.367 I pimp_hovering(pimp-hovering-a-291)           : packages/pimp-hovering/src/pimp-hovering-control.c:110 handle stop_2d command (12)
01-01 01:00:45.367 W pimp_hovering(pimp-hovering-a-291)           : packages/pimp-hovering/src/pimp-hovering.c:444 stop is already in progress
01-01 01:00:45.376 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.406 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.436 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.436 I vipcsrc     (pimp-hovering-a-291/prhvr-src:src-614): gstvipcsrc.c:1329:gst_vipc_src_flush<prhvr-src>:vipc stopped
01-02 00:52:09.506 N vipcs       (gzserver-243669/vertical_camera-244525): vcam.sock:2.prhvr-src:src-614/vcam_raw stop
01-01 01:00:45.437 I vipcsrc     (pimp-hovering-a-291)            : gstvipcsrc.c:781:gst_vipc_src_connection_status_cb<prhvr-src>:vipc disconnected
01-01 01:00:45.437 I pimp_hovering(pimp-hovering-a-291)           : packages/pimp-hovering/src/pimp-hovering.c:719 hovering-2d-pipeline: pipeline state changed state from PLAYING to PAUSED.
01-01 01:00:45.439 I pimp_hovering(pimp-hovering-a-291)           : packages/pimp-hovering/src/pimp-hovering.c:719 hovering-2d-pipeline: pipeline state changed state from PAUSED to READY.
01-01 01:00:45.440 I pimp_hovering(pimp-hovering-a-291)           : packages/pimp-hovering/src/pimp-hovering.c:719 hovering-2d-pipeline: pipeline state changed state from READY to NULL.
01-01 01:00:45.442 I pimp_hovering(pimp-hovering-a-291)           : packages/pimp-hovering/src/pimp-hovering-control.c:508 sending event result for 2d/stop
01-01 01:00:45.465 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.496 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.526 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.556 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.585 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.610 N colibrylite (drone-controlle-287)            : EVT:COLIBRY;event='heading_ned_ned_start_update';source='magneto';value=1.569227
01-01 01:00:45.615 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.645 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.676 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.706 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.736 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.766 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.796 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.826 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.856 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.886 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.916 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.945 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:45.976 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.006 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.036 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.065 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.096 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.125 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.155 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.186 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.215 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.245 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.276 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.306 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.336 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.365 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.395 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.425 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.456 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.485 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.515 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.546 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.576 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.606 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)
01-01 01:00:46.636 E guidance    (guidance-568)                   : getLastStereoFrame:226: videoFrame err=22(Invalid argument)

OK.

What your PC configuration (GPU)?

I’m under Ubuntu 20.04.4 LTS, Quadro T1000 GPU, Intel(R) Core™ i9-9880H x86_64 CPU.

Did you carefully check this page from sphinx userguide?
https://developer.parrot.com/docs/sphinx/system_requirements.html

In particular, are you sure you are using proprietary nvidia drivers?

Hi @slekieffre,

Yes, I have nvidia-driver-470.

Here is my nvidia-smi config :

nvidia-smi
Thu May  5 10:56:31 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.103.01   Driver Version: 470.103.01   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Quadro T1000        Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   74C    P0    45W /  N/A |   3087MiB /  3911MiB |     63%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1922      G   /usr/lib/xorg/Xorg                 49MiB |
|    0   N/A  N/A      3185      G   /usr/lib/xorg/Xorg                496MiB |
|    0   N/A  N/A      3359      G   /usr/bin/gnome-shell              147MiB |
|    0   N/A  N/A     74548      G   /usr/lib/firefox/firefox          170MiB |
|    0   N/A  N/A     79099      G   evolution                         261MiB |
|    0   N/A  N/A    161687      G   ...RendererForSitePerProcess       33MiB |
|    0   N/A  N/A    176355    C+G   .../Binaries/Linux/UnrealApp     1871MiB |
|    0   N/A  N/A    176740      G   gzserver                            6MiB |
|    0   N/A  N/A    208385      G   ...RendererForSitePerProcess       35MiB |
+-----------------------------------------------------------------------------+

Best,
Clément

This topic was automatically closed after 30 days. New replies are no longer allowed.