2017-03-19 3 views
1

Ich versuche eine Funktion zu erstellen, um die Endeffektorposition des Roboterarms zu berechnen, indem ich numpige Arrays verwende, aber beim Ausführen des Codes auf einen Fehler stoße. Ich habe eine Funktion, die Winkel als Argumente übergibt.Numpy/Python Array Wert Fehler

def FinalPosition(angle1, angle2, angle3, angle4, angle5, angle6): 

Meine IDE ist die letzten beiden Zeilen des Arrays hervorheben:

T1 = np.array([np.cos(angle1), -np.sin(angle1)*np.cos(b1), np.sin(angle1)*np.sin(b1), a1*np.cos(angle1)], 
     [np.sin(angle1), np.cos(angle1)*np.cos(b1), -np.cos(angle1)*np.sin(b1), a1*np.sin(angle1)], 
     [0, np.sin(b1), np.cos(b1), d1], 
     [0, 0, 0, 1]) 

und der Fehler, den ich habe, ist immer:

 .............................................in FinalPosition 
[0, np.sin(b1), np.cos(b1), d1], [0, 0, 0, 1]) 
ValueError: only 2 non-keyword arguments accepted 

nicht sicher, was das Problem ist, könnte jemand erklären?

edit: die IDE hightlight über die letzten zwei Zeilen sagt dies.

Expected type 'Optional[bool]', got 'List[Union[int | TypeVar('T'), Any]]' instead less... (Ctrl+F1 Alt+T) 

Diese Überprüfung erkennt Typfehler in Funktionsaufrufausdrücken. Aufgrund des dynamischen Versands und der Duck-Typisierung ist dies in einer begrenzten, aber nützlichen Anzahl von Fällen möglich. Typen von Funktionsparametern können in Docstrings oder in Python 3-Funktionsannotationen angegeben werden.

+2

Umarmen Sie diese Listen mit einem Paar Klammern: 'np.array ([Ihre Listen])'. – ForceBru

+0

'np.array' benötigt EINE Liste, einen dtype und einige Schlüsselwortargumente. Sieht aus wie Ihre Eingabe ist mehrere Listen. – hpaulj

+0

@ForceBru haha ​​kann nicht glauben, dass ich das verpasst habe! Danke p – AnthonyT

Antwort

3

Beantwortet von @hpaulj und @ForceBru in den Kommentaren. Es fehlt ein Satz [] Klammern.

np.array([ your lists ])