VPN-ээр дамжуулсан ROS 1 сэдвүүд: зарласан төгсгөлийн цэгийг дагана уу
ROS 1 master бүртгэл сэдвийн өгөгдөл дамжуулдаггүй. Зарласан зангилааны URI-г уншиж, тэр хаягийг чиглүүлэх боломжтой болгож, дараа нь нийтлэгчийн портыг зөвшөөрнө үү.
Таны ажлын станц туннелиар ROS 1 master-т хүрдэг ч сэдвийн жагсаалт хоосон харагдсан хэвээр байна. Энэ загвар түгээмэл, учир нь master бүртгэл ба сэдэв дамжуулалт нь хоёр өөр яриа бөгөөд master-ээр зөвхөн эхнийх нь дамждаг. Доорх шалгах жагсаалт хоёр дахь яриаг дамждаг: нийтлэгчийн зарласан төгсгөлийн цэг, захиалагчийн хүрэх ёстой хаяг, мөн хоёрыг ярих боломж олгосон зөвшөөрөл. Энд байгаа бүхэн зөвхөн Noetic дэмжлэгийн хугацаа 2025 оны тавдугаар сард дууссан хуучин ROS 1-д хамаарна.
1-р алхам: master холболт нь сэдвийн холболт биш гэдгийг батална уу
Юу ажиллаж байгааг юу ажиллахгүй байгаагаас ялгаж эхэлнэ үү. Амжилттай rostopic list таны shell master-ийн XMLRPC портод хүрч чадах ба master сэдвүүдийг мэддэг гэдгийг баталдаг; захиалагч нийтлэгчид хүрч чадах эсэхийг энэ нь огт хэлэхгүй. Доорх гурван команд энэ ялгааг ил болгодог бөгөөд бүгд зөвхөн унших зориулалттай.
echo "$ROS_MASTER_URI"
rostopic list
rostopic info /chatter
rostopic info-ийн гаралт нь нийтлэгчийн зангилааны URI-г нэрлэдэг бөгөөд энэ нь нийтлэгчийн хостоос XMLRPC хаяг юм. Энэ хаяг руу таны захиалагч дараа нь хандана, тиймээс захиалагч хаана ажиллаж байгаагаас үл хамааран тэндээс хүрч болохуйц байх ёстой. Хэрэв энэ нь зөвхөн роботын өөрийн LAN-д байдаг интерфэйс рүү зааж байвал master-ийн хайлт амжилттай болж, өгөгдөл хэзээ ч ирэхгүй.
2-р алхам: зарласан төгсгөлийн цэгийг зангилаанаас нь уншина уу
ROS 1 өөрийн зарласан хост таних тэмдгийг ROS_IP эсвэл ROS_HOSTNAME-ээс сонгодог, хэрэв аль нэг нь тохируулагдсан бол, эс бөгөөс хотын өөрийн нэр шийдвэрлэлт рүү буцдаг. Бодитоор эхлүүлсэн процессын орчныг шалгана уу, учир нь systemd нэгж, контейнер эсвэл хоёр дахь терминал таны туршилт ажилласан shell-ээс өөр утга агуулж болно.
echo "$ROS_IP" "$ROS_HOSTNAME"
rosnode info /talker
getent hosts robot-host
Хост нэрийн зарлал нь зөвхөн ажилтан бүр тэр нэрийг зорьсон хүрч болох хаяг руу шийдвэрлэх үед л ажилладаг. Хэрэв тэр нэр зөвхөн роботын өөрийн сүлжээний дотор шийдвэрлэгддэг бол туннелийн нөгөө талд байгаа ажлын станцад үүнийг ашиглах арга байхгүй, DNS дагавар түлхэхгүй VPN нь зөрчилдөөнийг улам дордуулдаг. Топологи чиглүүлэгдсэн үед ROS_IP-г туннелийн хаяг руу тавих нь бага өөрчлөлт юм. Та юу ч сонгосон, хоёр төгсгөлд нь бичиж үлдээнэ үү, учир нь таних тэмдгийн талаар санал нийлэхгүй нийтлэгч, захиалагч хэлэлцээд дараа нь холбогдож чадахгүй.
Зарласан URI нь ямар ч ажилтан чиглүүлж чадахгүй хаяг ашиглаж байвал энд зогсоно уу. Буруу интерфэйс рүү шийдвэрлэгдэх нэрийг ямар ч галын хана засахгүй.
3-р алхам: зарласан хаягийг шийдвэрлэгдэхүйц, чиглүүлэгдэхүйц болгоно уу
URI-г гартаа авсны дараа хүрч болохыг роботоос бус захиалагчийн хостоос шалгана уу. TCPROS порт хэлэлцээний үеэр сонгогддог тул ашигтай эрт шалгалт нь XMLRPC порт, ашигтай хожуу шалгалт нь тогтоогдсон сокет юм. Зөвхөн нэг чиглэлд байдаг маршрут нь чиглүүлэгдсэн VPN-д түгээмэл доголдол бөгөөд буцах зам нь урагшлах зам шиг л чухал.
ip route get 10.70.0.2
nc -vz 10.70.0.2 33911
ss -tnp dst 10.70.0.2
Чиглүүлэгдсэн TUN интерфэйс роботын Ethernet сегментийг өргөтгөхгүйгээр эдгээр IP яриаг зөөдөг бөгөөд энэ нь ихэвчлэн алсын операторын хүсдэг зүйл юм. Хэрэв стек дэх ямар нэгэн зүйл оронд нь broadcast эсвэл multicast-аас хамаардаг бол тэр шаардлагыг тусад нь үнэлэх ёстой; нэг хэрэгслийг хангахын тулд туннелийг TAP болгох нь оролцогч бүрд сүлжээг өргөтгэдэг.
Маршрут эсвэл буцах зам байхгүй бол энд зогсоно уу. Өөрийн хост дээр хариулдаг ч ажлын станцаас хүрч чадахгүй байгаа нийтлэгч нь чиглүүлэлтийн асуудалтай байна, ROS-ийн асуудал биш.
4-р алхам: ажилтнуудын яриаг зөвшөөрч, нэг сэдвийг ажиглана уу
Хэлэлцсэн ярианд хэрэгтэй портуудыг л нээж, дүрэм бүрийг зарласан оролцогчдоор хязгаарлана уу. master-ийн сонсогч нь сэдвийн ачааллын дамжуулагч биш, тиймээс зөвхөн түүнд зөвшөөрөл өгвөл нийтлэгчийн төгсгөлийн цэг хаалттай хэвээр үлдэнэ. ROS сонсогчдыг нийтийн интернетэд ил гаргахын оронд хувийн VPN-ийн хил дээр байлгана уу.
rostopic hz /chatter
rostopic echo -n1 /chatter
rosnode ping /talker
Жинхэнэ нийтлэгчээс жинхэнэ захиалагч руу нэг хор хөнөөлгүй сэдвийг ажиглаж, зарласан төгсгөлийн цэг болон хариу замыг хоёуланг нь батална уу. Нэг мессеж зам ажиллаж байгааг баталдаг; тогтвортой хурд нь нээлттэй хэвээр байгааг баталдаг. Актуаторын удирдлага болон аюулгүй байдлын шалгалтыг зөвхөн сүлжээний энэ туршилтаас гадуур байлгана уу, учир нь ажиллаж байгаа сэдэв нь ажиллаж байгаа роботыг гэрчилдэггүй. Таны ажигласан ROS хувилбар болон төгсгөлийн цэгийн хосыг бичиж үлдээнэ үү, ингэснээр дараагийн хүн топологийн өөрчлөлтийг регрессээс ялгаж чадна.
Зарласан URI захиалагчаас хүрч болохуйц болсон, хэлэлцсэн порт зөвхөн тэр ажилтанд нээлттэй, нэг зарласан сэдэв урсаж байгаа, орчны утгууд хоёр хостод бичигдсэн үед шалгах жагсаалт дуусна. Хуучин ROS 1 энэ салбарт засвар авахгүй, тиймээс бичлэг нь хүмүүс солигдсоны дараа ч үргэлжлүүлэн ажилладаг хэсэг юм.