{"id":1209,"date":"2019-04-25T07:21:57","date_gmt":"2019-04-25T11:21:57","guid":{"rendered":"https:\/\/robodk.com\/blog\/?p=1209"},"modified":"2024-11-05T04:36:51","modified_gmt":"2024-11-05T09:36:51","slug":"program-end-effector","status":"publish","type":"post","link":"https:\/\/robodk.com\/blog\/program-end-effector\/","title":{"rendered":"How to Program Any End Effector with RoboDK"},"content":{"rendered":"\n<p><strong>Programming end effectors is tricky. Each brand does it differently! Wouldn&#8217;t it be great if every tool used the same method? Here&#8217;s how to do it!<\/strong><\/p>\n\n\n\n<!--more-->\n\n\n\n<p>There so many ways to control end effectors!!<\/p>\n\n\n\n<p>Some end effectors use basic digital I\/O (on\/off, open\/close, etc). Others use analog outputs (e.g. 0V to 5V). Others use serial communication (e.g. modbus, CAN bus, i2c). Others use USB. Others use Ethernet with TCP\/IP\u2026<\/p>\n\n\n\n<p>\u2026 Why can&#8217;t we program all end effectors using the same method!?<\/p>\n\n\n\n<p>In this article, we&#8217;ll explain how to do exactly that.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Problem With End Effectors<\/h2>\n\n\n\n<p>At RoboDK, we want to make it as easy as possible for you to program any robot without having to master a different programming method for each new brand.<\/p>\n\n\n\n<p>Our <a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/robodk.com\/library\" target=\"_blank\">Robot Library<\/a> contains hundreds of different robots. You can program them all using the same method, without ever having to learn the manufacturer-specific programming language \u2014 either using graphical programming or using <a name=\"https:\/\/robodk.com\/blog\/robot-sdk\/\"><\/a><a href=\"https:\/\/robodk.com\/blog\/robot-sdk\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">your favorite programming language,<\/a> depending on your preference. As a result, we&#8217;ve made it easier than ever before for you to program any robot brand with no extra learning curve.<\/p>\n\n\n\n<p>As a result, you will need to do a bit of programming to use your end effector with offline programming. But, we have tried to reduce the programming to a minimum.<\/p>\n\n\n\n<p>End effectors are not so straightforward. Even within the same brand of end effector, different models require different programming methods. Some have a simple set of commands, others are alarmingly complex.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to Program Any End Effector in RoboDK<\/h2>\n\n\n\n<p>I&#8217;m going to assume that you are already familiar with basic RoboDK programming. If not, it might be a good idea to read the <a href=\"https:\/\/robodk.com\/doc\/en\/Getting-Started.html\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Getting Started guide<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 0: Load Up Your End Effector Model<\/h3>\n\n\n\n<p>Before you start to program your end effector, you will need a robot model loaded into RoboDK with your end effector model attached. If you don&#8217;t have an end effector yet, here are three ways to add one to your simulation:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/Any-End-Effector-Model-1-1024x576.jpg\" alt=\"\" class=\"wp-image-1739\" srcset=\"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/Any-End-Effector-Model-1-1024x576.jpg 1024w, https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/Any-End-Effector-Model-1-300x169.jpg 300w, https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/Any-End-Effector-Model-1-768x432.jpg 768w, https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/Any-End-Effector-Model-1.jpg 1083w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"> <br>You can literally use any end effector. Hand model by <a rel=\"noreferrer noopener\" href=\"https:\/\/www.thingiverse.com\/thing:1680395\" target=\"_blank\">Teak<\/a>. <\/figcaption><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Get a generic tool from the <a name=\"https:\/\/robodk.com\/library\" class=\"mce-item-anchor\"><\/a><a aria-label=\" (opens in a new tab)\" href=\"https:\/\/robodk.com\/library\" target=\"_blank\" rel=\"noreferrer noopener\">Robot Library<\/a> (select &#8220;Tool&#8221; in the &#8220;Type&#8221; menu) and add it to RoboDK.<\/li>\n\n\n\n<li>Make an empty tool\u00a0 by going to the &#8220;Program&#8221; menu and selecting &#8220;Add empty tool.&#8221; This will create an &#8220;invisible&#8221; tool with a reference frame at the end of the robot arm.<\/li>\n\n\n\n<li>Load up any custom end effector using a 3D CAD file. For instructions on how to do this, read <a name=\"https:\/\/robodk.com\/blog\/the-5-minute-guide-to-use-any-end-effector-with-robodk\" class=\"mce-item-anchor\"><\/a><a href=\"https:\/\/robodk.com\/blog\/robot-end-effector-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">The 5 Minute Guide to Use Any End Effector with RoboDK<\/a>.<\/li>\n\n\n\n<li>Make sure to properly define the Tool Center Point (TCP):  <a href=\"https:\/\/robodk.com\/doc\/en\/General.html#CalibrateTCP\">Define a TCP with RoboDK.<\/a><br><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Learn How to Control Your End Effector<\/h3>\n\n\n\n<p>Read the manual which came with your end effector to find how to control it. As I&#8217;ve mentioned, this varies wildly between models.<\/p>\n\n\n\n<p>Pick the simplest control option that you can for the functionality that you need.<\/p>\n\n\n\n<p>For example, if the end effector can be operated by a digital I\/O, it is often easiest to achieve this using the pins on the robot&#8217;s controller. If it requires communication protocols (e.g. ethernet, modbus) you will have to delve deeper.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/Ethernet-Connector-1-1024x575.jpg\" alt=\"\" class=\"wp-image-1737\" srcset=\"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/Ethernet-Connector-1-1024x575.jpg 1024w, https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/Ethernet-Connector-1-300x168.jpg 300w, https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/Ethernet-Connector-1-768x431.jpg 768w, https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/Ethernet-Connector-1.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Some end effectors support both digital I\/O control (for basic operations) and communication protocols (for more advanced features). If you don&#8217;t need the advanced functionality, you don&#8217;t have to use the full control.<\/p>\n\n\n\n<p>At the very least, you will need to learn how to activate\/deactivate the end effector. For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Close\/Open gripper<\/li>\n\n\n\n<li>Start\/Stop paint or weld gun<\/li>\n\n\n\n<li>Start\/Stop machining spindle<\/li>\n\n\n\n<li>Extrude\/Stop 3D printing extruder<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Do a Basic Test<\/h3>\n\n\n\n<p>Before you jump into programming the end effector with RoboDK, it&#8217;s a good idea to test if you can control it at all. A good way to test this out is to program a basic function in the robot&#8217;s teach pendant.<\/p>\n\n\n\n<p>For example, if the end effector uses digital I\/O you will have to use the following steps to operate it via the teach pendant:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Plug the end effector cables into the correct pins on the robot controller.<\/li>\n\n\n\n<li>Create a new program using the teach pendant interface.<\/li>\n\n\n\n<li>Activate the end effector using the digital I\/O registers which correspond to the pins you are using.<\/li>\n<\/ol>\n\n\n\n<p>When you can activate\/deactivate the end effector through the teach pendant, you are well on your way to being able to control it with RoboDK. If you&#8217;re struggling, try posting a question on our <a name=\"https:\/\/robodk.com\/forum\/\"><\/a><a href=\"https:\/\/robodk.com\/forum\/\">Robot Forum<\/a> (we&#8217;re not experts on all end effectors, but someone should be able to point you in the right direction).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Create End Effector Functions<\/h3>\n\n\n\n<p>Open up RoboDK and create some functions to use your end effector.<\/p>\n\n\n\n<p>These functions will only be used by the robot controller, not by RoboDK itself. As a result, they need to go into the robot&#8217;s &#8220;post processor.&#8221; Read the following article to find out more about how these work in RoboDK: <a name=\"https:\/\/robodk.com\/blog\/robot-post-processors\/\"><\/a><a href=\"https:\/\/robodk.com\/blog\/robot-post-processors\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">Robot Post-Processors: Everything You Need to Know<\/a><\/p>\n\n\n\n<p>You will need to update your post-processor to include your end effector functions. The post processors can be found in the &#8220;Program&#8221; menu then &#8220;Add\/Edit Post Processor.&#8221; You might want to create a new post processor by copying the existing one for your robot and adding your new functions into it. This ensures that you keep the original post processor clear from extra code.<\/p>\n\n\n\n<p>The end effector functions should go into the HEADER_PROG variable. A good example of this can be seen in the &#8220;Universal Robots RobotiQ&#8221; post processor, which includes functions to open and close a Robotiq gripper. Have a look at it to see for yourself how it&#8217;s done.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"577\" src=\"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/PostProcessor-1024x577.jpg\" alt=\"\" class=\"wp-image-1741\" srcset=\"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/PostProcessor-1024x577.jpg 1024w, https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/PostProcessor-300x169.jpg 300w, https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/PostProcessor-768x433.jpg 768w, https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/03\/PostProcessor.jpg 1440w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>You will need to include at least two functions \u2014 one to activate the end effector, the other to deactivate it. You might also want to include other functions to access more advanced functionality of the end effector.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Call the Functions During Your Robot Program<\/h3>\n\n\n\n<p>Next, you need to call the functions you just created from within your robot program in RoboDK.<\/p>\n\n\n\n<p>You can program your robot two ways with RoboDK: using graphical programming or using your favorite programming language. Either way, to activate\/deactivate your end effector you only have to insert your new function calls wherever you want them to be triggered within the robot program.<\/p>\n\n\n\n<p>With graphical programming, you call a custom function by using the &#8220;Program Call Instruction&#8221; (which can be found in the &#8220;Program&#8221; menu). In the box that appears, just type the function as it should be called by the robot controller (i.e. including any necessary parentheses and\/or arguments). When the robot program is generated, this line will be will be added to the program.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Generate Robot Program<\/h3>\n\n\n\n<p>Finally, you just need to generate the robot program and you&#8217;re done!<\/p>\n\n\n\n<p>To do this, first make sure you are using the correct post-processor by right clicking on your robot in the program tree and choosing &#8220;Select Post Processor.&#8221;<\/p>\n\n\n\n<p>Then, right click on your robot program in the program tree and select &#8220;Generate robot program.&#8221; This will create a program file which you can run directly on your robot controller.<\/p>\n\n\n\n<p>Simple!<\/p>\n\n\n\n<p><em>What challenges have you encountered programming your end effector? <strong>Tell us in the comments below or join the discussion on <a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/www.linkedin.com\/company\/robodk\/\" target=\"_blank\">LinkedIn<\/a>, <a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/twitter.com\/robodkinc\" target=\"_blank\">Twitter<\/a>, <a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/www.facebook.com\/robodkinc\" target=\"_blank\">Facebook,<\/a> <a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"https:\/\/www.instagram.com\/robodkinc\/\" target=\"_blank\">Instagram<\/a> or in <a href=\"https:\/\/robodk.com\/forum\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">the RoboDK Forum<\/a>.<\/strong><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Programming end effectors is tricky. Each brand does it differently! Wouldn&#8217;t it be great if every tool used the same [&hellip;]<\/p>\n","protected":false},"author":753,"featured_media":1784,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[21,22],"tags":[],"class_list":["post-1209","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-offline-programming","category-robot-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Program Any End Effector with RoboDK - RoboDK blog<\/title>\n<meta name=\"description\" content=\"Programming end effectors is tricky. Each brand does it differently! Wouldn&#039;t it be great if every tool used the same method? Here&#039;s how to do it!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/robodk.com\/blog\/program-end-effector\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Program Any End Effector with RoboDK - RoboDK blog\" \/>\n<meta property=\"og:description\" content=\"Programming end effectors is tricky. Each brand does it differently! Wouldn&#039;t it be great if every tool used the same method? Here&#039;s how to do it!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/robodk.com\/blog\/program-end-effector\/\" \/>\n<meta property=\"og:site_name\" content=\"RoboDK blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/robodkinc\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-25T11:21:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-05T09:36:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/04\/robot-program-end-effector.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1620\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Alex Owen-Hill\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@AlexOwenHill\" \/>\n<meta name=\"twitter:site\" content=\"@robodkinc\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex Owen-Hill\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/robodk.com\/blog\/program-end-effector\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/robodk.com\/blog\/program-end-effector\/\"},\"author\":{\"name\":\"Alex Owen-Hill\",\"@id\":\"https:\/\/robodk.com\/blog\/#\/schema\/person\/3ca2d3b921633adceba2740817765638\"},\"headline\":\"How to Program Any End Effector with RoboDK\",\"datePublished\":\"2019-04-25T11:21:57+00:00\",\"dateModified\":\"2024-11-05T09:36:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/robodk.com\/blog\/program-end-effector\/\"},\"wordCount\":1249,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/robodk.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/robodk.com\/blog\/program-end-effector\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/04\/robot-program-end-effector.jpg\",\"articleSection\":[\"offline programming\",\"robot programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/robodk.com\/blog\/program-end-effector\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/robodk.com\/blog\/program-end-effector\/\",\"url\":\"https:\/\/robodk.com\/blog\/program-end-effector\/\",\"name\":\"How to Program Any End Effector with RoboDK - RoboDK blog\",\"isPartOf\":{\"@id\":\"https:\/\/robodk.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/robodk.com\/blog\/program-end-effector\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/robodk.com\/blog\/program-end-effector\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/04\/robot-program-end-effector.jpg\",\"datePublished\":\"2019-04-25T11:21:57+00:00\",\"dateModified\":\"2024-11-05T09:36:51+00:00\",\"description\":\"Programming end effectors is tricky. Each brand does it differently! Wouldn't it be great if every tool used the same method? Here's how to do it!\",\"breadcrumb\":{\"@id\":\"https:\/\/robodk.com\/blog\/program-end-effector\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/robodk.com\/blog\/program-end-effector\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/robodk.com\/blog\/program-end-effector\/#primaryimage\",\"url\":\"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/04\/robot-program-end-effector.jpg\",\"contentUrl\":\"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/04\/robot-program-end-effector.jpg\",\"width\":1620,\"height\":1080,\"caption\":\"program robot end effector\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/robodk.com\/blog\/program-end-effector\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/robodk.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Program Any End Effector with RoboDK\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/robodk.com\/blog\/#website\",\"url\":\"https:\/\/robodk.com\/blog\/\",\"name\":\"RoboDK blog\",\"description\":\"News about RoboDK, Industrial Robots, Simulation and Robot Programming\",\"publisher\":{\"@id\":\"https:\/\/robodk.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/robodk.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/robodk.com\/blog\/#organization\",\"name\":\"RoboDK\",\"url\":\"https:\/\/robodk.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/robodk.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/mlhiwltxy5pk.i.optimole.com\/w:1920\/h:613\/q:mauto\/f:best\/https:\/\/robodk.com\/blog\/wp-content\/uploads\/2017\/12\/RoboDK-PNG.png\",\"contentUrl\":\"https:\/\/mlhiwltxy5pk.i.optimole.com\/w:1920\/h:613\/q:mauto\/f:best\/https:\/\/robodk.com\/blog\/wp-content\/uploads\/2017\/12\/RoboDK-PNG.png\",\"width\":2128,\"height\":680,\"caption\":\"RoboDK\"},\"image\":{\"@id\":\"https:\/\/robodk.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/robodkinc\",\"https:\/\/x.com\/robodkinc\",\"https:\/\/www.instagram.com\/robodk\/\",\"https:\/\/www.linkedin.com\/company\/robodk\",\"https:\/\/www.youtube.com\/c\/RoboDK3D\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/robodk.com\/blog\/#\/schema\/person\/3ca2d3b921633adceba2740817765638\",\"name\":\"Alex Owen-Hill\",\"description\":\"Alex Owen-Hill is a freelance writer and public speaker who blogs about a large range of topics, including science, presentation skills at CreateClarifyArticulate.com, storytelling and (of course) robotics. He completed a PhD in Telerobotics from Universidad Politecnica de Madrid as part of the PURESAFE project, in collaboration with CERN. As a recovering academic, he maintains a firm foot in the robotics world by blogging about industrial robotics.\",\"sameAs\":[\"https:\/\/x.com\/AlexOwenHill\"],\"url\":\"https:\/\/robodk.com\/blog\/author\/alex-owen-hill\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Program Any End Effector with RoboDK - RoboDK blog","description":"Programming end effectors is tricky. Each brand does it differently! Wouldn't it be great if every tool used the same method? Here's how to do it!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/robodk.com\/blog\/program-end-effector\/","og_locale":"en_US","og_type":"article","og_title":"How to Program Any End Effector with RoboDK - RoboDK blog","og_description":"Programming end effectors is tricky. Each brand does it differently! Wouldn't it be great if every tool used the same method? Here's how to do it!","og_url":"https:\/\/robodk.com\/blog\/program-end-effector\/","og_site_name":"RoboDK blog","article_publisher":"https:\/\/www.facebook.com\/robodkinc","article_published_time":"2019-04-25T11:21:57+00:00","article_modified_time":"2024-11-05T09:36:51+00:00","og_image":[{"width":1620,"height":1080,"url":"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/04\/robot-program-end-effector.jpg","type":"image\/jpeg"}],"author":"Alex Owen-Hill","twitter_card":"summary_large_image","twitter_creator":"@AlexOwenHill","twitter_site":"@robodkinc","twitter_misc":{"Written by":"Alex Owen-Hill","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/robodk.com\/blog\/program-end-effector\/#article","isPartOf":{"@id":"https:\/\/robodk.com\/blog\/program-end-effector\/"},"author":{"name":"Alex Owen-Hill","@id":"https:\/\/robodk.com\/blog\/#\/schema\/person\/3ca2d3b921633adceba2740817765638"},"headline":"How to Program Any End Effector with RoboDK","datePublished":"2019-04-25T11:21:57+00:00","dateModified":"2024-11-05T09:36:51+00:00","mainEntityOfPage":{"@id":"https:\/\/robodk.com\/blog\/program-end-effector\/"},"wordCount":1249,"commentCount":0,"publisher":{"@id":"https:\/\/robodk.com\/blog\/#organization"},"image":{"@id":"https:\/\/robodk.com\/blog\/program-end-effector\/#primaryimage"},"thumbnailUrl":"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/04\/robot-program-end-effector.jpg","articleSection":["offline programming","robot programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/robodk.com\/blog\/program-end-effector\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/robodk.com\/blog\/program-end-effector\/","url":"https:\/\/robodk.com\/blog\/program-end-effector\/","name":"How to Program Any End Effector with RoboDK - RoboDK blog","isPartOf":{"@id":"https:\/\/robodk.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/robodk.com\/blog\/program-end-effector\/#primaryimage"},"image":{"@id":"https:\/\/robodk.com\/blog\/program-end-effector\/#primaryimage"},"thumbnailUrl":"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/04\/robot-program-end-effector.jpg","datePublished":"2019-04-25T11:21:57+00:00","dateModified":"2024-11-05T09:36:51+00:00","description":"Programming end effectors is tricky. Each brand does it differently! Wouldn't it be great if every tool used the same method? Here's how to do it!","breadcrumb":{"@id":"https:\/\/robodk.com\/blog\/program-end-effector\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/robodk.com\/blog\/program-end-effector\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/robodk.com\/blog\/program-end-effector\/#primaryimage","url":"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/04\/robot-program-end-effector.jpg","contentUrl":"https:\/\/robodk.com\/blog\/wp-content\/uploads\/2019\/04\/robot-program-end-effector.jpg","width":1620,"height":1080,"caption":"program robot end effector"},{"@type":"BreadcrumbList","@id":"https:\/\/robodk.com\/blog\/program-end-effector\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/robodk.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Program Any End Effector with RoboDK"}]},{"@type":"WebSite","@id":"https:\/\/robodk.com\/blog\/#website","url":"https:\/\/robodk.com\/blog\/","name":"RoboDK blog","description":"News about RoboDK, Industrial Robots, Simulation and Robot Programming","publisher":{"@id":"https:\/\/robodk.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/robodk.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/robodk.com\/blog\/#organization","name":"RoboDK","url":"https:\/\/robodk.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/robodk.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/mlhiwltxy5pk.i.optimole.com\/w:1920\/h:613\/q:mauto\/f:best\/https:\/\/robodk.com\/blog\/wp-content\/uploads\/2017\/12\/RoboDK-PNG.png","contentUrl":"https:\/\/mlhiwltxy5pk.i.optimole.com\/w:1920\/h:613\/q:mauto\/f:best\/https:\/\/robodk.com\/blog\/wp-content\/uploads\/2017\/12\/RoboDK-PNG.png","width":2128,"height":680,"caption":"RoboDK"},"image":{"@id":"https:\/\/robodk.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/robodkinc","https:\/\/x.com\/robodkinc","https:\/\/www.instagram.com\/robodk\/","https:\/\/www.linkedin.com\/company\/robodk","https:\/\/www.youtube.com\/c\/RoboDK3D"]},{"@type":"Person","@id":"https:\/\/robodk.com\/blog\/#\/schema\/person\/3ca2d3b921633adceba2740817765638","name":"Alex Owen-Hill","description":"Alex Owen-Hill is a freelance writer and public speaker who blogs about a large range of topics, including science, presentation skills at CreateClarifyArticulate.com, storytelling and (of course) robotics. He completed a PhD in Telerobotics from Universidad Politecnica de Madrid as part of the PURESAFE project, in collaboration with CERN. As a recovering academic, he maintains a firm foot in the robotics world by blogging about industrial robotics.","sameAs":["https:\/\/x.com\/AlexOwenHill"],"url":"https:\/\/robodk.com\/blog\/author\/alex-owen-hill\/"}]}},"_links":{"self":[{"href":"https:\/\/robodk.com\/blog\/wp-json\/wp\/v2\/posts\/1209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robodk.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robodk.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robodk.com\/blog\/wp-json\/wp\/v2\/users\/753"}],"replies":[{"embeddable":true,"href":"https:\/\/robodk.com\/blog\/wp-json\/wp\/v2\/comments?post=1209"}],"version-history":[{"count":11,"href":"https:\/\/robodk.com\/blog\/wp-json\/wp\/v2\/posts\/1209\/revisions"}],"predecessor-version":[{"id":7864,"href":"https:\/\/robodk.com\/blog\/wp-json\/wp\/v2\/posts\/1209\/revisions\/7864"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/robodk.com\/blog\/wp-json\/wp\/v2\/media\/1784"}],"wp:attachment":[{"href":"https:\/\/robodk.com\/blog\/wp-json\/wp\/v2\/media?parent=1209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robodk.com\/blog\/wp-json\/wp\/v2\/categories?post=1209"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robodk.com\/blog\/wp-json\/wp\/v2\/tags?post=1209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}