WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

2-Arm Roboter in 2D; Verfahrweg erkennen

 

wusa
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 20.06.17
Wohnort: Berlin
Version: 2021
     Beitrag Verfasst am: 16.05.2021, 18:12     Titel: 2-Arm Roboter in 2D; Verfahrweg erkennen
  Antworten mit Zitat      
Hallo,
ich probiere die Positionen meines 2 Arm Linien Roboters anschaulich zu machen.
Das Problem, das ich habe, ist, dass ich das Drehen zum (bisher einzigen) Interpolationspunkt zeigen möchte. Ich hatte bisher nur eine Bildfolge im Sinn, also Augenblicksdarstellungen.
Ich will das Verfahren zunächst asynchron darstellen. Also rot kommt zuerst am mittleren grünen Punkt an, bevor grün zum Ende dreht.
Code:

clear; close; clc
% Achse 1: r1 = 40 cm
v1 = 0.7;    % rad/s
a1 = 0.5;    % rad/s²
b1 = 0.3;    % rad/s²

% Achse 2: r2 = 30 cm
v2 = 0.3;    % rad/s
a2 = 0.3;    % rad/s²
b2 = 0.4;    % rad/s²

% Ausgangsplots (mit hold on)
% Start               Ziel              Matrix mit Wegpunkten, 2.Zeile: [0.166765 -0.111335]  der Punkt soll mit dem Ende vom roten Arm angefahren werden
S = [-0.4 0.3];  Z = [0.4 -0.3];   load('points.mat');

h = plot([S(1) Z(1)], [S(2) Z(2)],'b-',[S(1) Z(1)], [S(2) Z(2)],'rx'); grid on; hold on; axis([-0.65 0.45 -0.5 0.5]); dist_blue_line = sqrt((Z(1)-S(1))^2 + (Z(2)-S(2))^2  );
Ax1_OriginP1 = [-0.182388 -0.306506]; Ax1_OriginP2 = [-0.182388 0.093494];

plotStartAx1 = plot([Ax1_OriginP1(1) Ax1_OriginP2(1)], [Ax1_OriginP1(2) Ax1_OriginP2(2)],'r-',[Ax1_OriginP1(1) Ax1_OriginP2(1)], [Ax1_OriginP1(2) Ax1_OriginP2(2)],'ro'); plotStartAx1(1).LineWidth = 1.8; dist_Axis1 = sqrt((Ax1_OriginP2(1)-Ax1_OriginP1(1))^2 + (Ax1_OriginP2(2)-Ax1_OriginP1(2))^2  );
Ax2_OriginP1 = [-0.182388 0.093494];  Ax2_OriginP2 = [-0.4 0.3];

plotStartAx2 = plot([Ax2_OriginP1(1) Ax2_OriginP2(1)], [Ax2_OriginP1(2) Ax2_OriginP2(2)],'g-',[Ax2_OriginP1(1) Ax2_OriginP2(1)], [Ax2_OriginP1(2) Ax2_OriginP2(2)],'go'); plotStartAx2(1).LineWidth = 1.8; dist_Axis2 = sqrt((Ax2_OriginP2(1)-Ax2_OriginP1(1))^2 + (Ax2_OriginP2(2)-Ax2_OriginP1(2))^2  );

%%%%%%%%%%%%%%%%%%%%%%%%
% Interpolation
p1 = p([1 2], :); p2 = p([2 3], :); s1 = spline(p1(:, 1), p1(:, 2)); s2 = spline(p2(:, 1), p2(:, 2));

x1 = p1(1,1):sign(p1(end, 1)-p1(1, 1))*min(abs(diff(p1(:, 1))))/10:p1(end, 1); x2 = p2(1,1):sign(p2(end, 1)-p2(1, 1))*min(abs(diff(p2(:, 1))))/10:p2(end, 1); x2(end) = p2(end, 1);
y1 = ppval(s1, x1); y2 = ppval(s2, x2);

plot(x1, y1, 'w');
plot(p1(:, 1), p1(:, 2), 'go');

plot(x2, y2, 'w');
plot(p2(:, 1), p2(:, 2), 'go');

%%%%%%%%%%%%
% Make robot arm rotate by connecting points
 


Ich suche eine bessere Darstellung. Das mit dem Drehen wirklich zu sehen, wäre genial. Aber eine Bildfolge mit kurzer Pausenzeit dazwischen reicht. Ich freue mich über jeden Tipp. Danke im Voraus, Grüße,
Michael

PS
Ich schicke gleich noch einen Post mit weiteren Bildern hinterher

Interp_Punkte_finden_Pos2.png
 Beschreibung:

Download
 Dateiname:  Interp_Punkte_finden_Pos2.png
 Dateigröße:  34.46 KB
 Heruntergeladen:  184 mal
Endstellung_hellblau.png
 Beschreibung:

Download
 Dateiname:  Endstellung_hellblau.png
 Dateigröße:  47.74 KB
 Heruntergeladen:  123 mal
Endposition.png
 Beschreibung:

Download
 Dateiname:  Endposition.png
 Dateigröße:  34.64 KB
 Heruntergeladen:  139 mal
points.mat
 Beschreibung:
Wegpunkte
Spalte 1: x
Spalte 2: y

Download
 Dateiname:  points.mat
 Dateigröße:  207 Bytes
 Heruntergeladen:  122 mal
twoArmRobot.m
 Beschreibung:

Download
 Dateiname:  twoArmRobot.m
 Dateigröße:  1.8 KB
 Heruntergeladen:  126 mal
Private Nachricht senden Benutzer-Profile anzeigen


wusa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 20.06.17
Wohnort: Berlin
Version: 2021
     Beitrag Verfasst am: 16.05.2021, 18:14     Titel:
  Antworten mit Zitat      
Weitere Bilder

Wegpunkte_1Sp_x__2Sp_y.png
 Beschreibung:

Download
 Dateiname:  Wegpunkte_1Sp_x__2Sp_y.png
 Dateigröße:  5.46 KB
 Heruntergeladen:  164 mal
Ueberfahrpunkt_für_rot_beim_Zeiger.png
 Beschreibung:

Download
 Dateiname:  Ueberfahrpunkt_für_rot_beim_Zeiger.png
 Dateigröße:  22.13 KB
 Heruntergeladen:  127 mal
Startpos_am_Kreuz_neues_Ziel_fuer_rote_Linie.png
 Beschreibung:

Download
 Dateiname:  Startpos_am_Kreuz_neues_Ziel_fuer_rote_Linie.png
 Dateigröße:  36.77 KB
 Heruntergeladen:  136 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
wusa
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 20.06.17
Wohnort: Berlin
Version: 2021
     Beitrag Verfasst am: 16.05.2021, 18:19     Titel:
  Antworten mit Zitat      
..Die blaue Linie ist der Weg (Sichtlinie) von oben links Start S [-0.4 0.3] nach unten rechts zum Ziel Z [0.4 -0.3]

Wie viele Punkte überfahren werden sollen, ist frei zu wählen.

Startposition.jpg
 Beschreibung:

Download
 Dateiname:  Startposition.jpg
 Dateigröße:  30.12 KB
 Heruntergeladen:  118 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.