Mecanumbot Hector SLAM

I finally set some time aside to build some maps of my apartment using a SLAM algorithm! I ended up using the hector_slam package in ROS to do the job. There was a lot of trial and error involved in tuning my odometry and the hector_slam algorithm, but it eventually worked just fine. Check out the screenshots below! Links Mecanumbot ROS package

Mecanumbot Ball Following

I have updated my Mecanumbot code to the latest and greatest ROS distribution – Hydro. During the upgrade, I wrote a companion app to publish velocity commands based of of the output of my ball tracker. The result is that the Mecanumbot can follow a red ball around the room! I wrote the ball tracking code itself back in college. The segmentation approach is pretty naive, but I only spent…

Mecanumbot Integrated Lights Test

I’ve finally achieved end-to-end control of the Mecanumbot’s LEDs! The latest hurdle which prevented me from writing the LED code was a RAM limitation on the microcontroller side. The solution involved swapping over from an Arduino Duemilanove with 1KB of RAM to a Seeeduino Mega with 8KB of RAM. The increased RAM also opens the door for me to code up the Mecanumbot low-level telemetry including items like bus voltage and bus current.…

Mecanumbot Power Board

After a second revision, I have completed the power board for the Mecanumbot. This board has the following features: automatically selects between two batteries and the wall chooses the wall if available, otherwise drains the batteries one at a time provides power voltage and current measuring via ATmega168 running the Arduino bootloader communicates to the primary vehicle Arduino over I2C provides regulated 5V power for the robot LEDs Downloads Eagle…

Quick Manual Control Demo

This weekend I added a wireless Xbox controller to the list of devices I can use to control the Mecanumbot. Before now I’ve been able to use a standard RC transmitter, a computer keyboard, and a Wiimote. I again used the ROS framework to integrate the controller. Built into ROS is a joystick node to interface with the wireless USB dongle and I had already built a node to listen…

Wifi Bandwidth Experiment

I had been noticing pretty poor Wifi performance with my Mecanumbot, especially when I’m trying to visualize data with rviz remotely. After a couple weeks of dealing slow performance and tethering the robot with an Ethernet cord, I finally decided to kick my Netgear WNR2000 v2 router to the curb and look for something new. I ended up with the Linksys E4200 after a quick search for “best Wifi router.”…

Neato XV-11 Laser USB Interface Board

One of the sensors I intend on integrating into my Mecanumbot is the 2D laser range finder from the Neato XV-11 robot. To make the connection between the laser and the computer cleaner, I decided to make a PCB. (My first PCB! Woohoo!) I followed the schematic from the Neato Laser guide on the ROS wiki. I later found out that there was one error in the schematic – the…

Mecanumbot Gets a New Body

After a few sleepless nights, I have finally milled out the pieces for my Mecanum-wheeled robot body. The outer and bottom body pieces are made out of 1/8″ G10/FR4 Garolite. The top two layers are made from transparent polycarbonite. A thin layer of transparent silicon will be placed on the top-most layer of polycarbonite to provide some friction when transporting objects on the top. All of the pieces are held…

Mecanumbot Motor Testing

This passed week I have been playing with the new motors and motor drivers I got for the Mecanumbot. I used some MicroRAX pieces and the supplied motor brackets to piece everything today. I controlled the MD25 motor controllers over I2C using an Arduino which was getting commands from an RC transmitter. Unfortunately the naive method of reading in the RC receiver signals of only three channels takes up nearly…

Starting New Project: The Mecanumbot

Alright. I have decided that I do not have the time or desire to figure out the controls problems that the Ball Bot presents. I really am interested in the navigation and localization challenges that I can work on with a functioning robotic platform. So what I need is a platform that is easy and that I know will work. Enter in the statically stable, four wheeled robot that I…