I tested the setup with RoboDK, and it worked perfectly. Initially, I thought the G-code had been manually edited by you. However, after rechecking and recreating the file based on your instructions, I found that you were correct—the issue was with the Z Surface and Z Depth settings in the Inkscape orientation settings. Thank you to both SkyeFire and hermann for your help in identifying and resolving this mistake !!!
Posts by MANIKANDAN_S
-
-
First of all, sorry for the late reply.
This seems to be a setting or programming issue in RDK, but I can't really say much more, as I don't have any experience with RDK's G-Code generator.
Yes, you’ve understood my issue correctly. However, the problem isn’t with RDK. The Z-axis transitions, like Z0 to Z1, are not being generated by the Inkscape extension I’m using.
Looks like you have wrong settings in g-code extension.
Your file seems to align with what SkyeFire suggested, which is fine. However, I don’t have any options in the Inkscape G-code extension to automatically set the line transitions. This means I have to manually edit the points after G-code generation for the drawing, which is not convenient for me.
I think both are suggesting that I use Z0 for drawing paths and Z1 for non-drawing paths. However, I am unable to generate this automatically using the Inkscape extension for G-code generation. I couldn’t find any options in the extension to achieve this.I need an automated and unified solution for any image to gcode—manually editing the generated G-code is not feasible for me. Most extensions available in Inkscape seem tailored for laser-specific operations with commands like laser on/off or up/down movements. I want to replace these specific codes with normal G-code commands, treating them as points rather than commands. Unfortunately, the available Inkscape extensions and RoboDK do not seem to provide an option to directly generate paths from images.
I have the following questions:
- Is there any way in RoboDK to convert an image into a drawing path?
- Are there any specific Inkscape extensions available for generating G-code for drawing paths?
-
Is it that difficult to show an example code generated from inkscape?
Apologies for not mentioning this earlier. I’ve attached the relevant files in the Google Drive link shared previously:
Google Drive LinkThe folder contains both the .nc G-code file and the original Inkscape file. In the generated G-code, the Z-axis value always remains 0.000.
Looking forward to your suggestions and guidance. Thank you!
-
Hi SkyeFire,
I want to clarify first that my setup doesn't include any pen-down/pen-up mechanism, as the pen is fixed to the end effector. Therefore, I don’t need specific G-code instructions for such a mechanism.
However, I’ve realized that the issue arises from the G-code itself. In my current workflow, I use Inkscape to generate the G-code, but it doesn’t include Z-axis transitions for lifting the tool during line transitions. This results in the robot failing to lift the tool between paths, causing unintended sketches.
I’ve been trying to find a solution to include Z-axis movements for line transitions, but I haven't been able to achieve this with Inkscape so far. I'm now exploring alternative methods.
Could you suggest:
- Any RoboDK feature or workflow to convert an image into a robot path directly for drawing?
- Any G-code generation plugin or tool that supports image-to-G-code conversion with Z-axis transitions handled properly?
Thanks for your time and help! Any guidance would be much appreciated.
-
I am working on an industrial robot drawing project using RoboDK's Path Follow option. In this process, I first convert a single-line drawing image into G-code using Inkscape. The execution of this G-code works correctly. However, I aim to extend this functionality to accommodate multi-line drawings or more complex images.
Currently, I am facing an issue where the robot fails to move in the Z-up direction during transitions between lines in the drawing. This causes misalignment and unexpected sketch outputs. I suspect this issue originates from the G-code conversion process.
I am using a FANUC LR Mate 200iD/4S robot equipped with a gripper to hold the sketching tool. I need to configure the robot to lift the tool (move in the Z-up direction) while transitioning to the next line, then accurately place it before continuing the drawing.
I understand that this might be due to an improper option selected in RoboDK. Is there a feature in RoboDK that allows drawing without requiring extensive programming?
Alternatively, does anyone know an indirect method or workaround to address this issue? Are there specific configurations or settings in the FANUC robot, RoboDK, Inkscape, or G-code editing that could help resolve this?
Any guidance to achieve the desired behavior for multi-line sketches would be greatly appreciated.
Here’s a link to the files related to this project:
Google Drive Link -
I am working on an industrial robot drawing project using RoboDK's Path Follow option. In this process, I first convert a single-line drawing image into G-code using Inkscape. The execution of this G-code functions correctly. However, I aim to extend this functionality to accommodate multi-line drawings or more complex images.
Currently, I am facing an issue where the robot fails to move in the Z-up direction during transitions between lines of the drawing. This causes misalignment and unexpected sketch output. I suspect this issue originates from the G-code conversion process.
I am using a FANUC LR Mate 200iD/4S robot equipped with a gripper to hold the sketching tool. I need to configure the robot to lift the tool (move in the Z-up direction) while transitioning to the next line, then accurately place it before continuing the drawing.
Does anyone have an indirect method or workaround to address this issue? Alternatively, are there specific configurations or settings in the FANUC robot, RoboDK, Inkscape, or G-code editing that could help resolve this? Any guidance to achieve the desired behavior for multi-line sketches would be highly appreciated.
-
Are you able to provide the project? I could take a look in my Roboguide environment.
Here is my project: https://drive.google.com/drive/folders/…bjH?usp=sharing
-
Hi EndAffector, Thank you for your response.
For multiple parts, I believe you are referring to the option mentioned above. Please confirm this for me
I followed all your suggestions for the conveyor:- Set the create delay to 9999.99 seconds.
- Checked "Allow part to be placed."
- Unchecked "Visible at Run Time."
- Deleted the drop line in the simulation code.
However, the issue persists. Let me explain what I've done so far, as it may help identify the problem.
1. I added the conveyor as a machine and incorporated a conveyor with the CAD file of the part. 2. I selected "Device I/O controlled" for the motion control type and added some I/O-based position motion logic.
During this process, I didn't use any part option, which may have been a mistake. Now that I've added the part, there has been no change, and the issue remains the same.
I'm still unable to resolve the issue. Could you please explain briefly or let me know if I've missed any other options? Any references or resources you can provide for better understanding would be greatly appreciated. -
I'm developing a robot simulation for an inventory management concept where, based on IO triggering, the robot picks specific parts from a rack and places them onto a conveyor. However, I'm facing a few issues:
- Parts appear on the conveyor before the robot places them.
- Multiple different parts on the conveyor appear prematurely, interfering with other part simulations.
- The rack holds a large number of parts, and I'm wondering if there is an option for simplified coding for the pick-and-place process, or if I need separate code for each part.
Could you suggest any efficient solutions or existing options to streamline this simulation?
conveyor_issue.mp4 -
Check all values in PR[1] for valid content. Or do just once a 'shift record' on it, then all values will have a valid content.
I modified the values and verified that they are not in use. When I press 'Shift Record,' the robot's current position is saved into PR[1]. How can I pass the new values to make it autonomous?
What hermann said.
You probably only populated the XYZWPR values, but not the configuration string.
Could you please provide guidance on how to populate the position as a configuration string?
-
Yes, Nation, you are correct. I’m not directly using KAREL itself. I’m trying to write the value of PR[1] using KAREL, then run PR[1] in a loop to update the values and execute the motion. I was able to successfully change the PR[1] values using KAREL, but when running it, I encountered an error saying "Uninitialized data used." However, PR[1] is occupied, and the values I wrote are correct. Could anyone please help resolve this or suggest a shortcut for achieving autonomous robot motion? I’m trying to interface MATLAB with ROBOGUIDE, where MATLAB updates the position, and the robot moves accordingly. I understand it’s a complex task, so any suggestions are welcome.
Also, your Excel sheet is amazing; it was very helpful. Thank you for sharing it!
-
You guys are correct. The error was due to incorrect usage of the function. I used the corrected code below, and it resolved the issue.
Code
Display MorePROGRAM MOVE_POS %NOLOCKGROUP %COMMENT = 'Move robot to a specific position' -- Declarations VAR my_pos : XYZWPR -- Position variable tpProgName : STRING[32] -- Name of the TP program to execute status : INTEGER -- Status variable for error codes priority : INTEGER -- Priority for the task tp_motion : BOOLEAN -- Motion permission flag lock_mask : INTEGER -- Lock mask for motion groups BEGIN -- Set up the position values manually my_pos.x = 48.000 -- X-coordinate in mm my_pos.y = 27.000 -- Y-coordinate in mm my_pos.z = 20.000 -- Z-coordinate in mm my_pos.w = 90.000 -- W orientation in degrees my_pos.p = 0.000 -- P orientation in degrees my_pos.r = 90.000 -- R orientation in degrees -- Set the TP program name to move the robot tpProgName = 'MOVE_POS' -- Specify a valid TP program name -- Set task parameters priority = 0 -- Priority (use 0 as a default value) tp_motion = TRUE -- Allow TP motion if the TP is enabled lock_mask = 0 -- No specific motion groups locked (0 for default) -- Execute the TP program as a child task and capture the status RUN_TASK(tpProgName, 0, FALSE, tp_motion, lock_mask, status) -- Check if the program executed successfully IF status <> 0 THEN WRITE('Error occurred.Status code: ', status, CR) ELSE WRITE('Task executed successfully.', CR) ENDIF END MOVE_POS
However, I'm still encountering a issue while running.
My goal is to move the robot using the Karel program. Can you suggest any shortcuts? Also, why isn't my code working, and where can I find definitions for the karel error codes?is that possible to do that? -
Code
Display MorePROGRAM MOVE_POS %NOLOCKGROUP %COMMENT = 'Move robot to a specific position' -- Declarations VAR my_pos : XYZWPR -- Position variable tpProgName : STRING[32] -- Name of the TP program to execute env_id : INTEGER -- Environment ID (set to -1 for the default environment) BEGIN -- Set up the position values manually my_pos.x = 48.000 -- X-coordinate in mm my_pos.y = 27.000 -- Y-coordinate in mm my_pos.z = 20.000 -- Z-coordinate in mm my_pos.w = 90.000 -- W orientation in degrees my_pos.p = 0.000 -- P orientation in degrees my_pos.r = 90.000 -- R orientation in degrees -- Set the TP program name to move the robot tpProgName = 'MOVE_TO_POS' -- Specify a valid TP program name -- Set environment ID to -1 for the default env_id = 0; -- Execute the TP program with all required parameters RUN_TASK(tpProgName, -1, env_id) -- Output a message indicating that the TP program was executed WRITE('TP program executed. Monitor status externally.', CR) END MOVE_POS
I have this KAREL code to move the robot for a specific position, but I'm encountering syntax errors. Can someone help me identify the issues and provide solutions?
-
I want to create a vision process in ROBOGUIDE where parts move along a conveyor, and different parts trigger specific DIs. I've watched online videos but haven't found the exact solution due to the variety of options and terms like Vision, iRVision, Single Vision, Multi-Vision, 2D, and 3D. Can you suggest how to proceed and which packages to choose?
-
Yes, you are correct. I corrected the assembly origin, and it resolved the issue.
-
I want to create a vision process in ROBOGUIDE where parts move along a conveyor, and different parts trigger specific DIs. I've watched online videos but haven't found the exact solution due to the variety of options and terms like Vision, iRVision, Single Vision, Multi-Vision, 2D, and 3D. Can you suggest how to proceed and which packages to choose?
-
I created a simulation of a gripper, but it also moves up and down. Can anyone help resolve this issue?
-
Hi svr, could you please share the correct link again? I am currently unable to open it. Alternatively, could you guide me on how to access it?
-
-
open the properties for the robot, there is a button that says "Serialize Robot". Doing so allows you to modify the robot options, model, etc.