Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Ito ay magiging isang serye ng mga artikulo tungkol sa paggawa ng isang robotic arm na kinokontrol ng ROS (Robotic Operating System) at MoveIt. Kung ikaw ay nasa robotics ROS ay isang mahusay na balangkas na makakatulong sa iyo na bumuo ng mas mahusay na mga robot nang mas mabilis. Pinapayagan kang muling magamit ang mga pakete para sa iba't ibang mga sistema ng robot (paningin sa computer, kinematics, pagpaplano ng landas, SLAM, atbp) na nilikha ng ibang tao. Magaling ang ROS, ngunit sa kasamaang palad mayroon itong isang matarik na curve sa pag-aaral.
Kaya't ang tutorial na ito ay sunud-sunod na gabay sa paggawa ng iyong unang robotic arm na may pagplano ng paggalaw, na naglalayong mas mataas na antas ng nagsisimula at namamagitan. Ipinapalagay kong wala kang kaalaman sa ROS, ngunit mayroong ilang pangunahing kaalaman sa Linux at Python, mga kasanayan sa pagprograma ng Arduino.
Hakbang 1: Ihanda ang Iyong Kapaligiran
Ang aking kapaligiran para sa pag-unlad ay ang Ubuntu 16.04 LTS na tumatakbo sa isang Virtual Box (Windows 10 host machine). Kung nais mong patakbuhin ang Ubuntu sa VM mabuti, makumpirma kong gumagana ang ROS Kinetic, kahit na may ilang mga quirks (kapansin-pansin ang pagpabilis ng 3D at suporta sa USB). Kung mayroon kang regular na pag-install ng Ubuntu, mas gagana ito.
Tandaan: Maaari mong mai-install ang ROS sa Raspberry Pi, ngunit sa kasamaang palad hindi ito sapat na malakas upang patakbuhin ang mga simulation sa Rviz, pabayaan ang Gazebo.
1) I-install ang ROS Kinetic. Sundin ang gabay na ito sa kung paano i-install ang ROS Kinetic sa Ubuntu 16.04.
2) I-install ang MoveIt. IlipatIt! ay isang pakete para sa ROS para sa pagmamanipula ng mobile, ibig sabihin, robotic arm.
3) Suriin kung gumagana ang lahat. Takbo
roslaunch panda_moveit_config demo.launch rviz_tutorial: = totoo
kung nais mo, dumaan sa pangunahing tutorial ng ilipat
4) Kakailanganin mong i-install din ang urdf_tutorial package, gagamitin namin ito upang mailarawan ang aming gawain na isinasagawa.
sudo apt-get install ros-kinetic-urdf-tutorial
Hakbang 2: Lumikha ng Urdf File
Kung sinundan mo ang MoveIt quickstart tutorial dapat kang lumikha ng workspace ng catkin sa iyong direktoryo sa bahay (maaaring magkakaiba ang pangalan ng workspace, ang default mula sa moveit tutorial ay ws_moveit). Pumunta sa ~ ws_moveit / src at i-clone ang aking github repo doon.
github.com/AIWintermuteAI/ros-moveit-arm.git
Kung gumagamit ka ng parehong robotic arm tulad ng ginagawa ko o nais lang sanayin na maaari mong iwanang hindi nagbago ang urdf file, kung hindi man kakailanganin mong baguhin ito upang maiugnay ang modelo ng braso na mayroon ka.
Narito ang isang maikling paliwanag ng urdf file, pagtingin sa aking halimbawa at ang modelo ng robot sa rviz ay makakatulong sa iyo na maunawaan ito nang mas mahusay at mag-apply para sa pagsulat ng iyong sariling urdf file
ang mga link ay ang mga bahagi ng robot, tulad ng isang pulso o isang platform. Mayroon silang mga sumusunod na katangian:
ginamit para sa visual na representasyon sa rviz at gazebo. Gumagamit ng mga meshes na may mataas na kalidad
ginamit para sa pagsusuri ng banggaan habang nagpaplano ng landas. Inirerekumenda na gumamit ng mga meshes na may mababang kalidad, ngunit alang-alang sa tutorial gumagamit ako ng katulad sa para sa visual.
ang mga kasukasuan sa urdf ay mga koneksyon sa pagitan ng mga link na naglalarawan kung paano nakaposisyon ang mga kaugnay sa bawat isa at kung paano sila gumagalaw. Mayroon silang mga sumusunod na katangian:
ang direksyon ng pag-ikot ng magkasanib (kasama ang x, y o z axis)
minimum at maximum na degree ng magkasanib na sa mga radian. Nalalapat lamang sa mga magkasanib na uri ng "rebolusyon" ("tuluy-tuloy" na mga kasukasuan ay walang mga limitasyon, dahil sila, mabuti, patuloy na umiikot)
ang posisyon ng magkasanib na nauugnay sa pinagmulan
naglalarawan kung aling dalawang mga link ang konektado sa magkasanib
Kung gumagamit ka ng parehong robotic arm tulad ng ginagawa ko, kakailanganin mong kopyahin ang 3D meshes ng braso sa urdf_tutorial package folder. Gawin ito sa utos na ito
sudo cp / opt / ros / kinetic / share / urdf_tutorial / meshes /
Kung gumagamit ka ng iyong sariling mga meshe siguraduhin na nakasentro sila sa paligid ng pinagmulan (xyz 000 sa iyong paboritong 3D modeling software) bago mo i-export ang mga ito sa binary (!) Stl format.
Ngayon ay maaari mong ilunsad ang rviz upang mailarawan ang mga resulta sa utos na ito
roslaunch urdf_tutorial display.launch model: = arm.urdf
(ilunsad ito mula sa folder gamit ang urdf file na nilikha mo ngayon lamang)
Suriin ang mga kasukasuan at mga link, tiyaking umiikot at nakaposisyon nang eksakto kung paano sila dapat. Kung okay ang lahat, magpatuloy sa susunod na hakbang.
Hakbang 3: Lumikha ng Pag-configure ng Robot Sa MoveIt Setup Assistant
Ngayon kapag handa na ang iyong urdf file oras na upang mai-convert ito sa package ng pagsasaayos ng robot.
Ilunsad ang MoveIt Setup Assistant na may sumusunod na utos
roslaunch moveit_setup_assistant setup_assistant.launch
Mahusay na nailarawan ang proseso sa opisyal na tutorial ng MoveIt, na maaari mong makita dito
Matapos mong likhain ang package ng pagsasaayos, pumunta sa iyong folder ng workspace ng catkin at magpatupad
catkin gumawa
upang maitayo ang pakete. Ngayon ay maaari mo itong ilunsad gamit ang sumusunod na utos
roslaunch my_arm_xacro demo.launch rviz_tutorial: = totoo
kung saan kakailanganin mong palitan ang "my_arm_xacro" sa pangalan ng iyong package.
Hakbang 4: Tapos Na
Kung matagumpay mong inilunsad ang package makikita mo ang iyong modelo ng robot na may mga interactive marker. Maaari mong makontrol ito sa simulation, gamit ang mga marker at pagkatapos ay pindutin ang "Plano at ipatupad" para sa kinematic solver upang makahanap ng hte tamang landas sa nais na estado.
Iyon ang unang hakbang, lumikha kami ng isang modelo ng aming robotic arm at maaaring anihin ang lakas ng ROS upang makalkula at magpatupad ng paggalaw sa simulation! Susunod na hakbang - gawin ito sa totoong robot, para doon kailangan naming magsulat ng simpleng robot controller…