ConveyorTech -- Following motion makes no sense

  • KSS 8.3.17, CT 6.0


    So, my ongoing saga with ConveyorTech continues.


    I've performed the Conveyor Calibration, and got XYZABC results (relative to World) that are almost exactly what they should be, going by the cell physical layout. I also taught the "Workpiece Base," following the directions in the manual. I taught a position well above the conveyor, using the Workpiece Base, and tried to test the conveyor following.


    My test program moved to a "pounce" position upstream of the "following" position (with the same orientation), then activated the Conveyor Init and Conveyor Follow functions. The program pointer "hung" in Conveyor Follow until the conveyor was moving forward and I received the Sync Pulse. At the moment the pulse was received, the robot took off in a completely different direction from the X+ axis of the conveyor -- about 150deg or so out. The Tool also began carrying out an extreme orientation change as well. I couldn't see where the LIN motion would have ended, because the robot went past its maximum reach while trying to make the move.


    I don't understand what could cause this. The conveyor calibration is correct from all the data I can see, in both direction and distance. The manual doesn't really explain anything about the WorkPiece Base and how its orientation relates to the conveyor following, but I have its X axis aligned closely with the Conveyor's own X axis. There's just nothing I can see that would explain the behavior I'm seeing. I've carried out the conveyor calibration several times now, and get the same dimensional results each time.

  • Hello. When you teach points for the ConveyorTech, you should teach them always in positive part of taught base, else robot will go opposite way.


    For example: if you teach points with - values in X coordinates, at least that was the case in my setup, then I just moved the base back so that I could teach points for ConveyorTech with + values of X coordinate.


    And I didn't have to calibrate the workpiece, because they were aligned with the conveyor.

    Edited once, last by DannyDJ ().


  • wrong base?


    The point was programmed with the Base that's assigned to the Conveyor Workpiece calibration. So.. I don't think so? The documentation is awfully vague about exactly how the Workpiece Base actually affects the following, though. The Conveyor Calibration is pretty obvious, the WB, not so much.


  • Hello. When you teach points for the ConveyorTech, you should teach them always in positive part of taught base, else robot will go opposite way.


    For example: if you teach points with - values in X coordinates, at least that was the case in my setup, then I just moved the base back so that I could teach points for ConveyorTech with + values of X coordinate.


    And I didn't have to calibrate the workpiece, because they were aligned with the conveyor.


    That's actually something I'm puzzled about -- just what does the Conveyor use as its origin point?
    Regardless, I don't think that's my issue -- All my test-program points were "downstream" of the first Conveyor Calibration point. Plus, my robot didn't go in the opposite direction of the Conveyor, but off at some very strange angle. Not to mention the Tool was trying to perform a major orientation change, when it was already in the correct orientation. There has to be something basic I'm missing in the setup here, but I'll be darned if I have any clue what it is. Everything looks perfect, right up until I activate following.

  • I see, then i would really try just to calibrate the base without workpiece calibration so that orientation of the tool doesnt change while robot is following the conveyor. Conveyor tech moves the base origin with the speed it gets from the increments from the resolver and also all the points taught in that base.
    And on KRC2 predefined bases for conveyortech were 11,12,13

  • I think I may have found part of my issue -- I misunderstood the process for teaching the tracking points.


    Basically, I taught the "pick" point without activating the conveyor (running CONV_FOLLOW) first. I was paying more attention to the calibration than to the teaching. From what I've put together by talking to some colleagues, it sounds like I need to:
    1. T1 (robot will not physically perform following in T1)
    2. Run my program until it "hangs" in CONV_FOLLOW
    3. Start the conveyor moving forward, get the Sync Pulse, then stop the conveyor quickly
    4. At this point, the program pointer should have moved from CONV_FOLLOW into CONV_MOV (going by the basic example template), where my Pick point is located
    5. Teach the Pick point
    6. Switch to T2, reset and re-run the program. This time, the Pick point should follow the conveyor.


    Also, it looks like the Workpiece Base is really not necessary, so I can probably just omit it and concentrate on the conveyor itself.


    I'm not sure this will entirely resolve my issue -- if this was all I was doing wrong, that wouldn't explain the wild orientation changes the robot tried to perform while following the conveyor, or why the TCP motion was not colinear with the conveyor. But at least it's something I can fix and try out. I won't be on-site with the robot again until tomorrow, at which point I'm going to try this out, and I'll report back what happens.

  • Well, no joy.


    No joy. I’m completely stuck here.
    I ran my Tracking program in T1 until it "hung" in CONV_FOLLOW. Then I had them run the conveyor forward and give me the sync pulse – the conveyor stopped 500mm after I got the pulse. So I jogged 500mm along the conveyor and taught the Pick and Above Pick points.
    But when I try to *run* those points (T1 or T2), with the conveyor moving, the robot tracks about 30deg off from the actual line of the conveyor, and the tool makes a large rotation around Z. About the only thing that’s not going wrong is that the end effector isn’t trying to completely flip over this time. It *does* seem to move at about the right speed, but that’s it.
    I’ve re-done the conveyor calibration several times, and I get the same Conveyor Root dimensions and angles every time, and they match 90deg angle between Robot World X+ and the Conveyor X+ axis to within 0.25deg. So I’m pretty sure the calibration is okay.
    Also, if I check the Position display while the robot is "following" the conveyor, I see motion and rotation along/around all three axes, when I'm pretty sure I should only see motion along the X axis (this is with the Conveyor Base active).

  • Okay, so... something is working right, but there's still stuff going on I don't understand.
    Basically, once I ran the program in T2 at higher speed, I found that, after making the Very Strange motion, the robot would suddenly track perfectly along the conveyor.


    So, here's the relevant parts of the program:


    So, running the program from the beginning, the pointer "hangs" in CONV_FOLLOW until the Sync Pulse is received. At that point, the pendant displays the main pointer on the LIN TeachPick line, but the robot moves to a completely different point (as described earlier), and then begins tracking the conveyor.
    Now, when I TouchUp the TeachPick point, I run the program in T1 until the pointer hangs in CONV_FOLLOW, start the conveyor moving, get the Sync Pulse, and stop the conveyor 500mm later. Then I jog the robot to where the pick position should be and TouchUp the TeachPick point (the program pointer is already there). And I don't get any error messages.
    However, when I do a Block Select on the point I just did the Touchup on, the robot moves to a point well off, in all 6 DOF, from what I've touched up.


    I took a trace, which shows some interesting things, but I don't understand why. You can see it in the attached screenshot.
    At 4.2sec, all 6 Cartesian values take a jump when the Sync Pulse comes in. Then, over the course of the motion from Pounce to TeachPick, all 6 coords go back to the original values.
    Now, the initial jump must be due to the $BASE change -- CnvPounce is programmed in Base 0, and TeachPick is programmed in Base 1. That makes sense. But I taught TeachPick in Base 1, in a physical orientation identical to the Pounce position. So why would it change orientation over distance.
    Likewise, once X gets back to its original value, it flatlines. But that doesn't seem right -- shouldn't the X value keep changing, as the robot follows the conveyor? Unless the value being traced is just the value relative to Base 1, in which case this makes sense, given that the robot is following the conveyor (and the 'moving' base) quite well, after the strange motion.

  • Well, looks like it was just one of those mysterious things.


    It occurred to me that what was showing in my Inline Form for the TeachPick position might not be matching what was in my FDAT variable. But when I checked the FDAT variable directly, it was set to the correct Base (Conveyor) and Tool.


    So, just for the heck of it, I went into the Inline Form and deliberately changed the Base value to something incorrect, saved the point, then went back in and changed the Base value back to what it had been previously. Then I re-taught the point... and when I ran the T2 test, everything worked almost perfectly. :icon_rolleyes:


    So, I guess the lesson for anyone reading this in the future is: if you have this sort of problem, try deleting and re-creating the point from scratch.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now