COMP 3027 Robotic Programming

Credit Points 10

Legacy Code 301205

Coordinator Vernon Asuncion Opens in new window

Description Robot Operating System (ROS) is a software integration system that is now widely used for robotics software deployment. The philosophy behind ROS is to modularise software that can work for other robots through small changes in the code. This subject focuses on the main concepts of software development under ROS by looking at the file hierarchical systems (e.g. Packages, Stacks, Messages, Services and others), module communication types through Nodes, Topics, Services, Messages, Bags, Master and how they integrate to operate robot sensors and actuators. This subject also looks at actual AI software examples using C++/Python and Answer Set Programming (ASP).

School Computer, Data & Math Sciences

Discipline Programming

Student Contribution Band HECS Band 2 10cp

Check your fees via the Fees page.

Level Undergraduate Level 3 subject

Pre-requisite(s) COMP 2014 Object Oriented Programming and COMP 2019 Systems Programming 1

OR

COMP 2014 Object Oriented Programming and COMP 3015 Operating Systems Programming

OR

MECH 4003 Mobile Robotics

Assumed Knowledge

Basic knowledge of Linux, C++/Python and Object Oriented Programming (OOP).

Learning Outcomes

On successful completion of this subject, students should be able to:
  1. Describe the software systems for robotics.
  2. Illustrate how drivers written for various robot parts are viewed as nodes and services under the ROS system framework.
  3. Explain how different �eprocesses�f made for other applications can be incorporated onto their own software projects under ROS through the use of standard/predefined topics.
  4. Describe how various state-of-the-art AI software can be embedded into a ROS system by having them as a backend for certain ROS processing tasks (nodes).
  5. Develop software for interacting with sensor and controlling actuators using ROS tools.
  6. Develop software using current state-of-the-art AI systems as backend for processes as ROS Nodes.

Subject Content

1. Overview and background of the Robot Operating System (ROS)
2. ROS file structures: Packages, Stacks, Messages, Services
3. ROS system components: Nodes, Topics, Services, Messages, Bags, Master and Parameter Server
4. System development under ROS: Navigation of ROS filesystem, creating workspaces (ROS workspace format or catkin), creating ROS packages, building ROS packages, creating nodes, creating msg and srv files, debugging and ROS computation graph visualisations
5. System deployment under ROS: calling ROS nodes, communication between nodes through messages and topics, using services and messages through the srv and msg files, using the Parameter Server
6. Basics of C++/Python building/runtime procedures for integration under ROS through the ROS libraries
7. Using Sensors and Actuators under ROS
8. Examples through 3D modelling and Simulation under ROS via TurtleSim, modelling robots through URDF and Xacro file formats
9. Answer Set Programming (ASP): syntax and semantics, minimal models, default negation and stable models
10. Planning domain using ASP
11. Using ASP solver systems GRINGO, CLASP and iCLINGO, and piping results (answer sets) to ROS nodes using the messages and topics object formats
12. Generating robot movement sequences from answer set outputs of ASP solvers

Assessment

The following table summarises the standard assessment tasks for this subject. Please note this is a guide only. Assessment tasks are regularly updated, where there is a difference your Learning Guide takes precedence.

Type Length Percent Threshold Individual/Group Task
Practical 10 Hours 20 Y Individual
Intra-session Exam 2 hours 40 Y Individual
Report 10 page report (2000 words approx.) 40 N Individual

Teaching Periods

Autumn (2024)

Penrith (Kingswood)

On-site

Subject Contact Vernon Asuncion Opens in new window

View timetable Opens in new window