text:
Python Script Errors

Now that I have the DronecodeSDK-Python simulation environment running, I have been trying some of the example scripts.  takeoff_and_land.py works.  However, I tried several of the others and they fail.  Here's two examples.
1)
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python/examples$ python3.6 mission.py
Task exception was never retrieved
future: <Task finished coro=<run() done, defined at mission.py:11> exception=TypeError('__init__() takes 10 positional arguments but 11 were given',)>
Traceback (most recent call last):
  File "mission.py", line 22, in run
    float('nan')))
TypeError: __init__() takes 10 positional arguments but 11 were given

^CTraceback (most recent call last):
  File "mission.py", line 83, in <module>
    asyncio.get_event_loop().run_until_complete(observe_is_in_air())
  File "/usr/lib/python3.6/asyncio/base_events.py", line 471, in run_until_complete
    self.run_forever()
  File "/usr/lib/python3.6/asyncio/base_events.py", line 438, in run_forever
    self._run_once()
  File "/usr/lib/python3.6/asyncio/base_events.py", line 1415, in _run_once
    event_list = self._selector.select(timeout)
  File "/usr/lib/python3.6/selectors.py", line 445, in select
    fd_event_list = self._epoll.poll(timeout, max_ev)
KeyboardInterrupt

^CError in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python3.6/concurrent/futures/thread.py", line 40, in _python_exit
    t.join()
  File "/usr/lib/python3.6/threading.py", line 1056, in join
    self._wait_for_tstate_lock()
  File "/usr/lib/python3.6/threading.py", line 1072, in _wait_for_tstate_lock
    elif lock.acquire(block, timeout):
KeyboardInterrupt

joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python/examples$ python3.6 calibration.py
-- Starting gyro calibration
Traceback (most recent call last):
  File "calibration.py", line 21, in <module>
    loop.run_until_complete(run())
  File "/usr/lib/python3.6/asyncio/base_events.py", line 484, in run_until_complete
    return future.result()
  File "calibration.py", line 13, in run
    async for progress_data in drone.calibration.calibrate_gyro():
AttributeError: 'NoneType' object has no attribute 'calibrate_gyro'

Do they fail because they have to be used in conjunction with another script?  Can I run several scripts at the same time?  Looking for an explanation so I can be prepared to start writing some mission scripts.
Thanks,
Joe

Seems to me like you are not up-to-date with the proto submodule.
If you run git status, you should see that proto appears in red as "modified". This means that you should update it:
git submodule update --recursive

Then, because the proto files have changed, you need to generate the code again, and install the SDK again.
./other/tools/run_protoc.sh
sudo pip3.6 install -e .

Notes:

./other/tools/run_protoc.sh will also appear as "modified", because you changed "python3" and "pip3" to "python3.6" and "pip3.6". That's normal on Ubuntu 16.04.
The whole process is still a bit annoying for you to use (i.e. you have to generate and install after each update), and we are working on making this better :-).

Jonas, I tried this:
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python/proto$ git status
HEAD detached at 5053b6c
nothing to commit, working directory clean

So then  did this and nothing happened:
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python/proto$ git submodule update --recursive
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python/proto$

Ran the mission.py script and this time it worked!
Is HEAD detached anything to worry about?
I didn't rerun the following, but that didn't seem to matter.
/other/tools/run_protoc.sh
sudo pip3.6 install -e .

I'm really excited to finally see a mission running on the sim, and will be getting deeper into this aspect now.
Thanks,
Joe

You would have to run git submodule update --recursive from the root of the repo, so from ~/src/DronecodeSDK/DronecodeSDK-Python.

Finally, I ran the mission.py script and this time it worked!

Hmm, I don't get how that could have happened without regenerating the correct files :thinking:. But well, why not.
Feel free to reopen if the error comes back!

Jonas, you tipped me off to something I was unaware of.  It seems that  have duplicate src/DronecodeSDK/DronecodeSDK-Python directories in both the root and home directories.  The mission.py runs from the root, but NOT from home!  This means I still have more than one clone on the system, and they have different behaviors.  So now I run jMAVSim and backend from the home directory, but then have to shift to the root directory to run the Python wrapper. Don't know how I got into this predicament, but is there any way to resolve this short of a total rebuild?
Thanks,
Joe

Quick update. I copied mission.py from the root directory into the home directory, and it worked from the home directory, so this fixed the problem.  This leads me to believe that the scripts are different.
-Joe

You should be able to remove the one in the root directory, and just update the one in the user directory. It is failing because the "proto" submodule there is not up-to-date.
You have to update your git clone in the user directory (see the instructions above), run run_protoc.sh and sudo pip3.6 install -e . again.

Update: The mission.py scripts in the $/ and $~ directories are different.  One runs and the other doesn't. I copied the "good" one into the $~ directory, renamed it mission-good.py, and it ran OK. Here it is:
#from $~src/DronecodeSDK/DronecodeSDK-Python/examples/mission-good.py

#!/usr/bin/env python3

import asyncio

from dronecode_sdk import connect as dronecode_sdk_connect
from dronecode_sdk import (MissionItem, MissionItems)

drone = dronecode_sdk_connect(host="127.0.0.1")

async def run():
    my_items = []
    my_items.append(MissionItem(47.398039859999997, 8.5455725400000002, 25, 10, True, 0, 0, MissionItem.CameraAction.NONE, 0))
    my_items.append(MissionItem(47.398036222362471, 8.5450146439425509, 25, 10, True, 0, 0, MissionItem.CameraAction.NONE, 0))
    my_items.append(MissionItem(47.397825620791885, 8.5450092830163271, 25, 10, True, 0, 0, MissionItem.CameraAction.NONE, 0))

    await drone.mission.setReturnToLaunchAfterMission(True)

    mission_items = MissionItems(my_items)
    upload_mission_status, _ = await drone.mission.uploadMission(mission_items)
    print(f"-- Upload mission: {upload_mission_status}")

    arm_status, _ = await drone.action.arm()
    print(f"-- Arm result: {arm_status}")

    start_mission_status, _ = await drone.mission.startMission()
    print(f"-- Start mission: {start_mission_status}")

async def print_mission_progress():
    async for mission_progress in drone.mission.mission_progress():
        print(f"Mission progress: {mission_progress.current_item_index}/{mission_progress.mission_count}")

async def observe_is_in_air():
    """ Monitors whether the drone is flying or not and
    returns after landing """

    was_in_air = False

    async for is_in_air in drone.telemetry.in_air():
        if is_in_air:
            was_in_air = is_in_air

        if was_in_air and not is_in_air:
            await asyncio.get_event_loop().shutdown_asyncgens()
            return

def setup_tasks():
    asyncio.ensure_future(run())
    asyncio.ensure_future(print_mission_progress())

if __name__ == "__main__":
    setup_tasks()
    asyncio.get_event_loop().run_until_complete(observe_is_in_air())

Then I edited the GPS coordinates to be my location, but it failed.  Here is the modified file and the error message.

#!/usr/bin/env python3

import asyncio

from dronecode_sdk import connect as dronecode_sdk_connect
from dronecode_sdk import (MissionItem, MissionItems)

drone = dronecode_sdk_connect(host="127.0.0.1")

async def run():
    my_items = []
    my_items.append(MissionItem(42.7122310, -71.4605572, 25, 10, True, 0, 0, MissionItem.CameraAction.NONE, 0))
    my_items.append(MissionItem(42.7122400, -71.4605580, 25, 10, True, 0, 0, MissionItem.CameraAction.NONE, 0))
#    my_items.append(MissionItem(42.7122500, -71.4605590, 25, 10, True, 0, 0, MissionItem.CameraAction.NONE, 0))
    my_items.append(MissionItem(42.7122310, -71.4605572, 25, 10, True, 0, 0, MissionItem.CameraAction.NONE, 0))

    await drone.mission.setReturnToLaunchAfterMission(True)

    mission_items = MissionItems(my_items)
    upload_mission_status, _ = await drone.mission.uploadMission(mission_items)
    print(f"-- Upload mission: {upload_mission_status}")

    arm_status, _ = await drone.action.arm()
    print(f"-- Arm result: {arm_status}")

    start_mission_status, _ = await drone.mission.startMission()
    print(f"-- Start mission: {start_mission_status}")

async def print_mission_progress():
    async for mission_progress in drone.mission.mission_progress():
        print(f"Mission progress: {mission_progress.current_item_index}/{mission_progress.mission_count}")

async def observe_is_in_air():
    """ Monitors whether the drone is flying or not and
    returns after landing """

    was_in_air = False

    async for is_in_air in drone.telemetry.in_air():
        if is_in_air:
            was_in_air = is_in_air

        if was_in_air and not is_in_air:
            await asyncio.get_event_loop().shutdown_asyncgens()
            return

def setup_tasks():
    asyncio.ensure_future(run())
    asyncio.ensure_future(print_mission_progress())

if __name__ == "__main__":
    setup_tasks()
    asyncio.get_event_loop().run_until_complete(observe_is_in_air())

This is the error message:
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python/examples$ python3.6 mission1-nh.py
Mission progress: 0/3
-- Upload mission: SUCCESS
-- Arm result: SUCCESS
-- Start mission: ERROR
^CTraceback (most recent call last):
  File "mission1-nh.py", line 58, in <module>
    asyncio.get_event_loop().run_until_complete(observe_is_in_air())
  File "/usr/lib/python3.6/asyncio/base_events.py", line 471, in run_until_complete
    self.run_forever()
  File "/usr/lib/python3.6/asyncio/base_events.py", line 438, in run_forever
    self._run_once()
  File "/usr/lib/python3.6/asyncio/base_events.py", line 1415, in _run_once
    event_list = self._selector.select(timeout)
  File "/usr/lib/python3.6/selectors.py", line 445, in select
    fd_event_list = self._epoll.poll(timeout, max_ev)
KeyboardInterrupt
^CError in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python3.6/concurrent/futures/thread.py", line 40, in _python_exit
    t.join()
  File "/usr/lib/python3.6/threading.py", line 1056, in join
    self._wait_for_tstate_lock()
  File "/usr/lib/python3.6/threading.py", line 1072, in _wait_for_tstate_lock
    elif lock.acquire(block, timeout):
KeyboardInterrupt
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python/examples$

Update: The mission.py scripts in the $/ and $~ directories are different. One runs and the other doesn't. I copied the "good" one into the $~ directory, renamed it mission-good.py, and it ran OK.

Your problem is not that the mission.py in $~ is bad, your problem is that it is outdated. The way it works is that "DronecodeSDK-Python" is a git repository, which contains a git submodule called "proto". When you update the DronecodeSDK-Python repository by running e.g. git pull, then you also need to update the submodule by running git submodule update. This is what I am explaining above.

This is the error message

I guess your problem is that your simulated drone is too far away from the waypoints you set, so the drone is refusing to fly the mission. If you had the latest version of the SDK, you would get an exception giving more details (see instructions above).

Jonas, here is the result of git status.  I don't see any reference to proto submodule.
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   examples/mission.py
	modified:   examples/takeoff_and_land.py
	modified:   examples/telemetry_takeoff_and_land.py
	modified:   other/tools/run_protoc.sh

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	dronecodesdk-python/
	examples/calibration.py
	examples/camera.py
	examples/firmware_version.py
	examples/gps_demo.py
	examples/mission-2.py
	examples/mission-good.py
	examples/mission1-nh.py
	examples/telemetry.py

no changes added to commit (use "git add" and/or "git commit -a")
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$

When I execute git pull this is the result.  Now I see reference to the proto submodule.  I am told to  move or remove these files. Some of them were copied from the /$ directory.  Not sure how to handle this.
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$ git pull
remote: Enumerating objects: 75, done.
remote: Counting objects: 100% (75/75), done.
remote: Compressing objects: 100% (38/38), done.
remote: Total 75 (delta 41), reused 65 (delta 37), pack-reused 0
Unpacking objects: 100% (75/75), done.
From https://github.com/Dronecode/DronecodeSDK-Python
   ece5a41..62a5041  master     -> origin/master
Fetching submodule proto
remote: Enumerating objects: 87, done.
remote: Counting objects: 100% (87/87), done.
remote: Compressing objects: 100% (39/39), done.
remote: Total 92 (delta 56), reused 65 (delta 44), pack-reused 5
Unpacking objects: 100% (92/92), done.
From https://github.com/Dronecode/DronecodeSDK-Proto
   8a683a9..7cf75fe  master     -> origin/master
 * [new branch]      various-fixes -> origin/various-fixes
Updating ece5a41..62a5041
error: Your local changes to the following files would be overwritten by merge:
	examples/mission.py
	examples/takeoff_and_land.py
	examples/telemetry_takeoff_and_land.py
	other/tools/run_protoc.sh
Please, commit your changes or stash them before you can merge.
error: The following untracked working tree files would be overwritten by merge:
	examples/calibration.py
	examples/camera.py
	examples/firmware_version.py
	examples/telemetry.py
Please move or remove them before you can merge.
Aborting
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$

Without doing anything about moving or removing files, I ran this with no specific message.
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$ git submodule update
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$

You'll have to forgive me but I'm not a programmer and have been following the build as if it were a cookbook procedure, and right now I know enough to be dangerous. Sorry to use up so much of your time. I will look for a tutorial on using git repositories to get familiar with how to use them.
Thanks,
Joe

No worries. We will improve the SDK installation procedure ASAP.
First, make a copy the example files you modified:

examples/mission.py
examples/takeoff_and_land.py
examples/telemetry_takeoff_and_land.py

Since you don't know git (yet), I would advise you not to edit those files but to create new ones (which you did for others like examples/camera.py and examples/mission-2.py). You could for instance copy all your examples into myexamples and work from there.
Once you have saved your work (the 3 files listed above), you can run, from ~/src/DronecodeSDK/DronecodeSDK-Python:
git add other/tools/run_protoc.sh
git commit -m "Make run_protoc.sh run with python3.6 instead of python3"
git stash
git pull --rebase
git submodule update
cd proto/pb_plugins
sudo pip3.6 install -e .
cd ../..
./other/tools/run_protoc.sh
sudo pip3.6 install -e .
python3.6 examples/mission.py

This should update the repo, install the new version of the generator plugin, generate the new SDK, install it, and then run the mission example.
Look at the output of every single one of those commands. If it fails, don't go further and paste the error message here.
Good luck ;-)

Feedback on the procedure above:  the second step failed.
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$ git add other/tools/run_protoc.sh
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$ git commit -m "Make run_protoc.sh run with python3.6 instead of python3"

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'joe-pl@joe-PL.(none)')
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$

Joe

I decided to put my email and name in and that worked.  I kept going but encountered another error.
-Joe
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$ git add other/tools/run_protoc.sh
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$ git commit -m "Make run_protoc.sh run with python3.6 instead of python3"

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'joe-pl@joe-PL.(none)')
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$ git config --global user.email "jmarrone@phasorlab.com"
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$ git config --global user.name "Joe_Marrone"
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$ git commit -m "Make run_protoc.sh run with python3.6 instead of python3"
[master 58dce81] Make run_protoc.sh run with python3.6 instead of python3
 1 file changed, 4 insertions(+), 4 deletions(-)
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$ git stash
Saved working directory and index state WIP on master: 58dce81 Make run_protoc.sh run with python3.6 instead of python3
HEAD is now at 58dce81 Make run_protoc.sh run with python3.6 instead of python3
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$ git pull --rebase
First, rewinding head to replay your work on top of it...
error: The following untracked working tree files would be overwritten by checkout:
	examples/calibration.py
	examples/camera.py
	examples/firmware_version.py
	examples/telemetry.py
Please move or remove them before you can switch branches.
Aborting
could not detach HEAD
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python$

error: The following untracked working tree files would be overwritten by checkout:
	examples/calibration.py
	examples/camera.py
	examples/firmware_version.py
	examples/telemetry.py
Please move or remove them before you can switch branches.

So you should move those files somewhere out of the repository. Like in ~/myexamples, or whatever. By mixing your code with the SDK repository, you just create conflicts for git.

Update: I went thru the steps above and everything appeared to install OK.  When I ran the mission.py example it failed.
This is the jMAVim output.
pxh> WARN  [mavlink] ERROR: wp index out of bounds
ERROR [mavlink] ERROR: wp index out of bounds
WARN  [mavlink] ERROR: wp index out of bounds
ERROR [mavlink] ERROR: wp index out of bounds
INFO  [logger] Start file log (type: full)
INFO  [logger] Opened full log file: ./log/2019-02-25/14_53_33.ulg
INFO  [logger] Start file log (type: mission)
INFO  [logger] Opened mission log file: ./mission_log/2019-02-25/14_53_33.ulg
INFO  [commander] Returning to launchhis is the
INFO  [navigator] RTL HOME activated
INFO  [logger] closed logfile, bytes written: 2948
INFO  [logger] closed logfile, bytes written: 554033

This is the mission.py output.
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python/examples$ python3.6 mission.py
-- Uploading mission
-- Arming
-- Starting mission
^CTraceback (most recent call last):
  File "mission.py", line 83, in <module>
    asyncio.get_event_loop().run_until_complete(observe_is_in_air())
  File "/usr/lib/python3.6/asyncio/base_events.py", line 471, in run_until_complete
    self.run_forever()
  File "/usr/lib/python3.6/asyncio/base_events.py", line 438, in run_forever
    self._run_once()
  File "/usr/lib/python3.6/asyncio/base_events.py", line 1415, in _run_once
    event_list = self._selector.select(timeout)
  File "/usr/lib/python3.6/selectors.py", line 445, in select
    fd_event_list = self._epoll.poll(timeout, max_ev)
KeyboardInterrupt
^CError in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python3.6/concurrent/futures/thread.py", line 40, in _python_exit
    t.join()
  File "/usr/lib/python3.6/threading.py", line 1056, in join
    self._wait_for_tstate_lock()
  File "/usr/lib/python3.6/threading.py", line 1072, in _wait_for_tstate_lock
    elif lock.acquire(block, timeout):
KeyboardInterrupt

This is the mission.py script.  This is the original script ... I didn't make any changes.
#!/usr/bin/env python3

import asyncio

from dronecode_sdk import connect as dronecode_sdk_connect
from dronecode_sdk import (MissionItem)

drone = dronecode_sdk_connect(host="127.0.0.1")

async def run():
    mission_items = []
    mission_items.append(MissionItem(47.398039859999997,
                                     8.5455725400000002,
                                     25,
                                     10,
                                     True,
                                     float('nan'),
                                     float('nan'),
                                     MissionItem.CameraAction.NONE,
                                     float('nan'),
                                     float('nan')))
    mission_items.append(MissionItem(47.398036222362471,
                                     8.5450146439425509,
                                     25,
                                     10,
                                     True,
                                     float('nan'),
                                     float('nan'),
                                     MissionItem.CameraAction.NONE,
                                     float('nan'),
                                     float('nan')))
    mission_items.append(MissionItem(47.397825620791885,
                                     8.5450092830163271,
                                     25,
                                     10,
                                     True,
                                     float('nan'),
                                     float('nan'),
                                     MissionItem.CameraAction.NONE,
                                     float('nan'),
                                     float('nan')))

    await drone.mission.set_return_to_launch_after_mission(True)

    print("-- Uploading mission")
    await drone.mission.upload_mission(mission_items)

    print("-- Arming")
    await drone.action.arm()

    print("-- Starting mission")
    await drone.mission.start_mission()

async def print_mission_progress():
    async for mission_progress in drone.mission.mission_progress():
        print(f"Mission progress: {mission_progress.current_item_index}/{mission_progress.mission_count}")

async def observe_is_in_air():
    """ Monitors whether the drone is flying or not and
    returns after landing """

    was_in_air = False

    async for is_in_air in drone.telemetry.in_air():
        if is_in_air:
            was_in_air = is_in_air

        if was_in_air and not is_in_air:
            await asyncio.get_event_loop().shutdown_asyncgens()
            return

def setup_tasks():
    asyncio.ensure_future(run())
    asyncio.ensure_future(print_mission_progress())

if __name__ == "__main__":
    setup_tasks()
    asyncio.get_event_loop().run_until_complete(observe_is_in_air())

It looks like it was working, and you interrupted it with Ctrl + C, doesn't it?
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python/examples$ python3.6 mission.py
-- Uploading mission
-- Arming
-- Starting mission
^C

Yes I did interrupt it because it stopped working at that point and the system hung up. The only way I could do anything was to ^C.  Here is what happens:
You can see the mission starting in jMAVSIM, but it almost immediately does RTL.
INFO  [logger] Start file log (type: full)
INFO  [logger] Opened full log file: ./log/2019-02-25/22_03_21.ulg
INFO  [logger] Start file log (type: mission)
INFO  [logger] Opened mission log file: ./mission_log/2019-02-25/22_03_21.ulg
INFO  [commander] Returning to launch
INFO  [navigator] RTL HOME activated
INFO  [logger] closed logfile, bytes written: 2985
INFO  [logger] closed logfile, bytes written: 549657

Same thing happens in the backend:
[05:03:21|Debug] Send mission item 0 (mission_impl.cpp:1003)
[05:03:21|Info ] Mission accepted (mission_impl.cpp:163)
[05:03:21|Debug] MAVLink: info: ARMED by arm/disarm component command (system_impl.cpp:280)
[05:03:21|Debug] MAVLink: info: [logger] file: ./log/2019-02-25/22_03_21.ulg (system_impl.cpp:280)
[05:03:21|Debug] MAVLink: info: Returning to launch (system_impl.cpp:280)
[05:03:21|Debug] MAVLink: info: RTL HOME activated (system_impl.cpp:280)
[05:03:31|Debug] MAVLink: info: DISARMED by auto disarm on land (system_impl.cpp:280)

So the Python script only goes to that point and then stops:
joe-pl@joe-PL:~$ cd src/DronecodeSDK/DronecodeSDK-Python/examples/
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python/examples$ python3.6 mission.py
-- Uploading mission
-- Arming
-- Starting mission

As I say, the only way I can get it out of this condition is to ^C.  What could be happening?
Joe

You can see the mission starting in jMAVSIM, but it almost immediately does RTL.

So it takes off?

No, it does not take off.

Do the other examples work?

The following scripts run and appear to work OK.
takeoff_and_land.py
calibration.py (but it failed magnetometer and stopped)
camera.py (but it couldn't take photo - DENIED)
firmware_version.py
telemetry_flight_mode.py
telemetry_is_armed_is_in_air.py
telemetry.py
telemetry_takeoff_and_land.py

All of the missions scripts, both the one that came with the distro and the ones I created from the "old" versions, do NOT run.  Evidantly, one of the "old" versions that once ran no linger does.
Hope this helps.
Joe

What if you only upload the mission from the SDK, open QGC and start it? Does that work?

What if you only upload the mission from the SDK, open QGC and start it? Does that work?

I open QGC and it can run a manually inputted waypoint mission.  But when I try to launch mission.py the same thing happens as before and it doesn't execute. And the QGC screen shows no movement of the drone.
On the latest attempt, jMAVSim said "waypoint index out of bounds".

Which version of the backend are you running? When you run the C++ backend, it should show you the version in the log output. Maybe it is outdated.

How do I find out the version of the backend? Here is some of the backend startup. Does this have the information?
joe-pl@joe-PL:~/src/DronecodeSDK$ ./build/default/backend/src/backend_bin
[09:49:15|Info ] DronecodeSDK version: 0.10.2 (dronecode_sdk_impl.cpp:24)
[09:49:15|Debug] New: System ID: 0 Comp ID: 0 (dronecode_sdk_impl.cpp:284)
[09:49:15|Info ] Server set to listen on 0.0.0.0:50051 (grpc_server.cpp:41)
[09:49:15|Info ] Server started (grpc_server.cpp:25)
[09:49:15|Info ] Waiting to discover system... (connection_initiator.h:57)
[09:49:15|Info ] New device on: 127.0.0.1:14580 (udp_connection.cpp:200)
[09:49:15|Debug] Component Autopilot (1) added. (system_impl.cpp:369)
[09:49:16|Debug] Discovered 1 component(s) (UUID: 5283920058631409231) (system_impl.cpp:515)
[09:49:16|Info ] System discovered [UUID: 5283920058631409231] (connection_initiator.h:61)
[09:49:59|Debug] current: -1, total: 0 (mission_impl.cpp:1078)
[09:49:59|Debug] Send mission item 0 (mission_impl.cpp:1003)
[09:49:59|Info ] Mission accepted (mission_impl.cpp:163)
[09:49:59|Debug] MAVLink: critical: ERROR: wp index out of bounds (system_impl.cpp:280)
[09:49:59|Debug] MAVLink: info: ARMED by arm/disarm component command (system_impl.cpp:280)
[09:49:59|Debug] MAVLink: critical: ERROR: wp index out of bounds (system_impl.cpp:280)
[09:49:59|Debug] MAVLink: info: Returning to launch (system_impl.cpp:280)
[09:49:59|Debug] MAVLink: info: RTL HOME activated (system_impl.cpp:280)
[09:50:09|Debug] MAVLink: info: DISARMED by auto disarm on land (system_impl.cpp:280)
[09:52:22|Debug] Send mission item 0 (mission_impl.cpp:1003)
[09:52:22|Info ] Mission accepted (mission_impl.cpp:163)
[09:52:22|Debug] MAVLink: critical: ERROR: wp index out of bounds (system_impl.cpp:280)
[09:52:22|Debug] MAVLink: critical: ERROR: wp index out of bounds (system_impl.cpp:280)
[09:52:22|Debug] MAVLink: info: ARMED by arm/disarm component command (system_impl.cpp:280)
[09:52:22|Debug] MAVLink: info: [logger] file: ./log/2019-02-25/14_52_22.ulg (system_impl.cpp:280)
[09:52:23|Debug] MAVLink: info: Returning to launch (system_impl.cpp:280)
[09:52:23|Debug] MAVLink: info: RTL HOME activated (system_impl.cpp:280)
[09:52:32|Debug] MAVLink: info: DISARMED by auto disarm on land (system_impl.cpp:280)

Another issue: I keep getting this error:
MAVLink: critical: ERROR: wp index out of bounds (system_impl.cpp:280)
Is this related to the fact that my location is different than the waypoints in the script?  Sounds like it is related to the home coordinates.
Is this a parameter that can be changed?
Joe

How do I find out the version of the backend?

The first line of the output says:

[09:49:15|Info ] DronecodeSDK version: 0.10.2 (dronecode_sdk_impl.cpp:24)

Please update to 0.14.2, either by building it or by installing the .deb available there.

I tried to rebuild DronecodeSDK as per the instructions.  When I got to the backend install it told me there is no backend_bin file.
joe-pl@joe-PL:~/src/DronecodeSDK$ sudo ldconfig
joe-pl@joe-PL:~/src/DronecodeSDK$ sudo apt-get install golang
Reading package lists... Done
Building dependency tree
Reading state information... Done
golang is already the newest version (2:1.6-1ubuntu4).
0 upgraded, 0 newly installed, 0 to remove and 52 not upgraded.
joe-pl@joe-PL:~/src/DronecodeSDK$ make BUILD_BACKEND=1
Build dir: build/default
[1/1] cd /home/joe-pl/src/DronecodeSDK/build/default && :
joe-pl@joe-PL:~/src/DronecodeSDK$ ./build/default/backend/src/backend_bin
bash: ./build/default/backend/src/backend_bin: No such file or directory
joe-pl@joe-PL:~/src/DronecodeSDK$

I searched the entire directory tree and backend_bin does not exist.  In fact, there is no backend/bin folder in the directory path any more.  Not sure what just happened.
I continue to be confused about which directory to use when installing this build.  Some of the instructions say to work from the ~/DronecodeSDK directory, and sometimes it says to install a module in the ~/src/DronecodeSDK directory.  This is easy to mess up.  So I am not sure everything is in the right place. Right now all that runs is the GUI.

I tried installing the .deb file, but there is still no backend_bin file.
joe-pl@joe-PL:~$ sudo dpkg -i ./Downloads/libdronecode-sdk-dev_0.14.2_ubuntu16.04_amd64.deb
[sudo] password for joe-pl:
Sorry, try again.
[sudo] password for joe-pl:
Selecting previously unselected package libdronecode-sdk-dev.
(Reading database ... 269009 files and directories currently installed.)
Preparing to unpack .../libdronecode-sdk-dev_0.14.2_ubuntu16.04_amd64.deb ...
Unpacking libdronecode-sdk-dev (0.14.2) ...
Setting up libdronecode-sdk-dev (0.14.2) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
joe-pl@joe-PL:~$ ls
catkin_ws                                        Public
Desktop                                          S
Documents                                        SDK_Extensions
Downloads                                        shares
DronecodeSDK                                     src
env                                              Templates
eProsima_FastCDR-1.0.7-Linux                     test_page.md
eProsima_FastRTPS-1.5.0-Linux                    ubuntu_sim_common_deps.sh
examples.desktop                                 ubuntu_sim_nuttx.sh
fib.py                                           ubuntu_sim_ros_gazebo.sh
gcc-arm-none-eabi-7-2017-q4-major                ubuntu_sim.sh
gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2  venv
Music                                            Videos
Navy STTR N19A-T019                              VirtualBox VMs
Pictures

This is the path for installing the backend, and there is no folder called backend
joe-pl@joe-PL:~/src$ cd DronecodeSDK/build/default/
joe-pl@joe-PL:~/src/DronecodeSDK/build/default$ ls
build.ninja          dronecode_sdkConfig.cmake   install_manifest.txt
CMakeCache.txt       dronecode_sdkTargets.cmake  integration_tests
CMakeFiles           gmock_main.pc               plugins
cmake_install.cmake  gmock.pc                    rules.ninja
core                 gtest_main.pc               third_party
CTestTestfile.cmake  gtest.pc                    unit_tests_runner
joe-pl@joe-PL:~/src/DronecodeSDK/build/default$

What is happening?

Oh, right, maybe it's not in the .deb. So you have to build from source:
make BUILD_BACKEND=YES

Then, if the build is successful, it will be in ./build/default/backend/src/backend_bin.

Before the .deb install, I did the standard install.  Just now I tried make BUILD_BACKEND=YES.  Still no ./build/default/backend/src/backend_bin`
Joe

make clean
make BUILD_BACKEND=YES

That worked.  Now  have to resolve the WP out of range issue.

Can you run the newly-build backend and show me the version number?
And can you try to run examples/mission.py again?

The mission.py script still does not run.  As soon as the mission is starts, it gives a RTL command.

Tthis is the latest backend build. Strangely it doesn't have the latest revision.
joe-pl@joe-PL:~$ cd src/DronecodeSDK/
joe-pl@joe-PL:~/src/DronecodeSDK$ ./build/default/backend/src/backend_bin
[05:04:28|Info ] DronecodeSDK version: 0.10.2 (dronecode_sdk_impl.cpp:24)
[05:04:28|Debug] New: System ID: 0 Comp ID: 0 (dronecode_sdk_impl.cpp:284)
[05:04:28|Info ] Server set to listen on 0.0.0.0:50051 (grpc_server.cpp:41)
[05:04:28|Info ] Server started (grpc_server.cpp:25)
[05:04:28|Info ] Waiting to discover system... (connection_initiator.h:57)
[05:04:28|Info ] New device on: 127.0.0.1:14580 (udp_connection.cpp:200)
[05:04:28|Debug] Component Autopilot (1) added. (system_impl.cpp:369)
[05:04:29|Debug] Discovered 1 component(s) (UUID: 5283920058631409231) (system_impl.cpp:515)
[05:04:29|Info ] System discovered [UUID: 5283920058631409231] (connection_initiator.h:61)

Did you run something like git pull before make BUILD_BACKEND=YES?

I did not do git pull os I did that, then ran make BUILD_BACKEND=YES again.  During this, there were many errors.  The log file is very long so I am inlcuding only th eend part where most of the errors occurred.
                          ^
../../backend/src/core/core_service_impl.h:22:28: error: ‘ConnectionStateResponse’ is not a member of ‘dronecode_sdk::rpc::core’
../../backend/src/core/core_service_impl.h:22:62: error: template argument 1 is invalid
         grpc::ServerWriter<rpc::core::ConnectionStateResponse> *writer) override
                                                              ^
../../backend/src/core/core_service_impl.h:67:38: error: ‘ConnectionStateResponse’ in namespace ‘dronecode_sdk::rpc::core’ does not name a type
     static dronecode_sdk::rpc::core::ConnectionStateResponse
                                      ^
../../backend/src/core/core_service_impl.h: In lambda function:
../../backend/src/core/core_service_impl.h:25:99: error: there are no arguments to ‘createRpcConnectionStateResponse’ that depend on a template parameter, so a declaration of ‘createRpcConnectionStateResponse’ must be available [-fpermissive]
             const auto rpc_connection_state_response = createRpcConnectionStateResponse(uuid, true);
                                                                                ^
../../backend/src/core/core_service_impl.h:25:99: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
../../backend/src/core/core_service_impl.h:26:21: error: request for member ‘Write’ in ‘writer->’, which is of non-class type ‘int’
             writer->Write(rpc_connection_state_response);
                     ^
../../backend/src/core/core_service_impl.h: In lambda function:
../../backend/src/core/core_service_impl.h:31:61: error: there are no arguments to ‘createRpcConnectionStateResponse’ that depend on a template parameter, so a declaration of ‘createRpcConnectionStateResponse’ must be available [-fpermissive]
                 createRpcConnectionStateResponse(uuid, false);
                                                             ^
../../backend/src/core/core_service_impl.h:32:21: error: request for member ‘Write’ in ‘writer->’, which is of non-class type ‘int’
             writer->Write(rpc_connection_state_response);
                     ^
In file included from backend/src/mission/mission.grpc.pb.h:7:0,
                 from ../../backend/src/plugins/mission/mission_service_impl.h:7,
                 from ../../backend/src/grpc_server.h:15,
                 from ../../backend/src/backend.cpp:7:
backend/src/mission/mission.pb.h: At global scope:
backend/src/mission/mission.pb.h:337:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:443:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:549:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:645:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:761:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:857:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:963:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:1059:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:1165:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:1268:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:1374:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:1470:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:1573:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:1669:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:1772:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:1868:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:1971:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:2067:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:2173:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:2269:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:2372:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:2475:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:2571:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:2680:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:2873:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:2983:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/mission/mission.pb.h:4028:134: error: expected class-name before ‘{’ token
 template <> struct is_proto_enum< ::dronecode_sdk::rpc::mission::MissionItem_CameraAction> : ::google::protobuf::internal::true_type {};
                                                                                ^
backend/src/mission/mission.pb.h:4033:130: error: expected class-name before ‘{’ token
 template <> struct is_proto_enum< ::dronecode_sdk::rpc::mission::MissionResult_Result> : ::google::protobuf::internal::true_type {};
                                                                                ^
In file included from ../../backend/src/grpc_server.h:15:0,
                 from ../../backend/src/backend.cpp:7:
../../backend/src/plugins/mission/mission_service_impl.h: In lambda function:
../../backend/src/plugins/mission/mission_service_impl.h:48:59: error: ‘class dronecode_sdk::rpc::mission::DownloadMissionResponse’ has no member named ‘add_mission_items’
                         auto rpc_mission_item = response->add_mission_items();
                                                           ^
../../backend/src/plugins/mission/mission_service_impl.h: In static member function ‘static void dronecode_sdk::backend::MissionServiceImpl<Mission>::translateMissionItem(std::shared_ptr<dronecode_sdk::MissionItem>, dronecode_sdk::rpc::mission::MissionItem*)’:
../../backend/src/plugins/mission/mission_service_impl.h:213:27: error: ‘class dronecode_sdk::rpc::mission::MissionItem’ has no member named ‘set_camera_photo_interval_s’
         rpc_mission_item->set_camera_photo_interval_s(mission_item->get_camera_photo_interval_s());
                           ^
../../backend/src/plugins/mission/mission_service_impl.h: In member function ‘std::vector<std::shared_ptr<dronecode_sdk::MissionItem> > dronecode_sdk::backend::MissionServiceImpl<Mission>::extractMissionItems(const dronecode_sdk::rpc::mission::UploadMissionRequest*) const’:
../../backend/src/plugins/mission/mission_service_impl.h:282:65: error: there are no arguments to ‘begin’ that depend on a template parameter, so a declaration of ‘begin’ must be available [-fpermissive]
             for (auto rpc_mission_item : request->mission_items()) {
                                                                 ^
../../backend/src/plugins/mission/mission_service_impl.h:282:65: error: there are no arguments to ‘end’ that depend on a template parameter, so a declaration of ‘end’ must be available [-fpermissive]
In file included from backend/src/telemetry/telemetry.grpc.pb.h:7:0,
                 from ../../backend/src/plugins/telemetry/telemetry_service_impl.h:4,
                 from ../../backend/src/grpc_server.h:16,
                 from ../../backend/src/backend.cpp:7:
backend/src/telemetry/telemetry.pb.h: At global scope:
backend/src/telemetry/telemetry.pb.h:405:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:501:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:607:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:703:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:809:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:905:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:1008:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:1104:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:1207:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:1303:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:1409:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:1505:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:1611:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:1707:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:1813:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:1909:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:2015:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:2111:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:2217:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:2313:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:2419:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:2515:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:2621:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:2717:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:2820:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:2916:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:3022:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:3118:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:3224:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:3348:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:3472:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:3589:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:3706:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:3816:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:3926:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:4071:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/telemetry/telemetry.pb.h:5381:119: error: expected class-name before ‘{’ token
 template <> struct is_proto_enum< ::dronecode_sdk::rpc::telemetry::FixType> : ::google::protobuf::internal::true_type {};
                                                                                ^
backend/src/telemetry/telemetry.pb.h:5386:122: error: expected class-name before ‘{’ token
 template <> struct is_proto_enum< ::dronecode_sdk::rpc::telemetry::FlightMode> : ::google::protobuf::internal::true_type {};
                                                                                ^
In file included from backend/src/info/info.grpc.pb.h:7:0,
                 from ../../backend/src/plugins/info/info_service_impl.h:2,
                 from ../../backend/src/grpc_server.h:17,
                 from ../../backend/src/backend.cpp:7:
backend/src/info/info.pb.h:149:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/info/info.pb.h:308:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/info/info.pb.h:404:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/info/info.pb.h:520:10: error: ‘PROTOBUF_CONSTEXPR’ does not name a type
   static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
          ^
backend/src/info/info.pb.h:967:124: error: expected class-name before ‘{’ token
 template <> struct is_proto_enum< ::dronecode_sdk::rpc::info::InfoResult_Result> : ::google::protobuf::internal::true_type {};
                                                                                ^
In file included from ../../backend/src/grpc_server.h:12:0,
                 from ../../backend/src/backend.cpp:7:
../../backend/src/core/core_service_impl.h: In instantiation of ‘class dronecode_sdk::backend::CoreServiceImpl<>’:
../../backend/src/grpc_server.h:49:23:   required from here
../../backend/src/core/core_service_impl.h:19:18: error: ‘grpc::Status dronecode_sdk::backend::CoreServiceImpl<DronecodeSDK>::SubscribeConnectionState(grpc::ServerContext*, const int*, int*) [with DronecodeSDK = dronecode_sdk::DronecodeSDK]’ marked ‘override’, but does not override
     grpc::Status SubscribeConnectionState(
                  ^
In file included from ../../backend/src/grpc_server.h:15:0,
                 from ../../backend/src/backend.cpp:7:
../../backend/src/plugins/mission/mission_service_impl.h: In instantiation of ‘std::vector<std::shared_ptr<dronecode_sdk::MissionItem> > dronecode_sdk::backend::MissionServiceImpl<Mission>::extractMissionItems(const dronecode_sdk::rpc::mission::UploadMissionRequest*) const [with Mission = dronecode_sdk::Mission]’:
../../backend/src/plugins/mission/mission_service_impl.h:25:55:   required from ‘grpc::Status dronecode_sdk::backend::MissionServiceImpl<Mission>::UploadMission(grpc::ServerContext*, const dronecode_sdk::rpc::mission::UploadMissionRequest*, dronecode_sdk::rpc::mission::UploadMissionResponse*) [with Mission = dronecode_sdk::Mission]’
../../backend/src/backend.cpp:54:1:   required from here
../../backend/src/plugins/mission/mission_service_impl.h:282:13: error: ‘begin’ was not declared in this scope
             for (auto rpc_mission_item : request->mission_items()) {
             ^
../../backend/src/plugins/mission/mission_service_impl.h:282:13: note: suggested alternative:
In file included from /usr/include/c++/5/string:51:0,
                 from /usr/include/c++/5/stdexcept:39,
                 from /usr/include/c++/5/array:38,
                 from /usr/include/c++/5/tuple:39,
                 from /usr/include/c++/5/functional:55,
                 from /usr/include/c++/5/memory:79,
                 from ../../backend/src/backend.h:3,
                 from ../../backend/src/backend.cpp:1:
/usr/include/c++/5/bits/range_access.h:87:5: note:   ‘std::begin’
     begin(_Tp (&__arr)[_Nm])
     ^
In file included from ../../backend/src/grpc_server.h:15:0,
                 from ../../backend/src/backend.cpp:7:
../../backend/src/plugins/mission/mission_service_impl.h:282:13: error: ‘end’ was not declared in this scope
             for (auto rpc_mission_item : request->mission_items()) {
             ^
../../backend/src/plugins/mission/mission_service_impl.h:282:13: note: suggested alternative:
In file included from /usr/include/c++/5/string:51:0,
                 from /usr/include/c++/5/stdexcept:39,
                 from /usr/include/c++/5/array:38,
                 from /usr/include/c++/5/tuple:39,
                 from /usr/include/c++/5/functional:55,
                 from /usr/include/c++/5/memory:79,
                 from ../../backend/src/backend.h:3,
                 from ../../backend/src/backend.cpp:1:
/usr/include/c++/5/bits/range_access.h:97:5: note:   ‘std::end’
     end(_Tp (&__arr)[_Nm])
     ^
ninja: build stopped: subcommand failed.
Makefile:85: recipe for target 'default' failed
make: *** [default] Error 1
joe-pl@joe-PL:~/src/DronecodeSDK$

Then I ran the backend and got this output:
joe-pl@joe-PL:~/src/DronecodeSDK$ ./build/default/backend/src/backend_bin
[09:56:31|Info ] DronecodeSDK version: 0.14.2-11-ge5d4e0e8-dirty (dronecode_sdk_impl.cpp:25)
[09:56:31|Debug] New: System ID: 0 Comp ID: 0 (dronecode_sdk_impl.cpp:285)
[09:56:31|Info ] Server set to listen on 0.0.0.0:50051 (grpc_server.cpp:41)
[09:56:31|Info ] Server started (grpc_server.cpp:25)
[09:56:31|Info ] Waiting to discover system... (connection_initiator.h:57)
[09:56:31|Info ] New system on: 127.0.0.1:14580 (udp_connection.cpp:225)
[09:56:31|Debug] Component Autopilot (1) added. (system_impl.cpp:381)
[09:56:32|Debug] Discovered 1 component(s) (UUID: 5283920058631409231) (system_impl.cpp:540)
[09:56:32|Info ] System discovered [UUID: 5283920058631409231] (connection_initiator.h:61)
[09:56:32|Debug] MAVLink: info: data link #0 lost (system_impl.cpp:292)
[09:56:32|Debug] MAVLink: emergency: Accel #0 fail:  TIMEOUT! (system_impl.cpp:292)
[09:56:32|Debug] MAVLink: emergency: Gyro #0 fail:  TIMEOUT! (system_impl.cpp:292)
[09:56:32|Debug] MAVLink: emergency: Mag #0 fail:  TIMEOUT! (system_impl.cpp:292)
[09:56:32|Debug] MAVLink: emergency: Baro #0 fail:  STALE! (system_impl.cpp:292)
[09:56:33|Debug] MAVLink: info: data link #0 regained (system_impl.cpp:292)
[09:57:08|Debug] MAVLink: info: ARMED by command line (system_impl.cpp:292)
[09:57:08|Debug] MAVLink: info: [logger] file: ./log/2019-02-27/14_57_08.ulg (system_impl.cpp:292)
[09:57:08|Debug] MAVLink: info: Using minimum takeoff altitude: 2.50 m (system_impl.cpp:292)
[09:57:09|Debug] MAVLink: info: Takeoff detected (system_impl.cpp:292)
[09:57:19|Debug] MAVLink: info: Landing at current position (system_impl.cpp:292)
[09:57:25|Debug] MAVLink: info: Landing detected (system_impl.cpp:292)
[09:57:25|Debug] MAVLink: info: DISARMED by auto disarm on land (system_impl.cpp:292)
[09:59:02|Debug] Send mission item 0 (mission_impl.cpp:1109)
[09:59:02|Info ] Mission accepted (mission_impl.cpp:164)
[09:59:02|Debug] current: -1, total: 0 (mission_impl.cpp:1188)
[09:59:02|Debug] MAVLink: info: ARMED by arm/disarm component command (system_impl.cpp:292)
[09:59:02|Debug] MAVLink: info: [logger] file: ./log/2019-02-27/14_59_02.ulg (system_impl.cpp:292)
[09:59:02|Debug] MAVLink: info: Returning to launch (system_impl.cpp:292)
[09:59:02|Debug] MAVLink: info: RTL HOME activated (system_impl.cpp:292)
[09:59:12|Debug] MAVLink: info: DISARMED by auto disarm on land (system_impl.cpp:292)

The backend does work and I can do a manual takeoff and land, but the mission.py still stops before the drone leave the ground, gives a command to RTL, and hangs up at that point.
Joe

Incidentally, the takeoff_and_land.py script worked perfectly.
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python/examples$ python3.6 takeoff_and_land.py
-- Arming
-- Taking off
-- Landing
joe-pl@joe-PL:~/src/DronecodeSDK/DronecodeSDK-Python/examples$

here is the backend log:
[10:06:30|Debug] MAVLink: info: ARMED by arm/disarm component command (system_impl.cpp:292)
[10:06:30|Debug] MAVLink: info: [logger] file: ./log/2019-02-27/15_06_30.ulg (system_impl.cpp:292)
[10:06:30|Debug] MAVLink: info: Using minimum takeoff altitude: 2.50 m (system_impl.cpp:292)
[10:06:31|Debug] MAVLink: info: Using minimum takeoff altitude: 2.50 m (system_impl.cpp:292)
[10:06:31|Debug] MAVLink: info: Takeoff detected (system_impl.cpp:292)
[10:06:35|Debug] MAVLink: info: Landing at current position (system_impl.cpp:292)
[10:06:41|Debug] MAVLink: info: Landing detected (system_impl.cpp:292)
[10:06:41|Debug] MAVLink: info: DISARMED by auto disarm on land (system_impl.cpp:292)

Joe

I don't get how you got to backend 0.14.2 while having compilation errors.
Anyway, make sure you are on tag 0.14.2 of DronecodeSDK, that the submodules are up-to-date, and that this builds without errors. Maybe you need to read a bit about git in order to achieve that.
I believe examples/mission.py doesn't work properly because you don't have the latest version of the backend (or maybe even frontend?). So that needs to be fixed.
I'm thinking that because you are not sending the full mission, and that may be due to an outdated backend:
[09:59:02|Debug] Send mission item 0 (mission_impl.cpp:1109)
[09:59:02|Info ] Mission accepted (mission_impl.cpp:164)

Jonas, at this point I'm totally lost.  it sounds like I need to do a total rebuild for the third time.
Initially I am not going to do any development work on the inner code of the sim.  What  I am really interested in is developing some Python scripts to test drone missions before flying them.  All I really need now is a functioning sim that allows me to test specific missions.  Is there any simpler way to achieve this?
Thanks for all the help.
Joe

Jonas: I did some reading about git and discovered something interesting.  There are two repos in my system.  Clearly there are differences between them.  I know this can't be good, and am wondering if this is the cause of the problems I'm running into??  IF  I have to rebuild the entire system, I want to be sure there is only ONE clone, so I have to know where to put it.  Does it go into /src/DronecodeSDK or /DronecodeSDK?
First one:
e5d4e0e cmake: fix android build and update grpc dependencies
4e8882d multiple_drones: some minor improvements
777084d udp_connection: check if entry is valid first
16e5f25 udp_connection: keep track of remotes and sysids
a16cf51 example: added example for multiple drones
joe-pl@joe-PL:**~/src/DronecodeSDK**$ git log --oneline --decorate -5
e5d4e0e (HEAD -> develop, origin/develop, origin/HEAD) cmake: fix android build and update grpc dependencies
4e8882d multiple_drones: some minor improvements
777084d udp_connection: check if entry is valid first
16e5f25 udp_connection: keep track of remotes and sysids
a16cf51 example: added example for multiple drones
joe-pl@joe-PL:~/src/DronecodeSDK$ git branch -v
* develop e5d4e0e cmake: fix android build and update grpc dependencies
  master  4a106be [ahead 2, behind 678] Remove == true
joe-pl@joe-PL:~/src/DronecodeSDK$

Second one:
joe-pl@joe-PL:**~/src/DronecodeSDK**$ git branch -v
* develop e5d4e0e cmake: fix android build and update grpc dependencies
  master  4a106be [ahead 2, behind 678] Remove == true
joe-pl@joe-PL:~/src/DronecodeSDK$ cd ~
joe-pl@joe-PL:~$ cd DronecodeSDK/
joe-pl@joe-PL:~/DronecodeSDK$ git log --oneline --decorate -5
a8ba9c1 (HEAD -> master, tag: v0.14.2, origin/master) docker: copy repo instead of cloning it from git
b51d707 docker: multi-stage backend
053a35f Docker backend service
c5ca314 cmake: fix bug in STRING REPLACE
3ca0ec9 camera: updated e90 camera_definition
joe-pl@joe-PL:**~/DronecodeSDK**$ git branch -vv
  develop e5d4e0e [origin/develop] cmake: fix android build and update grpc dependencies
* master  a8ba9c1 [origin/master] docker: copy repo instead of cloning it from git
joe-pl@joe-PL:~/DronecodeSDK$

A git repo can go wherever you want. It's just like copying source files, except that there are versioned and you can get the history of changes etc.
Having two different clones is the same as, say, writing your phd thesis in two copies of the same Word document. Say you write 100 pages in myThesis.doc, then you copy it into myThesis-final.doc, and correct things here and there in myThesis-final.doc. Then you forget that you were working on myThesis-final.doc, and work on myThesis.doc for a while. And so on and so forth. What will happen? You will end up with two similar documents, but each of them will have new stuff that you added and each of them will have old things that you corrected, but not the same ones!
That's basically what you had with Python: you showed me logs coming from the first clone, I told you how to fix them, and then you tried to run the second clone, and of course my fixes were not there (because you changed them in the first clone).
I know it is not ideal to have to build everything from source, especially if you don't know git, and we will improve that ASAP. Also building the python SDK was a bit more difficult for you because of Ubuntu 16.04 (from Ubuntu 16.10 on, you don't need to install python3.6).
Anyway, please keep only one copy of the DronecodeSDK repo, make sure it is up-to-date with something like:
git checkout v0.14.2
git submodule update

And then build it with:
make BUILD_BACKEND=YES

Jonas, what if I go to ubuntu 18.04? Would that help?
Joe

Jonas, what if I go to ubuntu 18.04? Would that help?

On the python side, it would mean that you would not have to install python3.6 and then replace all the occurences in the run_protoc.sh script.
On the c++ backend side, it would not change much. For that I am currently working on embedding the backend inside the Python SDK, but that will probably take some time.

I started a new build today, with the intent that ~/DronecodeSDK is the repository.  Everything in the process went smoothly until building the backend.  Here is the log from that sequence:
joe-pl@joe-PL:~/DronecodeSDK$ make BUILD_BACKEND=1
Build dir: build/default
ninja: no work to do.
joe-pl@joe-PL:~/DronecodeSDK$ ls
appveyor.yml       cmake               debug_helpers  external_example                       install            Makefile       start_px4_sitl.sh
backend            CMakeLists.txt      docker         fix_style.sh                           integration_tests  plugins        stop_px4_sitl.sh
build              core                DronecodeSDK   generate_docs.sh                       iOS.cmake          README.md      third_party
ci-git-release.sh  create_packages.sh  example        generate_markdown_from_doxygen_xml.py  LICENSE.md         run-docker.sh  travis-docker-build.sh

joe-pl@joe-PL:~/DronecodeSDK$ ./build/default/backend/src/backend_bin
bash: ./build/default/backend/src/backend_bin: No such file or directory
joe-pl@joe-PL:~/DronecodeSDK$ git checkout v0.14.2
Note: checking out 'v0.14.2'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at a8ba9c1... docker: copy repo instead of cloning it from git
joe-pl@joe-PL:~/DronecodeSDK$ git submodule update
joe-pl@joe-PL:~/DronecodeSDK$ make BUILD_BACKEND=YES
Build dir: build/default
[1/1] Re-running CMake...
-- Version: 0.14.2
-- Include MAVLink passthrough plugin
-- BUILD_BACKEND not set: not building grpc backend
-- Configuring done
-- Generating done
-- Build files have been written to: /home/joe-pl/DronecodeSDK/build/default
[128/128] Linking CXX executable integration_tests/integration_tests_runner
joe-pl@joe-PL:~/DronecodeSDK$ ./build/default/backend/src/backend_bin
bash: ./build/default/backend/src/backend_bin: No such file or directory
joe-pl@joe-PL:~/DronecodeSDK$

There is no build/default/backend/ directory.  This never happened before, so not sure why.

-- BUILD_BACKEND not set: not building grpc backend

This means that make had been called before, so BUILD_BACKEND is set to "NO". Can you try to make clean before running make BUILD_BACKEND=YES?

I did make clean and make BUILD_BACKEND=YES. But it did not complete.  At step 212 it started to throw errors.
[212/213] Building CXX object backend/test/CMakeFi...nit_tests_backend.dir/info_service_impl_test.cpp.o
FAILED: /usr/bin/c++   -DCARES_STATICLIB -DDRONECODE_SDK_VERSION=\"0.14.2-11-ge5d4e0e8\" -DLINUX -D_CRT_SECURE_NO_WARNINGS -isystem ../../third_party/tinyxml2 -I../../third_party/zlib -I../../core -I../../third_party/mavlink/include -I../../backend/test/../src -I../../backend/test/../src/plugins -I../../plugins -Ibackend/src -I../../ -I../../core/include -I../../core/include/dronecode_sdk -I../../plugins/action/include -I../../plugins/calibration/include -I../../plugins/camera/include -I../../plugins/mission/include -I../../plugins/mission/third_party/json11 -I../../plugins/telemetry/include -I../../plugins/info/include -isystem third_party/grpc/include -isystem third_party/boringssl/install -isystem third_party/protobuf/include -isystem third_party/cares/include -isystem ../../third_party/gtest/googletest/include -isystem ../../third_party/gtest/googletest -isystem ../../third_party/gtest/googlemock/include -isystem ../../third_party/gtest/googlemock -g -DDEBUG   -fno-exceptions -Wall -Wextra -Werror -Wshadow -Wno-strict-aliasing -Wold-style-cast -Wdouble-promotion -Wformat=2 -Weffc++ -Wlogical-op -Wno-old-style-cast -pthread -std=gnu++11 -MMD -MT backend/test/CMakeFiles/unit_tests_backend.dir/info_service_impl_test.cpp.o -MF backend/test/CMakeFiles/unit_tests_backend.dir/info_service_impl_test.cpp.o.d -o backend/test/CMakeFiles/unit_tests_backend.dir/info_service_impl_test.cpp.o -c ../../backend/test/info_service_impl_test.cpp
In file included from ../../backend/test/../src/plugins/info/info_service_impl.h:2:0,
                 from ../../backend/test/info_service_impl_test.cpp:6:
backend/src/info/info.grpc.pb.h:69:11: error: ‘class dronecode_sdk::rpc::info::InfoService::Stub::experimental_async’ has pointer data members [-Werror=effc++]
     class experimental_async final :
           ^
backend/src/info/info.grpc.pb.h:69:11: error:   but does not override ‘dronecode_sdk::rpc::info::InfoService::Stub::experimental_async(const dronecode_sdk::rpc::info::InfoService::Stub::experimental_async&)’ [-Werror=effc++]
backend/src/info/info.grpc.pb.h:69:11: error:   or ‘operator=(const dronecode_sdk::rpc::info::InfoService::Stub::experimental_async&)’ [-Werror=effc++]
cc1plus: all warnings being treated as errors
[212/213] Building CXX object backend/test/CMakeFi...nit_tests_backend.dir/core_service_impl_test.cpp.o
FAILED: /usr/bin/c++   -DCARES_STATICLIB -DDRONECODE_SDK_VERSION=\"0.14.2-11-ge5d4e0e8\" -DLINUX -D_CRT_SECURE_NO_WARNINGS -isystem ../../third_party/tinyxml2 -I../../third_party/zlib -I../../core -I../../third_party/mavlink/include -I../../backend/test/../src -I../../backend/test/../src/plugins -I../../plugins -Ibackend/src -I../../ -I../../core/include -I../../core/include/dronecode_sdk -I../../plugins/action/include -I../../plugins/calibration/include -I../../plugins/camera/include -I../../plugins/mission/include -I../../plugins/mission/third_party/json11 -I../../plugins/telemetry/include -I../../plugins/info/include -isystem third_party/grpc/include -isystem third_party/boringssl/install -isystem third_party/protobuf/include -isystem third_party/cares/include -isystem ../../third_party/gtest/googletest/include -isystem ../../third_party/gtest/googletest -isystem ../../third_party/gtest/googlemock/include -isystem ../../third_party/gtest/googlemock -g -DDEBUG   -fno-exceptions -Wall -Wextra -Werror -Wshadow -Wno-strict-aliasing -Wold-style-cast -Wdouble-promotion -Wformat=2 -Weffc++ -Wlogical-op -Wno-old-style-cast -pthread -std=gnu++11 -MMD -MT backend/test/CMakeFiles/unit_tests_backend.dir/core_service_impl_test.cpp.o -MF backend/test/CMakeFiles/unit_tests_backend.dir/core_service_impl_test.cpp.o.d -o backend/test/CMakeFiles/unit_tests_backend.dir/core_service_impl_test.cpp.o -c ../../backend/test/core_service_impl_test.cpp
In file included from ../../backend/test/../src/core/core_service_impl.h:4:0,
                 from ../../backend/test/core_service_impl_test.cpp:9:
backend/src/core/core.grpc.pb.h:91:11: error: ‘class dronecode_sdk::rpc::core::CoreService::Stub::experimental_async’ has pointer data members [-Werror=effc++]
     class experimental_async final :
           ^
backend/src/core/core.grpc.pb.h:91:11: error:   but does not override ‘dronecode_sdk::rpc::core::CoreService::Stub::experimental_async(const dronecode_sdk::rpc::core::CoreService::Stub::experimental_async&)’ [-Werror=effc++]
backend/src/core/core.grpc.pb.h:91:11: error:   or ‘operator=(const dronecode_sdk::rpc::core::CoreService::Stub::experimental_async&)’ [-Werror=effc++]
cc1plus: all warnings being treated as errors
[212/213] Building CXX object backend/test/CMakeFi...t_tests_backend.dir/action_service_impl_test.cpp.o
FAILED: /usr/bin/c++   -DCARES_STATICLIB -DDRONECODE_SDK_VERSION=\"0.14.2-11-ge5d4e0e8\" -DLINUX -D_CRT_SECURE_NO_WARNINGS -isystem ../../third_party/tinyxml2 -I../../third_party/zlib -I../../core -I../../third_party/mavlink/include -I../../backend/test/../src -I../../backend/test/../src/plugins -I../../plugins -Ibackend/src -I../../ -I../../core/include -I../../core/include/dronecode_sdk -I../../plugins/action/include -I../../plugins/calibration/include -I../../plugins/camera/include -I../../plugins/mission/include -I../../plugins/mission/third_party/json11 -I../../plugins/telemetry/include -I../../plugins/info/include -isystem third_party/grpc/include -isystem third_party/boringssl/install -isystem third_party/protobuf/include -isystem third_party/cares/include -isystem ../../third_party/gtest/googletest/include -isystem ../../third_party/gtest/googletest -isystem ../../third_party/gtest/googlemock/include -isystem ../../third_party/gtest/googlemock -g -DDEBUG   -fno-exceptions -Wall -Wextra -Werror -Wshadow -Wno-strict-aliasing -Wold-style-cast -Wdouble-promotion -Wformat=2 -Weffc++ -Wlogical-op -Wno-old-style-cast -pthread -std=gnu++11 -MMD -MT backend/test/CMakeFiles/unit_tests_backend.dir/action_service_impl_test.cpp.o -MF backend/test/CMakeFiles/unit_tests_backend.dir/action_service_impl_test.cpp.o.d -o backend/test/CMakeFiles/unit_tests_backend.dir/action_service_impl_test.cpp.o -c ../../backend/test/action_service_impl_test.cpp
In file included from ../../backend/test/../src/plugins/action/action_service_impl.h:2:0,
                 from ../../backend/test/action_service_impl_test.cpp:6:
backend/src/action/action.grpc.pb.h:290:11: error: ‘class dronecode_sdk::rpc::action::ActionService::Stub::experimental_async’ has pointer data members [-Werror=effc++]
     class experimental_async final :
           ^
backend/src/action/action.grpc.pb.h:290:11: error:   but does not override ‘dronecode_sdk::rpc::action::ActionService::Stub::experimental_async(const dronecode_sdk::rpc::action::ActionService::Stub::experimental_async&)’ [-Werror=effc++]
backend/src/action/action.grpc.pb.h:290:11: error:   or ‘operator=(const dronecode_sdk::rpc::action::ActionService::Stub::experimental_async&)’ [-Werror=effc++]
cc1plus: all warnings being treated as errors
[212/213] Building CXX object backend/test/CMakeFi..._tests_backend.dir/mission_service_impl_test.cpp.o
FAILED: /usr/bin/c++   -DCARES_STATICLIB -DDRONECODE_SDK_VERSION=\"0.14.2-11-ge5d4e0e8\" -DLINUX -D_CRT_SECURE_NO_WARNINGS -isystem ../../third_party/tinyxml2 -I../../third_party/zlib -I../../core -I../../third_party/mavlink/include -I../../backend/test/../src -I../../backend/test/../src/plugins -I../../plugins -Ibackend/src -I../../ -I../../core/include -I../../core/include/dronecode_sdk -I../../plugins/action/include -I../../plugins/calibration/include -I../../plugins/camera/include -I../../plugins/mission/include -I../../plugins/mission/third_party/json11 -I../../plugins/telemetry/include -I../../plugins/info/include -isystem third_party/grpc/include -isystem third_party/boringssl/install -isystem third_party/protobuf/include -isystem third_party/cares/include -isystem ../../third_party/gtest/googletest/include -isystem ../../third_party/gtest/googletest -isystem ../../third_party/gtest/googlemock/include -isystem ../../third_party/gtest/googlemock -g -DDEBUG   -fno-exceptions -Wall -Wextra -Werror -Wshadow -Wno-strict-aliasing -Wold-style-cast -Wdouble-promotion -Wformat=2 -Weffc++ -Wlogical-op -Wno-old-style-cast -pthread -std=gnu++11 -MMD -MT backend/test/CMakeFiles/unit_tests_backend.dir/mission_service_impl_test.cpp.o -MF backend/test/CMakeFiles/unit_tests_backend.dir/mission_service_impl_test.cpp.o.d -o backend/test/CMakeFiles/unit_tests_backend.dir/mission_service_impl_test.cpp.o -c ../../backend/test/mission_service_impl_test.cpp
In file included from ../../backend/test/../src/plugins/mission/mission_service_impl.h:7:0,
                 from ../../backend/test/mission_service_impl_test.cpp:10:
backend/src/mission/mission.grpc.pb.h:210:11: error: ‘class dronecode_sdk::rpc::mission::MissionService::Stub::experimental_async’ has pointer data members [-Werror=effc++]
     class experimental_async final :
           ^
backend/src/mission/mission.grpc.pb.h:210:11: error:   but does not override ‘dronecode_sdk::rpc::mission::MissionService::Stub::experimental_async(const dronecode_sdk::rpc::mission::MissionService::Stub::experimental_async&)’ [-Werror=effc++]
backend/src/mission/mission.grpc.pb.h:210:11: error:   or ‘operator=(const dronecode_sdk::rpc::mission::MissionService::Stub::experimental_async&)’ [-Werror=effc++]
cc1plus: all warnings being treated as errors
[212/213] Building CXX object backend/test/CMakeFi...t_tests_backend.dir/camera_service_impl_test.cpp.o
FAILED: /usr/bin/c++   -DCARES_STATICLIB -DDRONECODE_SDK_VERSION=\"0.14.2-11-ge5d4e0e8\" -DLINUX -D_CRT_SECURE_NO_WARNINGS -isystem ../../third_party/tinyxml2 -I../../third_party/zlib -I../../core -I../../third_party/mavlink/include -I../../backend/test/../src -I../../backend/test/../src/plugins -I../../plugins -Ibackend/src -I../../ -I../../core/include -I../../core/include/dronecode_sdk -I../../plugins/action/include -I../../plugins/calibration/include -I../../plugins/camera/include -I../../plugins/mission/include -I../../plugins/mission/third_party/json11 -I../../plugins/telemetry/include -I../../plugins/info/include -isystem third_party/grpc/include -isystem third_party/boringssl/install -isystem third_party/protobuf/include -isystem third_party/cares/include -isystem ../../third_party/gtest/googletest/include -isystem ../../third_party/gtest/googletest -isystem ../../third_party/gtest/googlemock/include -isystem ../../third_party/gtest/googlemock -g -DDEBUG   -fno-exceptions -Wall -Wextra -Werror -Wshadow -Wno-strict-aliasing -Wold-style-cast -Wdouble-promotion -Wformat=2 -Weffc++ -Wlogical-op -Wno-old-style-cast -pthread -std=gnu++11 -MMD -MT backend/test/CMakeFiles/unit_tests_backend.dir/camera_service_impl_test.cpp.o -MF backend/test/CMakeFiles/unit_tests_backend.dir/camera_service_impl_test.cpp.o.d -o backend/test/CMakeFiles/unit_tests_backend.dir/camera_service_impl_test.cpp.o -c ../../backend/test/camera_service_impl_test.cpp
In file included from ../../backend/test/../src/plugins/camera/camera_service_impl.h:4:0,
                 from ../../backend/test/camera_service_impl_test.cpp:9:
backend/src/camera/camera.grpc.pb.h:354:11: error: ‘class dronecode_sdk::rpc::camera::CameraService::Stub::experimental_async’ has pointer data members [-Werror=effc++]
     class experimental_async final :
           ^
backend/src/camera/camera.grpc.pb.h:354:11: error:   but does not override ‘dronecode_sdk::rpc::camera::CameraService::Stub::experimental_async(const dronecode_sdk::rpc::camera::CameraService::Stub::experimental_async&)’ [-Werror=effc++]
backend/src/camera/camera.grpc.pb.h:354:11: error:   or ‘operator=(const dronecode_sdk::rpc::camera::CameraService::Stub::experimental_async&)’ [-Werror=effc++]
cc1plus: all warnings being treated as errors
[212/213] Building CXX object backend/test/CMakeFi...ests_backend.dir/telemetry_service_impl_test.cpp.o
FAILED: /usr/bin/c++   -DCARES_STATICLIB -DDRONECODE_SDK_VERSION=\"0.14.2-11-ge5d4e0e8\" -DLINUX -D_CRT_SECURE_NO_WARNINGS -isystem ../../third_party/tinyxml2 -I../../third_party/zlib -I../../core -I../../third_party/mavlink/include -I../../backend/test/../src -I../../backend/test/../src/plugins -I../../plugins -Ibackend/src -I../../ -I../../core/include -I../../core/include/dronecode_sdk -I../../plugins/action/include -I../../plugins/calibration/include -I../../plugins/camera/include -I../../plugins/mission/include -I../../plugins/mission/third_party/json11 -I../../plugins/telemetry/include -I../../plugins/info/include -isystem third_party/grpc/include -isystem third_party/boringssl/install -isystem third_party/protobuf/include -isystem third_party/cares/include -isystem ../../third_party/gtest/googletest/include -isystem ../../third_party/gtest/googletest -isystem ../../third_party/gtest/googlemock/include -isystem ../../third_party/gtest/googlemock -g -DDEBUG   -fno-exceptions -Wall -Wextra -Werror -Wshadow -Wno-strict-aliasing -Wold-style-cast -Wdouble-promotion -Wformat=2 -Weffc++ -Wlogical-op -Wno-old-style-cast -pthread -std=gnu++11 -MMD -MT backend/test/CMakeFiles/unit_tests_backend.dir/telemetry_service_impl_test.cpp.o -MF backend/test/CMakeFiles/unit_tests_backend.dir/telemetry_service_impl_test.cpp.o.d -o backend/test/CMakeFiles/unit_tests_backend.dir/telemetry_service_impl_test.cpp.o -c ../../backend/test/telemetry_service_impl_test.cpp
In file included from ../../backend/test/../src/plugins/telemetry/telemetry_service_impl.h:4:0,
                 from ../../backend/test/telemetry_service_impl_test.cpp:11:
backend/src/telemetry/telemetry.grpc.pb.h:360:11: error: ‘class dronecode_sdk::rpc::telemetry::TelemetryService::Stub::experimental_async’ has pointer data members [-Werror=effc++]
     class experimental_async final :
           ^
backend/src/telemetry/telemetry.grpc.pb.h:360:11: error:   but does not override ‘dronecode_sdk::rpc::telemetry::TelemetryService::Stub::experimental_async(const dronecode_sdk::rpc::telemetry::TelemetryService::Stub::experimental_async&)’ [-Werror=effc++]
backend/src/telemetry/telemetry.grpc.pb.h:360:11: error:   or ‘operator=(const dronecode_sdk::rpc::telemetry::TelemetryService::Stub::experimental_async&)’ [-Werror=effc++]
cc1plus: all warnings being treated as errors
ninja: build stopped: subcommand failed.
Makefile:85: recipe for target 'default' failed
make: *** [default] Error 1
joe-pl@joe-PL:~/DronecodeSDK$

However, the file ./build/default/backend/src/backend_bin is now there.  I ran it and the backend did install.  Then  could see the backend working for manual takeoffs.  Then I tried to install the Python wrapper with
git clone https://github.com/Dronecode/DronecodeSDK-Python --recursive
But that failed.  Seems that  am now getting the Keyerror: Action error once again.
Cloning into 'DronecodeSDK-Python'...
remote: Enumerating objects: 92, done.
remote: Counting objects: 100% (92/92), done.
remote: Compressing objects: 100% (50/50), done.
remote: Total 648 (delta 47), reused 77 (delta 42), pack-reused 556
Receiving objects: 100% (648/648), 109.68 KiB | 0 bytes/s, done.
Resolving deltas: 100% (320/320), done.
Checking connectivity... done.
Submodule 'proto' (https://github.com/Dronecode/DronecodeSDK-Proto.git) registered for path 'proto'
Cloning into 'proto'...
remote: Enumerating objects: 818, done.
remote: Total 818 (delta 0), reused 0 (delta 0), pack-reused 818
Receiving objects: 100% (818/818), 113.68 KiB | 0 bytes/s, done.
Resolving deltas: 100% (464/464), done.
Checking connectivity... done.
Submodule path 'proto': checked out 'a54b353d73ff8d6e36c716b5278990e0f8cb770c'

joe-pl@joe-PL:~/DronecodeSDK$ cd DronecodeSDK-Python/
joe-pl@joe-PL:~/DronecodeSDK/DronecodeSDK-Python$ cd examples/
joe-pl@joe-PL:~/DronecodeSDK/DronecodeSDK-Python/examples$ python3.6 takeoff_and_land.py
Traceback (most recent call last):
  File "takeoff_and_land.py", line 7, in <module>
    drone = dronecode_sdk_connect(host="127.0.0.1")
  File "/home/joe-pl/DronecodeSDK/DronecodeSDK-Python/dronecode_sdk/__init__.py", line 51, in connect
    globals()[plugin](plugin_manager)
KeyError: 'Action'
joe-pl@joe-PL:~/DronecodeSDK/DronecodeSDK-Python/examples$

What now??

UPDATE:  Sorry, I jumped the gun and did not complete the Python install, hence the errors.  I realized that
pip3 install -r requirements -r requirements-dev.txt and ./other/tools/run_protoc.sh had not been installed, and when they were, viola, the sim ran and mission.py ran!
But I'm still wondering about the errors in the BUILD_BACKEND=YES install.

So now it works, even though there was a compilation error while building the backend. Is that correct?

Yes.  The mission.py script did run successfully despite the error messages from the last backend build.
Joe

authors: JonasVautherin joe-marrone

repo: Dronecode/DronecodeSDK-Python


text:
Warning in log: "Cannot handle vaccination data of Germany for ..."

Describe the bug
got several warnings in the logs, e.g.:

Cannot handle vaccination data of Germany for Totals from RKI, if this error continues please report a bug to the developer! Totals: {"":0,"_1":"Gesamt","Gesamtzahl bisher verabreichter Impfungen":89387257,"Gesamtzahl mindestens einmal geimpft* ":50643772,"Gesamtzahl vollständig geimpft*":41073682,"Impfquote mindestens einmal geimpft ":60.9,"_2":18.4,"_3":61,"_4":84.8,"Impfquote vollständig geimpft ":49.4,"_5":7.8,"_6":48.8,"_7":77.5,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0}

Cannot handle vaccination data of Germany for Thüringen from RKI, if this errors continues please report a bug to the developed! Bundesland : {"":16,"_1":"Thüringen","Gesamtzahl bisher verabreichter Impfungen":2163728,"Gesamtzahl mindestens einmal geimpft* ":1174064,"Gesamtzahl vollständig geimpft*":1034982,"Impfquote mindestens einmal geimpft ":55,"_2":14.8,"_3":51.1,"_4":78.5,"Impfquote vollständig geimpft ":48.5,"_5":10.9,"_6":45.3,"_7":73.2,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0}

Cannot handle vaccination data of Germany for Nordrhein-Westfalen from RKI, if this errors continues please report a bug to the developed! Bundesland : {"":"05","_1":"Nordrhein-Westfalen","Gesamtzahl bisher verabreichter Impfungen":20198566,"Gesamtzahl mindestens einmal geimpft* ":11522493,"Gesamtzahl vollständig geimpft*":9249100,"Impfquote mindestens einmal geimpft ":64.2,"_2":19.7,"_3":64.7,"_4":88.5,"Impfquote vollständig geimpft ":51.5,"_5":7.7,"_6":51.6,"_7":80.8,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0}
To Reproduce
adapter is just running and refreshing data from source.
Expected behavior
Screenshots & Logfiles
Versions:

Adapter version: v 0.7.1
JS-Controller version: 3.3.14
Node version: 12.22.2
Operating system: x86_64 GNU/Linux

Additional context
Add any other context about the problem here.

`

coronavirus-statistics.0
2021-07-27 08:00:10.672
warn
(21030) Cannot handle vaccination data of Germany for Totals from RKI, if this error continues please report a bug to the developer! Totals: {"":0,"_1":"Gesamt","Gesamtzahl bisher verabreichter Impfu

coronavirus-statistics.0
2021-07-27 08:00:10.616
warn
(21030) Cannot handle vaccination data of Germany for Thüringen from RKI, if this errors continues please report a bug to the developed! Bundesland : {"":16,"_1":"Thüringen","Gesamtzahl bisher verabr

coronavirus-statistics.0
2021-07-27 08:00:10.544
warn
(21030) Cannot handle vaccination data of Germany for Baden-Württemberg from RKI, if this errors continues please report a bug to the developed! Bundesland : {"":"08","_1":"Baden-Württemberg","Gesamt

`

Can you please fix this?

warn
Cannot handle vaccination data of Germany for Totals from RKI, if this error continues please report a bug to the developer! Totals: {"":0,"_1":"Gesamt","Gesamtzahl bisher verabreichter Impfungen":92700668,"Gesamtzahl mindestens einmal geimpft* ":51423707,"Gesamtzahl vollständig geimpft*":43708441,"Impfquote mindestens einmal geimpft ":61.8,"_2":20.7,"_3":62.2,"_4":85.2,"Impfquote vollständig geimpft ":52.6,"_5":10.1,"_6":53.2,"_7":79.8,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0}

Thanks in advance,
Torsten

Hey @DutchmanNL,
any ideas?
regards,
Tobias

Hey @DutchmanNL,
any ideas?
regards,
Tobias

please test 0.8.0-1 :)

Hi DutchmanNL,
gerade ausprobiert. Die 0.8.0-1 holt die aktuelle Impfdaten (Debug Log Zeile 5784-5796 für BW und 5941-5950 für BRD) aber er schreibt Sie nur im Bundesland (bei mir BW) in die ObjektID rein, nicht aber für Deutschland. Die Daten sind noch vom 23.07.21
iobroker.2021-08-11_corona.log

Danke für Deine Bemühungen.

Die gesamt Daten fuer DE werden aus einer anderen API gezogen und befinden sich unter Vaccination.
Nur die bundeslaender kommen direkt vom RKI Datensatz, der ordner _Impfungen unter Deutschland wird nicht mehr benutzt

Danke. Gefunden und geht 👍

dan mache ich hier mal zu :)

source: gharchive/issue

authors: DutchmanNL Maj0rT TbsBrggng vaaarg

license: MIT

license_type: permissive

license_source: github-api