Skip to content

Are the motors numbered differently in the CPP simulator drone from the Python example drone? #10

@ZmeiGorynych

Description

@ZmeiGorynych

I can only make the controls work by assuming the motors in the C++ drone are numbered like [[1,2],[3,4]], whereas the motors in the Lesson 4 - 3D Drone Full Notebook.ipyb are quite clearly numbered as [[1,2],[4,3]].

Once I make that assumption, my solution works like a charm, producing graphs for drone attitude control consistent with the README - and if I assume the numbering as in the notebook, nothing works.

Specifically, that impacts the GenerateMotorCommands function, where with the former numbering the last two lines look something like

cmd.desiredThrustsN[2] = (c_bar + p_bar - q_bar - r_bar) / 4.f;
cmd.desiredThrustsN[3] = (c_bar - p_bar - q_bar + r_bar) / 4.f;

(note the signs) and work fine, whereas in line 137 of solution.py used in the last lesson it says
omega_4 = (c_bar + p_bar - r_bar - q_bar)/4

If my understanding is correct and the numbering is indeed different, it's worth highlighting it very prominently in the README to save other people the hours of debugging I had to do to figure this out ;)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions