‘Controlling the MekaMon Robot’
Wes Freeman is one of the latest additions to the MekaMon team, and he didn’t exactly land the job in a conventional way.
A month ago, MekaMon user Benerator brought this YouTube video to our attention via our Community Forum. We were astounded to find out that the user behind the video had created a series of Bluetooth mods after managing to break into the unit’s BLE system! Utilising a Raspberry Pi and a custom camera, Wes was able to film MekaMon following a coloured ball around his home and even control the robot with a joystick. Initially for a University project, Wes demonstrated how MekaMon “can be enhanced and made into a fully autonomous robot” (see his Hackaday article).
We couldn’t let something like this slide. So, we got in touch with Wes. After seeing some of his work, and a beta MekaMon laden with gear, the deal was done, and Wes had a new job. We caught up with him to find out more about the project that landed him at Reach, and bring you some hints and tips for experimenting with robotics yourself!
So tell us a bit about the project that brought you here!
The project was an investigation into how the MekaMon might be expanded with extra sensors and computing power to become a fully autonomous robot. Normally, it’s human-controlled with a smartphone app. I figured out how to mimic the Bluetooth control codes sent from that app so that I could take control with any Bluetooth-capable device – like a Raspberry Pi, the very popular tiny computer used in education and by hardware hackers etc.
Once I could control the Mekamon from a program on the Pi mounted on top of the robot, the next thing was to add sensors. I was going to use ultrasound range-finders but decided to be more ambitious and use a camera. I eventually upgraded this to a fancy custom-made stereo camera with a stabilising gimbal. I could then get it to detect a coloured object like a red ball in front of it using simple machine vision techniques, and then direct the camera gimbal to follow the ball, and direct the legs to walk towards or away from the ball. This is basic autonomous behaviour – the robot now responds to its environment with no direct control from a human!
After that I tried to get it to do proper ‘SLAM’. This is mapping and navigating around its environment without any help – a very complex problem and I only had limited success with that, but I had showed the basic premise worked.
Where did you get the idea for your project?
It was my final project for my Robotics degree at UWE. My supervisor Dr. Matt Studley has strong links with Reach Robotics as the founders are ex-students of his. He came up with the general idea of modifying a MekaMon for possible use as an educational tool. He invited me to take it on and I decided I’d like to focus on giving the MekaMon new senses.
Why did you choose MekaMon to do the project with?
I had a bunch of other potential ideas for my final project but when working with the MekaMon was suggested I forgot the others and jumped at the chance! I already knew a bit about what a cool company Reach Robotics was, and had tried to get them to take me on as an intern the year before, even though they weren’t asking for interns! The videos of the MekaMon in action, and what little technical info I could ferret out, looked amazing.
Do you have any advice for someone looking to experiment with MekaMon or robotics in general?
For robotics in general, the basic thing is attitude – a passion for nerdy stuff and an odd sort of confidence I suppose. What I mean is, Robotics is a very broad field and I think there will always be stuff you don’t know, there will always be surprises and setbacks, and you have to get used to being slightly out of your depth all the time! You have to have faith that you will always be able to figure out the answer to the next unexpected problem, not be intimidated, and push through it. You have to be ok with experimenting and failing a lot, burning your fingers, blowing components up or buying the wrong ones in the first place. Get your hands dirty, get an Arduino, breadboard, motors, multimeter etc. and muck about.
The UWE degree gave me a good foundation but I think you could do it self-taught if you commit to both brushing up on the unglamorous basics of maths, electronics etc. and also reading up on stuff that’s beyond your current level – machine learning, computer vision, SLAM, kinematics etc.
For working on the Mekamon in particular – I wrote a Hackaday article on what I did. It’s very messy but it should be useful.
In the longer term, Reach has plans to make Mekamon more accessible to modders and hackers, and that’s one thing I work on, but I don’t have any details just yet.