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 2019 Q2 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 I

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

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 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 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)

Our Team

S.A.R.T Alumni

Partners

S.A.R.T Development Blog

Day 199 – 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...

Day 198 – 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...

Day 197 – 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...

Day 196 – 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...

Day 195 – 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...

Day 194 – 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...

Day 193 – 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...

Day 192 – 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...

Day 191 – 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...

Day 190 – 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...

Day 189 – 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...

Day 188 – 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...

Day 187 – 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...

Day 186 – 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...

Day 185 – 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...

Day 184 – 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...

Day 183 – 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...

Day 182 – 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...

Day 181 – 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,...

Day 180 – 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...

Day 179 – 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...

Day 178 – 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...

Day 177 – 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...

Day 176 – 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...

Day 175 – 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,...

Day 174 – 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...

Day 173 – 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...

Day 172 – 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...

Day 171 – 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...

Day 170 – 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...

Day 169 – 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...

Day 168 – 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....

Day 167 – 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...

Day 166 – 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...

Day 165 – 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...

Day 164 – 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...

Day 163 – 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...

Day 162 – 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...

Day 161 – 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...

Day 160 – 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...

Day 159 – 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,...

Day 158 – 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...

Day 157 – 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...

Day 156 – 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....

Day 155 – 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,...

Day 154 – 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...

Day 153 – 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...

Day 152 – 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...

Day 151 – 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...

Day 150 – 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...

Day 149 – 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...

Day 148 – 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...

Day 147 – 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...

Day 146 – 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...

Day 145 – 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...

Day 144 – 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...

Day 143 – 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...

Day 142 – 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...

Day 141 – 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....

Day 140 – 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....

Day 139 – 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...

Day 138 – 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...

Day 137 – 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...

Day 136 – 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!...

Day 135 – 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...

Day 134 – 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...

Day 133 – 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...

Day 132 – 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...

Day 131 – 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...

Day 130 – 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...

Day 129 – 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...

Day 128 – 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...

Day 127 – Ninja Flex 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...

Day 126 – Power Problems are in the Past

Last Thursday, Aaron, Ryan and I went to Jaycar to purchase some supplies, including heat shrink, switches, DC plugs, XT60 connectors and solder – all important parts in our new power delivery system! After some testing over the next couple...

Day 125 – More 3D Printer news!

While talking to Mr. Crane, he asked how we are going to do the belt on the wheels. I said we could buy a belt and cut it to size and connect the ends – but this is the S.A.R.T,...

Day 124 – Prototype Printing Plans

After our redesign brainwave, Aaron and I immediately set about modifying our current prototype. Once we have everything in the robot, we can decide just how much length to shave off. Our current estimate is at least 2cm. The first...

Day 123 – Robot Redesign Ruminations

Aaron and I had a long discussion about the robot design this morning, and we conceptualised a new orientation for the Intel NUC to allow room for the batteries and voltage regulator while still making the robot overall a bit...