Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Бүх зүйлийг тохируулах
- Алхам 2: Хянагч хэрхэн ажилладаг талаар ойлгох
- Алхам 3: ROS-MATLAB интерфэйс үүсгэх
- Алхам 4: IP хаягийг олж авах
- Алхам 5: Хянагчийн GUI үүсгэх
- Алхам 6: GUI засварлах товчлууруудыг програмчлах
- Алхам 7: GUI товчлуурыг програмчлах
- Алхам 8: ROS PC (Linux) дээр сүлжээний тохиргоог тохируулах
- Алхам 9: Хянагчийг ажиллуулна уу
Видео: Matlab-д суурилсан ROS робот хянагч: 9 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Би багаасаа л Төмөр хүн болохыг мөрөөддөг байсан, одоо ч тэгсээр байгаа. Төмөр хүн бол бодит байдлаар боломжтой бөгөөд хэзээ нэгэн цагт хүмүүс намайг шоолж инээх эсвэл боломжгүй зүйл гэж хэлдэг байсан ч хэзээ нэгэн цагт Төмөр хүн болохыг хүсдэг дүрүүдийн нэг юм.
ROS бол робот техникийн нарийн төвөгтэй системийг боловсруулахад ашиглагдаж буй хүрээ юм. Үүнд: Автомат угсрах систем, телопераци, протезийн зэвсэг, хүнд үйлдвэрийн машин механизм орно.
Судлаачид, инженерүүд прототипийг боловсруулахад ROS -ийг ашигладаг бол өөр өөр үйлдвэрлэгчид бүтээгдэхүүнээ бүтээхдээ ашигладаг бөгөөд энэ нь доголон хүнийг удирдахад төвөгтэй архитектуртай. MATLAB -ийг ROS -тэй интерфэйсийн холбоос үүсгэхэд ашиглах нь судлаачид, инженерүүд, борлуулагчдад илүү бат бөх шийдлүүдийг боловсруулахад туслах шинэ арга юм.
Тиймээс энэ заавар нь Matlab дээр суурилсан ROS робот хянагчийг хэрхэн яаж хийх тухай юм. Энэ нь энд байгаа цөөн хэдэн зааварчилгааны нэг бөгөөд ROS зааварчилгаа өгөх болно. Энэхүү төслийн зорилго нь таны сүлжээнд холбогдсон аливаа ROS роботыг удирдах боломжтой хянагч зохион бүтээх явдал юм. Тиймээс эхэлцгээе!
видео засварлах кредит: Аммар Ахер, [email protected] хаягаар
Хангамж
Төсөлд дараахь бүрэлдэхүүн хэсгүүд шаардлагатай болно.
(1) ROS PC/робот
(2) Чиглүүлэгч
(3) MATLAB -тай компьютер (хувилбар: 2014 ба түүнээс дээш)
Алхам 1: Бүх зүйлийг тохируулах
Энэхүү зааварчилгааны хувьд би Ubuntu 16.04-ийг линукс компьютер болон ros-kinetic-д зориулж ашиглаж байгаа тул төөрөгдөл гаргахгүйн тулд ros kinetic болон ubuntu 16.04-ийг ашиглахыг зөвлөж байна, учир нь ros-kinetic-ийг хамгийн сайн дэмждэг. Ros kinetic хэрхэн суулгах талаар нэмэлт мэдээлэл авахыг хүсвэл https://wiki.ros.org/kinetic/Installation/Ubuntu руу орно уу. MATLAB -ийн хувьд та эндээс лиценз худалдаж авах эсвэл ул мөрийн хувилбарыг татаж авах боломжтой.
Алхам 2: Хянагч хэрхэн ажилладаг талаар ойлгох
Компьютер нь робот хянагчийг MATLAB дээр ажиллуулдаг. Хянагч нь IP хаяг болон rc pc/роботын портыг авдаг.
Ros-сэдэв нь хянагч ба ros pc/робот хооронд харилцахад хэрэглэгддэг бөгөөд үүнийг хянагчийн оролт болгон авдаг. Модем нь LAN (дотоод сүлжээ) үүсгэхэд шаардлагатай бөгөөд сүлжээнд холбогдсон бүх төхөөрөмжид Ip хаягийг өгдөг. Тиймээс ros pc/робот болон хянагч ажиллаж байгаа компьютер хоёулаа нэг сүлжээнд холбогдсон байх ёстой (өөрөөр хэлбэл модемийн сүлжээ). Одоо та "энэ хэрхэн ажилладаг" гэдгийг мэдэж байгаа тул "хэрхэн яаж бүтээгдсэн" рүү орцгооё …
Алхам 3: ROS-MATLAB интерфэйс үүсгэх
ROS-MATLABInterface нь судлаачид болон оюутнуудад зориулагдсан бөгөөд роботын алгоритмуудыг MATLAB дээр туршиж, ROS-тэй нийцтэй робот дээр туршихад хэрэгтэй интерфэйс юм. ROS идэвхжүүлсэн робот эсвэл Gazebo, V-REP гэх мэт робот симуляторуудад.
MATLAB дээр роботын системийн багаж хэрэгслийг суулгахын тулд багажны самбар дээрх Нэмэлт сонголт руу ороод нэмэлт судлаач дээрээс робот хэрэгслийн хайрцгийг хайж олоорой. Робот хэрэгслийн хайрцгийг ашиглан бид ROS зангилаа гэх мэт сэдвийг нийтлэх эсвэл захиалах боломжтой бөгөөд үүнийг ROS мастер болгож чадна. MATLAB-ROS интерфэйс нь таны төслүүдэд шаардагдах ROS функцуудын ихэнхийг агуулдаг.
Алхам 4: IP хаягийг олж авах
Хянагчийг ажиллуулахын тулд та ROS робот/компьютерийнхаа IP хаягийг болон MATLAB дээрх хянагчийг ажиллуулж буй компьютерийг мэдэх нь чухал юм.
Компьютерийнхээ IP хаягийг авахын тулд:
Windows дээр:
Тушаал хүлээх мөрийг нээгээд ipconfig командыг бичээд IPv4 хаягийг бичнэ үү
Linux -ийн хувьд:
Ifconfig командыг бичээд доторх хаягийг тэмдэглэнэ үү. IP хаягтай болсны дараа GUI үүсгэх цаг болжээ …
Алхам 5: Хянагчийн GUI үүсгэх
GUI үүсгэхийн тулд MATLAB -ийг нээж командын цонхонд гарын авлага бичнэ үү. Энэ нь бидний GUI -ийг үүсгэх хөтөч програмыг нээх болно. Та мөн GUI -ийг зохион бүтээхдээ MATLAB дээрх апп дизайнерыг ашиглаж болно.
Бид нийт 9 товчлуур үүсгэх болно (зураг дээр үзүүлсэн шиг):
6 товчлуур: Урагш, хойш, зүүн, баруун, робот руу холбогдох, салгах
3 Засах боломжтой товчлуурууд: Ros pc ip, порт ба Сэдвийн нэр.
Editable-товчлуурууд нь ROS pc-ийн IP, түүний порт болон Сэдвийн нэрийг оролтын хэлбэрээр авах товчлуурууд юм. Сэдвийн нэр нь MATLAB хянагч ба ROS робот/компьютер хоорондоо харилцдаг зүйл юм. Засах боломжтой товчлуур дээрх мөрийг засахын тулд товчлуур дээр хулганы баруун товчийг дарна уу >> Inspector properties >> String руу очоод товчлуурын текстийг засварлана уу.
Таны GUI дууссаны дараа та товчлууруудыг програмчилж болно. Эндээс жинхэнэ зугаа цэнгэл эхэлдэг …
Алхам 6: GUI засварлах товчлууруудыг програмчлах
GUI нь.fig файл хэлбэрээр хадгалагддаг боловч код/буцаах функцууд нь.m форматаар хадгалагддаг.m файл нь таны бүх товчлуурын кодыг агуулдаг. Дуудлага хийх функцуудыг товчлуур дээрээ нэмэхийн тулд товчлуурын баруун товчийг дарна уу> > Дуудлагын эргэн харах >> буцааж харах. Энэ нь таны GUI -д зориулагдсан.m файлыг тухайн товчлуурыг тодорхойлсон газарт нээх болно.
Бидний кодлох гэж буй анхны дуудлага бол ROS IP засварлах товчлуур юм. Edit1_Callback функцын доор дараах кодыг бичнэ үү.
edit1_Callback функц (hObject, eventdata, бариул)
дэлхийн ros_master_ip
ros_master_ip = авах (hObject, 'String')
Энд функцийг edit1_Callback гэж тодорхойлсон бөгөөд энэ нь анхны засварлах товчлууртай холбоотой юм. Энэхүү засварлах товчлуур дээр ROS сүлжээнээс IP хаягийг оруулах үед энэ нь IP хаягийг ros_master_ip гэж нэрлэгддэг дэлхийн хувьсагчийн мөр болгон хадгалах болно.
Дараа нь _OpeningFcn (hObject, eventdata, handles, varargin) доорх зүйлийг тодорхойлно уу (зураг харна уу):
дэлхийн ros_master_ip
дэлхийн ros_master_port
дэлхийн teleop_topic_name
ros_master_ip = '192.168.1.102';
ros_master_port = '11311';
teleop_topic_name = '/cmd_vel_mux/оролт/телеоп';
Та дэлхий даяар ros-pc ip (ros_master_ip), порт (ros_master_port) болон Teleop Сэдвийн нэрийг хатуу кодчилсон байна. Энэ нь юу хийх вэ гэвэл хэрэв та засварлах товчлууруудыг хоосон орхих юм бол эдгээр урьдчилан тодорхойлсон утгуудыг холбогдох үед ашиглах болно.
Дараагийн дуудлага хийх код бол порт засварлах товчлуур юм.
Edit2_Callback функцын доор дараах кодыг бичнэ үү.
edit2_Callback функц (hObject, eventdata, бариул)
дэлхийн ros_master_port
ros_master_port = авах (hObject, 'String')
Энд функцийг edit2_Callback гэж тодорхойлсон бөгөөд энэ нь хоёр дахь засварлах товчлууртай холбоотой юм. Бид ros pc/robot -ийн порт руу ROS сүлжээнээс энэ засварлах товчлуурт ороход энэ нь портыг ros_master_port глобал хувьсагчийн мөр болгон хадгалах болно.
Үүний нэгэн адил, бид кодлох гэж буй дараагийн дуудлага нь Сэдвийн нэрийг засах товчлуур юм.
Edit3_Callback функцын доор дараах кодыг бичнэ үү.
edit3_Callback функц (hObject, eventdata, бариул)
дэлхийн teleop_topic_name
teleop_topic_name = авах (hObject, 'String')
Ros_master_port -ийн нэгэн адил энэ нь дэлхийн хувьсагчийн мөр хэлбэрээр хадгалагддаг.
Дараа нь бид товчлууруудыг буцааж залгах функцийг авч үзэх болно …
Алхам 7: GUI товчлуурыг програмчлах
Бидний өмнө үүсгэсэн товчлуурууд нь роботыг хянагчаас зөөх, холбох, салгахад ашиглах товчлуурууд юм. Товчлуурын товчлуурын дуудлагыг дараах байдлаар тодорхойлно.
жишээ нь. pushbutton6_Callback функц (hObject, eventdata, бариул)
Анхаарна уу: товчлууруудыг үүсгэх дарааллаас хамааран тэдгээрийг дугаарлана. Тиймээс миний.m файл дахь pushbutton6 функц нь Forward байж болох бөгөөд таны.m файлд энэ нь Backward байж болох тул үүнийг санаарай. Таны товчлуур яг ямар функцтэй болохыг мэдэхийн тулд >> дуудлага буцааж харах >> дуудлагыг буцааж хулганы баруун товчлуур дээр дарахад таны товчлуурын функц нээгдэх болно, гэхдээ энэ зааварчилгааны хувьд энэ нь минийхтэй адил гэж бодож байна.
Робот руу холбогдох товчлуурын хувьд:
Pushbutton6_Callback (hObject, eventdata, бариул) функцын дор:
pushbutton6_Callback функц (hObject, eventdata, handles) global ros_master_ip
дэлхийн ros_master_port
дэлхийн teleop_topic_name
дэлхийн робот
дэлхийн velmsg
ros_master_uri = strcat ('https://', ros_master_ip, ':', ros_master_port)
setenv ('ROS_MASTER_URI', ros_master_uri)
розинит
робот = rospublisher (teleop_topic_name, 'geometry_msgs/Twist');
velmsg = rosmessage (робот);
Энэ буцааж залгах нь ros_master_ip ба портыг холбосноор ROS_MASTER_URI хувьсагчийг тохируулах бөгөөд дараа нь rosinit командаар холболтыг эхлүүлэх болно. Холбогдсоны дараа энэ нь geometry_msgs/Twist нийтлэгчийг үүсгэх бөгөөд үүнийг командын хурдыг илгээхэд ашиглах болно. Сэдвийн нэр бол засварлах талбарт өгсөн нэр юм. Холболт амжилттай болсны дараа бид урагш, арагш, зүүн, баруун товчлуурыг ажиллуулах боломжтой болно.
Forward, Backward түлхэх товчлууруудад дуудлага хийхээс өмнө шугаман болон өнцгийн хурдыг эхлүүлэх хэрэгтэй.
Тиймээс доор _OpeningFcn (hObject, eventdata, handles, varargin) дараах зүйлийг тодорхойлно (зураг харна уу):
дэлхийн зүүн_ эргэх хурд дэлхийн баруун_ эргэх хурд
дэлхийн урагшлах хурд
дэлхийн хоцрогдсон хурд
left_spinVelocity = 2;
right_spinVelocity = -2;
forwardVelocity = 3;
backwardVelocity = -3;
Тэмдэглэл: бүх хурд нь рад/с байна
Глобал хувьсагчдыг тодорхойлсны дараа хөдөлгөөний товчлууруудыг програмчилж үзье.
Forward товчлуурын хувьд:
pushbutton4_Callback функц (hObject, eventdata, handles) global velmsg
дэлхийн робот
дэлхийн teleop_topic_name
дэлхийн урагшлах хурд
velmsg. Angular. Z = 0;
velmsg. Linear. X = forwardVelocity;
илгээх (робот, velmsg);
latchpub = rospublisher (teleop_topic_name, 'IsLatching', үнэн);
Үүнтэй адилаар Backward товчлуурын хувьд:
pushbutton5_Callback функц (hObject, eventdata, бариул)
дэлхийн velmsg
дэлхийн робот
дэлхийн хоцрогдсон хурд
дэлхийн teleop_topic_name
velmsg. Angular. Z = 0;
velmsg. Linear. X = backwardVelocity;
илгээх (робот, velmsg);
latchpub = rospublisher (teleop_topic_name, 'IsLatching', үнэн);
Зүүн товчлуурын хувьд мөн адил: function pushbutton3_Callback (hObject, eventdata, handles)
дэлхийн velmsgglobal робот дэлхийн зүүн_спинVelocity
дэлхийн teleop_topic_name
velmsg. Angular. Z = left_spinVelocity;
velmsg. Linear. X = 0;
илгээх (робот, velmsg);
latchpub = rospublisher (teleop_topic_name, 'IsLatching', үнэн);
Баруун товчлуурын хувьд мөн адил:
дэлхийн velmsgglobal робот
дэлхийн баруун_ эргэх хурд
дэлхийн teleop_topic_name
velmsg. Angular. Z = right_spinVelocity;
velmsg. Linear. X = 0;
илгээх (робот, velmsg);
latchpub = rospublisher (teleop_topic_name, 'IsLatching', үнэн);
Дуудлага хийх бүх функцийг нэмж, файлуудыг хадгалсны дараа бид хянагчаа туршиж үзэх боломжтой болно.
Алхам 8: ROS PC (Linux) дээр сүлжээний тохиргоог тохируулах
Бид хянагчийг ros pc (Линукс) дээр туршиж үзэх бөгөөд энэ нь сүлжээний тохиргоог хийх шаардлагатай бөгөөд хэрэв та хянагчийг линк компьютер дээр ажиллуулж байгаа бол сүлжээний тохиргоог тэнд бас тохируулах шаардлагатай болно.
Сүлжээний тохиргоо:
Терминал цонхоо нээгээд gedit.bashrc гэж бичнэ үү
Файлыг нээсний дараа дараахь зүйлийг нэмнэ үү.
#Робот машины тохиргоо
экспортлох ROS_MASTER_URI = https:// localhost: 11311
ROS мастер зангилааны IP хаяг
экспортлох ROS_HOSTNAME =
экспортлох ROS_IP =
цуурай "ROS_HOSTNAME:" $ ROS_HOSTNAME
цуурай "ROS_IP:" $ ROS_IP
цуурай "ROS_MASTER_URI:" $ ROS_MASTER_URI
Динамик IP хуваарилалтын улмаас та энэ алхамыг хийх ёстой.
Алхам 9: Хянагчийг ажиллуулна уу
Бид хянагчаа Gazebo дахь яст мэлхийн бот дээр турших гэж байна.
Gazebo -г суулгахын тулд https://gazebosim.org/tutorials?tut=install_ubuntu&cat=install хаягийг үзнэ үү.
Turtle bot-ийг суулгахын тулд https://yainnoware.blogspot.com/2018/09/install-turtlebot-on-ros-kinetic-ubuntu.html хаягаар орж үзнэ үү.
MATLAB дээр.fig болон.m файлуудаа хадгалсан фолдерыг нээгээд Run дээр дарна уу (зураг дээр үзүүлсэн шиг). Холболтыг дарахаасаа өмнө яст мэлхийн бот симулятор ажиллаж байгаа эсэхийг шалгаарай.
TurtleBot -ийн симуляцийг туршихын тулд:
Terminal -ийг Рос компьютер дээр нээгээд: $ roslaunch turtlebot_gazebo turtlebot_world.launch гэж бичнэ үү. Энэ нь тэр компьютер дээр Turtlebot -ийн симуляцийг нээх болно. TurtleBot -ийн сэдвийн нэр нь/cmd_vel_mux/input/teleop бөгөөд бид үүнийг аль хэдийн програмд оруулсан болно. Rc pc Ip хаяг, порт, сэдвийн нэрийг засварлах товчлууруудад бичээд "Робот руу холбогдох" товчийг дарна уу. Таны яст мэлхий урагш, арагш гэх мэтийг дарахад хөдөлж эхлэх ёстой.
Шугаман ба өнцгийн хурдыг харахын тулд:
Шинэ терминал нээгээд тушаалыг бичнэ үү: $ rostopic echo/cmd_vel_mux/input/teleop
Танд өөрийн гэсэн Matlab-д суурилсан ROS робот хянагч байна. Хэрэв танд миний заавар таалагдсан бол зохиогчдын анхдугаар уралдаанд саналаа өгч, аль болох олон хүмүүстэй хуваалцаарай. Баярлалаа.
Зөвлөмж болгож буй:
[Зүүж болох хулгана] Windows 10 болон Линуксд зориулсан Bluetooth дээр суурилсан элэгддэг хулганы хянагч: 5 алхам
[Зүүж болох хулгана] Windows 10 болон Линуксд зориулсан Bluetooth дээр суурилсан зүүж болох хулганы хянагч: Би хулганы заагчийг хянах, компьютерын хулганатай холбоотой үйлдлийг ямар ч гадаргуу дээр хүрэлгүйгээр гүйцэтгэх боломжтой Bluetooth дээр суурилсан хулганы хянагч хийсэн. Бээлий дээр суурилуулсан электрон хэлхээг ашиглан
Бичил хянагч дээр суурилсан метроном: 5 алхам
Микроконтроллер дээр суурилсан метроном: Метроном бол хөгжимчдийн дуун дахь цохилтыг хянах, шинэ хэрэгслийг сурч буй эхлэгчдэд цагийн мэдрэмжийг хөгжүүлэх зорилгоор ашигладаг цаг хэмжих төхөөрөмж юм. Энэ нь хөгжимд чухал үүрэг гүйцэтгэдэг хэмнэлийн мэдрэмжийг хадгалахад тусалдаг
Arduino дээр суурилсан DIY тоглоомын хянагч - Arduino PS2 тоглоомын хянагч - DIY Arduino Gamepad ашиглан Tekken тоглох: 7 алхам
Arduino дээр суурилсан DIY тоглоомын хянагч | Arduino PS2 тоглоомын хянагч | DIY Arduino Gamepad ашиглан Tekken тоглох: Сайн байна уу залуусаа, тоглоом тоглох нь үргэлж хөгжилтэй байдаг, гэхдээ өөрийн гараар хийсэн DIY тоглоомын хянагчтай тоглох нь илүү хөгжилтэй байдаг тул бид энэ зааварт arduino pro micro ашиглан тоглоом хянагч хийх болно
ROS MoveIt робот гар 2 -р хэсэг: Робот хянагч: 6 алхам
ROS MoveIt Robotic Arm 2-р хэсэг: Робот хянагч: https://github.com/AIWintermuteAI/ros-moveit-arm.git Өгүүллийн өмнөх хэсэгт бид робот гартаа зориулан URDF болон XACRO файлуудыг үүсгэж RVIZ-ийг эхлүүлсэн. загварчилсан орчинд робот гар. Энэ удаад бид үүнийг хийх болно
YABC - Өөр нэг Blynk хянагч - IoT үүлний температур ба чийгшлийн хянагч, ESP8266: 4 алхам
YABC - Өөр нэг Blynk хянагч - IoT үүлний температур ба чийгшлийн хянагч, ESP8266: Сайн байна уу, би саяхан гэртээ мөөг, хясааны мөөг тарьж эхлэв, гэхдээ би гэрийнхээ исгэх зориулалттай исгэгчийн температурыг хянахын тулд гэртээ энэ контроллерын гуравны нэгийг авсан байгаа. мөн энэ Kombucha -г одоо хийж байгаа бөгөөд дулааны термостатын хувьд