The Project

The S.A.R.T. is designed as a disposable, rapidly manufactured and cheap remote inspection vehicle that can be deployed in any situation where it is difficult or dangerous to send in human personnel. From search and rescue to disaster response to inspection of tunnels and pipelines, S.A.R.T. robots are equipped with arrays of sensors and cameras to report the situation to personnel on the scene.

Open Source

The S.A.R.T. project is completely open source. All our code and design files, as well as tutorials and useful information is available on our website, Github and Thingiverse. You can check out the downloads page here. By keeping the project open, we hope to faciliate the development of rapidly manufactured first response robots worldwide, contributing to the global goal of saving lives.

S.A.R.T Interface

The S.A.R.T robot is controlled via a dashboard called the S.A.R.T Interface. Features include multiple video streams, providing a 360° view, live sensor data including thermal imagery, direct access to the robot through SSH console, and much more. Users never have to access the S.A.R.T hardware directly – everything can be done within the interface. See the demo here!

Complete Documentation

We provide extensive documentation on all our design and construction processes when it comes to coding, modelling, building, and coming up with new ideas. You could build your own S.A.R.T simply using the information provided in our daily blog.

Also available is the comprehensive 2020 Q1 S.A.R.T. TDM.

The Future

We have many plans to expand the versatility of the S.A.R.T robot. We are creating a “base model” that other people can develop on top of thanks to our Open Source philosophy.

Awards & Recognition

We often enter our robots in competitions such as RoboCup. We have received awards and recognition for a number of achievements and advances.

  • Tied 1st Place – Rapidly Manufactured Rescue League, RoboCup 2016, Leipzig, Germany
  • 1st Place – Rapidly Manufactured Rescue League, RoboCup 2017, Nagoya, Japan
  • Open Source Award – Rapidly Manufactured Rescue League, RoboCup 2017, Nagoya, Japan
  • Open Source and Innovation Award – Rapidly Manufactured Rescue League, RoboCup 2018, Montréal, Canada

Specifications

S.A.R.T Mark IV

Drive System2x Dynamixel AX-18A Servo
Computational UnitNVIDIA Jetson Nano
Central ProcessorQuad-core ARM A57 @ 1.43 GHz
Onboard StoragemicroSD
RAM4 GB 64-bit LPDDR4
Camera System3x ELP 5MP HD USB Camera
1x Pimoroni MLX90640 Thermal Camera
Mapping SystemLDS-01 LIDAR Laser Distance Sensor
Additional SensorsAir Quality (VOC and eCO2), Temperature
Human CommunicationTwo-way Stereo Audio
Manipulator60 cm Arm & Claw, 4 Degrees of Freedom
Control SystemS.A.R.T. Interface (Keyboard, Controller)

S.A.R.T Mark III

Drive System4x Dynamixel AX-18A Servos
Computational UnitUDOO x86 Ultra
Central ProcessorIntel Pentium N3710 @ 2.56GHz x4
Onboard Storage32GB Integrated eMMC
RAM8GB
Camera System4x ELP 5MP USB Camera, 1x Thermal Camera
Mapping System4x Adafruit VL53L0X Time-Of-Flight Sensor
Additional SensorsAir Quality (VOC and eCO2), Temperature
Human CommunicationTwo-way Audio
Control SystemS.A.R.T. Interface

S.A.R.T Mark II

Drive System4x Dynamixel AX-18A Servos
Computational UnitIntel NUC NUC5CPYH
Central ProcessorIntel Celeron N3050 @ 2.16GHz x2
Onboard Storage120GB SAMSUNG SSD
RAM4GB
Camera SystemoCam 5MP USB 3.0 Camera
Mapping System4x SHARP GP2Y0A21YK0F Infared Sensor
Additional SensorsTemperature, Accelerometer, Compass
Human CommunicationText to Speech, Speech to Text
Control SystemS.A.R.T. Interface

S.A.R.T Mark I

Drive System4x Dynamixel AX-12A Servos
Computational UnitRaspberry Pi 3
Onboard Storage32GB SD
RAM1GB
Camera SystemRaspberry Pi Camera Board
Control SystemPlayStation Controller

Our Team

S.A.R.T Alumni

Partners

S.A.R.T Development Blog

S.A.R.T. Team Description Materials for Q1 2020

Authors: Connor Kneebone, Alexander Cavalli, Jack Williams, Matthew Williams, Graham Stock, Charlotte Drury, Anthony Gambale, Michael Cavalli, Nathaniel Kneebone, Martin Hosking, Alexander Thorning Published: 20th of March, 2020 Abstract The Semi-Autonomous Rescue Team (herein known as the S.A.R.T.) is a...
New wheel hub in Fusion 360

A ‘Wheely’ Good Day Pt. IV

The wheels we made for the Mark III robot did pretty well. The new polyurethane tires were excellent, they had plenty of grip, were basically indestructible and they maintained their grip over many hours of use. The hubs worked pretty...

Unwrapping Sensor Wrappers – Part 2: Graphs

The SIGHTS software suite is designed to be very extensible when it comes to adding new sensors to your robot. We achieve this by using special Python classes called sensor wrappers to collect sensor data, and JavaScript classes called Graphs...

Unwrapping Sensor Wrappers – Part 1: Sensors

The SIGHTS software suite is designed to be very extensible when it comes to adding new sensors to your robot. We achieve this by using special Python classes called sensor wrappers to collect sensor data, and JavaScript classes called Graphs...

A Blog Post About Two-Way Audio

A brief history of two-way audio In previous years, we have used a few methods to do two-way audio. Initially we had a speech to text and back again system to transmit data. Needless to say, this was quite limiting...

Make It Yours: Configuring SIGHTS Part 2 (Advanced Configuration)

In “Make It Yours: Configuring SIGHTS Part 1” I showed you how to configure a basic SIGHTS-based robot. In this, the second part, I’ll go over the more complex configuration of Interface and Sensors. The Simple Bits Ok, I lied....

Make It Yours: Configuring SIGHTS Part 1 (Basic Configuration)

The recently released SIGHTS (SART Integrated GUI and Host Teleoperation Service) software suite is designed to work with virtually any RMRC robot setup. However, with all that potential for customisation comes a lot of configuration. It can be daunting. Fortunately,...

SIGHTS Set On The Future

Here at S.A.R.T. we are proud to announce the release… of SIGHTS. No, it’s not a network of spy satellites. We aggressively forced the name for that sweet secret service-style acronym. It stands for “SART Integrated GUI and Host Teleoperation...

SART Hazmat Guide

Hi everyone, Anthony here to deliver a quick message. I decided to document everything I learned during last year’s RoboCup in the form of a tutorial, describing step by step how to recreate, from scratch, the hazmat detection functions of...

The Cops Get Involved

On the 16th of October 2019, the Australian Federal Police Bomb Response unit was called to the premises of SFX. Fortunately, it wasn’t because there was a threat of a LiPo fire (this time), but they were there to let...

Hazmat Part 3: Choosing the Class

Hey there, it’s Anthony, ready to bring an end to this epic trilogy of identifying hazmat signs. In this part we will cover how we solved the second half of the generic object detection problem (as detailed in the first...

RoboCup Rescue – Rapidly Manufactured Robot Challenge – Symposium

RMRC participants and organisers were invited to speak at the International Convention Centre Sydney for the 23rd annual RoboCup International Symposium. Dr Raymond Sheh (Founder, Committee), Archer Losely (Committee), Connor Kneebone (Participant), Graham Stock (Committee, Mentor), Joseph Lieber (Participant), Sam...

Hazmat Part 2: Isolating the Interest

Hi, it’s Anthony again. I’m here to make an addition to the first part of this series, which really belongs in that blog post, but it was getting too long, so I decided to make it into its own. If...

Hazmat Part 1: Detecting the Danger

Hi, this is Anthony. I’ve not written a blog post about the vision stuff yet because I’ve been too busy actually working on it. The competition is done now though, and so I have free time to talk about what...

Using an Intel 9260 Wireless Card with the Nvidia Jetson Nano

Unfortunately the Nvidia Jetson doesn’t support the Intel 9260 cards out of the box. Nvidia’s JetPack OS ships with the Linux kernel 4.9 while support for these cards was added in the newer 4.14. However, there’s a workaround, but we...

S.A.R.T. Team Description Materials for Q2 2019

Authors: Connor Kneebone, Alexander Cavalli, Graham Stock, Charlotte Drury, Anthony Gambale, Michael Cavalli, Nathaniel Kneebone, Martin Hosking Published: 19th of June, 2019 License: This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Open in New Tab This...

Using the UDOO x86’s Arduino with Arduino-CLI

In a previous blog post, I wrote about using the official Arduino IDE with the on-board Arduino 101 on the UDOO x86 Ultra. Since our robot is headless, i.e. doesn’t run a display server, we wanted the IDE to run...

Mmmmmm. Yummy PyPot.

Hello, It’s me Barney again! This time I am writing about motors. The S.A.R.T team ran into an issue with the motors constantly overloading and not going to the desired speeds. After a little troubleshooting, the issue was found. The...

Control Unit & Access Point

Hello! It’s Barney again. I am here to give a few updates regarding S.A.R.T’s progress, considering we haven’t had an update for cough two months cough. We decided to remove the Xirrus XR-600 from the control unit and we are...

S.A.R.T. Team Description Materials for Q1 2019

Authors: Connor Kneebone, Matthew Williams, Jack Williams, Alexander Cavalli, Aaron Maggs, Ryan Ewyk, Riley Cockerill, Michael Cavalli, Charlotte Drury, Graham Stock, Ryan Millard-Cartwright Published: 17th of March, 2019 Abstract The Semi-Autonomous Rescue Team (herein known as the S.A.R.T.) is a...

SLAM

At the end of 2018 we were gifted a TurtleBot3 Burger by our new sponsor, Tribotix. A TurtleBot is a low cost robot that we built over a day during the holiday workshop. The TurtleBot has a Raspberry Pi 3...

Next Gen!

Say hello to SFX’s new SART team! This year’s team consists of three year 11’s, Barney Bruckner, Martin Hosking, Anthony Gambale and two year 12’s, Michael Cavalli, and myself, Charlotte Drury. Barney’s role is in Autonomy. Barney’s been charging ahead...

Plans for Autonomy and ROS

Hello! I am Barney, I’ll be taking over autonomy for the next two years for S.A.R.T. This post isn’t actually about the progress of autonomy, but rather my plans for it. The main goal for the Mk 4, is to...

Partner Helps S.A.R.T. Shake off the Shackles of Slow Sites

When we graduated St Francis Xavier College in 2017, we didn’t think we’d be back here writing a blog so soon. The great wheel that is the S.A.R.T. keeps turning, churning out iteratively better robots every few months. But one...

Stopping Servos

An issue we’ve commonly faced while operating our robot is that the servos will keep spinning if the script crashes or if we exit the script via CTRL+C. I’ve always had the stop_servos.py script for this exact purpose but it...

Autonomy In Motion

Now that we have a rather nice PID controller, it’s time to test it! Enjoy responsibly Using just a PID controller alone, we can implement rudimentary autonomy. It’s only basic, but it’s a start and it’s the first time our...

Centering with a PID Controller

On our way to autonomy, one of the things we need to have is the ability for the robot to center itself left and right in the course as it moves forward. First, I’ll explain what a PID controller is...

Catching Shiny Hubs

In light of the recent drop test debacle, we’ve decided on a new infill pattern for the wheel hub. The infill that we used for the drop test was a small square pattern that stays unchanged throughout the print. Evidently,...

Drop Test!

The S.A.R.T. performed a drop test! We were pretty sure our robot would survive, but we’d never done a proper test before. We figured, now that we have our robot together again, why not give it a shot? Watch the...

Semi-Autonomous At Last!

Here at S.A.R.T., we are immeasurably proud to anounce our robot is, at long last, semi-autonomous. You can watch the robot in action and in glorious 4K below:   Obviously this is extremely basic (literally all the logic in about...

Servo Servicing II

As I talked about in a previous post, half of our servos weren’t working. Of course, I was going to try to fix them before we spend anymore money on new ones, so that’s what I did today. Some of...

Custom USB Board

One of our other major issues in Canada were the USB ports. Due to the small size of our robot, we needed to have right angle USB port extensions. These would plug into the robot and allow us to plug...

Servo Servicing

A lot of things went wrong in Canada, sure.But perhaps the worse of our issues were the servos. The other day, we were planning on running a short demo during the regional RoboCup competition. We all got to school on...

RoboCup Canada, Day 8: Hip Hip Hooray!

The competition was over. Well, truthfully, we were a bit bummed out about it. We knew we had a good robot and if it had worked properly, we think would have done really well. We had not made the finals,...

RoboCup Canada, Day 7: Good Going, Guys n’ Gals

Today we headed to the venue confident that we could scrape in a few points by the end of the competition. That night before, we had spent our time re-crimping and rewiring every motor cable as we were relatively certain...

RoboCup Canada, Day 6: Functionality Finally?

Today we got to the venue and immediately got to work. Today we had the bad luck of the last day except somehow worse. Unlike Monday, the runs started earlier in the morning and went until around lunch. Then there...

RoboCup Canada, Day 5: Errors and Exasperation

Today was our first day of competition. Everything we had worked on for the past six to nine months was leading up to today. We got up early and went down for breakfast, enjoying the local delicacy of pancakes and...

RoboCup Canada, Day 4: Daunting Dilemmas

Today was the first day we spent at the venue. It was the practice day for all teams where we could all put our robots in the maze and test their functionality. Seeing as we didn’t actually have a functioning...

RoboCup Canada, Day 3: Captivating City Curiosities

We spent today working on rewiring and testing sensors. We made improvements to the scripts on the robot too. Kyle worked on the motion tracking, he had some luck, we now had a pretty cool but basic tracking script. I...

RoboCup Canada, Day 2: Bountiful Buying Bonanza

Today was one of the only days where we could sleep in, so we woke up at around 9:00 am and headed for breakfast, thinking of what we were doing for the day. We had unpacked all our stuff and...

RoboCup Canada, Day 1: Ample Amount of Aviation

Our first day out of school and our first day of travel to Canada. Our trip started at the Canberra airport at 4:45am where all our team and the other robotics team met up for our 6:10am flight to Melbourne....

Serious Simultaneous Sensor Struggles

A mere week before our trip to Canada we had a major malfunction of our robot’s components. Our previously wired sensors had an issue where the wires connected to the contacts on the sensor would break, rendering the sensor useless...

Our Robot Can Do A Full Pipe

The time is drawing near that the crew heads off to Canada! Since my last update on the wheels, we’ve made some slight changes to the original design and added an entirely new wheel design. For the original design the...

Jammin’ With Wheels

It has the consistency of jam and smells like jam and tastes like jam but is not jam, then what is it? You guessed it, polyurethane resin. As a side note: if it gets to the point where you need...

Full Steam Ahead

It’s been a while since our last progress update, we’ve been rather busy with assessment at school. The worst of the assessment period is over now though, so we can focus on S.A.R.T! Now that our robot is almost built...

Perplexing PCB Preparation

We need to plug in a rather large number of sensors to the UDOO x86 Ultra’s built-in Arduino. During the testing and programming phase, a breadboard worked just fine, but as we move things into the new robot chassis, which...

Precarious Printing Pains, Part 2: the Prequel

This post is going to go into more detail about the different changes that had to be made to the body and how we made these changes and overcame the difficulties around them. I will be going through each iteration...

Precarious Printing Pains

Our body for our robot, as mentioned in previous blog posts is going to be commercially printed, but before we can commercially print them we must know that our body is perfect so that we haven’t wasted a week waiting for a...

Here be New Wheels

Time to start working on the wheels. With the help of Mr Stock and Nick from Year 11 I’ve successfully modeled the hub and tyre components of the wheel. Using Inventor, I started out with a basic sketch of the...

Camera Compression Complications Continuation

Cameras are going to be a huge part of our robot (Mainly in terms of importance, but it just so happens that they are some of the largest components in the robot, save for the UDOO). So making sure we...

The S.A.R.T. at Robocup 2017

While there are other blog posts that go into detail about each day at Robocup 2017 (see here), this blog is a more in-depth look back at our experiences during and after the competition.   The S.A.R.T. at Robocup 2017,...

Arduino and UDOO Communication

Having the Arduino onboard the UDOO is a godsend. It removes the need for a separate (and bulky) Arduino to act as an intermediary. The Arduino shows up as a standard serial device in Linux. In fact, it can be...

A ‘Wheely’ Good Day Pt. III

The previous team used a product called PolyShield, which is a tough, flexible dip that protects, insulates and seals almost any surface. Color codes all items for safety, and reduces corrosion, noise and shock. Cushions grip surface and lasts for...

Less Cool 3D Modeling: 2D Modeling.

I have made a rough technical drawing of how all of our sensors are going to fit into the front of the robot. We are currently fitting the microphone, IR sensor and camera in the very front of the robot....

Updated TDM for 2018

We have just submitted our updated Team Description Materials for 2018. In addition to last year’s TDM, it covers a number of improvements and additions that we will be working on leading up to Canada. Authors: Matthew Williams, Jack Williams,...

What’s in the mythical orange folder?

So hey, first post for me. Heya! Figured I’d write something about the random ideas and designs I’ve collected since joining S.A.R.T., so here we go! First up is the wheel designs. Here we have a draft containing wheel dimensions...

Camera Compression Complications

Mr. Crane picked up some cheap Logitech webcams the other day, so we could try testing multiple camera streams. He also got a USB 2.0 hub, so we could have them all on one USB port. The software that we...

Chassis is French For Frame Apparently

Last year the old team’s chassis had a square hole instead of servo mounts as well as screws which meant that the wheels could be flipped but it also meant that the chassis was a lot less strong and stable, which led to...

New Cameras

We have currently been researching a new and greatly improved way of knowing the position of the robot on the field using cameras. We had the idea of putting fisheye cameras on all side of the robot so that unlike the...

Networking, more like net-not-working

I have been working on setting up the UDOO x86 Ultra while everyone else has been working on the chassis. Setting up the software on the UDOO came with its fair share of problems. The robot runs a number of...

The Men with the Plen

Today the team spent time in discussion with our new mentors, discussing the current stage of the robot. A number of decisions were made, regarding the focus of our resources. We have decided to outsource our major 3D printing operations...

S.A.R.T NG+

We’re the new S.A.R.T team, and we’re in charge now. We are Connor, Ben, Erin, and Kyle. Now that that’s out of the way; we began working on some new modifications we could do to the project. New Control Panel...

S.A.R.T. Team Description Materials

Authors: Matthew Williams, Jack Williams, Aaron Maggs, Ryan Ewyk, Riley Cockerill Published: 1st of September, 2017 Abstract The Semi-Autonomous Rescue Team is a small group of Robotics and Information Technology enthusiasts formed in late 2015 with the intent of creating a Robot capable of competing in the...

RoboCup: A Retrospective (Day Six – Symposium)

Day 6 was another – unintended – early morning, giving us time to make our way to the Aichi University Nagoya Campus for the 21st annual RoboCup International Symposium. We used the opportunity to finish our presentation and speech, just...

RoboCup: A Retrospective (Day Five – Finals)

Finals: Finally. Not final practice finals. Final finals – the finale. Finally. We rose at 7 AM for breakfast on the final day, after only 4 hours of sleep. Over cups of tea and coffee, we glared at Aaron and...

RoboCup: A Retrospective (Day Four – Final Practice)

The 29th of July was an opportunity for the S.A.R.T and the four other qualifying teams – Blue Storm, Tupac, Kings Legacy and Magistry – to run practice trials through the final maze configuration before finals. Above: The RMRL team assemble...

RoboCup: A Retrospective (Day Three – Preliminaries and Parties)

It was another early morning for the S.A.R.T on Friday the 28th of July. The preliminary or qualifying runs were due to start at 1 PM, however, we wanted to arrive at the venue early to continue practice and work...

RoboCup: A Retrospective (Day Two – Practice)

The 27th of July was the first day of RoboCup 2017. In our division, the Rapidly Manufactured Robot League, the first day was designated a practice day – a time where teams could test various versions of their robots on...

RoboCup: A Retrospective (Day One – Setup)

It’s been exactly one month since RoboCup 2017 began, so now is as good a time as any to share the experiences we had. We arrived at the Takeda Teva Ocean Arena early on Wednesday the 26th at 8 AM....

Let’s Break It Down! “controlscript.php” Part 4

You’ve read all about Ryan’s “movement.py” script, so now it’s time to learn about “controlscript.php” – the script that collects client keystrokes and sends the movements to the WebSocket server. The script can be accessed at our GitHub repository here....

Sensor Party: The Hardware

We’ve recently been talking about the sensors we want to implement on the robot. We were interested in some sort of mapping or distance detection, so we first considered sonar sensors. However, as these are far too bulky for our...

Thingiverse

I uploaded all the robot’s design files and some renders I made of the mocked up internals in Sketchup. https://www.thingiverse.com/thing:2430783   In other news, the filament we ordered didn’t arrive (again), so we used some spare red ultimaker filament to...

Let’s Break It Down! “movement.py” part 3

Welcome to part 3 of Let’s break it down! ‘movement.py’. In the last post we went over two massive functions: ‘bckFwdRun(key, s)’ and ‘leftRightRun(key, s)’. In this post, we’re going to look at the next functions.  These two functions play...

Let’s Break It Down! “movement.py” part 2

Today we’re back into breaking down the movement.py script. The last post walked through many of the functions needed to run the robot. Now we are going to break down some functions that create the movement. Without further ado, allons y!...

Let’s Break It Down! “movement.py” part 1

In this post, I’m going to break down the “movement1v.py” script which, if you didn’t read the last post I wrote, can be accessed on our GitHub repository here. So, let’s break it down! The modules imported at the top...

Github 10/07/17

Today, I uploaded all of the SARTs code to our GitHub repository which you can find here. We have released our code under the GNU General Public License v3.0 so all of our code is ready and available to download, try...

Motion in Motion

With the robot (or at least the internal components) now portable, we could run a number more interesting real-world tests. We know from Aaron’s two previous tests that we can run the robot for around 1.25 hours with everything hooked...

Socket Stuff

Today we enter a new era of robotic communication! We’ve got the control panel and the robot talking directly with the robot using WebSockets. To do this, Ryan set up a WebSocket server on the robot using Python. The server...

Belt Stuff

Today I used one of the prototype chassis to measure the length of each belt.  I attached the servos and wheels, and then used string to find the exact length the belts needed to be. I cut the string and...

NinjaFlex Belt Force Tests

The casual reader may recall that we recently printed some test belts using the new NinjaFlex (See Aaron’s blog post here). This was our first time printing with the new filament, so we wanted to run some tests to see...

Snapshot and Movie

The S.A.R.T Interface has two new highly requested features! Snapshots The snapshots feature allows the user to take a snapshot of the camera’s view at any point. The screenshot is then instantly downloaded to the connected client thanks to a...

Robot Redesigns

After exams had concluded, I started working on modifying the current robot design to accommodate the concepts that Jack and Aaron came up with a few weeks ago. The modifications were: Shrink both sides of the robot chassis which reduced...

NinjaFlex Flexes its Muscles

Today was the day where I got my hands on to the Ninja Flex that we bought a few weeks ago. As soon as I got it I put it on the Ultimaker and printed the test file Matthew had...