VPN ಮೂಲಕ ROS 1 ವಿಷಯಗಳು: ಘೋಷಿತ ಅಂತಿಮ ಬಿಂದುವನ್ನು ಅನುಸರಿಸಿ
ROS 1 master ನೋಂದಣಿ ವಿಷಯ ದತ್ತಾಂಶವನ್ನು ಸಾಗಿಸುವುದಿಲ್ಲ. ಘೋಷಿತ ನೋಡ್ URI ಓದಿ, ಆ ವಿಳಾಸವನ್ನು ಮಾರ್ಗನಿರ್ದೇಶಿಸಬಹುದಾದಂತೆ ಮಾಡಿ, ನಂತರ ಪ್ರಕಾಶಕನ ಪೋರ್ಟ್ ಅನ್ನು ಅನುಮತಿಸಿ.
ನಿಮ್ಮ ವರ್ಕ್ಸ್ಟೇಷನ್ ಸುರಂಗದ ಮೂಲಕ ROS 1 master ತಲುಪುತ್ತದೆ, ಆದರೂ ವಿಷಯಗಳ ಪಟ್ಟಿ ಖಾಲಿಯಾಗಿ ಕಾಣುತ್ತದೆ. ಈ ಮಾದರಿ ಸಾಮಾನ್ಯವಾಗಿದೆ ಏಕೆಂದರೆ master ನೋಂದಣಿ ಮತ್ತು ವಿಷಯ ಸಾಗಣೆ ಎರಡು ವಿಭಿನ್ನ ಸಂಭಾಷಣೆಗಳು, ಮತ್ತು master ಮೂಲಕ ಹೋಗುವುದು ಮೊದಲನೆಯದು ಮಾತ್ರ. ಕೆಳಗಿನ ಪರಿಶೀಲನಾ ಪಟ್ಟಿ ಎರಡನೇ ಸಂಭಾಷಣೆಯನ್ನು ನಡೆಸುತ್ತದೆ: ಪ್ರಕಾಶಕ ಘೋಷಿಸುವ ಅಂತಿಮ ಬಿಂದು, ಚಂದಾದಾರ ತಲುಪಬೇಕಾದ ವಿಳಾಸ, ಮತ್ತು ಜೋಡಿಗೆ ಮಾತನಾಡಲು ಅನುಮತಿಸುವ ಅನುಮತಿ. ಇಲ್ಲಿನ ಎಲ್ಲವೂ ಹಳೆಯ ROS 1 ಗೆ ಮಾತ್ರ ಸಂಬಂಧಿಸಿದೆ, ಅದರ Noetic ಬೆಂಬಲ ಅವಧಿ 2025ರ ಮೇ ತಿಂಗಳಲ್ಲಿ ಕೊನೆಗೊಂಡಿತು.
ಹಂತ 1: master ಸಂಪರ್ಕವು ವಿಷಯ ಸಂಪರ್ಕವಲ್ಲ ಎಂದು ಸಾಬೀತುಪಡಿಸಿ
ಏನು ಕೆಲಸ ಮಾಡುತ್ತದೆ ಮತ್ತು ಏನು ಮಾಡುವುದಿಲ್ಲ ಎಂಬುದನ್ನು ಬೇರ್ಪಡಿಸುವುದರಿಂದ ಪ್ರಾರಂಭಿಸಿ. ಯಶಸ್ವಿ rostopic list ನಿಮ್ಮ ಶೆಲ್ 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 ಘಟಕ, ಕಂಟೇನರ್ ಅಥವಾ ಎರಡನೇ ಟರ್ಮಿನಲ್ ನಿಮ್ಮ ಪರೀಕ್ಷೆ ಕೆಲಸ ಮಾಡಿದ ಶೆಲ್ಗಿಂತ ಬೇರೆ ಮೌಲ್ಯವನ್ನು ಹೊತ್ತಿರಬಹುದು.
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 ಸಂಭಾಷಣೆಗಳನ್ನು ಸಾಗಿಸುತ್ತದೆ, ಇದು ಸಾಮಾನ್ಯವಾಗಿ ದೂರದ ಆಪರೇಟರ್ ಬಯಸುವುದು. ಸ್ಟಾಕ್ನಲ್ಲಿನ ಏನಾದರೂ ಬದಲಿಗೆ ಬ್ರಾಡ್ಕಾಸ್ಟ್ ಅಥವಾ multicast ಅನ್ನು ಅವಲಂಬಿಸಿದರೆ, ಆ ಅಗತ್ಯವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಮೌಲ್ಯಮಾಪನ ಮಾಡಬೇಕು; ಒಂದು ಸಾಧನವನ್ನು ತೃಪ್ತಿಪಡಿಸಲು ಸುರಂಗವನ್ನು TAP ಆಗಿ ಬದಲಿಸುವುದು ಪ್ರತಿ ಭಾಗವಹಿಸುವವರಿಗೂ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆ.
ಮಾರ್ಗ ಅಥವಾ ಮರಳುವ ದಾರಿ ಇಲ್ಲದಿದ್ದರೆ ಇಲ್ಲಿಯೇ ನಿಲ್ಲಿಸಿ. ತನ್ನ ಹೋಸ್ಟ್ನಲ್ಲಿ ಉತ್ತರಿಸುವ ಆದರೆ ವರ್ಕ್ಸ್ಟೇಷನ್ನಿಂದ ತಲುಪಲಾಗದ ಪ್ರಕಾಶಕನಿಗೆ ಮಾರ್ಗನಿರ್ದೇಶನ ಸಮಸ್ಯೆ ಇದೆ, ROS ಸಮಸ್ಯೆ ಅಲ್ಲ.
ಹಂತ 4: ಪೀರ್ ಸಂಭಾಷಣೆಯನ್ನು ಅನುಮತಿಸಿ ಮತ್ತು ಒಂದು ವಿಷಯವನ್ನು ಗಮನಿಸಿ
ಸಮಾಲೋಚಿತ ಸಂಭಾಷಣೆಗೆ ಬೇಕಾದ ಪೋರ್ಟ್ಗಳನ್ನು ಮಾತ್ರ ತೆರೆಯಿರಿ, ಮತ್ತು ಪ್ರತಿ ನಿಯಮವನ್ನು ಘೋಷಿತ ಭಾಗವಹಿಸುವವರಿಗೆ ಸೀಮಿತಗೊಳಿಸಿ. master ನ ಕೇಳುಗ ವಿಷಯ ಪೇಲೋಡ್ಗೆ ರಿಲೇ ಅಲ್ಲ, ಆದ್ದರಿಂದ ಅದಕ್ಕೆ ಮಾತ್ರ ಅನುಮತಿ ನೀಡಿದರೆ ಪ್ರಕಾಶಕನ ಅಂತಿಮ ಬಿಂದು ಮುಚ್ಚಿಯೇ ಇರುತ್ತದೆ. ROS ಕೇಳುಗರನ್ನು ಸಾರ್ವಜನಿಕ ಇಂಟರ್ನೆಟ್ಗೆ ಒಡ್ಡುವ ಬದಲು ಖಾಸಗಿ VPN ಗಡಿಯಲ್ಲಿ ಇರಿಸಿ.
rostopic hz /chatter
rostopic echo -n1 /chatter
rosnode ping /talker
ನಿಜವಾದ ಪ್ರಕಾಶಕನಿಂದ ನಿಜವಾದ ಚಂದಾದಾರನಿಗೆ ಒಂದು ನಿರುಪದ್ರವ ವಿಷಯವನ್ನು ಗಮನಿಸಿ ಮತ್ತು ಘೋಷಿತ ಅಂತಿಮ ಬಿಂದು ಹಾಗೂ ಉತ್ತರದ ದಾರಿ ಎರಡನ್ನೂ ದೃಢೀಕರಿಸಿ. ಒಂದು ಸಂದೇಶ ದಾರಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ; ಸ್ಥಿರ ದರ ಅದು ತೆರೆದೇ ಇರುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ. ಆಕ್ಟ್ಯುಯೇಟರ್ ನಿಯಂತ್ರಣ ಮತ್ತು ಸುರಕ್ಷತಾ ಪರಿಶೀಲನೆಗಳನ್ನು ಈ ಕೇವಲ-ನೆಟ್ವರ್ಕ್ ಪರೀಕ್ಷೆಯಿಂದ ಹೊರಗಿಡಿ, ಏಕೆಂದರೆ ಕೆಲಸ ಮಾಡುವ ವಿಷಯ ಕೆಲಸ ಮಾಡುವ ರೋಬೋಟ್ಗೆ ಪ್ರಮಾಣಪತ್ರವಲ್ಲ. ನೀವು ಗಮನಿಸಿದ ROS ಆವೃತ್ತಿ ಮತ್ತು ಅಂತಿಮ ಬಿಂದುಗಳ ಜೋಡಿಯನ್ನು ದಾಖಲಿಸಿ, ಮುಂದಿನ ವ್ಯಕ್ತಿ ಟೋಪಾಲಜಿ ಬದಲಾವಣೆಯನ್ನು ಹಿಂಜರಿತದಿಂದ ಪ್ರತ್ಯೇಕಿಸಲು ಸಾಧ್ಯವಾಗುವಂತೆ.
ಘೋಷಿತ URI ಚಂದಾದಾರನಿಂದ ತಲುಪಬಲ್ಲದಾದಾಗ, ಸಮಾಲೋಚಿತ ಪೋರ್ಟ್ ಆ ಪೀರ್ಗೆ ಮಾತ್ರ ತೆರೆದಿದ್ದಾಗ, ಒಂದು ಘೋಷಿತ ವಿಷಯ ಹರಿಯುತ್ತಿರುವಾಗ, ಮತ್ತು ಪರಿಸರ ಮೌಲ್ಯಗಳು ಎರಡೂ ಹೋಸ್ಟ್ಗಳಿಗೆ ದಾಖಲಾಗಿರುವಾಗ ಪರಿಶೀಲನಾ ಪಟ್ಟಿ ಪೂರ್ಣಗೊಳ್ಳುತ್ತದೆ. ಹಳೆಯ ROS 1 ಈ ಕ್ಷೇತ್ರದಲ್ಲಿ ಸರಿಪಡಿಸುವಿಕೆಗಳನ್ನು ಪಡೆಯುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ದಾಖಲೆಯೇ ಜನರು ಬದಲಾದ ನಂತರವೂ ಕೆಲಸ ಮಾಡುತ್ತಿರುವ ಭಾಗ.