{"id":4527,"date":"2017-10-26T09:51:41","date_gmt":"2017-10-26T07:51:41","guid":{"rendered":"https:\/\/blog.generationrobots.com\/?p=4527"},"modified":"2023-03-29T11:47:42","modified_gmt":"2023-03-29T09:47:42","slug":"dynamixel-servomotoren-tutorial","status":"publish","type":"post","link":"https:\/\/www.generationrobots.com\/blog\/de\/dynamixel-servomotoren-tutorial\/","title":{"rendered":"Dynamixel Servomotoren &#8211; Tutorial f\u00fcr Anf\u00e4nger"},"content":{"rendered":"\n<html>\n <body>\n  <p>\n   Mit Hilfe dieses Tutorials k\u00f6nnen sich Anf\u00e4nger mit Dynamixel vertraut machen und lernen, wie man\u00a0die\u00a0Parameter seines Servomotors setzt, um ihn zu kontrollieren.\n  <\/p>\n  \n  \n  <p>\n   Level des Tutorials:\n   <strong>\n    ANF\u00c4NGER\n   <\/strong>\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-1-einleitung\">\n   1. Einleitung\n  <\/h2>\n  \n  \n  <p>\n   Zuerst m\u00fcssen wir die Grundprinzipien von Dynamixel verstehen. Dynamixel ist ein Servomotor, den der Anwender leicht nutzen kann, indem er bestimmte Parameter \u00fcber ROS eingibt, aber darauf wird sp\u00e4ter noch genauer eingegangen. Au\u00dferdem l\u00e4sst sich unser\n   <a class=\"catalogue\" href=\"\/de\/293-dynamixel\" rel=\"noopener\" target=\"_blank\">\n    Dynamixel Servomotor\n   <\/a>\n   \u00fcber drei Wege steuern:\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    Joint Mode\n   <\/li>\n   \n   \n   <li>\n    Wheel Mode\n   <\/li>\n   \n   \n   <li>\n    Multi-turn Mode\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   Es ist wichtig zu wissen, dass wir jedes Mal, wenn wir einen Modus konfigurieren wollen, den Controller Manager laufen lassen. In\n   <a class=\"catalogue\" href=\"https:\/\/blog.generationrobots.com\/de\/2017\/10\/dynamixel-tutorial-verbindung-mit-dem-dynamixel-bus\/\" rel=\"noopener\" target=\"_blank\">\n    diesem Tutorial\n   <\/a>\n   finden Sie heraus, wie.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-2-den-servomotor-pingen\">\n   2. Den Servomotor pingen\n  <\/h2>\n  \n  \n  <p>\n   Mit einem Python Skript ist es sehr einfach, den Motor zu pingen. Das Interface ist sehr benutzerfreundlich, wie Sie unten sehen k\u00f6nnen. Hier finden Sie das\n   <a class=\"catalogue\" href=\"https:\/\/github.com\/clebercoutof\/mixcell\" rel=\"noopener\" target=\"_blank\">\n    komplette Paket\n   <\/a>\n   .\n  <\/p>\n  \n  \n  <figure class=\"wp-block-image aligncenter\">\n   <a class=\"catalogue\" href=\"https:\/\/blog.generationrobots.com\/wp-content\/uploads\/2017\/10\/Dynamixel-Tuto1-1.jpg\">\n    <img fetchpriority=\"high\" decoding=\"async\" width=\"734\" height=\"428\" alt=\"Dynamixel Tutorial\" class=\"wp-image-4532\" src=\"https:\/\/blog.generationrobots.com\/wp-content\/uploads\/2017\/10\/Dynamixel-Tuto1-1.jpg\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/10\/Dynamixel-Tuto1-1.jpg 734w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/10\/Dynamixel-Tuto1-1-300x175.jpg 300w\" sizes=\"(max-width: 734px) 100vw, 734px\" \/>\n   <\/a>\n  <\/figure>\n  \n  \n  <p>\n   <br\/>\n   Wenn wir zum Beispiel einen\n   <a class=\"catalogue\" href=\"\/de\/293-dynamixel\" rel=\"noopener\" target=\"_blank\">\n    Dynamixel Servomotor\n   <\/a>\n   an unseren Computer anschlie\u00dfen und wir, angenommen, weder die Identifikation noch die Symbolrate (Baudrate) wissen, w\u00fcrden wir alle Baudraten und Identifikationen (IDs) ausw\u00e4hlen (von 1 bis 10).\n  <\/p>\n  \n  \n  <figure class=\"wp-block-image aligncenter\">\n   <a class=\"catalogue\" href=\"https:\/\/blog.generationrobots.com\/wp-content\/uploads\/2017\/10\/Dynamixel-Tuto1-2.jpg\">\n    <img decoding=\"async\" width=\"733\" height=\"428\" alt=\"Dynamixel Servomotor Tutorial\" class=\"wp-image-4534\" src=\"https:\/\/blog.generationrobots.com\/wp-content\/uploads\/2017\/10\/Dynamixel-Tuto1-2.jpg\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/10\/Dynamixel-Tuto1-2.jpg 733w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/10\/Dynamixel-Tuto1-2-300x175.jpg 300w\" sizes=\"(max-width: 733px) 100vw, 733px\" \/>\n   <\/a>\n  <\/figure>\n  \n  \n  <p>\n   <br\/>\n   In diesem Fall ist der gefundene Motor ein MX-28 mit einer Symbolrate von 57600 und der ID 5. Diese Daten sind extrem wichtig f\u00fcr alles, was wir mit dem Dynamixel machen wollen.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-3-joint-mode\">\n   3. Joint Mode\n  <\/h2>\n  \n  \n  <p>\n   Um zu verstehen, was ein Joint ist, stellen Sie sich vor, dass Sie den Arm eines Roboters kontrollieren wollen, daf\u00fcr drehen Sie ihn um einen bestimmten Winkel und dann sollte der Arm im vorgegebenen Winkel bleiben, daf\u00fcr sorgt ein Joint. Den Dynamixel im Joint Mode zu konfigurieren, ist die einfachste Einstellung, die Sie vornehmen k\u00f6nnen. Wie Sie das schaffen, sehen Sie\n   <a class=\"catalogue\" href=\"https:\/\/blog.generationrobots.com\/de\/2017\/10\/tutorial-joint-dynamixel-controller-erstellen\/\" rel=\"noopener\" target=\"_blank\">\n    hier\n   <\/a>\n   .\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-4-wheel-mode\">\n   4. Wheel Mode\n  <\/h2>\n  \n  \n  <p>\n   Um im Wheel Mode arbeiten zu k\u00f6nnen, m\u00fcssen wir nach folgendem Paket in unserem Endger\u00e4t suchen:\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #339966;\">\n    $ rosrun dynamixel_drivers set_servo_config.py\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   Im Paket \u201cdynamixel_drivers\u201d ist das Python Skript \u201cset_servo_config.py\u201d enthalten. Das ist das Skript, mit dem man die Parameter auf dem Dynamixel festlegt. Wenn wir den vorherigen Befehl ausf\u00fchren, sehen wir in etwa folgendes auf unserem Endger\u00e4t:\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #339966;\">\n    Options:\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    -h, &#8211;help show this help message and exit\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    -p PORT, &#8211;port=PORT motors of specified controllers are connected to PORT\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    [default: \/dev\/ttyUSB0]\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    -b BAUD, &#8211;baud=BAUD connection to serial port will be established at BAUD\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    bps [default: 1000000]\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    -r RATE, &#8211;baud-rate=RATE\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    set servo motor communication speed\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    -d DELAY, &#8211;return-delay=DELAY\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    set servo motor return packet delay time\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    &#8211;cw-angle-limit=CW_ANGLE\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    set servo motor CW angle limit\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    &#8211;ccw-angle-limit=CCW_ANGLE\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    set servo motor CCW angle limit\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    &#8211;min-voltage-limit=MIN_VOLTAGE\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    set servo motor minimum voltage limit\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    &#8211;max-voltage-limit=MAX_VOLTAGE\n   <\/span>\n   <br\/>\n   <span style=\"color: #339966;\">\n    set servo motor maximum voltage limit\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   Es gibt zahlreiche Parameter, aber wir wollen unseren Dynamixel einfach nur in den Wheel Mode bringen. Jetzt geben wir folgenden Befehl:\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #339966;\">\n    $ rosrun dynamixel_drivers set_servo_config.py 5 &#8211;baud=57600 &#8211;cw-angle-limit=0\n    <br\/>\n    &#8211;ccw-angle-limit=0\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   Der erste Parameter, \u201c5\u201d, bezieht sich auf die Identifikation des Dynamixel, hier sollten Sie also die ID Ihres Dynamixels sehen. Der zweite Parameter ist die Symbolrate, davon sind jede Menge verf\u00fcgbar, deshalb sollten Sie diese auch vorher \u00fcberpr\u00fcfen. Zwei neue Parameter hier sind \u201c&#8211;cw-angle-limit\u201d und \u201c&#8211;ccw-angle-limit\u201d. CW ist kurz f\u00fcr clockwise, also im Uhrzeigersinn und CCW die Abk\u00fcrzung f\u00fcr counterclockwise, also gegen den Uhrzeigersinn. Es ist sinnvoll, die Grenzen f\u00fcr CW und CCW auf 0 setzen, wenn sich unser Motor voll drehen soll.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-5-multi-turn-mode\">\n   5. Multi-turn Mode\n  <\/h2>\n  \n  \n  <p>\n   Mit diesem Modus erh\u00e4lt der Dynamixel ein gr\u00f6\u00dferes Ziel als 4095 (4095 ist eine volle Drehung). Erw\u00e4hnenswert ist, dass der Multi-turn Mode nur f\u00fcr bestimmte Servomotoren von Dynamixel verf\u00fcgbar ist. \u00dcberpr\u00fcfen Sie die Betriebsanleitung, bevor Sie irgendetwas ausprobieren. Sie finden das Tutorial f\u00fcr diesen Modus\n   <a class=\"catalogue\" href=\"https:\/\/blog.generationrobots.com\/de\/2017\/10\/dynamixel-tutorial-einen-multi-turn-joint-controller-erstellen\/\" rel=\"noopener\" target=\"_blank\">\n    hier\n   <\/a>\n   .\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-6-ein-einfacher-weg\">\n   6. Ein einfacher Weg\n  <\/h2>\n  \n  \n  <p>\n   Statt uns das Leben schwer zu machen, k\u00f6nnten wir einfach das Skript oben verwenden, mit dem wir Dynamixel zudem in jeden beliebigen Modus setzen k\u00f6nnen, wie z.B. die Verst\u00e4rkung, neue Symbolraten, IDs und das maximale Drehmoment festlegen.\n  <\/p>\n  \n  \n  <figure class=\"wp-block-image aligncenter\">\n   <a class=\"catalogue\" href=\"https:\/\/blog.generationrobots.com\/wp-content\/uploads\/2017\/10\/final1.jpg\">\n    <img decoding=\"async\" width=\"734\" height=\"432\" alt=\"Dynamixel Servomotoren Tutorial\" class=\"wp-image-4537\" src=\"https:\/\/blog.generationrobots.com\/wp-content\/uploads\/2017\/10\/final1.jpg\" srcset=\"https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/10\/final1.jpg 734w, https:\/\/www.generationrobots.com\/blog\/wp-content\/uploads\/2017\/10\/final1-300x177.jpg 300w\" sizes=\"(max-width: 734px) 100vw, 734px\" \/>\n   <\/a>\n  <\/figure>\n  \n <\/body>\n<\/html>","protected":false},"excerpt":{"rendered":"<p>Mit Hilfe dieses Tutorials k\u00f6nnen sich Anf\u00e4nger mit Dynamixel vertraut machen und lernen, wie man\u00a0die\u00a0Parameter seines Servomotors setzt, um ihn zu kontrollieren. Level des Tutorials: ANF\u00c4NGER 1. Einleitung Zuerst m\u00fcssen wir die Grundprinzipien von Dynamixel verstehen. Dynamixel ist ein Servomotor, den der Anwender leicht nutzen kann, indem er bestimmte Parameter \u00fcber ROS eingibt, aber darauf[&#8230;]<br \/> <a class=\"button\" href=\"https:\/\/www.generationrobots.com\/blog\/de\/dynamixel-servomotoren-tutorial\/\" 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-4527","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\/4527","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=4527"}],"version-history":[{"count":14,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/4527\/revisions"}],"predecessor-version":[{"id":13029,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/4527\/revisions\/13029"}],"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=4527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/categories?post=4527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/tags?post=4527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}