SLAM-5 Bot part 2: The Control Algorithm

After assembling the hardware for my SLAM (Simultaneous Localization and Mapping) robot, I set about to write the code which controls the drive motors, senses obstacles, and records the robot’s path. Lego’s NXT kit comes with a rather basic visual programming language called NXT-G. This program, which constructs programs by creating essentially flow charts, is almost counterintuitive to anyone with command line programing experience. I decided instead to use the third-party programming language called Not eXactly C (NXC) and its associated IDE, Bricx Command Center.
Continue reading “SLAM-5 Bot part 2: The Control Algorithm”

More Shoes and Light Tent

I painted another pair of shoes, this time for my friend, Jaime Walker. I call them “walkers”. Rather lame, I know. I started with Vans KVD’s, courtesy of RenĂ¡ at Abbadabba’s. I used the same brand paint as previous shoes and added purple tulips with green stems. I then outlined the flowers with a fine-tip permanent marker. I began by using a “very fine” tip, however the paint dried out the marker tip. I then switched to a fatter “fine” tip marker and with enough finesse, I was still able to draw very thin lines.

I decided not to dye them because I have had problems with other shoe-dying projects lately. When dying bright colors such as red and navy blue, both the canvas and the rubber changed color. Also, as I learned the hard way, it is impossible to bleach black canvas Vans white. I tried to make white shoes with black soles by starting with the black/black Vans slip ons. The fabric disintegrates very quickly and begins to rip after coming into direct contact with bleach.

Anyways, I learned a lot during this project about delicacy and patience. Its not easy to fix a mistake on white canvas. Slight smudges of purple are obvious in one of pictures below.

Continue reading “More Shoes and Light Tent”

Performance Testing NXT’s Ultrasonic Range Finder

I have plans to utilize the Lego NXT system for several upcoming robotics projects. The success of these projects depends on the capabilities of the kit’s ultrasonic (US) range finder. I created a test rig with the US sensor and NXT brick and conducted several experiments in order to characterize the sensor.


Test rig: wood block, measuring tape, protractor, US sensor, NXT brick (from left to right).
Continue reading “Performance Testing NXT’s Ultrasonic Range Finder”

SLAM-5 Bot part 1: The Hardware

I recently purchased Lego’s new NXT hobbyist robotics kit. After familiarizing myself with the basic layout of the command module, available hardware and sensors, and third-party programing languages by building several single-task robots, I decided to use the NXT as a forum for my studies in SLAM robotics. As I have previously quoted, Dr. John Leonard of MIT says,

The problem of SLAM is stated as follows: starting from an initial position, a mobile robot travels through a sequence of positions and obtains a set of sensor measurements at each position. The goal is for the mobile robot to process the sensor data to produce an estimate of its position while concurrently building a map of the environment.

My goal and new perspective on the problem is to design a system which is as simple as possible. I immediately realize that much of the complication in SLAM systems lays in the timeliness with which the system processes information in real time. I know that some compromise between speed and simplicity had to be established, and in pursuing the most simple system, I am willing to sacrifice a lot in speed. So I have created what I am calling the “slam five robot”. The real acronym is S.S.S.S.S.L.A.M. which stands for “super-simple, super-slow, simultaneous localization and mapping robot”.

The system consists of three components: the physical hardware of the robot, the control algorithm which guides the hardware and sensors, and the post processing algorithm which interprets the sensor data. I begin here by describing the hardware and sensor setup.


Front view of the SLAM-5 bot, showing ultrasonic range finder and wiring for the drive motors.

Continue reading “SLAM-5 Bot part 1: The Hardware”

Wankel Rotary Engine CAD conversion

3/7/2017 UPDATE: A commenter made some nice updates to both the translation and the geometry of the project. Be sure to read Martin’s comments below.

1/2/2014 UPDATE: After some interest from other folks in this project, I’m sharing all of my final Solidworks files. I’ve talked with the original sponsor and he has agreed to release them. You can download a zip file here. The files are organized by part. All of the final drawings and parts are annotated with “_finished” in the filename.  Some of the original scans are also included.

3/31/2013 UPDATE: A kind reader has found the original drawings in a model airplane magazine from 1964. I’ve included the PDF below in the Resources section. The blue prints are on pages 17-18. It is interesting to note that the model was submitted as an entry to a contest to generate an epitrochoidal engine (an epicycloid is a type of epitrochoid). However, as I show below, the chamber isn’t an epicycloid.

I have been contracted to convert the SW92 Wankel rotary engine from its original 1950’s paper format (in German) to electronic format (in English). I am utilizing Solidworks 2005 to reconstruct 13 of the 36 pieces included in the blueprints. Furthermore, I am relying on a tremendous effort from MacField Young to perform most of the German to English translations. The sole purposes of this blog entry are to communicate with my contractor, to document my progress, and relay certain concerns. In other words, this entry is a work in progress finished!.

complete-exploded-view_small.png
Continue reading “Wankel Rotary Engine CAD conversion”