Left ArrowBack to discussions page
MichalMichal Posts: 3 Apprentice
edited February 2 in Robotiq Products
Good day,
we use a Robotiq camera in some application, where robot has to take simple objects from pallet. Pallet resolution is 8x6x10(rows), between every row is a carton, which robot takes away after taking 48 of parts. But there were really big bug by taking more snapshot positions. If I create more than 7 snapshots, program goes more slower and gets an error ,,java.lang.OutOfMemoryError: Java heap space". After creating 8 or 9 snapshots error message was still showing and after restarting a robot, I wasn't able to open my program and installation file, because of that error, so I had to do all snashots again. So there's no possibility to use more snapshots in one program. I thing it would be better to save snapshots on robot disk outside of installation file..  I thought about solution 2 where I make one snapshot position and after script ,,Ignore_snapshot_position=True" it would go well but it doesn't. It goes well in XY pallet, so robot takes all of 48 parts, but no part in second row. Does it mean that camera doesn't ignore Z position but just X and Y?

Question 2: is there any possibility to do this thing? -> If somebody gets away one part so camera won't find a part and robot turns one position next? I did it thru palletizing function, is there that possibility? 
My note is, that there would be good to get more functions to camera and possibilities to scripting. Because that camera program is really closed and for example if I wanted to change some contrast, brightness, colors etc. I wasn't able to save it... WHY?? :-O 


  • David_GariepyDavid_Gariepy Posts: 109 Handy
    Hello @Michal

    The ignore_snapshot_position() function will get rid of the "Robot is not at snapshot position" error. It can be used for example if you want to cover a bigger area on a surface. You could have 1 snapshot position that covers a small area on a table and using the ignore_snapshot_position=True function, you'll be able to move the robot over another area on the table to take another picture so you don't have to define a snapshot position and camera locate node for each area. 

    The function you are looking for is the "snapshot_position_offset" function. Using this function, you'll be able to use the same camera locate node for each row. For example, using the function snapshot_position_offset=p[0,0,0.05,0,0,0], before a camera locate node will offset the snapshot position of 50mm in Z. You'll also have to use the ignore_snapshot_position = True in the BeforeStart section of your program. 

    The camera locate act as an if statement. If it finds something, it executes the code inside the camera locate node, otherwise, it will continue the program execution. You can then use a variable to track the detection and choose the next action accordingly. See this post for a detailed explanation. Currently, the contrast, brightness etc cannot be changed. We are working on a new version of the camera URCap that will allow new features and control in the future. 

    David Gariépy
    Integration Coach
Sign In or Register to comment.
Left ArrowBack to discussions page