VPN හරහා ROS 2: සොයාගැනීම දත්ත මාර්ගය නොවේ
සොයාගැනීම මිතුරන් සොයා ගැනීමෙන් පේලෝඩ පැමිණෙන බව ඔප්පු නොවේ. DDS මාරු කිරීමට හෝ රවුටරයක් එකතු කිරීමට පෙර RMW, ප්රකාශිත අන්ත ලක්ෂ්ය සහ එක් වැඩ භාරයක් පරීක්ෂා කරන්න.
VPN හි විරුද්ධ කෙළවරවල ඇති ROS 2 නෝඩ දෙකකට එකිනෙකාගේ මාතෘකා ලැයිස්තුගත කළ හැකි වුවද එකම පණිවිඩයක් පවා බෙදාහැරිය නොහැක. සොයාගැනීම සහ පරිශීලක දත්ත වෙන වෙන මාර්ග සහිත වෙන වෙන හුවමාරු වේ, සහ සොයාගැනීම් සේවාදායකය පේලෝඩ යළි නොයවයි. එකක් පරීක්ෂා කර අනෙක උපකල්පනය කිරීම නිසා ටීම් ටනලය කිසිදා දත්ත රැගෙන නොගිය විට මිඩ්ල්වෙයර් මාරු කිරීමට පටන් ගනී. පහත ක්රියාපටිපාටිය කිසිවක් මාරු කිරීමට පෙර ප්රතිඵල දෙක වෙන් කරයි.
සොයාගැනීම් සේවාදායකය සැබවින්ම රැගෙන යන්නේ කුමක්ද
Fast DDS හි Discovery Server අන්ත ලක්ෂ්ය පිළිබඳ තොරතුරු බෙදාහරියි: කවුරුන් ප්රකාශයට පත් කරයිද, කවුරුන් දායක වේද සහ එක් එක් අය කුමන QoS අපේක්ෂා කරයිද. මිතුරන් එකිනෙකා දැනගත් පසු පරිශීලක දත්ත එම සේවාදායකය හරහා නොව සෘජුවම ඔවුන් අතර ගමන් කරයි. සේවාදායකයට ළඟා වීම ඔප්පු කරන්නේ හඳුන්වාදීම්වල බ්රෝකර් පිළිතුරු දෙන බව පමණි. රවුට් කළ VPN එකකට තවමත් මිතුරන් ප්රකාශිත ලිපින අතර දෙපැත්තටම ක්රියාත්මක මාර්ගයක් අවශ්ය වේ.
මෙම වෙනස අර්ධ අසාර්ථකතා ද පැහැදිලි කරයි, එහිදී පවතින මිතුරන් දත්ත හුවමාරු කරගෙන යද්දී නව සොයාගැනීම ක්රියා කිරීම නවතී. ඒවා වෙන වෙන පරීක්ෂණ දෙකක් ලෙස සලකන්න.
නෝඩ සැබවින්ම භාවිතා කරන RMW කියවන්න
ROS 2 විවිධ මිඩ්ල්වෙයර් පූරණය කළ හැක, සහ ඔබේ ෂෙලයේ අපනයනය කළ විචල්යයක් වෙනත් තැනක ආරම්භ කළ ක්රියාවලීන්ට ළඟා නොවේ. ඔබේ ටර්මිනල් ඉතිහාසය වෙනුවට ධාවනය වන පද්ධතියෙන් අසන්න.
printenv RMW_IMPLEMENTATION
ros2 doctor --report | head -n 20සකසා නැති විචල්යයක් සාමාන්යයෙන් අදහස් වන්නේ ස්ථාපිත පෙරනිමියයි, එය එකම පරීක්ෂණයේ යන්ත්ර අතර වෙනස් විය හැක. වාර්තාව භාවිතා කරන බෙදාහැරීම සහ මිඩ්ල්වෙයර් ද නම් කරයි, එබැවින් ඒවා ගැලපෙන බව උපකල්පනය කිරීමට පෙර ටනලයේ දෙපැත්තේ ඒවා සසඳන්න. ROS විධාන රේඛා ඩේමනය තත්ත්වය හැඹිලි කරයි, එබැවින් පරිසරය වෙනස් කිරීමෙන් පසු එය නැවත අරඹන්න, පැරණි වින්යාසය සඳහා කල් ඉකුත් වූ ඩේමනයකට පිළිතුරු දීමට ඉඩ නොදෙන්න. සැසිය විවෘතව තිබියදී හොස්ට් දෙකේම බෙදාහැරීම සහ RMW පරීක්ෂණ සටහන්වල ලියන්න.
සොයාගැනීම සහ දත්ත ප්රතිඵල දෙකක් ලෙස පරීක්ෂා කරන්න
හානිකර නොවන මාතෘකාවක් තෝරන්න සහ හඳුන්වාදීම බෙදාහැරීමෙන් වෙන්ව මනින්න. info විධානය අන්ත ලක්ෂ්ය සහ QoS ලැයිස්තුගත කරයි, echo එක් පණිවිඩයක් සැබවින්ම සබැඳිය හරහා යනවාද යන්න ඔප්පු කරයි.
ros2 topic info /chatter --verbose
ros2 topic echo /chatter --onceinfo ප්රතිදානයේ අන්ත ලක්ෂ්ය දිස්වීම සොයාගැනීමේ ප්රතිඵලයකි. පණිවිඩයක් දායකයාට ළඟා වීම ප්රවාහන ප්රතිඵලයකි, සහ දෙවැන්න පමණක් යෙදුමට අවශ්ය මාර්ගය පරීක්ෂා කරයි. සොයාගැනීම ක්රියා කර echo කාලය ඉකුත් වූ විට, සොයාගැනීම් සේවාව වෙනුවට ප්රකාශිත ලිපින සහ ආපසු මාර්ගය පරීක්ෂා කරන්න. සෑම හොස්ට් එකකින්ම විධාන දෙකම ධාවනය කරන්න, මන්ද අසමමිතික VPN මාර්ගය බොහෝ විට එක් පැත්තකින් පමණක් හෙළි වේ.
එක් වරකට එක් යැපීමක් වෙනස් කරන්න
දත්ත මාර්ගය අසාර්ථක වූ විට, එකම සැසියේ මිඩ්ල්වෙයර්, සොයාගැනීම් මාදිලිය සහ පණිවිඩ ප්රමාණය වෙනස් කිරීමෙන් වළකින්න, මන්ද පසුව කිසිදු ප්රතිඵලයක් ආරෝපණය කළ නොහැක. Zenoh RMW නීත්යානුකූල විකල්පයකි, නමුත් එහි රවුටරය ටනලය හරහා ළඟා විය හැකි තවත් යැපීමක් බවට පත් වේ.
export RMW_IMPLEMENTATION=rmw_zenoh_cpp
ros2 run rmw_zenoh_cpp rmw_zenohdඑම RMW යටතේ රවුටරය Jazzy හි පෙරනිමි සැකැස්මේ සොයාගැනීම රැගෙන යයි, සහ එහි multicast සොයාගැනීම අබල කර ඇත, එබැවින් මෙම යැපීම වෙනත් මිඩ්ල්වෙයර්වලින් ණයට ගත් උපකල්පනයක නොව ඔබේ සටහන්වල තිබිය යුතුය. එක් සැකසුමක් වෙනස් කරන අතරතුර වැඩ භාරය ස්ථාවරව තබන්න, පසුව echo පරීක්ෂණය නැවත කර දිශාව, පණිවිඩ අනුපාතය සහ සබැඳි තත්ත්ව වාර්තා කරන්න. සැබෑ වැඩිදියුණුවක් වාසනාවන්ත නැවත සම්බන්ධ වීමකින් වෙන් කිරීමට සංසන්දනය දෙවරක් ධාවනය කරන්න. වෙනසක් සොයාගැනීම වැඩිදියුණු කර බෙදාහැරීම එලෙසම පවතී නම්, ඔබ යාවත්කාලීන කළේ හඳුන්වාදීම් සේවාවයි, දත්ත මාර්ගය නොවේ.