Ausdruck Feld
In einem Ausdrucksfeld können Sie nicht nur eine Zahl, sondern einen mathematischen Ausdruck eingeben. Die RobFlow-Konvention für diese Ausdrücke entspricht der Programmiersprache Python.
Grundlegende mathematische Operationen:
- Plus: +
- Minus: -
- Multiplikation: *
- Division: /
Logische Operatoren:
- UND: and
- ODER: oder
- Gleich: ==
- Nicht gleich: !=
Variablen
- Um eine Variable einzufügen, drücken Sie einfach # im Ausdrucksfeld, woraufhin ein Menü erscheint, in dem Sie die gewünschte Variable mit einem einfachen Klick auswählen können.
Sie können einfach weiter tippen, um die Variablenliste nach Variablennamen zu filtern. Wenn Sie die Variablen so lange filtern, bis nur noch eine übrig ist, können Sie diese auch durch Drücken der Eingabetaste übernehmen.
Die Variable wird in ihrer jeweiligen Farbe angezeigt, z. B.myVariable.

JSON:
- Sie können JSON-Daten in einer String-Variablen speichern. Dies ermöglicht Ihnen den direkten Zugriff auf strukturierte oder verschachtelte Daten innerhalb von Ausdrücken.
- Um auf Werte innerhalb des JSON zuzugreifen, verwenden Sie die Klammernotation – ähnlich wie beim Zugriff auf Daten in Python.
Beispiel:myVariable["key0"]["key1"]greift auf den verschachtelten Wert unterkey1innerhalb vonkey0zu. - Wenn es sich bei dem Element um ein Array handelt, können Sie auch numerische Indizes verwenden, um auf Elemente zuzugreifen.
Beispiel:myVariable["users"][0]["name"]gibt denNamendes ersten Elements im Array„users“zurück.
Erweiterte mathematische Funktionen (siehe Python-Mathematikfunktionen für Details):
'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'cbrt', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'erf', 'erfc', 'exp', 'exp2', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log1p', 'log10', 'log2', 'modf', 'pow', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'prod', 'sumprod', 'perm', 'comb', 'nextafter', 'ulp', 'pi', 'e', 'tau', 'inf', 'nan'
Alle Namen aus dem Python-Modul math stehen zur Verfügung; die obige Liste entspricht daher
dem Modul in seinem aktuellen Umfang. Die integrierten Funktionen darunter sind dagegen eine
feste Positivliste.
In Python integrierte Funktionen (siehe Python-Standardfunktionen für Details):
'min', 'max', 'abs', 'round', 'sum', 'len', 'all', 'any'
Wenn Sie Zahlenarrays verwenden, achten Sie darauf, Leerzeichen zwischen den Einträgen einzufügen. Andernfalls werden die Zahlen möglicherweise als Float-Werte behandelt (z. B. wird [1,2,3] zu [1.2, 3] ausgewertet. Die Verwendung von [1, 2, 3] würde wie beabsichtigt funktionieren. Siehe Beispiele unten).
Pose-Ausdrücke:
Pose-Ausdrücke bieten eine strukturierte Möglichkeit, Positionen und Orientierungen darzustellen. Diese Ausdrücke können entweder kartesische Posen oder Gelenkposen darstellen.
Die folgende Syntax zeigt, wie ein Pose-Ausdruck ausgeschrieben aussieht. In der App bauen Sie ihn normalerweise Feld für Feld im Pose-Ausdruck-Konfigurator zusammen — siehe Pose-Ausdruck konfigurieren.
Kartesische Posenausdrücke:
- Ein kartesischer Posenausdruck definiert eine 3D-Position und eine Orientierung, optional relativ zu einem Referenzrahmen.
- Format:
[PositionX, PositionY, PositionZ, OrientationZ, OrientationY, OrientationX], ReferenceFrame - Beispiel:
[100+3, IntVar*FloatVar, PoseB.z, PoseA.rz, PoseA.ry, PoseA.rx], PoseD - Aufschlüsselung:
IntVar*FloatVarundPoseB.z: Definieren die X-, Y- und Z-Positionskomponenten.PoseA.rz, PoseA.ry, PoseA.rx: Stellen die Orientierung der Pose dar.PoseDsymbolisiert das Referenzkoordinatensystem. Im Allgemeinen kann das ReferenzkoordinatensystemBASEsein, oder Sie können eine CartesianPoseVariable angeben (in diesem BeispielPoseD).
Gelenk-Posenausdrücke:
- Ein Gelenk-Posenausdruck definiert Werte für einzelne Gelenke.
- Format:
[Joint1, Joint2, Joint3, ...] - Beispiel:
[JointPose.j1, IntVar, 100*2, 3+4, FloatVar, JointPoseB.j3] - Aufschlüsselung:
- Jeder Eintrag gibt einen neuen Wert für das entsprechende Gelenk an.
- Beispiel:
JointPose.j1: Verweist auf den aktuellen Wert des ersten Gelenks der JointPoseVariable namens JointPose.
Beispielausdrücke:
2 * 3 * 4 ==> 242 * pi ==> 6,283pow(2, 3) ==> 8sqrt(9) ==> 32 * True ==> 22 * False ==> 02 * myVariable ==> 4(myVariable=2)True oder False ==> TrueTrue und False ==> False3 != 3 ==> Falsch5 == 5 ==> Wahrsum([1, 2, 3]) ==> 6sum([1,2,3]) ==> 4,2 (wird zu sum([1,2,3]) ausgewertet, siehe Hinweis oben)min([4, 7]) ==> 4max([4, 7]) ==> 7len([4, 7]) ==> 2all([True, False]) ==> Falseany([True, False]) ==> True[100+3, IntVar*2, PoseB.z, PoseA.rz, PoseA.ry, PoseA.rx], BASE[JointPose.j1, 90, FloatVar]