Мазмуну:
- 1 -кадам: Gripper кошуу
- 2 -кадам: Кол куруу
- 3 -кадам: MoveIt RobotCommander Interface
- 4 -кадам: Arduino робот көзөмөлдөөчү коду
- 5-кадам: (Милдеттүү эмес) IKfast плагинин түзүү
- 6 -кадам: Рампа тести
Video: ROS MoveIt Robotic Arm 2 -бөлүк: Роботту башкаруучу: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
github.com/AIWintermuteAI/ros-moveit-arm.git
Макаланын мурунку бөлүгүндө биз робот колубуз үчүн URDF жана XACRO файлдарын түзүп, симуляцияланган чөйрөдө робот колубузду башкаруу үчүн RVIZди ишке киргиздик.
Бул жолу биз чыныгы робот колу менен жасайбыз! Биз туткунду кошобуз, робот контроллерин жазабыз жана (милдеттүү эмес) IKfast тескери кинематика чечүүчүсүн жаратабыз.
Geronimo!
1 -кадам: Gripper кошуу
Gripper кошуу башында бир аз түшүнүксүз болуп калды, ошондуктан мен мурунку макалада бул бөлүктү өткөрүп жибердим. Акыры анчалык деле кыйын эмес болуп чыкты.
Тутум шилтемелерин жана муундарды кошуу үчүн URDF файлыңызды өзгөртүүңүз керек болот.
Менин роботум үчүн өзгөртүлгөн URDF файлы бул кадамга тиркелет. Негизинен бул колтук логикасына ылайык келет, мен жөн эле үч жаңы шилтемени (claw_base, claw_r жана claw_l) жана үч жаңы муунду коштум (joint5 бекитилген, жана joint6, joint7 - революциялык муундар).
URDF файлыңызды өзгөрткөндөн кийин MoveIt түзүлгөн пакетин жана xacro файлын MoveIt орнотуу жардамчысы аркылуу жаңыртууңуз керек болот.
Төмөнкү буйрук менен орнотуу жардамчысын иштетиңиз
roslaunch moveit_setup_assistant setup_assistant.launch
Мурунку MoveIt конфигурациясын түзөтүүнү чыкылдатыңыз жана MoveIt пакетиңиз бар папканы тандаңыз.
Жаңы пландаштыруу тобунун туткасын кошуңуз (туткунун шилтемелери жана муундары менен), ошондой эле акыркы эффектор. Менин орнотууларым төмөндөгү скриншоттордо. Байкаңыз, сиз кинематиканы чечүүчү каражатты тандабайсыз, бул керек эмес. Топтомду түзүңүз жана файлдарды кайра жазыңыз.
Run
мышык жасоо
catkin жумушчу мейкиндигиңизде буйрук бериңиз.
Макул, азыр бизде кармагычы бар колубуз бар!
2 -кадам: Кол куруу
Кол 3D модели Юргенлеснер тарабынан жасалганынан мурун айтканымдай, укмуштуудай чыгарма үчүн рахмат. Эгерде сиз шилтемени карасаңыз, деталдуу чогултуу көрсөтмөлөрүн таба аласыз.
Бирок башкаруу системасын өзгөртүүгө туура келди. Мен Servo көзөмөлдөө үчүн Sensor калканч менен Arduino Uno колдоном. Сенсордук калкан зымдарды жөнөкөйлөтүүгө чоң жардам берет, ошондой эле сервоприёмниктерге тышкы кубат берүүнү жеңилдетет. Мен Sensor Shield үчүн басаңдатуучу модуль (6V) аркылуу өткөрүлгөн 12V 6A күч адаптерин колдоном.
Серво жөнүндө эскертүү. Мен Taobaoдон сатып алынган MG 996 HR сервосун колдоном, бирок сапаты чындыгында начар. Бул, албетте, арзан кытайлык нокаут. Чыканак муун үчүн жетиштүү моментти берген эмес, ал тургай, оор жүк астында бир жолу түтөп баштады. Мен чыканак муунунун сервосун жакшыраак сапаттагы өндүрүүчүнүн MG 946 HR менен алмаштырууга туура келди.
Кыскача айтканда - сапаттуу серволорду сатып алыңыз. Эгерде сыйкырдуу түтүн сиздин серволордон чыкса, жакшыраак серволорду колдонуңуз. 6V - бул абдан коопсуз чыңалуу, аны жогорулатпаңыз. Бул моментти көбөйтпөйт, бирок серволорду бузушу мүмкүн.
Серволордун зымдары төмөнкүчө:
база 2
плеч2 4 ийин1 3
чыканак 6
кармагыч 8
билек 11
Ардуинонун эскизин өзгөртүүнү унутпаганыңызда, аны өзгөртө аласыз.
Аппаратура менен бүткөндөн кийин, чоңураак сүрөттү карап көрөлү!
3 -кадам: MoveIt RobotCommander Interface
Эми, эмне? Эмнеге баары бир MoveIt жана ROS керек? Колуңузду Arduino коду аркылуу башкара албайсызбы?
Ооба сиз кыла аласыз.
Макул, эми GUI же Python/C ++ кодун роботтун позасына баруу үчүн кантип колдонсо болот? Ардуино муну кыла алабы?
Сыяктуу. Бул үчүн роботтун позасын (3D мейкиндигиндеги которуу жана айлануу координаттары) алып, аны сервос үчүн биргелешкен бурчтуу билдирүүлөргө айландыра турган тескери кинематика чечүүчүсүн жазышыңыз керек болот.
Муну өзүңүз жасай алсаңыз да, бул көп жумуш. Ошентип, MoveIt жана ROS сиз үчүн оор тригонометриялык көтөрүүнү жасоо үчүн IK (тескери кинематика) чечүүчүсү үчүн жакшы интерфейсти камсыз кылат.
Кыска жооп: Ооба, сиз бир позадан экинчисине өтүү үчүн катуу коддуу Arduino эскизин аткара турган жөнөкөй робот колун жасай аласыз. Бирок, эгер сиз роботту акылдуу кылып, компьютердин көрүү жөндөмүн кошкуңуз келсе, MoveIt жана ROS - бул эң туура жол.
Мен MoveIt алкагынын кантип иштээрин түшүндүргөн абдан жөнөкөйлөтүлгөн диаграмма түздүм. Биздин учурда, бул дагы жөнөкөй болуп калат, анткени бизде биздин серволордон эч кандай пикир жок жана робот контроллерди servo үчүн бурчтар менен камсыз кылуу үчүн /joint_states темасын колдонобуз. Бизде робот контроллери болгон бир гана компонент жок.
Биз эмнени күтүп жатабыз? Келгиле, кээ бир робот контроллерлерин жазалы, ошондо биздин робот… билесизби, дагы башкарылмак.
4 -кадам: Arduino робот көзөмөлдөөчү коду
Биздин учурда, Arduino Uno rosserial менен ROS түйүнүн иштетип, робот контроллери болот. Arduino эскиз коду бул кадамга тиркелет жана GitHubда да жеткиликтүү.
Arduino Uno менен иштеген ROS түйүнү негизинен MoveIt иштеп жаткан компьютерде жарыяланган /JointState темасына жазылат, андан кийин массивдеги биргелешкен бурчтарды радиандардан градуска чейин өзгөртөт жана аларды Servo.h стандарттык китепканасынын жардамы менен сервоско өткөрөт.
Бул чечим бир аз катаал жана ал өнөр жай роботтору менен кандай жасалат. Идеалында, сиз /FollowJointState темасында кыймылдын траекториясын жарыялап, анан /JointState темасы боюнча пикирлерди алышыңыз керек. Бирок биздин колубузда хобби сервосу кайтарым байланышты бере албайт, ошондуктан биз FakeRobotController түйүнү тарабынан чыгарылган /JointState темасына түздөн -түз жазылабыз. Негизинен, биз servosко өткөн бардык бурчтар идеалдуу түрдө аткарылган деп ойлоп калабыз.
Rosserialдин кантип иштээри жөнүндө көбүрөөк маалымат алуу үчүн, төмөнкү окуу куралдарына кайрылсаңыз болот
wiki.ros.org/rosserial_arduino/Tutorials
Эскизди Arduino Unoго жүктөгөндөн кийин, аны ROS орнотууңуз иштеген компьютерге сериялык кабель менен туташтырышыңыз керек болот.
Бүт системаны алып келүү үчүн төмөнкү буйруктарды аткарыңыз
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
Эми сиз RVIZдеги интерактивдүү маркерлерди колдонуп, роботтун колун бир позага жылдырсаңыз болот, андан кийин бул планга өтүү үчүн План жана Аткаруу баскычын басыңыз.
Magic!
Эми биз пандус тестибиз үчүн Python кодун жазууга даярбыз. Ооба, дээрлик…
5-кадам: (Милдеттүү эмес) IKfast плагинин түзүү
Демейки боюнча MoveIt KDL кинематикалык чечүүчүсүн колдонууну сунуштайт, ал 6 DOFтан аз курал менен иштебейт. Эгер сиз бул үйрөткүчтү кылдат аткарсаңыз, анда RVIZдеги кол модели кол конфигурациясы тарабынан колдоого алынган кээ бир позаларга бара албасын байкайсыз.
Сунушталган чечим - OpenRaveдин жардамы менен бажы кинематикасын чечүүчү түзүү. Бул анча деле кыйын эмес, бирок аны курууга туура келет жана бул булактан көз карандылыкты же доккер контейнерди колдонууну каалайт.
Процедура бул окуу куралында абдан жакшы документтештирилген. Ubuntu 16.04 жана ROS Kinetic иштеп жаткан VMде иштөө ырасталды.
Чечүүчү чыгарыш үчүн мен төмөнкү буйрукту колдондум
openrave.py --маалыматтар базасы инверсекинематикасы --robot = arm.xml --iktype = translation3d --iktests = 1000
анан чуркады
rosrun moveit_kinematics create_ikfast_moveit_plugin.py test_robot arm my_arm_xacro ikfast0x1000004a. Translation3D.0_1_2_f3.cpp
MoveIt IKfast плагинин түзүү үчүн.
Бардык жол -жобо бир аз убакытты талап кылат, бирок эгер сиз окуу куралын кылдат аткарсаңыз, анча деле кыйын эмес. Эгерде сизде бул бөлүк боюнча суроолор болсо, комментарийлерде же PMде мени менен байланышыңыз.
6 -кадам: Рампа тести
Эми биз ROS MoveIt Python API менен аткара турган пандус тестин сынап көрүүгө даярбыз.
Python коду бул кадамга тиркелет жана github репозиторийинде да бар. Эгерде сизде пандус жок болсо же башка тестти сынап көргүңүз келсе, анда роботтун коддогу позаларын өзгөртүү керек болот. Ал үчүн биринчи аткарыңыз
rostopic echo/rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/feedback
RVIZ жана MoveIt иштеп жатканда терминалда. Андан кийин интерактивдүү маркерлери бар роботту каалаган позицияга жылдырыңыз. Терминалда позиция жана багыт баалуулуктары көрсөтүлөт. Аларды Python кодуна көчүрүңүз.
Рампанын сыноо ишин аткаруу үчүн
rosrun my_arm_xacro pick/pick_2.py
RVIZ жана rosserial түйүнү мурунтан эле иштеп жатат.
Макаланын үчүнчү бөлүгүн байкап туруңуз, анда мен объекттерди аныктоо үчүн стерео камераны колдоном жана жөнөкөй объектилер үчүн тандоо жана жайгаштыруу түтүгүн аткарам!
Сунушталууда:
Үзгүлтүксүз башкаруучу Murale Avec Domoticz жана Google жардамчысы: 4 кадам
Үзгүлтүксүз башкаруучу Murale Avec Domoticz жана Google Жардамчысы: Bonjour à tous, aujourd'hui allous allons vater comment simuler unuigt qui va allumer ou éteindre notre interrupteur murale grâce à un wemos d1 mini, une unimue 3d. , vous pouvez toujours faire empimer ces pièces dans un fab
Башталгычтын өзүн-өзү башкаруучу робот унаасы кагылышуудан сактануу менен: 7 кадам
Башталгычтын өзүн-өзү башкаруучу робот унаасы кагылышуудан сактайт: Саламатсызбы! Менин башталгычка ыңгайлуу инструкциямга кош келиңиз, кагылышууну болтурбоо жана GPS навигациясы менен өзүңүз башкаруучу робот машинаңызды кантип жасоо керек. Жогоруда YouTube роботун көрсөткөн видео бар. Бул чыныгы автономия экенин көрсөтүү үчүн үлгү
Xbox 360 ROBOTIC ARM [ARDUINO]: AXIOM ARM: 4 кадам
Xbox 360 ROBOTIC ARM [ARDUINO]: AXIOM ARM:
ROS MoveIt робот колу: 4 кадам
ROS MoveIt Robotic Arm: Бул ROS (Robotic Operating System) жана MoveIt менен башкарылган робот колун жасоо жөнүндө бир катар макалалар болот. Эгерде сиз робототехникага кирсеңиз, ROS - бул жакшы роботторду тезирээк курууга жардам бере турган эң сонун алкак. Бул кайра колдонууга мүмкүнчүлүк берет
Смартфонду башкаруучу роботту кантип жасоо керек: 3 кадам (сүрөттөр менен)
Смартфонду башкаруучу роботту кантип жасоо керек: Сиз роботыңызду зымсыз же смартфондун жардамы менен башкарууну ойлонуп көрөсүзбү? Ооба болсо, анда сиздин окууңуз туура. Бул постто мен сизге кадамдык процедураны берем. Мен смартфондун жардамы менен башкарыла турган жөнөкөй робот жасадым, бирок сиз сом коё аласыз