
Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38


github.com/AIWintermuteAI/ros-moveit-arm.git
V předchozí části článku jsme pro naši robotickou ruku vytvořili soubory URDF a XACRO a spustili RVIZ pro ovládání naší robotické paže v simulovaném prostředí.
Tentokrát to zvládneme se skutečnou robotickou rukou! Přidáme chapadlo, napíšeme robotický ovladač a (volitelně) vygenerujeme řešič inverzní kinematiky IKfast.
Geronimo!
Krok 1: Přidání chapadla



Přidání chapadla bylo zpočátku trochu matoucí, takže jsem tuto část v předchozím článku přeskočil. Nakonec se ukázalo, že to není tak obtížné.
Budete muset upravit svůj soubor URDF, abyste přidali odkazy a spoje chapadla.
K tomuto kroku je připojen upravený soubor URDF pro mého robota. V zásadě se řídí stejnou logikou jako ramenní část, jen jsem přidal tři nové články (claw_base, claw_r a claw_l) a tři nové klouby (joint5 je pevný a joint6, joint7 jsou otočné klouby).
Poté, co upravíte soubor URDF, budete také muset aktualizovat generovaný balíček MoveIt a soubor xacro pomocí asistenta nastavení MoveIt.
Spusťte průvodce nastavením pomocí následujícího příkazu
roslaunch moveit_setup_assistant setup_assistant.launch
Klikněte na Upravit stávající konfiguraci MoveIt a vyberte složku s balíčkem MoveIt.
Přidejte nový plánovací skupinový chapač (s články a klouby pro chapadlo) a také koncový efektor. Moje nastavení je na níže uvedených screenshotech. Všimněte si, že pro chapadlo nevybíráte kinematický řešič, není to nutné. Vygenerujte balíček a přepište soubory.
Běh
jehněčí značka
ve svém pracovním prostoru Catkin.
Dobře, teď máme paži s chapadlem!
Krok 2: Budování paže




Jak jsem již zmínil, ramenní 3D model vyrábí společnost Juergenlessner, děkuji za úžasnou práci. Podrobný montážní návod najdete po kliknutí na odkaz.
Musel jsem však upravit řídicí systém. Pro ovládání serv používám Arduino Uno se senzorovým štítem. Senzorový štít hodně pomáhá se zjednodušením zapojení a také usnadňuje poskytování externího napájení servům. Používám napájecí adaptér 12 V 6 A zapojený přes sestupný modul (6 V) do štítového štítu.
Poznámka k servům. Používám serva MG 996 HR zakoupená od Taobao, ale kvalita je opravdu špatná. Je to rozhodně levný čínský knock-off. Ten pro loketní kloub neposkytoval dostatečný točivý moment a dokonce začal při velkém zatížení dýmat. Servo loketního kloubu jsem musel vyměnit za kvalitnější výrobce MG 946 HR.
Krátký příběh - kupte si kvalitní serva. Pokud z vašich serv vychází kouřový kouř, použijte lepší serva. 6V je velmi bezpečné napětí, nezvyšujte jej. Nezvýší točivý moment, ale může poškodit serva.
Zapojení serva následovně:
základna 2
rameno 2 4 ramena 1 3
loket 6
chapadlo 8
zápěstí 11
Nebojte se jej změnit, pokud si také pamatujete změnu náčrtu Arduino.
Poté, co skončíte s hardwarem, podívejme se na celkový obrázek!
Krok 3: Rozhraní MoveIt RobotCommander

Takže, co teď? Proč vůbec potřebujete MoveIt a ROS? Nemůžete jednoduše ovládat rameno přímo pomocí kódu Arduino?
Ano můžeš.
Dobře, co teď použít GUI nebo kód Pythonu/C ++ k poskytnutí pozice robota? Může to Arduino udělat?
Tak nějak. K tomu budete muset napsat inverzní kinematický řešič, který zaujme pozici robota (souřadnice translace a rotace v 3D prostoru) a převede ji na zprávy o úhlu kloubu pro serva.
Přestože to můžete udělat sami, je to sakra spousta práce. MoveIt a ROS tedy poskytují příjemné rozhraní pro řešiče IK (inverzní kinematika), které za vás provedou všechny těžké trigonometrické zvedání.
Krátká odpověď: Ano, můžete udělat jednoduchou robotickou ruku, která provede naprogramovaný skica Arduina a přejde z jedné pozice do druhé. Ale pokud chcete, aby byl váš robot inteligentnější a přidal možnosti počítačového vidění, MoveIt a ROS je tou správnou cestou.
Vytvořil jsem velmi zjednodušený diagram vysvětlující, jak framework MoveIt funguje. V našem případě to bude ještě jednodušší, protože nemáme zpětnou vazbu od našich serva a použijeme téma /joint_states, abychom poskytli ovladači robota úhly pro serva. Chybí nám pouze jedna součást, kterou je ovladač robota.
Na co čekáme? Pojďme napsat nějaké ovladače robotů, aby náš robot byl … víte, lépe ovladatelný.
Krok 4: Arduino kód pro ovladač robota



V našem případě bude ovladačem robota Arduino Uno provozující uzel ROS s rosserialem. K tomuto kroku je připojen kód skici Arduino a je také k dispozici na GitHubu.
Uzel ROS běžící na Arduino Uno se v zásadě přihlásí k tématu /JointState publikovaném na počítači se systémem MoveIt a poté převede úhly spojů z pole z radiánů na stupně a předá je servům pomocí standardní knihovny Servo.h.
Toto řešení je trochu hacknuté, a ne jak se to dělá s průmyslovými roboty. V ideálním případě byste měli publikovat trajektorii pohybu na téma /FollowJointState a poté získat zpětnou vazbu na téma /JointState. Ale v naší paži hobby servo nemůže poskytnout zpětnou vazbu, takže se přímo přihlásíme k odběru /JointState tématu, publikovaného uzlem FakeRobotController. V zásadě budeme předpokládat, že jakékoli úhly, které jsme předali servům, jsou provedeny ideálně.
Další informace o tom, jak rosserial funguje, naleznete v následujících tutoriálech
wiki.ros.org/rosserial_arduino/Návody
Poté, co načtete skicu do Arduino Uno, budete ji muset připojit pomocí sériového kabelu k počítači, na kterém běží instalace ROS.
Chcete -li vyvolat celý systém, spusťte následující příkazy
roslaunch my_arm_xacro demo.launch rviz_tutorial: = true
sudo chmod -R 777 /dev /ttyUSB0
rosrun rosserial_python serial_node.py _port: =/dev/ttyUSB0 _baud: = 115200
Nyní můžete pomocí interaktivních značek v RVIZ přesunout rameno robota do pozice a poté stisknout Plan a Execute, aby se skutečně přesunulo do pozice.
Kouzlo!
Nyní jsme připraveni napsat kód Pythonu pro náš test rampy. No, téměř…
Krok 5: (Volitelné) Generování modulu IKfast Plug-in
Ve výchozím nastavení MoveIt navrhuje použít kinematický řešič KDL, který ve skutečnosti nefunguje s méně než 6 rameny DOF. Pokud budete tento návod pozorně sledovat, pak si všimnete, že model ramene v RVIZ nemůže přejít do některých pozic, které by měla konfigurace ramene podporovat.
Doporučeným řešením je vytvořit vlastní řešení kinematiky pomocí OpenRave. Není to tak obtížné, ale budete to muset postavit a je to závislost ze zdroje nebo použít kontejner dockeru, podle toho, co dáváte přednost.
Postup je v tomto tutoriálu velmi dobře zdokumentován. Je potvrzeno, že funguje na VM se systémem Ubuntu 16.04 a ROS Kinetic.
K vygenerování řešiče jsem použil následující příkaz
openrave.py --database inversekinematics --robot = arm.xml --iktype = translation3d --iktests = 1000
a pak běžel
rosrun moveit_kinematics create_ikfast_moveit_plugin.py test_robot arm my_arm_xacro ikfast0x1000004a. Translation3D.0_1_2_f3.cpp
ke generování modulu MoveIt IKfast.
Celá procedura je trochu časově náročná, ale není příliš náročná, pokud budete pečlivě sledovat tutoriál. Pokud máte dotazy k této části, kontaktujte mě v komentářích nebo PM.
Krok 6: Test rampy


Nyní jsme připraveni vyzkoušet rampový test, který provedeme pomocí ROS MoveIt Python API.
K tomuto kroku je připojen kód Pythonu a je také k dispozici v úložišti github. Pokud nemáte rampu nebo chcete vyzkoušet jiný test, budete muset změnit pozice robota v kódu. K tomu prvnímu spuštění
rostopic echo/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/feedback
v terminálu, když již běží RVIZ a MoveIt. Poté přesuňte robota s interaktivními značkami do požadované polohy. V terminálu se zobrazí hodnoty polohy a orientace. Stačí je zkopírovat do kódu Pythonu.
Proveďte testovací běh rampy
rosrun my_arm_xacro pick/pick_2.py
s RVIZ a rosserial uzlem již běží.
Zůstaňte naladěni na třetí část článku, kde použiji stereokameru pro detekci objektů a pro jednoduché objekty vyberu a umístím potrubí!
Doporučuje:
Část 1 ARM Assembly TI RSLK Robotics Learning Curriculum Lab Lab 7 STM32 Nucleo: 16 Steps

Část 1 ARM Assembly TI RSLK Robotics Learning Curriculum Lab 7 STM32 Nucleo: Centrem tohoto Instructable je mikrořadič STM32 Nucleo. Motivace k tomu, abychom mohli vytvořit montážní projekt z holých kostí. To nám pomůže ponořit se hlouběji a porozumět projektu MSP432 Launchpad (TI-RSLK), který má
Část 3: GPIO: ARM Assembly: Line Follower: TI-RSLK: 6 Steps

Část 3: GPIO: ARM Assembly: Line Follower: TI-RSLK: Hello. Toto je další splátka, kde nadále používáme sestavení ARM (namísto jazyka vyšší úrovně). Inspirací pro tento Instructable je Lab 6 Texas Instruments Robotics System Learning Kit nebo TI-RSLK. Budeme používat mikrofon
Robotické rameno ROS MoveIt: 4 kroky

ROS MoveIt Robotic Arm: Toto bude série článků o výrobě robotické paže ovládané pomocí ROS (Robotic Operating System) a MoveIt. Pokud vás baví robotika, ROS je skvělý framework, který vám pomůže rychleji stavět lepší roboty. Umožňuje vám znovu použít
ČÁST 2 - SESTAVA GPIO ARM - RGB - FUNKČNÍ HOVORY - Přepínače: 6 kroků

ČÁST 2 - SESTAVA GPIO ARM - RGB - FUNKČNÍ HOVORY - Přepínače: V části 1 jsme se naučili přepínat jednu červenou LED na vývojové desce MSP432 LaunchPad od společnosti Texas Instruments pomocí montáže namísto C / C ++. V tomto Instructable jsme udělá něco podobného - ovládá RGB LED, která je také na tom samém
Nunchuk Controlled Robotic Arm (s Arduino): 14 kroků (s obrázky)

Nunchuk Controlled Robotic Arm (s Arduino): Robotické paže jsou úžasné! Mají je továrny po celém světě, kde s precizností malují, pájí a přepravují věci. Lze je také nalézt při průzkumu vesmíru, dálkově ovládaných podmořských vozidlech a dokonce i v lékařských aplikacích! A nyní můžete