Let's Make Robots!

Max713 NiCad/NiMH smart charger.

I made a battery charger with some free samples of the maxim max713 chip.

Maxim home page.

Chip details.

Datasheet.

Search for samples.

Universal recharge, navigation and mapping system

WARNING! this blog is just my thoughts on the subject and may be prone to rambling, monologs and contradictions.

I want to develop a universal navigation system for my robots. By universal I mean that the same code should work on almost any robot with only minor modification to allow for I/O pins used and number / type of sensors. This code is being written for the Arduino but I will document the code well enough that it can be easily adapted for other processors.

 

Theory Stage:

Homemade wheel encoder

Basically I just printed out one of these (laser printer recommended):

encoder_40_s.gif

...And attached it to a wheel (double sided tape recommended).

Then I hooked up one of these (a 2$ IR sensor: QRB1134):

qrb.jpg

...And attached it to the motor pointing towards the wheel.

Robot Localization - So a robot really knows where it is

Robot Localization

Making a Robot know where it is


I started looking into localization for use with sandbot but there have been many other things that conspired to prevent me progressing with it. I put it here as a placeholder and will come back to this when I have more time to think about it..

SSS - Servo Suspension System

This is my first experiment with the MakerBot. I am totally thrilled with this machine!!!

SSS (servo suspension system) is designed to support standard servo motors and act as a basic suspension. It is still a work in progress and has not been tested yet.

Will update results as soon as possible (still waiting to have my lab back).


I would like to know everyone's opinion on this  :)

IR navigation beacons

There have been several previous blogs and forums on LMR concerning different methods of robot navigation and room recognition. I have decided to make some IR beacons for experimenting with.

My theory is that if each room has at least 3 beacons spaced around it then the robot can not only triangulate it's position within the room but also determine what angle it is facing. Each beacon sends out a different identification code. This allows the robot to know which room it is in.

Arduino Wavefront Algorithm

First Up... If you want to find out what Wavefront Mapping is all about head over to the Society of Robots Tutorial. It has a great wtite up and its where I first learnt about it.

 

Basic's done, So lets talk about Map size limits.....

The Arduino 2560 & 1280 both have 8k of SRAM (where the map is stored)

I'm using an array of Int's, each Int is 2 Bytes, so max size would be the square root of 8k / 2.

8192 / 2 = 4096

Sqaure Root of 4096 = 64

Don't program your robot.. Teach it!

(Update: Some time after writing the below, I made this, that may interest people doing navigation with Picaxe)


 

How to make a robot do complicated tasks & "act alive".. With ease..

Here is one guys humble input - I am sure you all have your own ways of programming. Just take it for what it is; My personal thoughts, use what you can :)

 

What every robot builder needs to know about

It is probably safe to say that every member of LMR is interested in machines that interact with their environment.  Interacting with the environment means getting information from it to provide feedback to the machine.  In the  electronics and computer worlds, "information" means "signals."  And since most of our robots use digital signals, whether with discrete logic chips or some sort of computer, and our machines need to do some sort of processing on those signals, we all need to be familiar with Digital Signal Processing (DSP). One note before we go on.

Free Range Robots (IR Beacon) **UPDATED**

**Update 4.14.09***

OK, when you watch the video... 

First of all, it is like, 5 minutes -sorry. There is a point though promise, and that point starts at about 3:40 or so. Now, I can't stress enough, the code is wicked chunky as it was written in about 10 min. It is all "bang-bang" and not proportional at all. The final code should be about 10x faster, much more accurate with a lot less trial and error. For now, this is just proof of concept and indeed it has been proven. 

 

A Simple Way To Give a Bot Motivations, Decision Making, Better Autonomy

Recently, I got to thinking...there must be a better way to program autonomous behavior (than my previous attempts).

I thought about people, people have various motivations, why shouldn't bots?  When people get hungry, they eat.  When they get curious, they look around.  When sleepy, they sleep.  Surely bots have needs and priorities that should influence their behavior.

Homemade Laser Rangefinder

My laser range finder got a lot of interest so I thought I'd try to explain it in more detail.

Laser_rangefinder.jpg

It's not finished yet as it still needs to be mounted on it's stepper motor with a home position switch.

The sensor side has been tested on an oscilliscope. When I moved my hand in front of it, the pulse width varied to match.  Below is a diagram showing how the sensor works.

PRACTICAL (and SAFE) H-BRIDGE for MOTOR DRIVE

I have noticed several people using an H-bridge schematic (commonly circulated on the web) that will work, but if both inputs are high at the same time, can throw a short across the motor power supply.  As long as they never let that happen, these circuits will work, but I consider it unsafe. Since many people here have different levels of expertise in both hardware and software, it is better to use an arrangement that prevents accidentally shorting anything.

Swarm Robots - Brainstorming (Football robots)

This will be a note for my just started team project "Swarm Robots".

This project will take place in our hackerspace Shanghai "Xinchejian". it will be a team project where every member can join and contribute his/her skills, ideas etc.

In this blog I will ask questions and write down solutions, ideas, goals and everything else what is related to that project.

So far that's the initial idea:

TED the BiPed Core Code

 

After building my TED the BiPed (http://letsmakerobots.com/node/35632) and seeing K120189's BoB (http://letsmakerobots.com/node/35865) model take off with the 3D printer members along with a few questions in the ShoutBox about how to code a mini walker I figured I'd share my own version of a "delay-free" core code used on most of my bots. Maybe it will help someone get started at least and more likely someone will re-code it and share their better version. I use the same basic code for the rollers and the walkers but first the disclaimer: