RobotStudio event

Pipe Welding with Seam Tracking

Hi,
I'd like to know if anyone has experience with Seam Tracking during pipe welding? I am trying to weld a 8inch diameter pipe, so it should be possible with SeamTracking.

I find that /PreProcessTracking does not work well. In contrary to a linear weld where PreProcessTracking took care of the distance between laser and tip, in this case with the actual path not being linear, it looks like PreProcessTracking (used with ArcLStart) does not work. After a search using optsearch1D, my arc ignites at the correct position, but the path veers off for a little while (distance between Arc and Laser) before tracking data kicks in and the TCP is on the correct path again.
Any pointer is appreciated.

Answers

  • What equipment are you using for tracking?
    Laser camera from servo-robot?

    I have used a laser camera from servo-robot to weld a pipe.
    We were able to start tracking the weld while doing a approach so the first 50mm of the weld were already tracked and saved before igniting. 
    Systemintegrator - Web / C# / Rapid / Robotstudio

    If I helped, please press Vote Up  :smile:

    ☑️2024 - RobotStudio® User Group
  • guillaumebatun
    edited February 2022
    Tompanhuhu 
    Hi
    What equipment are you using for tracking?
    Laser camera from servo-robot?
    Yes, we are using the PowerCam from ServoRobot.

    We were able to start tracking the weld while doing a approach so the first 50mm of the weld were already tracked and saved before igniting. 
    This is exactly what's eluding us. Do you have a sample program?

    How to have those 50mm already tracked and saved? How is your approach, in a curve (ArcCStart), or a line (ArcLStart)?

    When welding a straight fillet, we find the joint using optsearch_1D, which gives the absolute position of the joint. We use the relative position of the laser w.r.t the tool to MoveJ to a position where the laser is exactly at the joint. We then move linearly  using ArcLStart and the /PreProcessTracking option to cover the distance separating the TCP and the laser and having saved all data we need for when we ignite (as you described).

    But in this case, after finding the joint, I do not know how to program my approach, and what command to use (preprocesstracking?). I assume that we should not move in a straight line to cover the distance between TCP and Laser, since there is a curvature and the sensor is losing sight of the joint.

    Thanks
  • Hello, sorry I missed your reply @guillaumebatun

    I hope you have solved your issue but if not you can read more in the manual.
    I don't have access to any examples as of now but you have to approach the Arc(L/C)Start so the sensor can do proper scanning, and the distance is specified in the system parameters so the arc instruction knows how long to track.

    Attached image is from manual 
    Application manual Arc and Arc Sensor RobotWare 6.13 Document ID: 3HAC050988-001 Revision: H


    Systemintegrator - Web / C# / Rapid / Robotstudio

    If I helped, please press Vote Up  :smile:

    ☑️2024 - RobotStudio® User Group
  • Hey 
    @Tompanhuhu
    I know about that manual and thats where I get my info. The thing is I believe ArcCStart is what I need.
    I take measurements from three positions with my laser sensor and am able to reconstruct the circle using FitCircle.
    From there, I have a rough idea of where my circle is. I can modify the theta angle and go to any rough position along the circle.

    If you look the image attached,

    I tried:

    MoveJ Q

    ArcCStart R,A (with \Track and  \preprocessing). This is to strike the arc at A but already have the information of the first leg between A and B saved.

    ArcCEnd B,C (with \Track).

    This did not work. The PreProcessing option does not work with ArcCStart as it worked with ArcLStart. This produces the weld seen in the image in the attachment. The first part of the weld is not precise, and then tracking kicks in.




    I even tried to make smaller segments:

    MoveJ Q

    ArcCStart R,A (with \Track and  \preprocessing). This is to strike the arc at A but already have the information of the first leg between A and B saved.

    ArcC D,B (with \Track).

    ArcCEnd E,C (with \Track).

     

    This is weird because in this case the arc was ignited at B only, I did not understand why.


    Any pointer would be appreciated :)

    Thanks