{"id":12411,"date":"2019-04-24T13:29:58","date_gmt":"2019-04-24T11:29:58","guid":{"rendered":"https:\/\/blog.zhaw.ch\/icclab\/?p=12411"},"modified":"2021-03-04T18:45:29","modified_gmt":"2021-03-04T16:45:29","slug":"niryo-arm-motor-troubleshooting","status":"publish","type":"post","link":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/","title":{"rendered":"Niryo Arm Motor Troubleshooting"},"content":{"rendered":"\n<p>In most development processes hiccups are unavoidable. Our grasping application using the <a href=\"https:\/\/niryo.com\/niryo-one\/\">Niryo One<\/a> arm was no exception. During testing, we had two of our arms break down and with this post, we would like to share our experiences with debugging and resolving these issues.<\/p>\n\n\n\n<p>As far as we can understand, the axis 6 motor (<a href=\"http:\/\/support.robotis.com\/en\/product\/actuator\/dynamixel_x\/xl_series\/xl-320.htm\">Dynamixel XL-320<\/a> model) in the first arm, which is responsible for turning the gripper around, was damaged due to the gripper hitting the table. Since the gripper does not have an applied force feedback shutdown procedure, one of the motors probably broke down from overloading. Note that there is no gripper URDF model provided and octomap integration into the project was not yet complete at the time, so the kinematics planner was not aware of the table&#8217;s existence. As for our second arm, the culprit was the power adapter. The <a href=\"http:\/\/support.robotis.com\/en\/product\/actuator\/dynamixel_x\/xl_series\/xl430-w250.htm\">Dynamixel XL-430<\/a> motors are rated for 11.1 Volts, but the adapter supplied is a 12V one, which can cause permanent damage due to overheating if the arm is operating for prolonged periods of time. This design oversight was amended in Niryo One models shipped after November 2018, but in any case, you should check the rating of the power adapter provided and request a replacement if needed.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>First things first, we need to figure out which motors are damaged. To do so we need to make sure <a href=\"https:\/\/github.com\/icclab\/icclab_grasping_niryo#configuring-connection-between-your-pc-and-robot\">a connection is established<\/a> between our local machine and the Niryo arm. Now it&#8217;s a good time to pull the latest <a href=\"https:\/\/github.com\/NiryoRobotics\/niryo_one_ros\">niryo_one_ros<\/a> repository. After that, we launch the Niryo One Studio program, which is a user-friendly interface for controlling and debugging the arm. Clicking on the &#8220;Debug&#8221; tab on the left will bring up the &#8220;Motor debug options&#8221; panel. We uncheck all but one motor each time and click on   &#8220;Change config and reboot&#8221;, which will reboot the arm with only the checked motor enabled. If no error messages comes up, then that motor is fine and we can move down the list. In our case, the axis 6 motor was identified as faulty. Finally, re-enable all the motors in the checklist and reboot one last time.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/niryo.com\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-11-23-12-59-47.png\" alt=\"\" \/><\/figure><\/div>\n\n\n\n<p>The next step is to replace the motor. Niryo provides <a href=\"https:\/\/niryo.com\/docs\/niryo-one\/assembly-guide\/\">assembly videos<\/a> and by following those we can disassemble a particular joint of interest. Since we didn&#8217;t have a spare Dynamixel XL-320 in our disposal we removed one from the Gripper 2 provided with the robot. Every motor comes preconfigured with its own unique ID that signifies which part of the robot it actuates. These IDs are specified in the niryo_one_bringup\/config\/v2\/niryo_one_motors.yaml file. As we can see the arm expects an ID = 6 but our replacement servo has ID = 12. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/niryo.com\/wp-content\/uploads\/2018\/07\/niryo_one_motors_yaml.png\" alt=\"\" \/><\/figure><\/div>\n\n\n\n<p>To alter the ID of the new gripper we&#8217;ll use the dxl_debug_tools program. First, we need to ssh to the robot and make sure the package has been compiled by running:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd ~\/catkin_ws\ncatkin_make -j2\ncd ~\/catkin_ws\/devel\/lib\/niryo_one_debug\n.\/dxl_debug_tools --help<\/code><\/pre>\n\n\n\n<p>Next, we have to bring down the Niryo ROS stack by executing in the terminal: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl stop niryo_one_ros.service<\/code><\/pre>\n\n\n\n<p>Now we can run the program to set the grippers EEPROM values as necessary. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"798\" height=\"570\" src=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2019\/04\/dynamixel_320_eeprom_table.png\" alt=\"\" class=\"wp-image-12413\" srcset=\"https:\/\/blog.zhaw.ch\/icclab\/files\/2019\/04\/dynamixel_320_eeprom_table.png 798w, https:\/\/blog.zhaw.ch\/icclab\/files\/2019\/04\/dynamixel_320_eeprom_table-300x214.png 300w, https:\/\/blog.zhaw.ch\/icclab\/files\/2019\/04\/dynamixel_320_eeprom_table-768x549.png 768w, https:\/\/blog.zhaw.ch\/icclab\/files\/2019\/04\/dynamixel_320_eeprom_table-420x300.png 420w\" sizes=\"auto, (max-width: 798px) 100vw, 798px\" \/><\/figure><\/div>\n\n\n\n<p>To change our ID from 12 to 6 we just have to run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/dxl_debug_tools --id 12 --set-register 3 6 1<\/code><\/pre>\n\n\n\n<p>We can now bring up the arm again by running roslaunch niryo_one_bringup rpi_setup.launch or just switching the robot off and then on. And now we are finally back in business and ready to run more tests!<\/p>\n<div class=\"pt-sm\">Schlagw\u00f6rter: <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/niryo\/\">niryo<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/robotics\/\">robotics<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/ros\/\">ROS<\/a>, <a href=\"https:\/\/blog.zhaw.ch\/icclab\/tag\/troubleshooting\/\">troubleshooting<\/a><br><\/div>","protected":false},"excerpt":{"rendered":"<p>In most development processes hiccups are unavoidable. Our grasping application using the Niryo One arm was no exception. During testing, we had two of our arms break down and with this post, we would like to share our experiences with debugging and resolving these issues. As far as we can understand, the axis 6 motor [&hellip;]<\/p>\n","protected":false},"author":476,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[1,943],"tags":[935,692,741,412],"features":[],"class_list":["post-12411","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-cloud-robotics-articles","tag-niryo","tag-robotics","tag-ros","tag-troubleshooting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Niryo Arm Motor Troubleshooting - Service Engineering (ICCLab &amp; SPLab)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Niryo Arm Motor Troubleshooting\" \/>\n<meta property=\"og:description\" content=\"In most development processes hiccups are unavoidable. Our grasping application using the Niryo One arm was no exception. During testing, we had two of our arms break down and with this post, we would like to share our experiences with debugging and resolving these issues. As far as we can understand, the axis 6 motor [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Engineering (ICCLab &amp; SPLab)\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-24T11:29:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-04T16:45:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/niryo.com\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-11-23-12-59-47.png\" \/>\n<meta name=\"author\" content=\"Dimitrios Dimopoulos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dimitrios Dimopoulos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/\"},\"author\":{\"name\":\"Dimitrios Dimopoulos\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/42cd0e1073f53f3eb8d249a4871ddb73\"},\"headline\":\"Niryo Arm Motor Troubleshooting\",\"datePublished\":\"2019-04-24T11:29:58+00:00\",\"dateModified\":\"2021-03-04T16:45:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/\"},\"wordCount\":572,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/niryo.com\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-11-23-12-59-47.png\",\"keywords\":[\"niryo\",\"robotics\",\"ROS\",\"troubleshooting\"],\"articleSection\":[\"*.*\",\"Cloud Robotics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/\",\"name\":\"Niryo Arm Motor Troubleshooting - Service Engineering (ICCLab &amp; SPLab)\",\"isPartOf\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/niryo.com\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-11-23-12-59-47.png\",\"datePublished\":\"2019-04-24T11:29:58+00:00\",\"dateModified\":\"2021-03-04T16:45:29+00:00\",\"author\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/42cd0e1073f53f3eb8d249a4871ddb73\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#primaryimage\",\"url\":\"https:\/\/niryo.com\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-11-23-12-59-47.png\",\"contentUrl\":\"https:\/\/niryo.com\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-11-23-12-59-47.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/blog.zhaw.ch\/icclab\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Niryo Arm Motor Troubleshooting\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#website\",\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/\",\"name\":\"Service Engineering (ICCLab &amp; SPLab)\",\"description\":\"A Blog of the ZHAW Zurich University of Applied Sciences\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/42cd0e1073f53f3eb8d249a4871ddb73\",\"name\":\"Dimitrios Dimopoulos\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/4ebf412beb77da492b252029191429c5f1d0c842c8619e70dbb76c9bcca5596c?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4ebf412beb77da492b252029191429c5f1d0c842c8619e70dbb76c9bcca5596c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4ebf412beb77da492b252029191429c5f1d0c842c8619e70dbb76c9bcca5596c?s=96&d=mm&r=g\",\"caption\":\"Dimitrios Dimopoulos\"},\"url\":\"https:\/\/blog.zhaw.ch\/icclab\/author\/dimo\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Niryo Arm Motor Troubleshooting - Service Engineering (ICCLab &amp; SPLab)","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:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/","og_locale":"en_US","og_type":"article","og_title":"Niryo Arm Motor Troubleshooting","og_description":"In most development processes hiccups are unavoidable. Our grasping application using the Niryo One arm was no exception. During testing, we had two of our arms break down and with this post, we would like to share our experiences with debugging and resolving these issues. As far as we can understand, the axis 6 motor [&hellip;]","og_url":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/","og_site_name":"Service Engineering (ICCLab &amp; SPLab)","article_published_time":"2019-04-24T11:29:58+00:00","article_modified_time":"2021-03-04T16:45:29+00:00","og_image":[{"url":"https:\/\/niryo.com\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-11-23-12-59-47.png","type":"","width":"","height":""}],"author":"Dimitrios Dimopoulos","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Dimitrios Dimopoulos","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#article","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/"},"author":{"name":"Dimitrios Dimopoulos","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/42cd0e1073f53f3eb8d249a4871ddb73"},"headline":"Niryo Arm Motor Troubleshooting","datePublished":"2019-04-24T11:29:58+00:00","dateModified":"2021-03-04T16:45:29+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/"},"wordCount":572,"commentCount":0,"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#primaryimage"},"thumbnailUrl":"https:\/\/niryo.com\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-11-23-12-59-47.png","keywords":["niryo","robotics","ROS","troubleshooting"],"articleSection":["*.*","Cloud Robotics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/","url":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/","name":"Niryo Arm Motor Troubleshooting - Service Engineering (ICCLab &amp; SPLab)","isPartOf":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#primaryimage"},"image":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#primaryimage"},"thumbnailUrl":"https:\/\/niryo.com\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-11-23-12-59-47.png","datePublished":"2019-04-24T11:29:58+00:00","dateModified":"2021-03-04T16:45:29+00:00","author":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/42cd0e1073f53f3eb8d249a4871ddb73"},"breadcrumb":{"@id":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#primaryimage","url":"https:\/\/niryo.com\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-11-23-12-59-47.png","contentUrl":"https:\/\/niryo.com\/wp-content\/uploads\/2018\/07\/Screenshot-from-2018-11-23-12-59-47.png"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.zhaw.ch\/icclab\/niryo-arm-motor-troubleshooting\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/blog.zhaw.ch\/icclab\/"},{"@type":"ListItem","position":2,"name":"Niryo Arm Motor Troubleshooting"}]},{"@type":"WebSite","@id":"https:\/\/blog.zhaw.ch\/icclab\/#website","url":"https:\/\/blog.zhaw.ch\/icclab\/","name":"Service Engineering (ICCLab &amp; SPLab)","description":"A Blog of the ZHAW Zurich University of Applied Sciences","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.zhaw.ch\/icclab\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.zhaw.ch\/icclab\/#\/schema\/person\/42cd0e1073f53f3eb8d249a4871ddb73","name":"Dimitrios Dimopoulos","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4ebf412beb77da492b252029191429c5f1d0c842c8619e70dbb76c9bcca5596c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4ebf412beb77da492b252029191429c5f1d0c842c8619e70dbb76c9bcca5596c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4ebf412beb77da492b252029191429c5f1d0c842c8619e70dbb76c9bcca5596c?s=96&d=mm&r=g","caption":"Dimitrios Dimopoulos"},"url":"https:\/\/blog.zhaw.ch\/icclab\/author\/dimo\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/12411","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/users\/476"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/comments?post=12411"}],"version-history":[{"count":9,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/12411\/revisions"}],"predecessor-version":[{"id":12422,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/posts\/12411\/revisions\/12422"}],"wp:attachment":[{"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/media?parent=12411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/categories?post=12411"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/tags?post=12411"},{"taxonomy":"features","embeddable":true,"href":"https:\/\/blog.zhaw.ch\/icclab\/wp-json\/wp\/v2\/features?post=12411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}