Skip to content

Commit 9d205bc

Browse files
committed
add hand orentation and interpolation
1 parent 9eba2e7 commit 9d205bc

1 file changed

Lines changed: 19 additions & 5 deletions

File tree

uarm_library.cpp

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,8 @@ void uArmClass::moveTo(double x, double y, double z)
451451
l_current_x = g_cal_x;
452452
l_current_y = g_cal_y;
453453
l_current_z = g_cal_z;
454+
double current_hand = readAngle(SERVO_HAND_ROT_NUM);
455+
if (current_hand < 0) current_hand = 0;
454456

455457
interpolation(l_current_x, x);
456458
for (byte i = 0; i < 50; i++){
@@ -475,7 +477,7 @@ void uArmClass::moveTo(double x, double y, double z)
475477
calAngles(x_arr[i],y_arr[i],z_arr[i]);
476478

477479
l_movementTrigger = 1;
478-
uarm.writeAngle(g_theta_1, g_theta_2, g_theta_3,0);
480+
uarm.writeAngle(g_theta_1, g_theta_2, g_theta_3,current_hand);
479481

480482
delay(40);
481483

@@ -495,6 +497,8 @@ void uArmClass::moveTo(double x, double y, double z, int relative, double time_s
495497
double current_x = g_cal_x;
496498
double current_y = g_cal_y;
497499
double current_z = g_cal_z;
500+
double current_hand = readAngle(SERVO_HAND_ROT_NUM);
501+
if (current_hand < 0) current_hand = 0;
498502

499503
if ((relative !=0)&&(relative != 1))
500504
{
@@ -536,7 +540,7 @@ void uArmClass::moveTo(double x, double y, double z, int relative, double time_s
536540
{
537541
calAngles(x_arr[i],y_arr[i],z_arr[i]);
538542
l_movementTrigger = 1;
539-
uarm.writeAngle(g_theta_1, g_theta_2, g_theta_3,0);
543+
uarm.writeAngle(g_theta_1, g_theta_2, g_theta_3,current_hand);
540544

541545
delay(time_spend*1000/50);
542546

@@ -574,16 +578,18 @@ void uArmClass::moveToAtOnce(double x, double y, double z, int relative, double
574578
void uArmClass::moveTo(double x, double y, double z, int relative, double time_spend, int servo_4_relative, double servo_4_angle)
575579
{
576580
uarm.attachAll();
577-
581+
578582
double x_arr[50];
579583
double y_arr[50];
580584
double z_arr[50];
581-
585+
double h_arr[50];
582586

583587
calXYZ();
584588
double current_x = g_cal_x;
585589
double current_y = g_cal_y;
586590
double current_z = g_cal_z;
591+
double current_hand = readAngle(SERVO_HAND_ROT_NUM);
592+
if (current_hand < 0) current_hand = 0;
587593

588594
if ((relative !=0)&&(relative != 1))
589595
{
@@ -626,12 +632,20 @@ void uArmClass::moveTo(double x, double y, double z, int relative, double time_s
626632
z_arr[i] = g_interpol_val_arr[i];
627633

628634
}
635+
636+
interpolation(current_hand, current_hand*servo_4_relative+servo_4_angle);
637+
638+
for (byte i = 0; i < 50; i++){
639+
640+
h_arr[i] = g_interpol_val_arr[i];
641+
642+
}
629643

630644
for (byte i = 0; i < 50; i++)
631645
{
632646
calAngles(x_arr[i],y_arr[i],z_arr[i]);
633647
l_movementTrigger = 1;
634-
uarm.writeAngle(g_theta_1, g_theta_2, g_theta_3, g_theta_1*servo_4_relative+servo_4_angle);
648+
uarm.writeAngle(g_theta_1, g_theta_2, g_theta_3, h_arr[i]);
635649

636650
delay(time_spend*1000/50);
637651
}

0 commit comments

Comments
 (0)