{"id":20308,"date":"2026-05-16T12:06:48","date_gmt":"2026-05-16T04:06:48","guid":{"rendered":"https:\/\/cde.nus.edu.sg\/edic\/?page_id=20308"},"modified":"2026-05-16T12:06:48","modified_gmt":"2026-05-16T04:06:48","slug":"cde3310","status":"publish","type":"page","link":"https:\/\/cde.nus.edu.sg\/edic\/idp\/modules\/cde3310\/","title":{"rendered":"CDE3310 Systems Approach to Multi-Robot Coordination and Control"},"content":{"rendered":"\n<h2>\n\t\tCDE3310 Systems Approach to Multi-Robot Coordination and Control\n\t<\/h2>\n\t<p>This\u00a0course explores advanced robotics through a system-of-systems lens, where multiple autonomous robots collaborate to solve more complex missions using robotics middleware frameworks. Students will go beyond single-robot control to design, programme, and evaluate multi-robot systems that demonstrate coordination, resilience, and emergent behaviours. By bridging theoretical concepts and real-world deployment, students will gain critical systems-thinking, problem-solving, and collaboration skills transferable to research and industry. Alongside technical mastery, the course fosters curiosity, resilience, and higher awareness in real-world robotics deployment. Through a hands-on project, students will learn not only how to deploy multi-robot systems with a higher-level decision-making layer but also understand the limitations of fully autonomous systems communicating together in real-time.<\/p>\n<p>At the end of this course, students should be able to:<\/p>\n<ul>\n<li>Explain and apply key concepts of a robot operating system and multi-robot system principles.<\/li>\n<li>Analyse and compare different system architectures for multi-robot coordination and robotic fleet management.<\/li>\n<li>Implement effective code management practices to troubleshoot and deploy multi-robot systems.<\/li>\n<li>Identify challenges in bridging theoretical concepts with actual implementation of multi-robot systems.<\/li>\n<li>Demonstrate practical problem-solving and managing complex project tasks in collaborative teams to achieve a unified mission objective.<\/li>\n<li>Understand the fundamentals of UAV systems (mechanical, electrical, electronics, and software).<\/li>\n<\/ul>\n<p>Workload: 4 units (letter-graded)<\/p>\n<p><strong>Note<\/strong>: This course requires students to have prior experience with ROS2 from CDE2310 Fundamentals of Systems Design, RB2301 Robot Programming, or other courses.<\/p>\n<h3>Course syllabus<\/h3>\n<h4>Introduction to system-of-systems (SoS approach):<\/h4>\n<ul>\n<li>Systems engineering overview &#8211; engineering lifecycle, V-model, requirements decomposition, verification and validation<\/li>\n<li>System-of-systems (SoS) approach &#8211; definition and characteristics of SoS (operational\/managerial independence, emergent behaviour, evolutionary development), SoS versus traditional systems, real-world examples in robotics and logistics<\/li>\n<li>System-of-systems synthesiser (SOSS) &#8211; role of SOSS in orchestrating heterogeneous systems, interface standardisation, managing emergent behaviour, SOSS design patterns<\/li>\n<\/ul>\n<h4>ROS2 recap and multi-robot foundations:<\/h4>\n<ul>\n<li>ROS2 fundamentals &#8211; node lifecycle, publisher\/subscriber model, service call\/response patterns, parameter server and dynamic reconfiguration, action servers and clients (goals, feedback, results)<\/li>\n<li>ROS2 navigation framework &#8211; Nav2 architecture, SLAM and map management, localisation (AMCL), path planning (global\/local planners), recovery behaviours<\/li>\n<li>ROS2 namespaces, remapping and QoS &#8211; namespace isolation strategies, topic\/service remapping at launch, QoS profiles (reliability, durability, history, depth), choosing QoS for real-time versus reliable delivery<\/li>\n<li>Multi-robot control using ROS2 &#8211; running multiple robot instances, shared vs. isolated environments, launch file patterns for fleets, inter-robot communication strategies<\/li>\n<\/ul>\n<h4>Centralised multi-robot coordination using Open-RMF:<\/h4>\n<ul>\n<li>Introduction to Open-RMF &#8211; motivation and design goals, supported robot categories (mobile robots, door\/lift systems, workcells), Open-RMF traffic management concepts, conflict avoidance and negotiation<\/li>\n<li>Open-RMF deployment &#8211; Dashboard: web UI for monitoring and dispatching; API server: REST\/WebSocket interface for external integrations; RMF Core: schedule management, traffic negotiation, event system; Fleet adapter: robot-specific adapter design, writing custom adapters, integration with existing fleet software<\/li>\n<\/ul>\n<h4>System architectures for multi-robot coordination:<\/h4>\n<ul>\n<li>Taxonomy for multi-robot task allocation (MRTA) &#8211; single-task versus multi-task robots, single-robot versus multi-robot tasks, instantaneous versus time-extended assignments, ST-SR-IA \/ MT-MR-TA classification framework<\/li>\n<li>Centralised versus decentralised control &#8211; trade-offs in scalability, fault tolerance and latency, hybrid architectures<\/li>\n<li>Introduction to manufacturing execution systems (MES) &#8211; MES role in Industry 4.0, interfacing robots with MES\/ERP, ISA-95 standard, work order dispatch and tracking<\/li>\n<li>Navigation behaviour trees and cost maps &#8211; behaviour tree fundamentals (sequence, fallback, decorator nodes), Nav2 BT XML format, custom BT plugins, global and local cost maps, inflation layers, custom cost map layers<\/li>\n<\/ul>\n<h4>Multi-robot synchronisation:<\/h4>\n<ul>\n<li>ROS2 clock and time synchronisation &#8211; ROS time versus wall time, use_sim_time, clock topics, NTP and PTP for hardware synchronisation, time-stamping best practices<\/li>\n<li>Resilience in networked robotic systems &#8211; failure mode analysis, network partitioning handling, reconnection and state recovery strategies<\/li>\n<li>System integration and verification &#8211; integration testing frameworks, simulation-based testing (Gazebo\/Ignition), hardware-in-the-loop testing<\/li>\n<\/ul>\n<h4>Codebase management:<\/h4>\n<ul>\n<li>Monorepo versus multi-repo strategies &#8211; trade-offs, workspace structuring with colcon, dependency management<\/li>\n<li>Version control workflows &#8211; branching strategies for robot software, managing hardware-specific configurations, tagging releases tied to robot firmware<\/li>\n<li>Configuration management &#8211; separating robot parameters from code, environment-specific configs, over-the-air (OTA) update patterns and management<br \/>\nDocumentation and traceability &#8211; documenting interfaces and message types, change logs, linking software versions to system verification records<\/li>\n<\/ul>\n\n","protected":false},"excerpt":{"rendered":"<p>CDE3310 Systems Approach to Multi-Robot Coordination and Control This\u00a0course explores advanced robotics through a system-of-systems lens, where multiple autonomous robots collaborate to solve more complex missions using robotics middleware frameworks. Students will go beyond single-robot control to design, programme, and evaluate multi-robot systems that demonstrate coordination, resilience, and emergent behaviours. By bridging theoretical concepts and [&hellip;]<\/p>\n","protected":false},"author":171,"featured_media":0,"parent":3233,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-20308","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/cde.nus.edu.sg\/edic\/wp-json\/wp\/v2\/pages\/20308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cde.nus.edu.sg\/edic\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cde.nus.edu.sg\/edic\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cde.nus.edu.sg\/edic\/wp-json\/wp\/v2\/users\/171"}],"replies":[{"embeddable":true,"href":"https:\/\/cde.nus.edu.sg\/edic\/wp-json\/wp\/v2\/comments?post=20308"}],"version-history":[{"count":2,"href":"https:\/\/cde.nus.edu.sg\/edic\/wp-json\/wp\/v2\/pages\/20308\/revisions"}],"predecessor-version":[{"id":20310,"href":"https:\/\/cde.nus.edu.sg\/edic\/wp-json\/wp\/v2\/pages\/20308\/revisions\/20310"}],"up":[{"embeddable":true,"href":"https:\/\/cde.nus.edu.sg\/edic\/wp-json\/wp\/v2\/pages\/3233"}],"wp:attachment":[{"href":"https:\/\/cde.nus.edu.sg\/edic\/wp-json\/wp\/v2\/media?parent=20308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}