April 25, 2019, 10:09:15 AM

# Yin Yang

### Author Topic:  Yin Yang  (Read 900 times)

0 Members and 1 Guest are viewing this topic.

August 09, 2018, 05:54:19 AM

#### Bigg6987

##### Yin Yang
So I'm brand new to Fanuc and robots in general. Just finished making a circle program and a "pac man" program today. We've got a yin yang shape to make Friday, and i'd like to be as prepared as possible when I get there.

As easy as the circle was, I thought I had made the pac man perfectly the first time. I ended up having too big of an angle for my circle and the robot wouldn't cooperate. I did figure it out though (with instructor coaching) .

So as I try to wrap my head around this yin yang, I know i've got to do at least 4 points for the circle of it. The part in struggling to wrap my head around is the "wavy" line that goes through the middle. I don't want to take all day trying to figure it out.

I've tried to search the board, as well as google and youtube.

Any help is greatly appreciated.

Today at 10:09:15 AM

Guest
##### Re:  Yin Yang

August 09, 2018, 12:25:22 PM

#### Robo_Eng_13

##### Re: Yin Yang
For the wavy line (or any instance with a changing curvature) use Circular Arc points instead of regular Circle points.

1. You must have three A moves in a row for them to make an arc.
2. The first A move will be treated as a linear move, so make it a very very short jump from your circle to the start of your wave.
3. A moves constantly look ahead 2 points, treating the current point as point one and the next two as two and three, and they will perform a matching arc between the current point and the second point, then it will look ahead again, and adjust accordingly. This makes it so your can basically make any curve.

August 10, 2018, 03:03:20 AM

#### Bigg6987

##### Re: Yin Yang

I'm pretty sure I'm gonna be on the RJ3 with MH 5.3, so I'm not entirely sure that A is a choice. I only remember Joint, Linear, and Circle as options on the older robot.

Hopefully it is there, and I just didn't notice it.

August 10, 2018, 12:10:30 PM

#### Robo_Eng_13

##### Re: Yin Yang
I only have experience with R-30iB, so I apologize if the option isn't there. The alternative would be to determine the circular components of the wave and use those, but it will be harder and not as smooth, I believe.

August 10, 2018, 04:56:28 PM

#### Iowan

##### Re: Yin Yang
What part of the wave is causing problems? It's two half-circles going opposite directions - each with a diameter half the circle's. The "eyes" might require come calculation... They might have a diameter 1/4 the circle. Discounting inaccuracies, you could probably build a routine to use a centerpoint and diameter/radius to create one of any size.
Of course, it's easier for the guy who doesn't have to do it...
« Last Edit: August 10, 2018, 05:07:00 PM by Iowan »

August 10, 2018, 05:14:26 PM

#### Robo_Eng_13

##### Re: Yin Yang
You are correct, i should have looked at a yin yang symbol instead of going from memory. I was invisioning a changing slope. This can be done as 8 half circles, with regular circular moves. Definitely could make it programatic with a center and radius!

August 10, 2018, 05:51:51 PM

#### Robo_Eng_13

##### Re: Yin Yang
Code: [Select]
`YINYANGUF = 0UT = 1PR[17] = LPOS (set to Cartesian coords)PR[17,4] = 0 (Touchup to determine Yaw)PR[17,5] = 0 (Touchup to determine Pitch)PR[17,6] = 0 (Touchup to determine Roll)PR[1] = PR[17] (Initialize angles)PR[2] = PR[17] (Initialize angles)PR[3] = PR[17] (Initialize angles)PR[4] = PR[17] (Initialize angles)PR[5] = PR[17] (Initialize angles)PR[6] = PR[17] (Initialize angles)PR[7] = PR[17] (Initialize angles)PR[8] = PR[17] (Initialize angles)PR[9] = PR[17] (Initialize angles)PR[10] = PR[17] (Initialize angles)PR[11] = PR[17] (Initialize angles)PR[12] = PR[17] (Initialize angles)PR[13] = PR[17] (Initialize angles)PR[14] = PR[17] (Initialize angles)PR[15] = PR[17] (Initialize angles)PR[16] = PR[17] (Initialize angles)PR[1,1] = AR[1]PR[1,2] = AR[2] + AR[4]PR[1,3] = AR[3]PR[2,1] = AR[1] + AR[4]PR[2,2] = AR[2]PR[2,3] = AR[3]PR[3,1] = AR[1]PR[3,2] = AR[2] - AR[4]PR[3,3] = AR[3]PR[4,1] = AR[1] - AR[4]PR[4,2] = AR[2]PR[4,3] = AR[3]PR[5,1] = AR[1] - (0.5 * AR[4])PR[5,2] = AR[2] - (0.5 * AR[4])PR[5,3] = AR[3]PR[6,1] = AR[1]PR[6,2] = AR[2]PR[6,3] = AR[3]PR[7,1] = AR[1] + (0.5 * AR[4])PR[7,2] = AR[2] + (0.5 * AR[4])PR[7,3] = AR[3]PR[8,1] = AR[1] + (0.66667 * AR[4])PR[8,2] = AR[2]PR[8,3] = AR[3]PR[9,1] = AR[1] + (0.5 * AR[4])PR[9,2] = AR[2] - (0.16667 * AR[4])PR[9,3] = AR[3]PR[10,1] = AR[1] + (0.33333 * AR[4])PR[10,2] = AR[2]PR[10,3] = AR[3]PR[11,1] = AR[1] + (0.5 * AR[4])PR[11,2] = AR[2] + (0.16667 * AR[4])PR[11,3] = AR[3]PR[12,1] = AR[1] - (0.5 * AR[4])PR[12,2] = AR[2] + (0.16667 * AR[4])PR[12,3] = AR[3]PR[13,1] = AR[1] - (0.66667 * AR[4])PR[13,2] = AR[2]PR[13,3] = AR[3]PR[14,1] = AR[1] - (0.5 * AR[4])PR[14,2] = AR[2] - (0.16667 * AR[4])PR[14,3] = AR[3]PR[15,1] = AR[1] - (0.33333 * AR[4])PR[15,2] = AR[2]PR[15,3] = AR[3]PR[16,1] = 0PR[16,2] = 0PR[16,3] = AR[3] + 50J P[1] (Home)J PR[4] Offset PR[16]L PR[4]C PR[1] PR[2]C PR[3] PR[4]C PR[5] PR[6]C PR[7] PR[2]L PR[7] Offset PR[16]J PR[8] Offset PR[16]L PR[8]C PR[9] PR[10]C PR[11] PR[8]L PR[8] Offset PR[16]J PR[12] Offset PR[16]L PR[12]C PR[13] PR[14]C PR[15] PR[12]L PR[12] Offset PR[16]J P[1] (Home)`
I think something like this would work, where you call it: YINYANG(X,Y,Z,R)

Today at 10:09:15 AM

Guest