[{"data":1,"prerenderedAt":219},["ShallowReactive",2],{"doc-/logbook-experiments/programming/ros":3},{"id":4,"title":5,"author":6,"body":7,"date":203,"description":204,"extension":205,"image":206,"location":207,"meta":208,"navigation":209,"path":210,"seo":211,"stem":212,"tags":213,"__hash__":218},"content/logbook-experiments/programming/ros.md","[LOGBOOK] Middleware Selection Decision: ROS 1 vs ROS 2","Firizqi Aditya",{"type":8,"value":9,"toc":195},"minimark",[10,15,24,27,30,35,42,65,72,83,86,88,92,99,102,109,112,123,126,128,132,139,157,160,162,166,173,176,190,193],[11,12,14],"h1",{"id":13},"middleware-selection-why-ros-1-was-chosen-over-ros-2","Middleware Selection: Why ROS 1 Was Chosen Over ROS 2",[16,17,18,19,23],"p",{},"Selecting the appropriate robotic middleware is a critical system-level decision that directly affects compatibility, stability, and development efficiency. During the development of the Mandakini autonomous surface vehicle, ",[20,21,22],"strong",{},"ROS 1"," was chosen instead of ROS 2 based on practical hardware and software constraints.",[16,25,26],{},"This logbook documents the rationale behind this decision.",[28,29],"hr",{},[31,32,34],"h2",{"id":33},"_1-hardware-and-operating-system-constraints","1. Hardware and Operating System Constraints",[16,36,37,38,41],{},"The onboard computer used in this system is the ",[20,39,40],{},"NVIDIA Jetson Nano (eMMC version)",", which introduces several limitations:",[43,44,45,52,58],"ul",{},[46,47,48,51],"li",{},[20,49,50],{},"Ubuntu 18.04 (Bionic Beaver)"," as the base operating system",[46,53,54,57],{},[20,55,56],{},"Python 3.6"," as the default system Python version",[46,59,60,61,64],{},"Pre-installed ",[20,62,63],{},"CUDA and NVIDIA JetPack"," environment",[16,66,67,68,71],{},"Upgrading the operating system or Python version on the ",[20,69,70],{},"eMMC-based Jetson Nano"," carries a high risk of:",[43,73,74,77,80],{},[46,75,76],{},"CUDA and driver incompatibility",[46,78,79],{},"JetPack dependency conflicts",[46,81,82],{},"Difficult recovery compared to SD card–based systems",[16,84,85],{},"For this reason, the system environment was intentionally kept unchanged to maintain stability.",[28,87],{},[31,89,91],{"id":90},"_2-ros-2-availability-on-ubuntu-1804","2. ROS 2 Availability on Ubuntu 18.04",[16,93,94,95,98],{},"While ROS 2 does have limited support on Ubuntu 18.04, the only officially compatible distribution is ",[20,96,97],{},"ROS 2 Eloquent",".",[16,100,101],{},"However, this option presents a major limitation:",[43,103,104],{},[46,105,106],{},[20,107,108],{},"ROS 2 Eloquent does not provide stable MAVROS support",[16,110,111],{},"Since MAVROS is a critical component for integrating:",[43,113,114,117,120],{},[46,115,116],{},"Pixhawk flight controller",[46,118,119],{},"GPS, IMU, and waypoint navigation",[46,121,122],{},"Autonomous mission execution",[16,124,125],{},"the lack of MAVROS support makes ROS 2 Eloquent unsuitable for this platform.",[28,127],{},[31,129,131],{"id":130},"_3-ros-1-compatibility-and-system-stability","3. ROS 1 Compatibility and System Stability",[16,133,134,135,138],{},"In contrast, ",[20,136,137],{},"ROS 1 (Melodic)"," offers:",[43,140,141,144,151,154],{},[46,142,143],{},"Full compatibility with Ubuntu 18.04",[46,145,146,147,150],{},"Stable and mature ",[20,148,149],{},"MAVROS"," integration",[46,152,153],{},"Proven reliability on Jetson Nano hardware",[46,155,156],{},"Broad community support and tooling",[16,158,159],{},"Using ROS 1 allows the system to operate without forced upgrades that could compromise hardware stability or development timelines.",[28,161],{},[31,163,165],{"id":164},"conclusion","Conclusion",[16,167,168,169,172],{},"Although ROS 2 provides architectural improvements and long-term benefits, ",[20,170,171],{},"ROS 1 was selected as the most practical and reliable choice"," for the Mandakini platform.",[16,174,175],{},"This decision prioritizes:",[43,177,178,181,184,187],{},[46,179,180],{},"System stability",[46,182,183],{},"Hardware compatibility",[46,185,186],{},"Reliable MAVROS integration",[46,188,189],{},"Reduced risk of CUDA and driver conflicts",[16,191,192],{},"As a result, ROS 1 enables consistent autonomous operation within the constraints of the Jetson Nano eMMC-based environment.",[28,194],{},{"title":196,"searchDepth":197,"depth":197,"links":198},"",2,[199,200,201,202],{"id":33,"depth":197,"text":34},{"id":90,"depth":197,"text":91},{"id":130,"depth":197,"text":131},{"id":164,"depth":197,"text":165},"5 January 2026","Documenting the technical considerations behind choosing ROS 1 over ROS 2 for the Mandakini autonomous surface vehicle platform.","md","/images/research/programming/roscore.webp",null,{},true,"/logbook-experiments/programming/ros",{"title":5,"description":204},"logbook-experiments/programming/ros",[214,22,215,216,217],"ROS","ROS 2","Jetson Nano","Autonomous System","nFV7gOCoxn2-no2PrIOI1D9svQ2c9VDsq-XmYuQYfbI",1768857524015]