{"id":4560,"date":"2017-10-26T09:49:54","date_gmt":"2017-10-26T07:49:54","guid":{"rendered":"https:\/\/blog.generationrobots.com\/?p=4560"},"modified":"2023-03-29T11:47:22","modified_gmt":"2023-03-29T09:47:22","slug":"dynamixel-tutorial-einen-multi-turn-joint-controller-erstellen","status":"publish","type":"post","link":"https:\/\/www.generationrobots.com\/blog\/de\/dynamixel-tutorial-einen-multi-turn-joint-controller-erstellen\/","title":{"rendered":"Dynamixel Tutorial: Einen Multi-turn Joint Controller erstellen"},"content":{"rendered":"\n<html>\n <body>\n  <p>\n   Dieses Dynamixel Tutorial beschreibt, wie Sie den Joint Controller mit Dynamixel im Multi-turn Modus verwenden.\n  <\/p>\n  \n  \n  <p>\n   Level des Tutorials:\n   <strong>\n    MITTEL\n   <\/strong>\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-1-der-multi-turn-modus\">\n   1. Der Multi-turn Modus\n  <\/h2>\n  \n  \n  <p>\n   Mit dem Multi-turn Modus erreicht der\n   <a class=\"catalogue\" href=\"\/de\/169-dynamixel-servomotoren\">\n    Dynamixel Servomotor\n   <\/a>\n   eine Zielposition gr\u00f6\u00dfer als 4095 (4095 entspricht 2pi, das Ergebnis in rad). Mit dem aktivierten Multi-turn Modus erreicht der Servomotor eine maximale Zielposition entsprechend 6 oder 7 Drehungen. In diesem Beispiel verwenden wir einen\n   <a class=\"catalogue\" href=\"\/de\/401088-servomotor-dynamixel-mx-28r.html\">\n    Dynamixel MX-28\n   <\/a>\n   , der im Multi-turn Modus, mit dem Ausgangswert 0, Werte zwischen -24576 und 24576 annehmen kann.\n  <\/p>\n  \n  \n  <p>\n   Der Multi-turn Modus ist nur f\u00fcr manche Servomotoren verf\u00fcgbar, daher lesen Sie vorher in der Betriebsanleitung nach, ob er auch bei Ihrem Motor verf\u00fcgbar ist und wo seine Grenzen liegen.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-2-werte-und-nachrichten\">\n   2. Werte und Nachrichten\n  <\/h2>\n  \n  \n  <p>\n   Wenn Sie die Parameter des Servomotors in die .yami Datei eingeben, ist wichtig, dass die Grenzen des Winkels im Dynamixel Bin\u00e4rwert (im ersten Tutorial mit 0\/4095 festgelegt) angegeben werden, w\u00e4hrend der Wert in joint_controller\/command in rad angegeben wird. Wenn der Servomotor also eine komplette Drehung als Grenze haben soll und Sie nur positive Positionswerte herausgeben wollen, werden die Grenzen auf 0\/4095 gesetzt und die Ausgangsposition des Motors wird als 0 angenommen. Wenn der Servomotor nun zu seiner maximalen Position (4095) gehen soll, wird der Wert bei 6,28 (2pi) liegen.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-3-schritt-den-multi-turn-modus-konfigurieren\">\n   3. Schritt: Den Multi-turn Modus konfigurieren\n  <\/h2>\n  \n  \n  <p>\n   Es gibt viele Wege, den Dynamixel in den Multi-turn Modus zu konfigurieren. Das ROS-Paket dynamixel_driver; enthalten in dynamixel_motor, hat viele Nodes, die die Grenzen konfigurieren, aber es gibt auch Alternativen, wie Mixcell, Dynamixel Workbench und Smart Servo Framework.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-4-schritt-konfigurationsdatei\">\n   4. Schritt: Konfigurationsdatei\n  <\/h2>\n  \n  \n  <p>\n   Angenommen, Sie wollen Ihrem Dynamixel Servomotor maximale Umdrehungen geben, und Sie haben dies bereits im Multi-turn Modus festgesetzt, und seine ID ist 1, dann sollte die Konfigurationsdatei so aussehen:\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #008000;\">\n    tilt_controller:\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    controller:\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    package: dynamixel_controllers\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    module: joint_position_controller\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    type: JointPositionController\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    joint_name: tilt_joint\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    joint_speed: 1.0\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    motor:\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    id: 1\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    init: 24576\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    min: 0\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    max: 49152\n   <\/span>\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-5-schritt-die-grenzen-verstehen\">\n   5. Schritt: Die Grenzen verstehen\n  <\/h2>\n  \n  \n  <p>\n   Der Ausgangswert, festgelegt als 24576, wird als Position 0 angenommen, wenn wir eine negative Zielposition senden, wird sich der Servomotor gegen den Uhrzeigersinn drehen. Wenn wir aber einen positiven Wert senden, wird er sich im Uhrzeigersinn drehen, weil die Referenz sowohl des negativen, als auch des positiven Werts bei 24576 liegen. Der maximale Wert, den der Servomotor erreichen kann, liegt bei 37,7, die Grenze der Umdrehungen multipliziert mit 2pi.\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #008000;\">\n    init: 24576\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    min: 0\n   <\/span>\n   <br\/>\n   <span style=\"color: #008000;\">\n    max: 49152\n   <\/span>\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-6-schritt-laufen-lassen\">\n   6. Schritt: Laufen lassen\n  <\/h2>\n  \n  \n  <p>\n   Starten Sie den controller_manager.\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #008000;\">\n    roslaunch my_dynamixel_tutorial controller_manager.launch\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #000000;\">\n    Starten Sie den tilt_controller.\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #008000;\">\n    roslaunch my_dynamixel_tutorial start_tilt_controller.launch\n   <\/span>\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-7-schritt-bewegen-lassen\">\n   7. Schritt: Bewegen lassen\n  <\/h2>\n  \n  \n  <p>\n   Damit sich der Servomotor bewegt, ist das gleiche Vorgehen wie im vorherigen Dynamixel Tutorial notwendig, aber jetzt erhalten Sie gr\u00f6\u00dfere Werte als 2pi.\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #008000;\">\n    rostopic pub -1 \/tilt_controller\/command std_msgs\/Float64 &#8212; 9\n   <\/span>\n  <\/p>\n  \n <\/body>\n<\/html>","protected":false},"excerpt":{"rendered":"<p>Dieses Dynamixel Tutorial beschreibt, wie Sie den Joint Controller mit Dynamixel im Multi-turn Modus verwenden. Level des Tutorials: MITTEL 1. Der Multi-turn Modus Mit dem Multi-turn Modus erreicht der Dynamixel Servomotor eine Zielposition gr\u00f6\u00dfer als 4095 (4095 entspricht 2pi, das Ergebnis in rad). Mit dem aktivierten Multi-turn Modus erreicht der Servomotor eine maximale Zielposition entsprechend[&#8230;]<br \/> <a class=\"button\" href=\"https:\/\/www.generationrobots.com\/blog\/de\/dynamixel-tutorial-einen-multi-turn-joint-controller-erstellen\/\" style=\"float:right;\">Read this article &gt;&gt;<\/a><\/p>\n","protected":false},"author":188,"featured_media":4565,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10533],"tags":[],"class_list":["post-4560","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-anleitungen-und-tutorials"],"_links":{"self":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/4560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/users\/188"}],"replies":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/comments?post=4560"}],"version-history":[{"count":3,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/4560\/revisions"}],"predecessor-version":[{"id":13026,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/4560\/revisions\/13026"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/media\/4565"}],"wp:attachment":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/media?parent=4560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/categories?post=4560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/tags?post=4560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}