Older blog entries for davee (starting at number 19)

26 Jul 2004 (updated 26 Jul 2004 at 13:14 UTC) »

Two things new to report:

  1. I created some firmware for the SG5 Robotic Arm from Crustcrawler. This is, by the way, a pretty nice arm even though it comes with no software at all. Since it uses a BS2P for it's brains, I wrote a command processor for it to allow anyone to control the arm through simple commands via the serial port of their computer using nothing more than hyperterminal. It's simple really, you just send commands to the indifidual joints with the angle that you want the joint to travel to. The first letter of the joint is used as a prefix so to send the elbow joint to 90 degrees, you just send a 'E90', same for the wrist, gripper, base and shoulder. In addition, since the serial controller that the arm uses is a 16 channel controller and the arm only uses 6 of the channels, you can also send a raw command to any of the other 10 channels by sending something like this: 0123 would send channel 0 to position 123. the 123 is NOT an angle but is the actual value sent to the controller which happens to be approximatly 123 thousandths of the way between the low limit and the high limit (250 being the usual low and 1250 being the usual high). You can also set the ramp speed and calibrate the arm so there is a reasonable expecation that when you command a joint to a given angle, it will be reasonably close.
  2. I've also created a program, written in Visual Basic to sequence the arm so that the arm can do something interesting. It adds a delay command to allow a joint to move before the next command is sent. It also allows comments (VB style) to be placed into the sequenced data. It is still primitive but it allows you to create sequences of commands that can be repeated and that can be saved for future runs. I'm planing on adding some sensor to the arm, so this program will eventually be able to sense three things, IR range, CMUCAM and flexiforce pressure sensors, will allow us to detect objects, measure the distance to the object and control grip pressure.
I've also decided to add the ability of the program to act as a webserver, so that other programs can access the arm through the interface without having to write their own code to do it.

At some point, I hope to be able to say 'Find the beer can, pick it up and drop it at 111,123,123 coordinates and have the arm use the amera to find the can, send appropriate commands to the arm to position it and pick it up with just enough grip to lift the can. This will take some doing as the integration of the sensors into the arm controller will be interesting to say the least. Not to mention that my math skills will have to take another beating, but hey, that's the lot of a robot engineer.

I'm hoping the folks at Crustcrawler will add my software to their arm, but so far it doesn't look like it's going to happen. Oh well, I need the software anyway, so I have no problem writing it. Anyone interested can email me at davee@wehali.com for details.

It's been awhile since I posted here, but things have been very busy. On the robot side, I've added a hewxcrawler to my stable and last week added another robotic arm. This one is the SG5 Robotic Arm from Crustcrawler. It did come with any software to control the arm so I wrote a controller for the stamp that came with it. Now I can control the arm with very simple commands from any serial device. I'm hoping the fols at crustcrawler will add it to their arm but I don't think it's going to happen. Oh well. I am now in the process of adding a CMUcam, IR rangefinder and some flexiforce sensors to the gripper to make the gripper and arm more intelligent.

Strabo Pathfinder continues to grow in complexity as more and more robots adapt Strabo. If you want to give your robot the ability to move about freely, you owe it to yourself to check Strabo out.

We are trying to find robot conferences to go to so we can show it off but we're not having a lot of success at it.

I've started another robot project. This one is a PC based full sized robot that will be fully functional with the ability to go indoors and out. The mobile platform is a tread based design using treads off a garden machine. Will be using the wheelchaire motors off the battlebot, vantec ESC, shafte encoders, Ultrasonic, IR and Video for collision detection and object recognition. It will also have a propane powered gas generator to keep the batteries charged. DGPS, Digital compass and Strabo for navigation. Since the PC already has seech recognition and Text to Speech, that will be integrated along with a redundant wireless connection to the Strabo server. All of this will be built into the base. I hope to be able to have this running by mid March and by then, I should have an idea about what to put on the base. I am thinking about several possiblilties, but it certainly will have arms and grippers to grab things.

Strabo continues to get excellent reviews. The program now supports 2 way communications, maps up to 500 feet on a side, map import and export, resize and a few other goodies.

Strabo Pathfinder seems to be a big hit. I never realized how feature poor the personal robot industry is. Still, it's getting better.

So far, only the people who have ER1s know about Strabo Pathfinder though the rest of the world is finding out.

Strabo Pathfinder is probably the only robot independant software on the planet.

Anyway, release 1 is in the can and is getting rave reviews. Release 2 is in the works, though only on the drawing board at this time. I think my attempt to create a robotics company is starting to pay off.

Here is an update on what I'm up too.

I have developed a board to control and process data from 8 ultrasonic or infrared sensors. It plugs into your serial port and continuously sends range information for all eight sensors, not unlike GPS.

I've also created a path finding server for the robot I bought back in November. You create a map of a building floor and the robot connects to the server and the server gives the robot a list of instructions to follow to get to the destination. This is all being done by a laptop running XP. The robot uses a laptop for processing, it's an ER-1 from evolution.com. All the software runs on the laptop, but the server can be a central server if you like.

The Pathfinder project is now in alpha test. The server is working and and fully functional. HTTP commands that are returned to the robot are 1 SETPOSITION?x,y, LOADMAP?mapname,rm1 or rm2, and GETPATH?waypoint and SEARCHMODE?0 or 1.

Loadmap loads a new map into the server. The map can be created and edited in the server screen.

Setposition allows the robot to change its start position SearchMode determines the search method. Currently Dijkstra and A* are implemented and the default is Dijkstra. These two algorithms are common in video games and work very well for pathfinding.

GetPath returns a 3 element list. The first element is the current position, the second is a comma delimited list of compass directions to move (assume 12 inches) and the third is the ending position.

The robot will process the list of directions in order. Only four directions are currently implemented, N, S, E, W. If the robot knows what direction it starts out at, via compass or by being placed in the right direction (N) all the robot has to do is turn in the appropriate direction and keep track of what direction it is going (current list item).

So, by designing a map of your facility and putting waypoints on the map, one could say 'getpath?xraylab' and the robot will ask the server for the path to the the xray lab and then proceed directly to it. avoiding obstacles in its way, but following the path given and presumably accurate.

With the software on it now, I can speak to the robot and tell it to go to a particular waypoint and do something interesting.

Once again, I've been neglecting this forum.

My current project is a pathfinding system for my ER-1 robot. Given a series of waypoints, the robot can find its way around the house without bumping into anything thanks to my sensortrak board by simply following the waypoints created by the pathfinder software. Pathfinder lets you create a map of a building or set of rooms and uses Dijkstra and A* pathfinding algorithms to find the best route between two points. This route is returned in the form of a list of turns and distances for the robot to execute. SONAR provides collision avoidance and provides real time map updates as new obstacles are discovered.

Pathfinder can be used by any PC language that supports COM objects. This includes C++, Visual Basic, PERL, Python, Delphi and more.

I'm also working on a line following module for the sensortrak board and consequentialy a charging nest.

Since I got my hands on the ER-1, I haven't put any time into the Kanati project. It's not dead, but will probably sit on the back burner until I get my hands on a real tiny single board PC.

OK, the sensortrak is moving on nicely and now I've added a new robot to the nest.

It's an ER-1 from evolution and I just assembled it today and am going through the learning curve with it's basic stuff.

In case you don't know, the ER-1 is an Xbeams (xbeams.com) framed robot that uses your laptop for its brains. It connects to the USB ports of your laptop and has image recognition built into it and a primitive obstacle avoidance system using a second camera.

It comes with a controller board for two stepper motors that are each about 8 cubic inches(2x2x2) in size to move it about and a 5AH battery, webcam and charger. The 5AH battery is supposed to be able to move the robot for a few hours, but the real limitation is the laptops power.

My normal power usage is about 2 hours. On the robot, it is 15-20 minutes. This is due mainly to the 1 amp drain from the cameras, which get their power off the laptop. This has prompted some to add a 7AH battery to the machine. There are some positive reports from doing this and no doubt I will be adding one too. In fact, I will probably add an inverter so the laptop will run longer too. Haven't seen any numbers for the power loss through these inverters. I'm sure it's hefty, but it's simple and the batteries can be hot swapped out when they are drained allowing the robot to run continuously. Several of us are collaborating on a power nest and I'm thinking it might be nice to develop a robotic battery changer so when the battery level gets low, it heads for the nest, gets a new battery and goes about its business.

21 Oct 2002 (updated 21 Oct 2002 at 02:02 UTC) »

Well, work on the SensorTrak (ex Serial Sonar Decoder) module has kept me away from playing for awhile. Sales are starting to take off. There are a lot of things to deal with when starting a new company. It's become a 16 hour a day job. Customers are being very helpful, which makes things a lot easier.

Thanks to all of you that have bought our new boards. Without you, it wouldn't be possible.

The SensorTrak has been updated to support not only the SRF04, and the sharp GP2d02 IR range finder and also supports switches. I'm working on an SRF08 version but that will not come out till next month at least. If any of you know a good marketing type, let me know.

We have also become a distributor for Devantech SRF04 and SRF08 ultrasonic sensors and the Sharp GP2D02 IR range finders as well.

There are some robot cars coming to the Baltimore area that will be using three of my boards in each one. A minor success to say the least! These cars will be ferrying people around the Inner Harbor. At least that's the way I heard it.

Look for the SensorTrak coprocessor module and sensors at sensortrak.com

10 older entries...

Share this page