HI Dobot team, I am currently working on secondary development of Dobot Magician and i want to use the Laser engraving feature of the DobotDemoForPython-multi file in the DobotDemo file but i am unable to do so. is there a way to work this feature
You need to find an algorithm to convert the grayscale image into points, and then call the robot arm movement.
thank you for the reply i did find an algorithm for converting grayscale images into points but right now i am having trouble calling the arm. is there any possible ways to do so ?
I am looking for a solution as well.
Dobot team please confirm how to program the robot once the grayscale images are converted into points. Would be very helpful if you can provide a sample python program.
I haven’t done this, but I’d guess it would would work like this:
- Find a reasonable z height and focus the laser for that hight.
- Move the arm to the x,y coordinates of your point.
- Turn on the laser.
- Delay based on how dark the point should be.
- Turn off the laser.
- Move to the next point.
I have found little documentation on the Python module, but fortunately you can open their “DobotDllType.py” file and search for things to figure out how to call them.
I.E. Search for “laser” and you will find on line 1377:
def SetEndEffectorLaser(api, enableCtrl, on, isQueued=0):
I would try turning it on via:
lastIndex = dType.SetEndEffectorLaser(api, True, True, isQueued = 1)
And off via:
lastIndex = dType.SetEndEffectorLaser(api, True, False, isQueued = 1)
This is the kind of code I used with the suction cup end effector and it has been working well.
Getting the delay right could be tricky with queuing the commands. You might have to queue the move commands, wait for them to complete (like the python demo shows), turn the laser on with isQueued = 0, delay via dType.dSleep(100), then turn the laser off with isQueued = 0.