{"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-09-26T18:51:58","modified_gmt":"2026-09-26T10:51:58","slug":"cde3310","status":"publish","type":"page","link":"https:\/\/cde.nus.edu.sg\/edic\/idp\/courses\/cde3310\/","title":{"rendered":"CDE3310 Systems Approach to Multi-Robot Coordination and Control"},"content":{"rendered":"\n<h2>\n\t\t\tCDE3310 Systems Approach to Multi-Robot Coordination and Control\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\t<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\t<h3>Workload hours<\/h3>\n<p>The course will be divided into two halves. During the first half of the course, students will be introduced to the content of the course through lectures classes, assignments, and hands-on lab exercises. During the second half of the course, students will focus on implementing what they have learned in a group project which includes periodic design reviews, practice sessions, and a final mission run and evaluation.<\/p>\n<p>This course will be taught through a studio-style, experiential learning format that mirrors how modern robotics teams operate in research and industry. Students learn not only how to programme robots, but how to think and collaborate as systems engineers designing multi-robot systems that are fully integrated with one another.<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Activity<\/strong><\/td>\n<td><strong>Number of hours per week<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Lecture and lab classes<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>Projects\/assignments<\/td>\n<td>4<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\t<h3>Key assessment components<\/h3>\n<table>\n<tbody>\n<tr>\n<td><strong>Component<\/strong><\/td>\n<td><strong>Weightage (%)<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Class participation<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>Lab and take-home assignments<\/td>\n<td>40<\/td>\n<\/tr>\n<tr>\n<td>Group project (mission and report)<\/td>\n<td>45<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Note: there is no final exam for this course.<\/p>\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":20695,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"rs_blank_template":"","rs_page_bg_color":"","slide_template_v7":"","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":"","ast-disable-related-posts":"","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-opacity":"","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-opacity":"","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-opacity":"","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-opacity":"","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-opacity":"","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-opacity":"","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":4,"href":"https:\/\/cde.nus.edu.sg\/edic\/wp-json\/wp\/v2\/pages\/20308\/revisions"}],"predecessor-version":[{"id":20942,"href":"https:\/\/cde.nus.edu.sg\/edic\/wp-json\/wp\/v2\/pages\/20308\/revisions\/20942"}],"up":[{"embeddable":true,"href":"https:\/\/cde.nus.edu.sg\/edic\/wp-json\/wp\/v2\/pages\/20695"}],"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}]}}