{"id":4541,"date":"2017-10-26T09:50:11","date_gmt":"2017-10-26T07:50:11","guid":{"rendered":"https:\/\/blog.generationrobots.com\/?p=4541"},"modified":"2023-03-29T11:47:32","modified_gmt":"2023-03-29T09:47:32","slug":"dynamixel-tutorial-verbindung-mit-dem-dynamixel-bus","status":"publish","type":"post","link":"https:\/\/www.generationrobots.com\/blog\/de\/dynamixel-tutorial-verbindung-mit-dem-dynamixel-bus\/","title":{"rendered":"Dynamixel Tutorial: Verbindung mit dem Dynamixel Bus"},"content":{"rendered":"\n<html>\n <body>\n  <p>\n   Dieses Tutorial beschreibt, wie man Robotis Dynamixel Servomotoren verbindet und unbearbeitetes Feedback auswertet.\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-schritt-ein-paket-erstellen\">\n   1. Schritt: Ein Paket erstellen\n  <\/h2>\n  \n  \n  <p>\n   Bevor wir anfangen, m\u00fcssen wir ein Paket erstellen, mit den richtigen Abh\u00e4ngigkeiten und allen Dateien aus diesem Tutorial.\n   <strong>\n    Bemerkung:\n   <\/strong>\n   Bevor Sie einen Befehl aus der Liste ausf\u00fchren, vergewissern Sie sich, dass das aktuelle Verzeichnis in einem der Verzeichnisse der Umgebungsvariablen ROS_PACKAGE_PATH liegt. (Hier ist ein\n   <a class=\"catalogue\" href=\"http:\/\/wiki.ros.org\/ROS\/Tutorials\/InstallingandConfiguringROSEnvironment\" rel=\"noopener\" target=\"_blank\">\n    Tutorial\n   <\/a>\n   , wie man seinen Arbeitsplatz und ein Overlay-Verzeichnis am besten erstellt.)\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #666699;\">\n    # Dies haben Sie in dem Creating a Workspace Tutorial erstellt.\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    cd ~\/catkin_ws\/src\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    catkin_create_pkg my_dynamixel_tutorial dynamixel_controllers std_msgs rospy roscpp\n   <\/span>\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-2-schritt-eine-startdatei-fur-den-manager-node-erstellen\">\n   2. Schritt: Eine Startdatei f\u00fcr den Manager Node erstellen\n  <\/h2>\n  \n  \n  <p>\n   Wir nehmen an, dass die Dynamixel Servomotoren mit dem \/dev\/ttyUSB0 Port verbunden sind.\n  <\/p>\n  \n  \n  <p>\n   Zuerst m\u00fcssen wir den Controller Manager starten, der sich mit den Motoren verbindet und unbearbeitete Feedback-Daten (z.B. aktuelle Position, Zielposition, Fehler, etc.) in einer bestimmten Rate sendet. Am einfachsten geht das, indem wir eine Startdatei schreiben, die alle notwendigen Parameter festlegt. Kopieren Sie den folgenden Text und f\u00fcgen Sie ihn in eine controller_manager.launch Datei ein.\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #666699;\">\n    1\u00a0&lt;!&#8211; -*- mode: XML -*- &#8211;&gt;\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    2\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    3\u00a0&lt;launch&gt;\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    4\u00a0&lt;node name=\u00a0\u00bbdynamixel_manager\u00a0\u00bb pkg=\u00a0\u00bbdynamixel_controllers\u00a0\u00bb type=\u00a0\u00bbcontroller_manager.py\u00a0\u00bb required=\u00a0\u00bbtrue\u00a0\u00bb output=\u00a0\u00bbscreen\u00a0\u00bb&gt;\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    5\u00a0&lt;rosparam&gt;\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    6 namespace: dxl_manager\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    7 serial_ports:\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    8 pan_tilt_port:\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    9 port_name: \u00ab\u00a0\/dev\/ttyUSB0\u00a0\u00bb\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    10 baud_rate: 1000000\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    11 min_motor_id: 1\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    12 max_motor_id: 25\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    13 update_rate: 20\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    14\u00a0&lt;\/rosparam&gt;\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    15\u00a0&lt;\/node&gt;\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    16\u00a0&lt;\/launch&gt;\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   <strong>\n    Bemerkung:\n   <\/strong>\n   Setzen Sie die Symbolrate richtig! Wenn Sie\n   <strong>\n    Dynamixel RX-28 Servomotoren\n   <\/strong>\n   benutzen, sollte sie auf 57142 gesetzt werden. Wenn sie dann noch Probleme haben, pr\u00fcfen Sie, ob Sie Ihren Benutzernamen noch in die dialout Gruppe einsetzen m\u00fcssen und, ob der USB Port beschreibbar gemacht werden muss.\n  <\/p>\n  \n  \n  <p>\n   Wenn wir folgendes jetzt ausf\u00fchren:\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #666699;\">\n    roslaunch my_dynamixel_tutorial controller_manager.launch\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   Sollten wir eine Status Ausgabe sehen, \u00e4hnlich wie diese:\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #666699;\">\n    [INFO] [WallTime: 1295282870.051953] pan_tilt_port: Pinging motor IDs 1 through 25&#8230;\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    [INFO] [WallTime: 1295282870.103676] pan_tilt_port: Found 4 motors &#8211; 4 AX-12 [4, 5, 6, 13], initialization complete.\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   Die Ausgabe h\u00e4ngt nat\u00fcrlich von den Motoren ab, die an den USB Bus angeschlossen sind.\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-3-schritt-das-motoren-feedback-auswerten\">\n   3. Schritt: Das Motoren Feedback auswerten\n  <\/h2>\n  \n  \n  <p>\n   Jetzt ver\u00f6ffentlicht der Controller Manager Feedback \u00fcber das Thema \/motor_states\/pan_tilt_port. Pr\u00fcfen Sie zuerst, ob das Thema hier zu finden ist:\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #666699;\">\n    rostopic list\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   Die Ausgabe sollte in etwa so aussehen:\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #666699;\">\n    \/motor_states\/pan_tilt_port\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    \/rosout\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    \/rosout_agg\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   Eines der Themen in der Liste sollte \/motor_states\/pan_tilt_port sein. Diese Information wurde herausgegeben:\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #666699;\">\n    rostopic echo \/motor_states\/pan_tilt_port\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   In diesem Fall haben wir vier\n   <strong>\n    <a class=\"catalogue\" href=\"\/de\/401075-servomotor-dynamixel-ax-12a.html\" rel=\"noopener\" target=\"_blank\">\n     AX-12\n    <\/a>\n   <\/strong>\n   + Motoren verbunden:\n  <\/p>\n  \n  \n  <p>\n   <span style=\"color: #666699;\">\n    motor_states:\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    motor_states:\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    &#8211;\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    timestamp: 1351555461.28\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    id: 4\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    goal: 517\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    position: 527\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    error: 10\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    speed: 0\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    load: 0.3125\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    voltage: 12.4\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    temperature: 39\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    moving: False\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    &#8211;\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    timestamp: 1351555461.28\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    id: 5\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    goal: 512\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    position: 483\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    error: -29\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    speed: 0\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    load: 0.0\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    voltage: 12.6\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    temperature: 40\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    moving: False\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    &#8211;\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    timestamp: 1351555461.28\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    id: 6\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    goal: 511\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    position: 516\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    error: 5\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    speed: 0\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    load: 0.0\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    voltage: 12.3\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    temperature: 41\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    moving: False\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    &#8211;\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    timestamp: 1351555461.28\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    id: 13\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    goal: 256\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    position: 256\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    error: 0\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    speed: 0\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    load: 0.0\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    voltage: 12.3\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    temperature: 38\n   <\/span>\n   <br\/>\n   <span style=\"color: #666699;\">\n    moving: False\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   <strong>\n    Fertig!\n   <\/strong>\n  <\/p>\n  \n <\/body>\n<\/html>","protected":false},"excerpt":{"rendered":"<p>Dieses Tutorial beschreibt, wie man Robotis Dynamixel Servomotoren verbindet und unbearbeitetes Feedback auswertet. Level des Tutorials: ANF\u00c4NGER 1. Schritt: Ein Paket erstellen Bevor wir anfangen, m\u00fcssen wir ein Paket erstellen, mit den richtigen Abh\u00e4ngigkeiten und allen Dateien aus diesem Tutorial. Bemerkung: Bevor Sie einen Befehl aus der Liste ausf\u00fchren, vergewissern Sie sich, dass das aktuelle[&#8230;]<br \/> <a class=\"button\" href=\"https:\/\/www.generationrobots.com\/blog\/de\/dynamixel-tutorial-verbindung-mit-dem-dynamixel-bus\/\" 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-4541","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\/4541","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=4541"}],"version-history":[{"count":10,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/4541\/revisions"}],"predecessor-version":[{"id":13027,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/4541\/revisions\/13027"}],"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=4541"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/categories?post=4541"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/tags?post=4541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}