Software Training Revamp + Purchases

Hey all, there are a few things I want to purchase and do in the coming months to improve the quality of our Software training and remote member support. This is a project I’ll take on over the winter break or in December/November if I’m able to get a hand on some of the required hardware beforehand while in Cali.

Open to feedback! There is a purchase summary at the bottom with justification, for those of us who are less Software involved .

Training

Big Idea - Easier Training

A big red flag with our software training right now is that we expect each prospective student to drop everything and install Ubuntu 20.04 onto their computer. This takes a lot of time if you haven’t done this before, and if you mess up, you can wipe your entire hard drive. It’s not worth it for a lot of students, and turns them away from our software team.

I’d like to have a few USBs and Raspberry Pis that we sign out to students who show interest in our training. They will be preflashed with Ubuntu 20.04 and ROS2 Galactic, so if you have a USB, you can just boot straight into the ROS2 world and complete your training. I’ll also likely set them up with a training-only GitHub account so they don’t have to deal with signing in and out of GitHub after/if they do complete the training.

The one risk with this is having students take the USB/Raspberry Pis for themselves, so we’ll probably use cheap USBs and save the Pis for people that get past the training or something like that.

Another big red flag with our software training right now is that it doesn’t teach any of the students how to do anything with an actual robot. It doesn’t introduce them to ros2_control, or the Gazebo simulator.

Training - Raspberry Pi 3B+s

I’d like to buy a couple Raspberry Pi 3B+ for those who have monitors at home for training. They will be flashed with Ubuntu 20.04 with ROS2 and all packages we need (ros2_control, etc.) preinstalled. These will be infinitely easier to setup (for the first time) than the USBs--I can get most done in an hour or two probably, and they also have the advantage, as small IoT devices, that they can be used for testing when the Jetson isn’t available for small tasks that they support (e.g: controlling an ODrive over USB).

update: these are so ridiculously out of stock it’s insane. Libre Computer should work instead. Same deal, as long as it runs Ubuntu 20.04 and is a single-board-computer (SBC) we’re good.

Item

Quantity

Price

 

Item

Quantity

Price

 

Raspberry Pi Model 3B+

2

$35.00

 

Raspberry Pi 3 Case - Black/Grey

2

$11.95/each

 

Raspberry Pi 3 - Power Cable

2

$12.95/each

 

Libre Single Board Computer

2

40 USD/each

A complete ROS2 setup for remote members, as well as those who don’t want to install Linux onto their computers. With the Raspberry Pi/Libre, we’ll be able to test hardware compatibility as well (e.g: connecting an ODrive via USB). There are pre-made Ubuntu 20.04 images for the Libre computers that make this incredibly easy to install onto an SD card and call it a day.

 

Training - USBs

Same deal with USBs. They will be flashed with Ubuntu 20.04. I might not be able to pre-install ROS2 or Git in the case of these ones, but ROS is ridiculously easy to install once you’re on Ubuntu 20.04 so we can just link documentation for that, and Git.

Link to USB chosen

Link to install instructions

Item

Quantity

Price

Item

Quantity

Price

Samsung 128GB USB 31. Flash Drive BAR Plus Champagne Silver up to 300 MB/s

5

$35.00/each

 

Training and Navigation Learning - Create 3 Robot

Our software training is a little problematic in that we make our students rewrite things from an example, but also tell them that we shouldn’t be copying from it. It’s also boring (who cares about a damn turtle moving around a screen?) and doesn’t give students any actual robotics experience with any of the simulators or control libraries we interact with. Doesn’t teach them Gazebo. Doesn’t teach them any ros2_control. I’m aware of scope creep, but I think we can remake our training to make it a lot better, and I’m down to tackle that.

Another issue we have is that we cannot test anything without a functioning robot. We can’t write Nav2 code or even teach someone nav2 because we don’t have a robot to do so with (simulators work, sort of), or a good URDF…

I want to buy a Create3 Educational Robot, and RPLidar to go with it, for our team to keep in the bay. The RPLidar won’t be used for the training--that’s too far. If the team won’t buy one I’ll probably end up buying one for myself anyways because these things are sick: Create 3 Robot

Current issues with training:

  • No large motivational payoff after completion (turtle moving around a screen--this is not a robot)

  • Doesn’t show students the actual software we work with. Believe it or not, I haven’t written a single node, publisher, subscriber, or action or service on robotics from scratch since joining… Gazebo, launch files, URDF, ros2_control have been more important for my role. I only started writing nodes/actions/services when I used ROS2 on side projects.

  • Cryptic/vague instructions (here’s the training solution--it’s your only reference for writing code because we use ROS2 composition which changes code structure drastically, but you’re also not supposed to look at it or copy code from it because we intentionally planted bugs in it)

  • A lack of documentation--we don’t link a lot of the docs the students need to write their nodes (e.g: launch file event handlers, ROS2 compositions)

  • It takes really long for most students. The barrier to entry to UWRT Software is a lot of previous code experience. It took me like two months and all of a winter break coming from a non-C++ background originally.

    • Making students do the ROS2 tutorials is fine. That takes a little while, but it teaches them ROS2 and C++.

    • Making them install Ubuntu from scratch, and having vague instructions is not.

  • Puts too much loads on the software leads --we don’t have the capacity to walk every member through training but have to due because its instructions are a bit unclear.

Why we should move to a Create3 robots for the training challenge:

  • Simulator is pre-made:

    • You get to learn what Gazebo is and how it works in the process. Booting Gazebo is an insane staying factor for new members. You see an actual robot ASAP.

    • Remote students can still complete the training because it’s made for a simulation, but if you want to deploy your code to the actual create3 robot, go off.

  • Actions/publishers/subscribers/publishers for moving the robot are pre-made--you just have to make a node that calls them, like 99% of ROS2 code

  • Create3 Robot uses ROS2 Galactic--just like us

Proposed New Software Training

Linux/Ubuntu setup:

  • Keep the current instructions for installing Ubuntu by either dual boot or by VM, but the first option listed should be to either:

    • Set up an AWS Ubuntu 20.04 instance using their free tier for completing the software training

    • Get one of the pre-installed Ubuntu 20.04 USBs from a lead

C++ Learning:

ROS2 Learning:

Pre-Challenge Instructions – Learning the Create3 robot:

  1. Install Gazebo

  2. Clone the Create3 simulator project

  3. Build, install the Create3 simulator project

  4. Boot the simulator from the command line.

  5. Run ros2 topic list, and rqt so that the students can visually see what actions they have available

Challenge:

  1. Write an action server that makes the Create3 robot go forward for ~5 seconds.

  2. Write a node to call that action server.

  3. Write a service that makes the Create3 robot sing for 5 seconds

  4. Write a launch file that starts Gazebo, starts the Create3 robot

Convert the current training solution into an example for students to learn how to write nodes from.

This part is important. Link my or someone else’s software training solution for the current training at the end of all of the training tutorials so that students have something to go off of. A lot of work went into our solutions, and into creating the challenge from the beginning, so let’s use it!

Remote Member Support

This one is a bit more of a no-brainer imo. I’d like to buy the following to better support our remote members.

We don’t need a separate computer, we have the big bulky one underneath the table in the bay. I plan to wipe that one and install Ubuntu 20.04 one on that for software.

 

Item

Quantity

Price

Justification

Item

Quantity

Price

Justification

Conference Camera

1

150 USD

We’re constantly trying to support both remote and in-person members, and remote members not being able to hear/see in-person members during meetings has become a serious problem. We’d like to buy a conference camera w/ microphone to put in our bay for these meetings, as well as for remote instruction--AKA when a remote member needs to show an in-person member how to do something (e.g: flash a board).

We already have our in-bay computer we can hook these up to.

Nucleo F446RE

2

~20 CAD

More Nucleos for remote firmware members, and for software members who need to test CAN integration.

 

 


Required Purchase Summary

It’s pretty much impossible to buy a Raspberry Pi right now, so I’ve decided to remove them entirely and focus on the flash drive setup. Once the flash drives are all good, we’ll re-evaluate whether need the Raspberry Pis/Libre Computers in the first place.

Easier Ubuntu | Making it easier to get onto an Ubuntu system:

Item

Quantity

Price

Justification

Item

Quantity

Price

Justification

Samsung 128GB USB 31. Flash Drive BAR Plus Champagne Silver up to 300 MB/s

5

$35.00/each

– actually these are on sale for $19.99 USD rn

A complete ROS2 setup for remote members, as well as those who don’t want to install Linux onto their computers. With the USBs, all you’ll have to do is plug this into your computer, restart it, press F12 and boot directly from it.

Total: 99.95 USD + tax + shipping (will order using my US Amazon Prime)

Navigation and Training | For the training, and for teaching software members the project without needing a completed robot or URDF:

Item

Quantity

Price

Justification

Item

Quantity

Price

Justification

Create 3 Educational Robot

1

$300.00 USD

The Create3 Educational robot is perfect for learning ROS2:

  • It has a pre-made URDF (3d simulator model) so you don’t have to spend hours making it yourself, like we do for our robot

  • It comes with simulator and navigation examples

  • It supports ROS2 right out of the box for simple commands, even if we don’t get the raspberry pi to go along with it.

Slamtec 2D RPLidar

1

$99.98 USD

LIDAR for getting students hands-on with ROS2 Navigation.

Raspberry Pi Model 3/3B+

1

$0 - These are impossible to get right now but I have one, and I think we also have one in the bay

This is required to add a compute module to the Create3 Robot. without this, all the Create3 will do is accept ROS2 messages; it can still move on command, but can’t use the LIDAR, or run any custom code.

USB C Hub with Ethernet

1

16.59 USD

You need one of these to hook up the Create 3 to Raspberry Pi Models 1-3.

Remote Member Support | For supporting remote members:

Item

Quantity

Price

Justification

Item

Quantity

Price

Justification

Conference Speakerphone

1

89.99 CAD

We’re constantly trying to support both remote and in-person members, and remote members not being able to hear/see in-person members during meetings has become a serious problem. We’d like to buy a conference speakerphone and camera to put in our bay for these meetings, as well as for remote instruction--AKA when a remote member needs to show an in-person member how to do something (e.g: flash a board).

We already have our in-bay computer we can hook this up to.

ZIQIAN 1080p USB Camera with Tripod

1

27.98 CAD

See above. This is a 1080p USB camera with a tripod.

Aceele USB Hub 3.0 Splitter with 4ft Extension Long Cable Cord

1

19.99 CAD - $3 amazon coupon = $16.99 CAD

USB hub + extension cable in one for the speakerphone and USB camera

Nucleo F446RE | canadian link

2

21.93 CAD

More Nucleos for remote firmware members, and for software members who need to test CAN integration.

Waiting on confirmation of current number of nucleos before purchase

Remote Member Support Total: 134.96 CAD + tax + any shipping (get someone with Amazon Prime to order)