F1/10 for Dummies

Charlotte Dorn
6 min readOct 16, 2019

--

Hi, I’m a sophomore undergraduate from UNC-Chapel Hill with a very limited background in computer science. If I can build an F1/10 car, so can you! Hence, F1/10 for Dummies

Learning how to build an F1/10 car will learn about the following things:

  1. ROS Robotics (packages, nodes, sensors, topics, etc)
  2. VESC Controllers and Brushless motors
  3. Laser Rangefinder and IMU Sensors
  4. SLAM (Simultaneous Localization and Mapping)
  5. Flashing a Jetson Computer with Ubuntu
  6. SSHing

I would be impressed if you were able to put together one of these cars without inevitably learning a great deal about each of these seven topics. If you already know about these topics, great! You’ll be ahead of the game.

To get started read through all of the provided sources from F1/10. They have put together a thorough build and programming manual that will help you build a solid foundation.

Having just finishing putting together my second car, here are the tips and tricks I have learned through the process of building that the organizer might not think to include.

1. ROS

In simple terms, ROS is an “operating system” that allows the user to build a system that connects sensors and motors with programs that can implement SLAM or local control algorithms. ROS uses nodes to represent publishers (which transmit data like odometry or laser scans) and subscribers (which use data from a publisher). This information is broadcast over topics as messages and go to and from multiple nodes. ROS Packages are another essential part of the system, some of which are built-in and others of which are designed by members of the F1/10 community. Of course, there are many complexities to the way ROS works, but overall it provided a way to organize the control system of the robot.

The control nodes of ROS can be written in various programming languages; our team chose to use Python 2.0.

There are some great resources and tutorials that walk you through how to use ROS, specifically for F1/10. If you’re looking for a basic understanding of ROS, I personally recommend the Programming Robots with ROS book by O’Reilly.

2. VESC — an open-source Electronic Speed Controller (ESC)

What does a VESC do? Basically, it allows motor commands from the computer to control a brushless motor. Below is a short gif that demonstrates the was that changing three phases allows for the control of the speed of a motor. Instead of just positive and negative leads like those in the inferior and poorly controlled brushed motor, a VESC has three leads which control each of three phases.

** Note: The current VESC listed in the BOM (Enertion FOCBox) is no longer available. We instead bought this VESC from a hobbyist website, but since it has all the same specs, it should be able to be configured in the same way. We used this file to configure the VESC with Vesc Tool 1.06.

**Note 2: In the process of configuring a VESC (especially the first time you try) be prepared to have it make lots of noises. Be sure that there’s nothing in the way of it spinning and that you’re able to safely and quickly turn it off if need be.

2b. BATTERY and POWERBOARD

The battery we used on our car and is listed in the F1/10 BOM, is from Traxxas (listed here) and designed to be used with the actual Traxxas RC Car.

* Note: using a different voltage battery like this one with the same current, but a different voltage may appear to work, but can lead to issues with data being transmitted through the USB hub and will result in errors relating to incorrect voltage when booting the Jetson.

The Power Board has to be ORDERED. I repeat, this board has to either be ordered from UPenn or purchased through a 3rd party PCB board manufacturer. The components that will needed to be soldered on are listed in the build instructions.

According to the website, the purpose of this board is “to provide a stable voltage source for the car and its peripherals since the battery voltage drops as the battery runs out”.

3. LIDAR and IMU

LIDAR stands for Light Detection and Ranging. It uses lasers to measure exact distances at a set number of locations in a range. For example, the Hokuyo Range Finder which our team used had a scanning range of up to 10 meters at 1050 intervals within 270 degrees. In ROS, this information is published as a 1050 element-long array of decimal values in meters. This data was published at 40 Hz!

4. SLAM

The LaserScan from LIDAR can be used with RViz to create a 2D map of the surroundings and with the help of odometry, can be used to create a path for the robot to follow within a map. There are a few different ROS Packages that provide the ability to build maps with a laser scan. HectorSlam is most common, especially since it can localize with LIDAR alone. Gmapping and other packages do the san function but may require odometry.

** Note: Our team is currently looking into using the vesc_to_odom in order to avoid problems like the one shown above. If you look closely, you can see that when the robot started its second lap, it was at a different location than it was when it began. Measuring distance traveled (vesc_to_odom) will most likely solve this problem.

5. JETSON TX2

We will use this little computer (seen above attached to a Development kit) to control our car. We’ll be attaching an Orbitty Carrier which will provide us with ports and inputs that we can connect USB, Ethernet, power, and MicroUSB to. In order to do so, you must “flash” the computer with Ubuntu, which will be the operating system used to run Ros.

I’m not gonna lie. The process of flashing the Jetson has been troublesome for us. The link to download the Nvidia JetPack SDK Manager is here. You’ll need to run this program on a Linux computer and connect to the Jetson through a USB to micro USB cable.

** Note: Make sure to check which version of ROS will be compatible with the version of Ubuntu you are loading. At the time of writing this, the most up-to-date version was Ubuntu 18.04 from JetPack 4.2.2. This was compatible with the Melodic distro of ROS. If you going to follow a tutorial provided by F1/10 or by another team, problems might arise if you are using a different version of ROS because 1 of 100 issues regarding compatibility might arise.

6. SSHing

Once you have put together your car and finished all the hardware and software components, you may want to run your car. To do so, you’ll have to SSH into the car using the username and IP address. This will allow you to work out of the command line of the car over the wifi. You can also use VNC Viewer if you prefer a graphical interface.

--

--