New Book and Online Robot Simulator

In my experience, the most effective way to program a mobile robot is to use a behavior-based approach. Uncomplicated behavior-based methods enable
robots that are at once robust, sophisticated, and inexpensive. Thus it always bothers me that few amateurs, hobbyists, and educators seem to take full advantage of this powerful approach to robot programming.
So I wrote another book. McGraw-Hill has just published, ³Robot Programming A Practical Guide to Behavior-Based Robotics.² The new book seeks to present behavior-based robotics in a way that makes it accessible to a wide audience and shows how behavior-based techniques can be implemented on low-end microprocessors. In an attempt to make learning the skills as painless as possible the book is integrated with an online robot simulator created by my colleague, Dan Roth, of MIT. You can find the simulator and information about the book at: www.behaviorbasedprogramming.com.
Joe Jones
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Hi Joe, fantastic. I have long been a fan of your other book, Mobile Robots: Inspiration to Implementation, as it is about the only previous book that went into detail on subsumption/behavior-based programming techniques [not counting Arkin's, which is more academic in nature]. And I have suggested to several authors that a book with more practical examples of this type of programming was needed. Long overdue, say what.
- dan michaels www.oricomtech.com ==============================
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Joe,
Cool. I was trying to get MH to let me write one on that topic, but they said they had one in hand already. Now I know which one! I'll be there to get it. I got a great deal out of your last one, and some of the other Brooks papers (which always lacked some directly useful element sadly, but tantalized nonetheless.) I've been doing nothing but behavioral robotics since I read "Cambrian Intelligence" several years ago and have a nice toolbox of algorithms for state machines in my own 'bots.
Thanks for the heads up! DLC
: In my experience, the most effective way to program a mobile robot is to use : a behavior-based approach. Uncomplicated behavior-based methods enable : robots that are at once robust, sophisticated, and inexpensive. Thus it : always bothers me that few amateurs, hobbyists, and educators seem to take : full advantage of this powerful approach to robot programming.
: So I wrote another book. McGraw-Hill has just published, ?Robot Programming : A Practical Guide to Behavior-Based Robotics.? The new book seeks to : present behavior-based robotics in a way that makes it accessible to a wide : audience and shows how behavior-based techniques can be implemented on : low-end microprocessors. In an attempt to make learning the skills as : painless as possible the book is integrated with an online robot simulator : created by my colleague, Dan Roth, of MIT. You can find the simulator and : information about the book at: www.behaviorbasedprogramming.com.
: Joe Jones
--
============================================================================
* Dennis Clark snipped-for-privacy@frii.com www.techtoystoday.com *
  Click to see the full signature.
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Ha, it comes full circle. Dennis is the guy I was trying to get to write a practical book about subsumption and FSM techniques. Hardware is widely addressed now, but offerings on the software side of the personal robotics book market are definitely slim. Hmmm, next step .... "Practical Applications of Artificial Intelligence Techniques in Small Robots" ??? ... if that's not an oxymoron ;-).
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

It's hard to imagine at the state of the art today, any book software could be written which wasn't specific to someones hardware.
For instance, I ordered a book by Predko, "Programming Robot Controllers" hoping for a book of algorythms, but was very disappointed to find it to be very much a PIC book. Pretty hard to get even one step away from the hardware at this time.
--
Randy M. Dumse
www.newmicros.com
  Click to see the full signature.
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Randy M. Dumse wrote:

Yes. Unfortunately this is true. When I bought the book I was hoping for something more general. I think that this is the weakest book in the Robot DNA series.
Myke is good, but he seems to be very much PIC oriented. Don't get me wrong, I *like* PICs, but this should have been a more controller-neutral book. -- D. Jay Newman
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

This is true, but what I liked about the software presented in the original Jones et al Mobile Robots book was the design more than worry about low-level implementations. How do you actually "do" subsumption - which was the point.
It was written in C, which is very easy to read [not being so verbose as basic or pascal], and is easily translated into assembler or another language [like basic, which is of course very popular in the microcontroller world]. That's really how this sort of thing should be done, IMO. For generality, it could be done in pseudocode, but nawwww .... that's just another overly verbose language for freshmen in CS101. Much better to use C.
- dan michaels www.oricomtech.com ===========================
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
dan michaels wrote:

Did the first edition have more on subsumption? The second edition barely mentiones it, and the software shows basically how to do dispatch loops, which aren't the same thing.
When we were setting up the Robot DNA series, I had asked Myke to cover other popular processors. While the software examples would still be specific to certain hardware, the variations would allow for people to see how things were done under different architectures. But Myke is a PIC guy, and doesn't like AVRs. He also made a good point that adding examples for other parts like the OOPic and the Stamp would balloon the book. These books had to maintain a $25 pricepoint.
Still, I think a book could be written that could detail 80% or more of the core programming techniques for the half dozen popular processors -- and by extension, cover the others becauses examples would be in assembler, C, Basic, etc. For those who don't want or can't extrapolate the code there's plenty of co-processors now on the market to handle the toughest tasks.
-- Gordon Author: Constructing Robot Bases, Robot Builder's Sourcebook, Robot Builder's Bonanza
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Hello,
It would be nice is if the algorithms were written against a Hardware Abstraction Layer ("HAL") that would hide/abstract/modularize the hardware, leaving the algorithm fundamtentals unobscurred. If just two processors were well-defined behind the HAL layer, the infrastructure would be there with examples to guide others to implement the same for other processors.
There are reasons why there is no HAL layer for small processors...
-Jeff
Gordon McComb wrote:

Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Well, I think this is being done, but not in the traditional sense seen in the PC or large-form-factor embedded worlds. Microcontrollers were designed to be compact and do very specific jobs -- control the fuel injectors in a car or monitor and adjust the temperature in a digital thermostat. I don't see much impetus for MCU makers to offer software or SDKs for hardware drivers, especially as there are no standards in the hardware. Every OEM designs their hardware differently, and this is what drives the market and fuels progress.
There are, however, plenty of people doing "co-processors," which are like hardware drivers, and they provide a type of abstraction layer. They are independent MCUs with a simple serial interface. RoboBRiX is a good (and current) example. And a few MCU developers, like Kronos, offer ready-made code libraries that you include in your programs, and the libraries have much of the underlying interface code. For that matter, programming environments like Bascom AVR are composed of ASM segments that are effectively stitched together at compile time. Stuff like this makes quick work interfacing to LCDs and servos and such. You don't even have to know how the hardware works to use them.
-- Gordon Author: Constructing Robot Bases, Robot Builder's Sourcebook, Robot Builder's Bonanza
Jeffrey Graham wrote:

Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Hi Gordon, I have the 2nd edition too. There is 30-page chapter 9 which covers subsumption, BBR, and FSMs. Then chapter 10 shows some examples, and there are 9 more sample programs in appendix B. I thought this was a nice coverage showing how straightforward subsumption programming really is, plus it nicely rounded out the hardware aspects of the rest of the book. All in all, I liked this book because of its overall systems approach. =====================

I haven't seen JJ's new book as yet, but I imagine it doesn't cover specific uC implementations, so there would appear to be a place for such a book. Also, I don't know how much of more traditional AI techniques might be covered in JJ's book, and I imagine there might be room for such a book - if it could be written so as to be applicable to "small" robotics - as opposed to academic robots with wideband-link-to-mainframe control. Also, when I looked at Myke's book, I was a little disappointed in that it seemed to be more of a PIC programming book than a robotics programming book - but I might be wrong on this account.
- dan michaels =======================
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
dan michaels wrote:

Ah, of course you are correct. I had looked at the book some time ago and have since lent my copy out, and was going off the rather paltry index. I just looked at the index and TOC on Amazon, and it appears very little beyond chapter 8 is even indexed! (only a couple references here and there). Maybe they improved the index in subsequent printings.
-- Gordon Author: Constructing Robot Bases, Robot Builder's Sourcebook, Robot Builder's Bonanza
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

So I ordered the book. So they shipped the book. So I'll comment on the book when it comes in.
--
Randy M. Dumse
www.newmicros.com
  Click to see the full signature.
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Randy M. Dumse wrote:

As did/will I. It should come into work tomorrow; if I'm well enough to go, I'll pick it up. -- D. Jay Newman http://enerd.ws/robots /
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Mine is in courtesy of Amazon.
Pretty good book. Probably just about what Dan Michaels was hoping for I'd say.
DPRG guys are going to love it for its description of a CanCan robot.
Statemachines are done in C code with "switch()"es on the state variable and "break;". Some psuedo code. Very little over all.
You really get the sense Joe has learned from the Roomba experience without belaboring the point.
The book is all about the subjects expected for the book. The back cover is all about the web site. Anybody used the BSim yet?
I think Joe may have another winner here, guys.
--
Randy M. Dumse
www.newmicros.com
  Click to see the full signature.
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
: Mine is in courtesy of Amazon. : Pretty good book. Probably just about what Dan Michaels was hoping for : I'd say. : DPRG guys are going to love it for its description of a CanCan robot.
: Statemachines are done in C code with "switch()"es on the state variable : and "break;". Some psuedo code. Very little over all.
: You really get the sense Joe has learned from the Roomba experience : without belaboring the point.
: The book is all about the subjects expected for the book. The back cover : is all about the web site. Anybody used the BSim yet?
: I think Joe may have another winner here, guys.
Now I'll have to get it. This was exactly what I was going to write about using a variety of processors, but MH said they had someone doing it already (now I know who :). My curiousity will force me to see if what Joe writes about is what I have been doing for a few years now too.
DLC .... Now where is that credit card....
--
============================================================================
* Dennis Clark snipped-for-privacy@frii.com www.techtoystoday.com *
  Click to see the full signature.
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

[in your wife's purse on the dining room table, dennis]
I'll be happy to hear reports on the book, and hopefully it will be hitting barnes+noble soon.
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
[snip]
:> Now I'll have to get it. This was exactly what I was going to write :> about using a variety of processors, but MH said they had someone doing :> it already (now I know who :). My curiousity will force me to see if what :> Joe writes about is what I have been doing for a few years now too. :> :> DLC :> .... Now where is that credit card....
: [in your wife's purse on the dining room table, dennis]
<Hah! I have another one!>
: I'll be happy to hear reports on the book, and hopefully it will be : hitting barnes+noble soon.
It is at B&N now, I leafed through it today, but declined to get it and got Karl Williams's "Amphibionics" instead. Joe's book is a good intro to state machines and subsumption (mostly state machines) for robotics, and has little in there that I haven't already discovered. He does some nice gentle breakdowns of the why's and wherefores however and for all the guys that give me blank stares when I try to explain FSM's with timers, this book will definately help them! Especially the priority arbitration schemes that are so essential to behavioral programming using this programming style. I didn't like the coding style of some of the examples, I prefer to use "switch" or "case" rather than lists of "if/thens" in my coding, it scans better for state machine usage and sensor evaluations and for embedded micros, the if/thens can be expensive on memory space in a small processor. It is a good book, but there is not much in there for me, but the last chapter on the "common" programming blocks, like angle computes and such. It was a long overdue book, I'm just jealous that I didn't get to write it! Maybe I'll ask my publisher again...
have fun, DLC
--
============================================================================
* Dennis Clark snipped-for-privacy@frii.com www.techtoystoday.com *
  Click to see the full signature.
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Mon, Jan 05, 2004 at 04:13:03AM +0000, Dennis Clark wrote:

No necessarily. While I prefer using switch/case as well since I think it makes the code more readable, I have found that if/then's generate smaller code at least when using avr-gcc. At least this was the case (no pun intended) a while back. I'll need to double check the latest GCC version to see if it performs similarly.
I discovered this while doing some work on an AT90S2313 a while back which has only 2K of flash. The code was getting very tight and I was able to free up a significant amount of space by rewriting switch/case as if/then.
I'm still waiting on my copy, though. Amazon says it shipped today.
-Brian -- Brian Dean, snipped-for-privacy@bdmicro.com BDMICRO - Maker of the MAVRIC ATmega128 Dev Board http://www.bdmicro.com/
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Sat, Jan 03, 2004 at 05:11:56PM -0600, Randy M. Dumse wrote:

Sounds good - just bought my copy from Amazon also. Thanks for the review!
-Brian
--
Brian Dean, snipped-for-privacy@bdmicro.com
BDMICRO - Maker of the MAVRIC ATmega128 Dev Board
  Click to see the full signature.
Add pictures here
βœ–
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.