SPV1 – Preparing the Stock Chassis

I really like the idea of two or more of these cars chasing each other around a track, so that’s now the first objective. And I think this also suggests a name for these vehicles – Serial Pursuit Vehicles, or SPV1 and SPV2. I’ll need to decide on the colour at some stage, too ;-).

I have not raced RC cars since I was 15, so I’m no expert on modern RC cars. In those days everything was simpler; we used to charge our NiMH cells from a car battery through a single, fat 1 Ohm resistor. And speed controllers got so hot they would do much more than fry an egg if you got near them (that’s linear regulators for you). But I am quite impressed with the Quanum Vandal kit from what I can see so far. It certainly looks sturdy enough for my planned use, which will be on smooth-ish concrete and has a decent amount of adjustment for the steering and suspension.

For the build, there are unused holes in the chassis tray that can be used to mount a platform for more components. It also looks as though the driveshaft could be used for an optical odometer when the time comes.

The battery area can also be used for other components as we will mount the batteries themselves elsewhere.

On that note, we will be adding a certain amount of weight, so it seems sensible to adjust the mounting points on the suspension to the stiffest position, front and back.

One potential issue is the orientation of the ESC, which has the signal wiring coming out immediately adjacent to the drive shaft. This might create a wear-risk over time, so all I have done is reverse the ESC. The motor wires now come out by the drive shaft, but they exit vertically and so there is no chance of them interfering.

Lastly I am removing the small, bash plate at the front. This takes up space that will be required for other components and is not needed anyway as the car will not be crashing ;-). It also gives two more screw holes at the front that might prove useful for mounting more stuff.

Apart from that, we are done with the basic chassis adjustments. In the next post we will add extra capacity for components with some flat plates.

Line Following Model Car

This is something I have wanted to do for some while for fun. Note that it has nothing to do with my work at Manna, so don’t make any assumptions about the technologies being used! I also don’t get much spare time, so updates are likely to be irregular.

Objectives
This is experimenting for fun, so may go in a number of different directions. However, I do want to see how close I can get to a car that accurately stays over a line, steered using Ackerman steering rather than a differential drive. This sounds simple but most examples I see seem to be too ‘approximate’, too slow or not very smooth.

Software / Hardware Approach
I’ll predominantly be using Python and open source libraries such as OpenCV and ROS. Probably ROS2, in fact. Where we need speed, we’ll use C++.

The usual suspects will be present, such a Raspberry Pi and Jetson. I’m also interested in the OpenMV unit, stereo and depth vision, RFID, mesh networking and others as things progress. For example, maybe having two cars maintaining distancing on the same circuit.

Chassis Selection
There are a vast number of notable car projects based on different chassis. and with different levels of aspiration from simple line following through to full autonomy. Many examples of the great Donkey Car project are based on the Exceed 1/16 scale truck. At the other end of the spectrum is the MIT RaceCar project and derivations of that such as Racecar/j. This also has some great support material available from others, such as Jim at JetsonHacks.

I want something a little larger than 1/16th, so have picked a 1/110 scale car from Hobbyking. The Quanum Vandal 1/10 buggy is particularly affordable and comes as a kit or assembled with ESC and motor. I picked the latter for simplicity. With a 2S battery pack, it should hopefully not be too fast for my purposes.

From the images on the website, it looks as though it should be simple to build on a couple of platforms for components – there are some unused holes in the baseplate. I’ll probably also want to set up odometry of some sort, and there look to be some options for that, too, maybe from the driveshaft, wheels or electronically.



In the next post, I’ll go over prepping the kit before making the first modifications.

Personal Values

I think it’s important for anyone to be clear about what drives them, both for themselves and for others. I’ll sometimes ask about these if I am interviewing prospective employees. However, we spend too little time in education or beyond in helping individuals articulate their own values.

In my opinion, Core Values are crucial, especially to guide us when there are tough decisions to be made or in resolving difficult situations with others (I’m also thinking of the use of social media here). No one is perfect, and we cannot always live up to our values completely, but they should serve to guide our behaviours and aspirations.

They are also as important corporately as they are for individuals, but that’s a whole other topic.

Here are my Core Values – can you articulate yours?

World Class
If something is worth doing, do it at the level of the best. For me, this is also about harnessing technology for beneficial outcomes on a global scale.

Integrity
This is about honesty, reliability and doing what has been promised.

Innovation
I love taking problems and looking at new ways to solve them. This is also about self-renewal and continually challenging oneself to think differently and learn from others.

Pragmatism
I like to apply what I do to in the ‘real world’. This means I am focused on applying technique, hardware, software and theory for a practical, realisable outcome – and normally with a strong sense of urgency.

Care
There are lots of dimensions to this! I care for those I work with, for my clients and business partners. I care about the quality of the work that I do and the products I create. I care deeply about social and global issues.

Pixhawk 2 with Jetson TX2 Build

What’s this About

I’m rebuilding The Groundhog to a more professional level, with the level of accuracy required for the AI and computer vision work planned.  It’s also getting an upgrade to the avionics to make it more resilient.  This post details the rebuild and also has links to the 3D printed parts used.

Continue reading “Pixhawk 2 with Jetson TX2 Build”

2. Coding UAVs with ROS. Subscribing to FCU data.

What’s this about?

In this post we will build a ROS node on a companion computer to subscribe to data being published by the flight control unit (FCU).  This will allow us to use the many data streams available from the flight controller as inputs to our system and then be able to make decisions over how the UAV should be controlled.

Continue reading “2. Coding UAVs with ROS. Subscribing to FCU data.”

Autonomous UAV Coding Summer School – sneak peak

22 students from France will be spending the next two weeks building and coding autonomous drones as part of the UWE Bristol Summer School.  Along with Miles Isted s’Jacob, I am delighted to be leading on this activity and have produced a short sneak peek video of the challenge to share.

So six team drones racing autonomously on a single track? What’s not to like?

Code is based on that used for MAAXX Europe, so Python Dronekit, with ArduCopter on Pixhawk.  However, the final code will be posted on my github at the end of the Summer School.

Robot Operating System for Flight Monitoring and Control – Getting Started.

If you have heard of Robot Operating System and want to use it to monitor and control UAV flight, this post will get you started…

More specifically, this post details how to set up a Pixhawk flight controller running PX4 firmware, with a Raspberry Pi3 companion computer running Robot Operating System.  This combination will give flexible control over the flight control unit and the ability to integrate a very wide range of features such as depth-sensing cameras and machine learning networks.

Continue reading “Robot Operating System for Flight Monitoring and Control – Getting Started.”