From khasymskia at wlu.edu Fri Mar 2 01:47:29 2007 From: khasymskia at wlu.edu (Alexander Khasymski) Date: Fri Mar 2 01:47:38 2007 Subject: [Pyro-users] Dynamic world Message-ID: <45E7822E.81AA.00A9.0@wlu.edu> Hi, I am using the PyrobotSimulator to simulate two Pioneer robots and four tkPucks. I have written a brain for both robots to find the pucks and bring them to a corner in the environment where I have put a light. My question is the following: Is there a way get a puck to move to a random position in the environment as soon as one of the robots delivers it to the corner? Currently I can achieve this by clicking on the desired puck and than dragging it to a place in the environment. Presumably to automate this process I have add some code to each brain that will give it access to the list of robots in the simulator (pucks are types of robots I think) than find the coordinates of the puck (from the coordinates of the robot that dropped it off) and then setPose it to a random place. Am I on the right track? If anyone has done anything similar or has any suggestion please let me know. Thanks for the help. Aleksandr From dblank at brynmawr.edu Fri Mar 2 06:55:48 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri Mar 2 06:55:47 2007 Subject: [Pyro-users] Dynamic world In-Reply-To: <45E7822E.81AA.00A9.0@wlu.edu> References: <45E7822E.81AA.00A9.0@wlu.edu> Message-ID: <3677.65.182.39.3.1172836548.squirrel@webmail.brynmawr.edu> Yes, you are on the right track. You can use the simulation device, like so: robot.simulation[0].setPose("Puck1", 5, 5, 0) where "Puck1" is the name given in the world file. Currently, there isn't a specific method to dynamically see the robot names, but there is a general eval mechanism that you can execute in the simulator and get the return values. Knowing how the simulator works lets you: robot.simulation[0].eval("[r.name for r in self.robots]") which gives you the robot names. -Doug On Fri, March 2, 2007 1:47 am, Alexander Khasymski said: > Hi, > > I am using the PyrobotSimulator to simulate two Pioneer robots and four > tkPucks. I have written a brain for both robots to find the pucks and > bring them to a corner in the environment where I have put a light. My > question is the following: Is there a way get a puck to move to a random > position in the environment as soon as one of the robots delivers it to > the corner? Currently I can achieve this by clicking on the desired puck > and than dragging it to a place in the environment. Presumably to > automate this process I have add some code to each brain that will give > it access to the list of robots in the simulator (pucks are types of > robots I think) than find the coordinates of the puck (from the > coordinates of the robot that dropped it off) and then setPose it to a > random place. Am I on the right track? > > If anyone has done anything similar or has any suggestion please let me > know. > Thanks for the help. > Aleksandr > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 6501 From erf55 at students.rowan.edu Tue Mar 6 16:14:55 2007 From: erf55 at students.rowan.edu (Er, Fahri) Date: Tue Mar 6 16:14:59 2007 Subject: [Pyro-users] (no subject) Message-ID: <1173215695.c8d23ecerf55@students.rowan.edu> Hi I am Fahri from Rowan University of New Jersey . I've just started to use Pyro with PyroLiveCD version 4.8.5 and I'm working with a Hemisson robot and can't get Pyro to work with the Robot. I've connected my robot with a serial cable to the computer, and I loaded the hex file with the uploader, following the instructions on the pyro website http://www.pyrorobotics.org/?page=Using_20the_20Hemisson_20Robot After loading the hex file the Hemisson doesn't have the dance or avoid programs anymore so I'm guessing it worked. Then I tried to use Pyro with the hemisson but it isn't working. Here's how I do it: I choosed different servers such as PyrobotSimulator or StageSimulator and then world as Tutorial.py. Then from Robot button tried to load Hemisson.py but couldn't and had folowing errors Attempting to import 'Hemisson'... Loaded '/UNIONFS/usr/lib/python2.3/site-packages/pyrobot/plugins/robots/Hemisson.pyc'! K-Team opening port /dev/rfcomm0... Exception in Tkinter callback Traceback(most recent call last): File"/usr/lib/pyhthon23/lib-tk/Tkinter.py", line 1345, in_call_return self.func(*args) File"./gui/TK.py", line 202. in loadRobot File"./gui/_init_.py"' line 518, in loadRobot File"./engine/_init_.py", line 174, in loadRobot File"./system/_init_.py", line 96, in loadINIT File"./plugins/robots/Hemisson.py", line 10, in INIT File"./robot/khepera.py", line 179, in_init_ File"./system/serial/serialutil.py", line 145, in_init_ File"./system/serial/serialposix.py", line 150, in open Serial Exception: could not open port: [Errno 6] No such device or address : '/dev/rfcomm0/ What should I do? Should I choose certain world or certain simulator? Are they about setting up cable connection and port settings for the cable? I will be appreciated if you can help me. From erf55 at students.rowan.edu Tue Mar 6 16:21:55 2007 From: erf55 at students.rowan.edu (Er, Fahri) Date: Tue Mar 6 16:21:56 2007 Subject: [Pyro-users] Hemisson Help Message-ID: <1173216115.a46c1c4erf55@students.rowan.edu> Hi I am Fahri from Rowan University of New Jersey . I've just started to use Pyro with PyroLiveCD version 4.8.5 and I'm working with a Hemisson robot and can't get Pyro to work with the Robot. I've connected my robot with a serial cable to the computer, and I loaded the hex file with the uploader, following the instructions on the pyro website http://www.pyrorobotics.org/?page=Using_20the_20Hemisson_20Robot After loading the hex file the Hemisson doesn't have the dance or avoid programs anymore so I'm guessing it worked. Then I tried to use Pyro with the hemisson but it isn't working. Here's how I do it: I choosed different servers such as PyrobotSimulator or StageSimulator and then world as Tutorial.py. Then from Robot button tried to load Hemisson.py but couldn't and had folowing errors Attempting to import 'Hemisson'... Loaded '/UNIONFS/usr/lib/python2.3/site-packages/pyrobot/plugins/robots/Hemisson.pyc'! K-Team opening port /dev/rfcomm0... Exception in Tkinter callback Traceback(most recent call last): File"/usr/lib/pyhthon23/lib-tk/Tkinter.py", line 1345, in_call_return self.func(*args) File"./gui/TK.py", line 202. in loadRobot File"./gui/_init_.py"' line 518, in loadRobot File"./engine/_init_.py", line 174, in loadRobot File"./system/_init_.py", line 96, in loadINIT File"./plugins/robots/Hemisson.py", line 10, in INIT File"./robot/khepera.py", line 179, in_init_ File"./system/serial/serialutil.py", line 145, in_init_ File"./system/serial/serialposix.py", line 150, in open Serial Exception: could not open port: [Errno 6] No such device or address : '/dev/rfcomm0/ What should I do? Should I choose certain world or certain simulator? Are they about setting up cable connection and port settings for the cable? I will be appreciated if you can help me. From crabbe at usna.edu Tue Mar 6 18:16:20 2007 From: crabbe at usna.edu (Prof Ric Crabbe) Date: Tue Mar 6 18:17:06 2007 Subject: [Pyro-users] video 4 linux Message-ID: <17901.63044.128811.545913@crab.cs.usna.edu> Doug et al., I know this isn't quite a pyrobot question, but I'm moving from using the live CD last year to using full fedora installs. Unfortunately, none of the video seems to have been included in the install: [crabbe@mich223csd05p ~]$ /sbin/lsmod | grep video video 21829 0 [crabbe@mich223csd05p ~]$ rpm -q -a -i | grep v4l [crabbe@mich223csd05p ~]$ ls -l /dev/video0 ls: /dev/video0: No such file or directory Also unfortunately, I have no idea what packages I'll need. Rpmfind is as opaque as ever and what passes for the video 4 linux website is even less helpful (is it just me or is linux *much* harder to administer now than it was in 1998?) Could you point me in a direction to start off on? Thanks. cheers, ric From dblank at brynmawr.edu Tue Mar 6 23:41:57 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Tue Mar 6 23:42:00 2007 Subject: [Pyro-users] video 4 linux In-Reply-To: <17901.63044.128811.545913@crab.cs.usna.edu> References: <17901.63044.128811.545913@crab.cs.usna.edu> Message-ID: <45EE4295.2060106@brynmawr.edu> Ric, I think it is you... Linux is a lot easier to administer these days :) You may be trying too hard. I believe that V4L2 is included in most kernels. Usually, you just have to put your frame capture card in the PC, and Linux will identify it and set it up (since kernels 2.4, I think). I used to use xawtv to test, and then you'll know what device and number to use in Pyro. (I'm not near a machine with a frame grabber right now, but can give you more details next week, if you don't get it figured out). If you don't make any progress, let us know what distro you are using and I'm sure someone on this list has some post-1998 experience. -Doug Prof Ric Crabbe wrote: > Doug et al., > > I know this isn't quite a pyrobot question, but I'm moving from using > the live CD last year to using full fedora installs. Unfortunately, > none of the video seems to have been included in the install: > > [crabbe@mich223csd05p ~]$ /sbin/lsmod | grep video > video 21829 0 > > [crabbe@mich223csd05p ~]$ rpm -q -a -i | grep v4l > [crabbe@mich223csd05p ~]$ ls -l /dev/video0 > ls: /dev/video0: No such file or directory > > Also unfortunately, I have no idea what packages I'll need. Rpmfind > is as opaque as ever and what passes for the video 4 linux website is > even less helpful (is it just me or is linux *much* harder to > administer now than it was in 1998?) > > Could you point me in a direction to start off on? Thanks. > > cheers, > ric > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > From dblank at brynmawr.edu Tue Mar 6 23:53:36 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Tue Mar 6 23:53:36 2007 Subject: [Pyro-users] Hemisson Help In-Reply-To: <1173216115.a46c1c4erf55@students.rowan.edu> References: <1173216115.a46c1c4erf55@students.rowan.edu> Message-ID: <45EE4550.9010905@brynmawr.edu> Fahri, You have some confusion about what you are doing, so you might have to read some on the http://PyroRobotics.org website. Take a look at: http://pyrorobotics.org/?page=Using_20the_20Hemisson_20Robot and maybe also http://pyrorobotics.org/?page=The_20Pyro_20Interface There is no server for a Hemisson, or rather, the Hemisson is already running the server so you don't need to start it by clicking "Server"; just turn it on. The port /dev/rfcomm0 is hard-coded in pyrobot/plugins/robot/Hemisson.py: http://cvs.cs.brynmawr.edu/cgi-bin/viewcvs.cgi/pyrobot/plugins/robots/Hemisson.py?rev=HEAD&content-type=text/vnd.viewcvs-markup That should probably be written like this: from pyrobot.robot.khepera import * def INIT(): retval = ask("Please enter the Hemisson Data", (("Port", "6665"), ("Baud", 115200),)) if retval["ok"]: # For serial connected Hemisson: return KheperaRobot(port = retval["Port"], rate = int(retval["Baud"]), subtype = "Hemisson") else: raise "Cancelled!" -Doug Er, Fahri wrote: > Hi I am Fahri from Rowan University of New Jersey . I've just started > to use Pyro with PyroLiveCD version 4.8.5 and I'm working with a > Hemisson robot and can't get Pyro to work with the Robot. > > I've connected my robot with a serial cable to the computer, and > I loaded the hex file with the uploader, following the instructions > on the pyro website > > http://www.pyrorobotics.org/?page=Using_20the_20Hemisson_20Robot > > > > > After loading the hex file the Hemisson doesn't have the > dance or avoid programs anymore so I'm guessing it worked. > > Then I tried to use Pyro with the hemisson but it isn't working. > Here's how I do it: > > I choosed different servers such as PyrobotSimulator or StageSimulator and then world as Tutorial.py. > > Then from Robot button tried to load Hemisson.py but couldn't and had folowing errors > > > > Attempting to import 'Hemisson'... > > Loaded '/UNIONFS/usr/lib/python2.3/site-packages/pyrobot/plugins/robots/Hemisson.pyc'! > > K-Team opening port /dev/rfcomm0... > > Exception in Tkinter callback > > Traceback(most recent call last): > > File"/usr/lib/pyhthon23/lib-tk/Tkinter.py", line 1345, in_call_return self.func(*args) > > File"./gui/TK.py", line 202. in loadRobot > > File"./gui/_init_.py"' line 518, in loadRobot > > File"./engine/_init_.py", line 174, in loadRobot > > File"./system/_init_.py", line 96, in loadINIT > > File"./plugins/robots/Hemisson.py", line 10, in INIT > > File"./robot/khepera.py", line 179, in_init_ > > File"./system/serial/serialutil.py", line 145, in_init_ > > File"./system/serial/serialposix.py", line 150, in open > > Serial Exception: could not open port: [Errno 6] > > No such device or address : '/dev/rfcomm0/ > > > > What should I do? Should I choose certain world or certain simulator? > Are they about setting up cable connection and port settings for the cable? > I will be appreciated if you can help me. > > > > > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > From andrew.semark at kings.cam.ac.uk Wed Mar 7 02:59:34 2007 From: andrew.semark at kings.cam.ac.uk (Andrew Semark) Date: Wed Mar 7 03:01:21 2007 Subject: [Pyro-users] Using Bumpers Message-ID: <557B280E81C4A04EBEBB687DF645098B43FCEC@adminmail.kings.cam.ac.uk> A week ago I discovered Pyrobotics! I have always been interested in robotics using simple micro controllers (Pic's) to control motors, sensor etc. Having studied a little A.I. pyrobot looks like a great way forward for me. So now to my problem! I have a Basic Stamp connected to the serial port and I have written some code to send commands to it. I'm now stuck with finding example code to create a bumper device. I will admit that python and OOP is not my first language (happy in good old asm) and would be grateful for any help/code snippets you could send me. I I am using the version that is part of the Noppix live CD. Andrew Semark -------------- next part -------------- An HTML attachment was scrubbed... URL: http://emergent.brynmawr.edu/pipermail/pyro-users/attachments/20070307/d6c1cabf/attachment.htm From dblank at brynmawr.edu Wed Mar 7 04:21:25 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Wed Mar 7 04:21:28 2007 Subject: [Pyro-users] Using Bumpers In-Reply-To: <557B280E81C4A04EBEBB687DF645098B43FCEC@adminmail.kings.cam.ac.uk> References: <557B280E81C4A04EBEBB687DF645098B43FCEC@adminmail.kings.cam.ac.uk> Message-ID: <45EE8415.6060805@brynmawr.edu> Andrew, Have you looked over the the curriculum materials: http://pyrorobotics.org/?page=PyroCurriculum especially the section on your own hardware: http://pyrorobotics.org/?page=Interfacing_20Your_20Own_20Robot You can start at the beginning, too, which might help: http://pyrorobotics.org/ You can take a look at pyrobot/robot/roomba.py as an example as I just added a bumper device to it (look at the newest code in CVS or the new Pyro 5.0.0 LiveCD). Eventually, we'll have a BumperDevice and a standard API. The roomba is a good, simple example though. If you have questions, please feel free to ask them here. -Doug Andrew Semark wrote: > A week ago I discovered Pyrobotics! I have always been > interested in robotics using simple micro controllers (Pic's) to control > motors, sensor etc. Having studied a little A.I. pyrobot looks like a > great way forward for me. So now to my problem! I have a Basic Stamp > connected to the serial port and I have written some code to send > commands to it. I'm now stuck with finding example code to create a > bumper device. I will admit that python and OOP is not my first > language (happy in good old asm) and would be grateful for any help/code > snippets you could send me. I I am using the version that is part of > the Noppix live CD. > > Andrew Semark > > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users From crabbe at usna.edu Thu Mar 8 16:59:04 2007 From: crabbe at usna.edu (Prof Ric Crabbe) Date: Thu Mar 8 16:59:58 2007 Subject: [Pyro-users] video 4 linux In-Reply-To: <45EE4295.2060106@brynmawr.edu> References: <17901.63044.128811.545913@crab.cs.usna.edu> <45EE4295.2060106@brynmawr.edu> Message-ID: <17904.34600.458104.199633@crab.cs.usna.edu> Douglas S. Blank writes: > Ric, > > I think it is you... Linux is a lot easier to administer these days :) :) In my defense, what I mean is that linux is catching Windows Disease- 90% of the time it works perfectly out of the box, but when it doesn't there's just nothing you can do but buy new hardware. > > You may be trying too hard. I believe that V4L2 is included in most > kernels. Usually, you just have to put your frame capture card in the > PC, and Linux will identify it and set it up (since kernels 2.4, I think). Well, it definitely isn't identifying it (there's no mention of any capture card in the dmesg, AND xawtv is not installed. I went through the install tool but didn't see xawtv listed under any of the options. I didn't do the install myself, it was an admin who has since moved on to greener pastures. Was there a package he missed? Oh, I'm running fedora core: uname -r: 2.6.17-1.2141_FC4smp and my card is a Hauppauge WinTV-PVR-150MCE LP. cheers, ric From bthom at cs.hmc.edu Thu Mar 8 22:21:28 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Thu Mar 8 22:22:18 2007 Subject: Fwd: [Pyro-users] mac os x install issues / observations / questions References: <1F146D0B-2F16-4477-A440-514DA8DF9DBD@cs.hmc.edu> Message-ID: Resubmitting this message due to bad email address. Begin forwarded message: > From: belinda thom > Date: March 6, 2007 1:07:25 PM PST > To: Ernesto Costa > Cc: pyro-users@pyrobotics.org > Subject: Re: [Pyro-users] mac os x install issues / observations / > questions > > Hi Ernesto, > > I wish I could say I've gotten more running, but I haven't. > > I believe you need SWIG for the vision stuff (Doug: is this > correct? Also, note another problem cited in 2nd to last > paragraph), and I wasn't able to get SWIG working on the test cases > described here: > > http://www.dabeaz.com/cgi-bin/wiki.pl?SwigFaqMaxOSXSharedLibraries > > so I never bothered to try getting it to compile the requisite C code. > > I am uncertain what the problem is, but since Apple distributes > older versions of Python, wx, Tcl, etc. I've had other problems, > e.g.getting matplotlib and scipy to compile. I suspect the problem > here is an incompatibility w/the default stuff on my machine. I had > mailed David (above link) for help, but never heard back. > > Even if SWIG was working, you'd need to change the compiler options > that Doug's self-configuring make file creates. The "shared > library" flag is not recognized on Mac OS X 10.4.8. > > I agree it is very frustrating and would love to get this fixed, > but I don't have the time right now. If you were to make progress, > please keep me in the loop, and perhaps I could find some time to > help. My first recommendation is to try the tests from the link > above and let me know if on your machine you are more successful. > Once those passed, mere changing compiler options might be > sufficient to get things running. > > On another note: when running the vacuum cleaner world simulator, > there is another Mac OS X problem. Something about Tk and > threading. The symptom: graphics for the world don't update unless > you move the mouse over on top of them. Do you see this behaviour > as well? On my dual processor machine, this behaviour doesn't > occur, but on single processor machines (on a G4, another an Intel) > it does. I found some stuff online about threading issues w/Tk, and > was able to determine this problem was in fact occurring on my G4, > but I didn't know how to go in and fix it on the Pyro end (I > believe the command that hangs is the draw command inside the world > file). > > HTH, > > --b > > > On Feb 21, 2007, at 4:37 PM, Ernesto Costa wrote: > >> Hi, >> I wonder if you were able to put Pyro to work properly with Mac OS >> X 10.4.8. >> >> I was able to follow your instructions and they work. But it is >> very frustating to have just the simulator and not the whole thing. >> >> Thanks in advance. >> >> Ernesto Costa >> > From bthom at cs.hmc.edu Thu Mar 8 22:23:40 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Thu Mar 8 22:23:42 2007 Subject: [Pyro-users] Fwd: braintenberg worlds References: Message-ID: <37476D68-093E-4F68-851D-539B33CF8617@cs.hmc.edu> Am also forwarding this one due to error in email address. > Hi, > > I'm wondering if any of you have written some flashy looking > Braitenberg simulations via Pyro. > > I've tried out individual Braitenberg brains in various worlds, but > the behaviour isn't so interesting when there's not several robots > of different types interacting. For a peek at collective behavior, > I found: > > http://people.cs.uchicago.edu/~wiseman/vehicles/ > > but the code is not available. The Understanding Intelligence book > also provides a simulator at: > > http://www.ifi.unizh.ch/groups/ailab/people/lambri/mitbook/ > braitenberg/braitenberg.html > > but the images look clunky and there's some glaring bugs. > > Pyro has such a nice feel to it. I'd love to create some worlds of > similar quality to the ones shown in the wiseman links, but figured > I'd poll you all to see if anyone has already done this. > > Also a question: is there a rule of thumb for how many robots can I > put into a world before the CPU bogs down? > > Thanks, > > --b From bthom at cs.hmc.edu Thu Mar 8 22:25:35 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Thu Mar 8 22:25:37 2007 Subject: [Pyro-users] passing information into pyro via command line Message-ID: Hi, I asked this question a couple months ago, and didn't get an answer, so I'm trying again. Hw can one pass info into a world file from the command line? For instance, if I try: 42 % pyrobot -a foo=test -s PyrobotSimulator -w BsWorld.py -r PyrobotRobot60000 -b BraitenbergVehicle1.py & [1] 5536 and then put an import sys print sys.argv into my world file, and i see: ['/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/ site-packages/pyrobot/plugins/simulators/PyrobotSimulator', '5536', 'BsWorld.py'] which looses the info about foo=test that the -a argument passes to something. Thanks, --b From dblank at brynmawr.edu Fri Mar 9 09:37:41 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri Mar 9 09:37:57 2007 Subject: [Pyro-users] passing information into pyro via command line In-Reply-To: References: Message-ID: <2703.12.169.46.135.1173451061.squirrel@webmail.brynmawr.edu> Belinda, I don't remember the details, but I know that pyrobot stores the string argument to -a in gui.engine.args . You'll have to parse it, maybe something like: args = gui.engine.args.split(",") for a in args: name, value = a.split.("=") I forget how you get the gui object from a brain (I'm on the road right now), but maybe that will give you a pointer. More later... -Doug On Thu, March 8, 2007 10:25 pm, belinda thom said: > Hi, > > I asked this question a couple months ago, and didn't get an answer, > so I'm trying again. > > Hw can one pass info into a world file from the command line? > > For instance, if I try: > > 42 % pyrobot -a foo=test -s PyrobotSimulator -w BsWorld.py -r > PyrobotRobot60000 -b BraitenbergVehicle1.py & > [1] 5536 > > and then put an > > import sys > print sys.argv > > into my world file, and i see: > > ['/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/ > site-packages/pyrobot/plugins/simulators/PyrobotSimulator', > '5536', 'BsWorld.py'] > > which looses the info about foo=test that the -a argument passes to > something. > > Thanks, > > --b > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 6501 From meeden at cs.swarthmore.edu Fri Mar 9 10:58:58 2007 From: meeden at cs.swarthmore.edu (Lisa Meeden) Date: Fri Mar 9 10:58:58 2007 Subject: [Pyro-users] Fwd: braintenberg worlds In-Reply-To: <37476D68-093E-4F68-851D-539B33CF8617@cs.hmc.edu> References: <37476D68-093E-4F68-851D-539B33CF8617@cs.hmc.edu> Message-ID: Belinda, I am teaching an introductory cognitive science class this semester and came up with a fun Braitenberg world. It is based on an example from the "Understanding Intelligence" book, where what they call "helping behavior" emerges. It doesn't quite work the same way in simulation, but still leads to some interesting interactions. There are three robots all attracted to light, with light sensors on their fronts. Two of the robots have light emitters on their backs. Plus there is also a light in the environment. You can see the lab here: http://web.cs.swarthmore.edu/~meeden/cogs1/s07/lab04.html Near the bottom of this page there are some links to the code you'd need to run this example. Lisa --- Lisa Meeden Computer Science Department Associate Professor Swarthmore College Chair Cognitive Science Program 500 College Ave. meeden@cs.swarthmore.edu Swarthmore, PA 19081 www.cs.swarthmore.edu/~meeden 610-328-8565 On Thu, 8 Mar 2007, belinda thom wrote: > Am also forwarding this one due to error in email address. > >> Hi, >> >> I'm wondering if any of you have written some flashy looking Braitenberg >> simulations via Pyro. >> >> I've tried out individual Braitenberg brains in various worlds, but the >> behaviour isn't so interesting when there's not several robots of different >> types interacting. For a peek at collective behavior, I found: >> >> http://people.cs.uchicago.edu/~wiseman/vehicles/ >> >> but the code is not available. The Understanding Intelligence book also >> provides a simulator at: >> >> http://www.ifi.unizh.ch/groups/ailab/people/lambri/mitbook/braitenberg/braitenberg.html >> >> but the images look clunky and there's some glaring bugs. >> >> Pyro has such a nice feel to it. I'd love to create some worlds of similar >> quality to the ones shown in the wiseman links, but figured I'd poll you >> all to see if anyone has already done this. >> >> Also a question: is there a rule of thumb for how many robots can I put >> into a world before the CPU bogs down? >> >> Thanks, >> >> --b > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users From dblank at brynmawr.edu Mon Mar 12 13:02:19 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Mon Mar 12 13:02:58 2007 Subject: [Pyro-users] passing information into pyro via command line In-Reply-To: <2703.12.169.46.135.1173451061.squirrel@webmail.brynmawr.edu> References: <2703.12.169.46.135.1173451061.squirrel@webmail.brynmawr.edu> Message-ID: <45F595AB.3050505@brynmawr.edu> Douglas S. Blank wrote: > Belinda, > > I don't remember the details, but I know that pyrobot stores the string > argument to -a in gui.engine.args . You'll have to parse it, maybe > something like: > > args = gui.engine.args.split(",") > for a in args: > name, value = a.split.("=") > > I forget how you get the gui object from a brain (I'm on the road right > now), but maybe that will give you a pointer. More later... You can get the args from inside a brain with: self.engine.args and then use code like that above. For example: $ bin/pyrobot -a "this is a test" >>> self.engine.args 'this is a test' -Doug > -Doug > > On Thu, March 8, 2007 10:25 pm, belinda thom said: >> Hi, >> >> I asked this question a couple months ago, and didn't get an answer, >> so I'm trying again. >> >> Hw can one pass info into a world file from the command line? >> >> For instance, if I try: >> >> 42 % pyrobot -a foo=test -s PyrobotSimulator -w BsWorld.py -r >> PyrobotRobot60000 -b BraitenbergVehicle1.py & >> [1] 5536 >> >> and then put an >> >> import sys >> print sys.argv >> >> into my world file, and i see: >> >> ['/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/ >> site-packages/pyrobot/plugins/simulators/PyrobotSimulator', >> '5536', 'BsWorld.py'] >> >> which looses the info about foo=test that the -a argument passes to >> something. >> >> Thanks, >> >> --b >> _______________________________________________ >> Pyro-users mailing list >> Pyro-users@pyrorobotics.org >> http://emergent.brynmawr.edu/mailman/listinfo/pyro-users >> > > From bthom at cs.hmc.edu Mon Mar 12 23:16:44 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Mon Mar 12 23:16:44 2007 Subject: [Pyro-users] waiting on pyrobot simulator issue ( mac os x ? ) Message-ID: Hi, I'm not sure if this is something particular to OS X but its a really frustrating thing so I thought I'd see if anyone else has had this problem and/or a work around. I'm using Pyrobot w/very few frills (e.g. no vision, stage, etc.) because I was unable to get SWIG to work on my P4 running Mac OS X 10.8.4. I often run pyrobot from the command line and have written some scripts to do just that which I'd like to deploy to my students in lab. The issue, however, is that often I get "waiting for simulator" warnings. Towards addressing these issues, I've written two shell scripts, "reset" (which kills any open pyrobot processes) and "pyro", which invokes python from the command line. The pyro script contains: #!/bin/tcsh set simulator = PyrobotSimulator set robot = PyrobotRobot60000 set brain = $1 set world = $2 pyrobot -s $simulator -w $world -r $robot -b $brain & and frequently results in: 8 % sh: line 1: taskset: command not found PYROBOT WARNING: can't find 'taskset' Using PYROBOT on posix with default CPUs in '/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site- packages/pyrobot'... Loading.Attempting to import 'SubsumptionFindLight'... Loaded 'SubsumptionFindLight.pyc'! Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/2.4/lib/ python2.4/site-packages/pyrobot/plugins/simulators/PyrobotSimulator", line 83, in ? gui = INIT(worldFile) File "/Library/Frameworks/Python.framework/Versions/2.4/lib/ python2.4/site-packages/pyrobot/plugins/simulators/PyrobotSimulator", line 26, in INIT retval = userspace.INIT() TypeError: INIT() takes exactly 1 argument (0 given) . Attempting to import 'PyrobotRobot60000'... ManualFakeCamera not loaded! Won't be able to use camera. Loaded '/Library/Frameworks/Python.framework/Versions/2.4/lib/ python2.4/site-packages/pyrobot/plugins/robots/PyrobotRobot60000.pyc'! Waiting on PyrobotSimulator... Waiting on PyrobotSimulator... Waiting on PyrobotSimulator... Waiting on PyrobotSimulator... Waiting on PyrobotSimulator... at which point I break in (hit return) and quickly type "reset", whose contents is: #!/bin/tcshset tag = pyrobot echo "Reseting pyrobot by killing processes..." echo `ps ww | grep $tag | grep -v grep` ps ww | grep $tag | grep -v grep | awk '{ print $1; }' | xargs kill -9 echo "Done" Sometimes I have to run pyro and reset several times before the simulator is ready to accept the robot. I've tried splitting the pyrobot command into several lines: pyrobot -s ... -w .. & sleep 2 pyrobot -r .... -b ... & which seems to help but doesn't always do the trick. Advice? --b From bthom at cs.hmc.edu Tue Mar 13 14:03:00 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Tue Mar 13 14:03:04 2007 Subject: [Pyro-users] subsumption experiments In-Reply-To: References: <37476D68-093E-4F68-851D-539B33CF8617@cs.hmc.edu> Message-ID: <8D91423E-FC90-4516-9798-E92C31036DDC@cs.hmc.edu> Lisa, Thanks for the pointer...its been useful to see how you created a multi-robot world (much easier than what I'd been doing). I now have a question about how you compared robots for your subsumption robots finding lights in various flavors of room lab. One approach would be to put students robot brains into the same room and see which one finds the light first. But that adds a new complexity to the problem that the students wouldn't have explicitly planned for. As an alternative, I tried to run two pyrobot simulators at the same time, one running each robot. But I then ran into socket address complaints. My current thinking is to increment a counter for each update call, and to compare based on the total number of steps each robot has. Any other ideas? --b On Mar 9, 2007, at 7:58 AM, Lisa Meeden wrote: > Belinda, > > I am teaching an introductory cognitive science class this semester > and came up with a fun Braitenberg world. It is based on an example > from the "Understanding Intelligence" book, where what they call > "helping behavior" emerges. It doesn't quite work the same way in > simulation, but still leads to some interesting interactions. > > There are three robots all attracted to light, with light sensors on > their fronts. Two of the robots have light emitters on their backs. > Plus there is also a light in the environment. > > You can see the lab here: > > http://web.cs.swarthmore.edu/~meeden/cogs1/s07/lab04.html > > Near the bottom of this page there are some links to the code you'd > need to run this example. > > Lisa > > --- > Lisa Meeden Computer Science Department > Associate Professor Swarthmore College > Chair Cognitive Science Program 500 College Ave. > meeden@cs.swarthmore.edu Swarthmore, PA 19081 > www.cs.swarthmore.edu/~meeden 610-328-8565 > > On Thu, 8 Mar 2007, belinda thom wrote: > >> Am also forwarding this one due to error in email address. >> >>> Hi, >>> I'm wondering if any of you have written some flashy looking >>> Braitenberg simulations via Pyro. >>> I've tried out individual Braitenberg brains in various worlds, >>> but the behaviour isn't so interesting when there's not several >>> robots of different types interacting. For a peek at collective >>> behavior, I found: >>> http://people.cs.uchicago.edu/~wiseman/vehicles/ >>> but the code is not available. The Understanding Intelligence >>> book also provides a simulator at: >>> http://www.ifi.unizh.ch/groups/ailab/people/lambri/mitbook/ >>> braitenberg/braitenberg.html >>> but the images look clunky and there's some glaring bugs. >>> Pyro has such a nice feel to it. I'd love to create some worlds >>> of similar quality to the ones shown in the wiseman links, but >>> figured I'd poll you all to see if anyone has already done this. >>> Also a question: is there a rule of thumb for how many robots can >>> I put into a world before the CPU bogs down? >>> Thanks, >>> --b >> _______________________________________________ >> Pyro-users mailing list >> Pyro-users@pyrorobotics.org >> http://emergent.brynmawr.edu/mailman/listinfo/pyro-users From bthom at cs.hmc.edu Tue Mar 13 14:07:34 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Tue Mar 13 14:07:34 2007 Subject: [Pyro-users] Fwd: braintenberg worlds In-Reply-To: References: <37476D68-093E-4F68-851D-539B33CF8617@cs.hmc.edu> Message-ID: > http://web.cs.swarthmore.edu/~meeden/cogs1/s07/lab04.html P.S. FWIW, the "waiting for simulator" problem I reported to this yesterday is also an issue for me on Mac OS X 10.4.8 using Lisa's start up multiple-robot code. --b From bthom at cs.hmc.edu Tue Mar 13 16:15:22 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Tue Mar 13 16:15:26 2007 Subject: [Pyro-users] passing information into pyro via command line In-Reply-To: <2703.12.169.46.135.1173451061.squirrel@webmail.brynmawr.edu> References: <2703.12.169.46.135.1173451061.squirrel@webmail.brynmawr.edu> Message-ID: Thanks Doug, I've got something working thanks to your help. I've now got another question, this time about randomness. I would like to test various subsumption robots on a given task to see which is "best" (finds a light in the fewest number of steps). Various subsumption brains use randomness in various ways. But I had hoped that when I initialized initialized a brain (via its __init__ function), that if I put something like: random.seed(foo) where foo is an integer passed in and successfully parsed via Pyro's - a flag, that a run could be made to always use the same random decisions (and hence be repeatable). The first to runs I had, setting the seed, found a light in 63 and then 64 steps. The traces are similar. But the 3rd time I ran this, it found a completely different way. What does one need to do to properly seed a RNG so that a robot always takes the same path? Thanks, --b p.s. It is really great to be able to play w/subsumption using Pyro; thanks! On Mar 9, 2007, at 6:37 AM, Douglas S. Blank wrote: > Belinda, > > I don't remember the details, but I know that pyrobot stores the > string > argument to -a in gui.engine.args . You'll have to parse it, maybe > something like: > > args = gui.engine.args.split(",") > for a in args: > name, value = a.split.("=") > > I forget how you get the gui object from a brain (I'm on the road > right > now), but maybe that will give you a pointer. More later... > > -Doug > > On Thu, March 8, 2007 10:25 pm, belinda thom said: >> Hi, >> >> I asked this question a couple months ago, and didn't get an answer, >> so I'm trying again. >> >> Hw can one pass info into a world file from the command line? >> >> For instance, if I try: >> >> 42 % pyrobot -a foo=test -s PyrobotSimulator -w BsWorld.py -r >> PyrobotRobot60000 -b BraitenbergVehicle1.py & >> [1] 5536 >> >> and then put an >> >> import sys >> print sys.argv >> >> into my world file, and i see: >> >> ['/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/ >> site-packages/pyrobot/plugins/simulators/PyrobotSimulator', >> '5536', 'BsWorld.py'] >> >> which looses the info about foo=test that the -a argument passes to >> something. >> >> Thanks, >> >> --b >> _______________________________________________ >> Pyro-users mailing list >> Pyro-users@pyrorobotics.org >> http://emergent.brynmawr.edu/mailman/listinfo/pyro-users >> > > > -- > Douglas S. Blank > Associate Professor, Bryn Mawr College > http://cs.brynmawr.edu/~dblank/ > Office: 610 526 6501 > From dblank at brynmawr.edu Tue Mar 13 20:04:28 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Tue Mar 13 20:04:25 2007 Subject: [Pyro-users] passing information into pyro via command line In-Reply-To: References: <2703.12.169.46.135.1173451061.squirrel@webmail.brynmawr.edu> Message-ID: <6814.68.34.179.248.1173834268.squirrel@webmail.brynmawr.edu> Belinda, To be completely repeatable, you would have to remove all sources of variation. That would include making the exact same decisions at the same exact same points in time on two different runs. The first problem is that the way the Pyrobot simulator is normally run is asynchronously over sockets. You could get rid of the socket communication, and we have examples of that. But you would also have to get rid of the asynchrony too. That would ensure that on a given time step that you moved exactly a specific amount before you received the next command. This would be possible, but would look slightly differently than the current Pyro runs. For example, on each brain step, you could figure out what you want the robot to do, then execute that action for a small, fixed timeslice. You would then advance the world for that amount of time (simulator.step() in the following examples). The simulator was written to allow this, and in fact was written so that you can run without graphics, and in faster-than-real time. If you want to see examples of that, try: http://pyrorobotics.org/?page=PyroFromPython and http://pyrorobotics.org/?page=EvolutionOfLanguage That might also help with the timing issues you are having with Pyro. Hope that helps! -Doug On Tue, March 13, 2007 5:15 pm, belinda thom said: > Thanks Doug, > > I've got something working thanks to your help. > > I've now got another question, this time about randomness. > > I would like to test various subsumption robots on a given task to > see which is "best" (finds a light in the fewest number of steps). > Various subsumption brains use randomness in various ways. But I had > hoped that when I initialized initialized a brain (via its __init__ > function), that if I put something like: > > random.seed(foo) > > where foo is an integer passed in and successfully parsed via Pyro's - > a flag, that a run could be made to always use the same random > decisions (and hence be repeatable). > > The first to runs I had, setting the seed, found a light in 63 and > then 64 steps. The traces are similar. But the 3rd time I ran this, > it found a completely different way. > > What does one need to do to properly seed a RNG so that a robot > always takes the same path? > > Thanks, > > --b > > p.s. It is really great to be able to play w/subsumption using Pyro; > thanks! > > On Mar 9, 2007, at 6:37 AM, Douglas S. Blank wrote: > >> Belinda, >> >> I don't remember the details, but I know that pyrobot stores the >> string >> argument to -a in gui.engine.args . You'll have to parse it, maybe >> something like: >> >> args = gui.engine.args.split(",") >> for a in args: >> name, value = a.split.("=") >> >> I forget how you get the gui object from a brain (I'm on the road >> right >> now), but maybe that will give you a pointer. More later... >> >> -Doug >> >> On Thu, March 8, 2007 10:25 pm, belinda thom said: >>> Hi, >>> >>> I asked this question a couple months ago, and didn't get an answer, >>> so I'm trying again. >>> >>> Hw can one pass info into a world file from the command line? >>> >>> For instance, if I try: >>> >>> 42 % pyrobot -a foo=test -s PyrobotSimulator -w BsWorld.py -r >>> PyrobotRobot60000 -b BraitenbergVehicle1.py & >>> [1] 5536 >>> >>> and then put an >>> >>> import sys >>> print sys.argv >>> >>> into my world file, and i see: >>> >>> ['/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/ >>> site-packages/pyrobot/plugins/simulators/PyrobotSimulator', >>> '5536', 'BsWorld.py'] >>> >>> which looses the info about foo=test that the -a argument passes to >>> something. >>> >>> Thanks, >>> >>> --b >>> _______________________________________________ >>> Pyro-users mailing list >>> Pyro-users@pyrorobotics.org >>> http://emergent.brynmawr.edu/mailman/listinfo/pyro-users >>> >> >> >> -- >> Douglas S. Blank >> Associate Professor, Bryn Mawr College >> http://cs.brynmawr.edu/~dblank/ >> Office: 610 526 6501 >> > > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 6501 From meeden at cs.swarthmore.edu Wed Mar 14 08:01:58 2007 From: meeden at cs.swarthmore.edu (Lisa Meeden) Date: Wed Mar 14 08:01:56 2007 Subject: [Pyro-users] Re: subsumption experiments In-Reply-To: <8D91423E-FC90-4516-9798-E92C31036DDC@cs.hmc.edu> References: <37476D68-093E-4F68-851D-539B33CF8617@cs.hmc.edu> <8D91423E-FC90-4516-9798-E92C31036DDC@cs.hmc.edu> Message-ID: Belinda, Years ago when I did a lab like this with real lego robots, I used a stop watch and timed all the robots from several different starting points. Lately, I haven't been so careful about trying to compare their performance in a quantitative way. Instead, the students typically agree which behavior is best and are actually more interested in talking about how the various approaches work. Lisa On Tue, 13 Mar 2007, belinda thom wrote: > Lisa, > > Thanks for the pointer...its been useful to see how you created a multi-robot > world (much easier than what I'd been doing). > > I now have a question about how you compared robots for your subsumption > robots finding lights in various flavors of room lab. > > One approach would be to put students robot brains into the same room and see > which one finds the light first. But that adds a new complexity to the > problem that the students wouldn't have explicitly planned for. As an > alternative, I tried to run two pyrobot simulators at the same time, one > running each robot. But I then ran into socket address complaints. My current > thinking is to increment a counter for each update call, and to compare based > on the total number of steps each robot has. > > Any other ideas? > > --b > > On Mar 9, 2007, at 7:58 AM, Lisa Meeden wrote: > >> Belinda, >> >> I am teaching an introductory cognitive science class this semester >> and came up with a fun Braitenberg world. It is based on an example >> from the "Understanding Intelligence" book, where what they call >> "helping behavior" emerges. It doesn't quite work the same way in >> simulation, but still leads to some interesting interactions. >> >> There are three robots all attracted to light, with light sensors on >> their fronts. Two of the robots have light emitters on their backs. >> Plus there is also a light in the environment. >> >> You can see the lab here: >> >> http://web.cs.swarthmore.edu/~meeden/cogs1/s07/lab04.html >> >> Near the bottom of this page there are some links to the code you'd >> need to run this example. >> >> Lisa >> >> --- >> Lisa Meeden Computer Science Department >> Associate Professor Swarthmore College >> Chair Cognitive Science Program 500 College Ave. >> meeden@cs.swarthmore.edu Swarthmore, PA 19081 >> www.cs.swarthmore.edu/~meeden 610-328-8565 >> >> On Thu, 8 Mar 2007, belinda thom wrote: >> >>> Am also forwarding this one due to error in email address. >>> >>>> Hi, >>>> I'm wondering if any of you have written some flashy looking Braitenberg >>>> simulations via Pyro. >>>> I've tried out individual Braitenberg brains in various worlds, but the >>>> behaviour isn't so interesting when there's not several robots of >>>> different types interacting. For a peek at collective behavior, I found: >>>> http://people.cs.uchicago.edu/~wiseman/vehicles/ >>>> but the code is not available. The Understanding Intelligence book also >>>> provides a simulator at: >>>> http://www.ifi.unizh.ch/groups/ailab/people/lambri/mitbook/braitenberg/braitenberg.html >>>> but the images look clunky and there's some glaring bugs. >>>> Pyro has such a nice feel to it. I'd love to create some worlds of >>>> similar quality to the ones shown in the wiseman links, but figured I'd >>>> poll you all to see if anyone has already done this. >>>> Also a question: is there a rule of thumb for how many robots can I put >>>> into a world before the CPU bogs down? >>>> Thanks, >>>> --b >>> _______________________________________________ >>> Pyro-users mailing list >>> Pyro-users@pyrorobotics.org >>> http://emergent.brynmawr.edu/mailman/listinfo/pyro-users --- Lisa Meeden Computer Science Department Associate Professor Swarthmore College Chair Cognitive Science Program 500 College Ave. meeden@cs.swarthmore.edu Swarthmore, PA 19081 www.cs.swarthmore.edu/~meeden 610-328-8565 From dblank at brynmawr.edu Wed Mar 14 08:58:06 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Wed Mar 14 08:58:42 2007 Subject: [Pyro-users] Re: subsumption experiments In-Reply-To: References: <37476D68-093E-4F68-851D-539B33CF8617@cs.hmc.edu> <8D91423E-FC90-4516-9798-E92C31036DDC@cs.hmc.edu> Message-ID: <45F7FF6E.2040701@brynmawr.edu> Belinda commented: > As an alternative, I tried to run two pyrobot simulators at the same > time, one running each robot. But I then ran into socket address > complaints. You shouldn't have any problem with running multiple copies of the simulator, given that each simulated robot is listening on a different port. You can assign these ports in the simulated world file, like: sim = TkSimulator((445,496),(26,426),39.911318) sim.addRobot(60000, TkPioneer("Pioneer1", 5.60, 5.59, 5.53, ((.225, .225, -.225, -.225), (.175, -.175, -.175, .175)), "green")) where the first argument to addRobot is the port number. That can be any number (given the constraints of other services, firewall settings, etc). You could also dynamically assign the port, as long as you have some way to make sure that the client (the "robot" connection) would know. -Doug Lisa Meeden wrote: > Belinda, > > Years ago when I did a lab like this with real lego robots, I used a > stop watch and timed all the robots from several different starting > points. > > Lately, I haven't been so careful about trying to compare their > performance in a quantitative way. Instead, the students typically > agree which behavior is best and are actually more interested in > talking about how the various approaches work. > > Lisa > > On Tue, 13 Mar 2007, belinda thom wrote: > >> Lisa, >> >> Thanks for the pointer...its been useful to see how you created a >> multi-robot world (much easier than what I'd been doing). >> >> I now have a question about how you compared robots for your >> subsumption robots finding lights in various flavors of room lab. >> >> One approach would be to put students robot brains into the same room >> and see which one finds the light first. But that adds a new >> complexity to the problem that the students wouldn't have explicitly >> planned for. As an alternative, I tried to run two pyrobot simulators >> at the same time, one running each robot. But I then ran into socket >> address complaints. My current thinking is to increment a counter for >> each update call, and to compare based on the total number of steps >> each robot has. >> >> Any other ideas? >> >> --b >> >> On Mar 9, 2007, at 7:58 AM, Lisa Meeden wrote: >> >>> Belinda, >>> >>> I am teaching an introductory cognitive science class this semester >>> and came up with a fun Braitenberg world. It is based on an example >>> from the "Understanding Intelligence" book, where what they call >>> "helping behavior" emerges. It doesn't quite work the same way in >>> simulation, but still leads to some interesting interactions. >>> >>> There are three robots all attracted to light, with light sensors on >>> their fronts. Two of the robots have light emitters on their backs. >>> Plus there is also a light in the environment. >>> >>> You can see the lab here: >>> >>> http://web.cs.swarthmore.edu/~meeden/cogs1/s07/lab04.html >>> >>> Near the bottom of this page there are some links to the code you'd >>> need to run this example. >>> >>> Lisa >>> >>> --- >>> Lisa Meeden Computer Science Department >>> Associate Professor Swarthmore College >>> Chair Cognitive Science Program 500 College Ave. >>> meeden@cs.swarthmore.edu Swarthmore, PA 19081 >>> www.cs.swarthmore.edu/~meeden 610-328-8565 >>> >>> On Thu, 8 Mar 2007, belinda thom wrote: >>> >>>> Am also forwarding this one due to error in email address. >>>> >>>>> Hi, >>>>> I'm wondering if any of you have written some flashy looking >>>>> Braitenberg simulations via Pyro. >>>>> I've tried out individual Braitenberg brains in various worlds, but >>>>> the behaviour isn't so interesting when there's not several robots >>>>> of different types interacting. For a peek at collective behavior, >>>>> I found: >>>>> http://people.cs.uchicago.edu/~wiseman/vehicles/ >>>>> but the code is not available. The Understanding Intelligence book >>>>> also provides a simulator at: >>>>> http://www.ifi.unizh.ch/groups/ailab/people/lambri/mitbook/braitenberg/braitenberg.html >>>>> >>>>> but the images look clunky and there's some glaring bugs. >>>>> Pyro has such a nice feel to it. I'd love to create some worlds of >>>>> similar quality to the ones shown in the wiseman links, but figured >>>>> I'd poll you all to see if anyone has already done this. >>>>> Also a question: is there a rule of thumb for how many robots can I >>>>> put into a world before the CPU bogs down? >>>>> Thanks, >>>>> --b >>>> _______________________________________________ >>>> Pyro-users mailing list >>>> Pyro-users@pyrorobotics.org >>>> http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > > --- > Lisa Meeden Computer Science Department > Associate Professor Swarthmore College > Chair Cognitive Science Program 500 College Ave. > meeden@cs.swarthmore.edu Swarthmore, PA 19081 > www.cs.swarthmore.edu/~meeden 610-328-8565 > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > From bthom at cs.hmc.edu Thu Mar 15 00:24:50 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Thu Mar 15 00:24:49 2007 Subject: [Pyro-users] Re: subsumption experiments In-Reply-To: References: <37476D68-093E-4F68-851D-539B33CF8617@cs.hmc.edu> <8D91423E-FC90-4516-9798-E92C31036DDC@cs.hmc.edu> Message-ID: <27694D45-9AAD-4916-987C-B0CD2A509C1A@cs.hmc.edu> On Mar 14, 2007, at 6:01 AM, Lisa Meeden wrote: > Belinda, > > Years ago when I did a lab like this with real lego robots, I used a > stop watch and timed all the robots from several different starting > points. > > Lately, I haven't been so careful about trying to compare their > performance in a quantitative way. Instead, the students typically > agree which behavior is best and are actually more interested in > talking about how the various approaches work. > > Lisa Lisa, I agree that a more qualitative approach is probably the way to go. I really like the lab, perhaps in part b/c I've (outside of commercial control systems venues) never done any "real" robotics programming. The simulator, as you already know, just makes the concepts so much more FUN. My students are already having fun trying to write "wall following" behaviors and one noted that avoid isn't even needed given how she's written her wall following code. I'm sure there are many fancy algorithms that use line fitting to estimate what's a wall. For now, I've tried various games with statistics (e.g. average and variance of front left, sampled five times consecutively) that produces some interesting behavior (I'm currently only using the size of the variance to estimate walls). My students are now clamoring for more high-level reporting capabilities. I now can report number of steps from start to found light, but they'd like stats on how many times each behaviors been active. This got me to thinking: How hard would it be to change the color of the trace that's drawn so it (roughly) indicates which behaviors were controlling which line segments? Or, how easy would it be to have a callback of some sort reset the stats when a user drags the robot to a new location with the mouse? I have some other high-level Pyro questions too, but I'll include that in a different email. --b From dblank at brynmawr.edu Thu Mar 15 00:40:14 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Thu Mar 15 00:40:27 2007 Subject: [Pyro-users] Re: subsumption experiments In-Reply-To: <27694D45-9AAD-4916-987C-B0CD2A509C1A@cs.hmc.edu> References: <37476D68-093E-4F68-851D-539B33CF8617@cs.hmc.edu> <8D91423E-FC90-4516-9798-E92C31036DDC@cs.hmc.edu> <27694D45-9AAD-4916-987C-B0CD2A509C1A@cs.hmc.edu> Message-ID: <45F8DC3E.3000606@brynmawr.edu> belinda thom wrote: > How hard would it be to change the color of the trace that's drawn so it > (roughly) indicates which behaviors were controlling which line segments? Cool idea! We've had to construct such graphs before outside of the simulator, like this one where we drew a state number: http://dangermouse.brynmawr.edu/~dblank/images/bringinguprobot-talk/fig4.gif but that would be quite handy to do dynamically. I think if you look in pyrobot/simulators/pysim.py and looked at where .trail was being used, you could do something like: def addTrail(self, pos, index, robot): self.trail[pos][index] = robot._gx, robot._gy, robot._ga, robot.state where .state was the color of the "state" it was in. Then you just need to change TkSimulator.redraw() to use that color, rather than the color of the robot or "trail". > Or, how easy would it be to have a callback of some sort reset the stats > when a user drags the robot to a new location with the mouse? You can define or redefine the mouse clicks in TkSimulator.addMouseBindings() -Doug > I have some other high-level Pyro questions too, but I'll include that > in a different email. > > --b From bthom at cs.hmc.edu Thu Mar 15 18:57:04 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Thu Mar 15 18:57:04 2007 Subject: [Pyro-users] sensor data, value versus distance Message-ID: <9EC523B6-CF27-4EF8-8DA6-6F942590BE77@cs.hmc.edu> Hi, I've read thru the Sensors module on the Wiki, which provides a lot of useful information. However, I'm still uncertain what the answer is to the question that originally led me there, so I thought I'd try the list. If I do something like: robot.range[0].distance() and then robot.range[0].value I often get very similar answers (even calling distance or value multiple times gives different answers, even if the robot is not moving, presumably b/c the simulation models noise). Is there a difference between these two? When would one use one versus the other? Also, is the dead reckoning (e.g. robot.x, robot.y, robot.theta) considered "global" information, or is this "local enough" to the robot to be used by a layer in a subsumption architecture? As always, thanks, --b p.s. I don't have access to robots, so when I ask questions on this list, its always wrt simulated robots. From dblank at brynmawr.edu Thu Mar 15 20:12:38 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Thu Mar 15 20:12:35 2007 Subject: [Pyro-users] sensor data, value versus distance In-Reply-To: <9EC523B6-CF27-4EF8-8DA6-6F942590BE77@cs.hmc.edu> References: <9EC523B6-CF27-4EF8-8DA6-6F942590BE77@cs.hmc.edu> Message-ID: <1256.69.253.206.145.1174007558.squirrel@webmail.brynmawr.edu> On Thu, March 15, 2007 7:57 pm, belinda thom said: > Hi, > > I've read thru the Sensors module on the Wiki, which provides a lot > of useful information. However, I'm still uncertain what the answer > is to the question that originally led me there, so I thought I'd try > the list. > > If I do something like: > > robot.range[0].distance() > > and then > > robot.range[0].value > > I often get very similar answers (even calling distance or value > multiple times gives different answers, even if the robot is not > moving, presumably b/c the simulation models noise). > > Is there a difference between these two? When would one use one > versus the other? Hi Belinda, They are the same. We originally had the distance method for all similar sensors, but then realized that it isn't always a distance---sometimes it is just a value. For example, you wouldn't want to call the reading from robot.light[0] a distance. BTW, the noise can also be adjusted on simulated sensors. For example, if you: >>> robot.light[0]._noise [0.05, 0.05] >>> robot.light[0]._noise = [0, 0] you can turn noise off for all sensors. You could also change the amount of noise per sensor. (This is a very simple noise model, an area that could be enhanced. But it is better than no noise.) > Also, is the dead reckoning (e.g. robot.x, robot.y, robot.theta) > considered "global" information, or is this "local enough" to the > robot to be used by a layer in a subsumption architecture? It should be a local estimation of global position. However, for the Pyrobot simulator, it does not contain any noise, so it is also perfect global information. At least 0,0 is the position that each robot begins in. (Making these values less than perfect is another area where Pyro could be enhanced. There are some comments in the pyrobot/simulator/pysim.py (look for FIXME if interested).) > As always, thanks, You're welcome; hope this helps! -Doug > --b > > p.s. I don't have access to robots, so when I ask questions on this > list, its always wrt simulated robots. From bthom at cs.hmc.edu Fri Mar 16 01:12:14 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Fri Mar 16 01:12:13 2007 Subject: [Pyro-users] light sensor questions Message-ID: Hi again, I'm on a roll :-). The range info re: distance() vs value was quite enlightening. Now I'm wondering more about the light sensors. I discovered dir(robot.light[0]) which led me to try out things like: robot.light[0].angles() (both lights are angle 0---what does this mean? how can two light sensors both have the same angle?) and robot.light[0].hits, which returned a pair of 3-tuples. What does it mean for a light to have hits? I must also confess that I'm confused about what hits means wrt range as well. The Sensor page says: -------- One could ask the robot to tell you where it hit something. For example, you could write robot.range[2].hit() which will return the (x,y,z) of the hit: robot.range[3].hit # returns x, y, z and the geometry of the originating ray of the sensor: robot.range[3].geometry # returns x, y, z, theta in radians, arc width --------- but I'm unsure what this means (the robots I'm using are ones I inherited from Lisa's asst, there doesn't appear to be any bumper sensors on these robots). I would have thought hits referred to locations that the robot is currently touching something. (My lack of familiarity w/real robots here, in addition to conflation in terms, is likely the problem; nonetheless I hope others might benefit from these basic questions, which is why I'm sending them to the list.) There was not much discussion on the sensor pages about lights, so I'm hoping you can provide me some pointers to additional information. Many thanks, --b From dblank at brynmawr.edu Fri Mar 16 06:17:33 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri Mar 16 06:17:31 2007 Subject: [Pyro-users] light sensor questions In-Reply-To: References: Message-ID: <1566.68.39.198.212.1174043853.squirrel@webmail.brynmawr.edu> On Fri, March 16, 2007 2:12 am, belinda thom said: > Hi again, > > I'm on a roll :-). > > The range info re: distance() vs value was quite enlightening. > > Now I'm wondering more about the light sensors. > > I discovered > > dir(robot.light[0]) > > which led me to try out things like: > > robot.light[0].angles() > > (both lights are angle 0---what does this mean? how can two light > sensors both have the same angle?) .angles() should return the angle that the sensor is point with respect to the robot. If these two sensors are pointing in the same direction, then they could both be the same. Zero should be straight ahead. > and > > robot.light[0].hits, > > which returned a pair of 3-tuples. What does it mean for a light to > have hits? I must also confess that I'm confused about what hits > means wrt range as well. The Sensor page says: .hits is only meaningful for range sensors, so lights shouldn't have this method, or it should return data that indicates that it is meaningless. > -------- > One could ask the robot to tell you where it hit something. For > example, you could write robot.range[2].hit() which will return the > (x,y,z) of the hit: > > robot.range[3].hit # returns x, y, z > and the geometry of the originating ray of the sensor: > > robot.range[3].geometry # returns x, y, z, theta in radians, arc width > > --------- > > but I'm unsure what this means (the robots I'm using are ones I > inherited from Lisa's asst, there doesn't appear to be any bumper > sensors on these robots). I would have thought hits referred to > locations that the robot is currently touching something. (My lack of > familiarity w/real robots here, in addition to conflation in terms, > is likely the problem; nonetheless I hope others might benefit from > these basic questions, which is why I'm sending them to the list.) Yes, that text is more confusing than helpful. Here, "hit" is suggestive of the ray that extends from the range sensor and then intersects with an object in the world. So, the (x,y,z) tuple is the location (in local coordinates) where the sensor detected an object. There is a LPSWander brain (for "local perceptual space") that graphically displays the local "hits" and also a "global perceptual space" where it translates the local coordinates into global coordinates to build a map via local occupancy "hits". (For this brain, I think you have to drive the robot with the joystick. This global map works too well, because there is no noise in the dead reckoning. Adding this kind of noise would make one appreciate algorithms like SLAM and AMC localization much more.) > There was not much discussion on the sensor pages about lights, so > I'm hoping you can provide me some pointers to additional information. There isn't much more to light sensors. They just detect how much light is coming into the sensor. You can also click "View" on the device line when "light[0]" is selected and see values in real time. You'll notice a light[0][0].rgb tuple. This acts like a 1-pixel camera indicating the amount of red,green,blue light falling on the sensor. Try the Fireflies world in the Pyrobot simulator. You can also see what methods and properties objects have by clicking Robot -> View from the menu. It lists the methods and the first line of the doctext from the python file. (These questions are great; we just need to take them and their answers and put them into the documentation.) -Doug > Many thanks, > > --b > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 6501 From bthom at cs.hmc.edu Fri Mar 16 15:28:27 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Fri Mar 16 15:28:28 2007 Subject: [Pyro-users] light sensor questions In-Reply-To: <1566.68.39.198.212.1174043853.squirrel@webmail.brynmawr.edu> References: <1566.68.39.198.212.1174043853.squirrel@webmail.brynmawr.edu> Message-ID: Your answers are at least as good as my questions :-). On Mar 16, 2007, at 4:17 AM, Douglas S. Blank wrote: >> but I'm unsure what this means (the robots I'm using are ones I >> inherited from Lisa's asst, there doesn't appear to be any bumper >> sensors on these robots). I would have thought hits referred to >> locations that the robot is currently touching something. (My lack of >> familiarity w/real robots here, in addition to conflation in terms, >> is likely the problem; nonetheless I hope others might benefit from >> these basic questions, which is why I'm sending them to the list.) > > Yes, that text is more confusing than helpful. Here, "hit" is > suggestive > of the ray that extends from the range sensor and then intersects > with an > object in the world. So, the (x,y,z) tuple is the location (in local > coordinates) where the sensor detected an object. So what's the difference between hit and distance (or value)? Given hit values, is distance uniquely determined? I am very glad to hear stall is a local measurement. Perhaps in real life it would be implemented by noticing wheel slippage somehow (via an increased motor current)? Actually, the more I think about this, the harder it seems to determine on a real robot when a stall is occurring, because even with feedback like quadrature, that's wrt the axles, not motion on the ground. Almost seems like you'd need a camera and image analysis to know for sure that a robot isn't moving. I realize that, as these questions dig deeper, it would be valuable for me to know more about the code's internals---something I was hoping to avoid, at least until the end of my course. I plan to baby- step start this effort by changing the trace/color locally. Regarding the wiki and need for a central place to put answers to these kinds of questions, I agree something is needed. The Pyro online stuff is good, but things are still scattered. For that reason, I tended towards writing my own subsumption Pyro-using instructions for the students, and I then pointed them off to useful pages like the Sensors page. But even with that, I've not been able to find answers to basics like "what are the units of move's rotation and translation". Thus, for instance, in my subsumption lab, I say that these values can change from -1 to 1, but that if you'd like to know what meaning these values have (i.e. their units), then issue a command like robot.move(0,1) and estimate how long it takes for 1 complete revolution. Later I tried robot.move(0,15) and was very surprised to see it turning even more quickly. I could have sworn I found some online text about the move range being 0 to 1. On another note, wrt subsumption layers, if I issue a move in a particular update function, and then I "try it out" with the step button, it only moves for a brief period of time and then stops. Given the stuff in my prior paragraph, I'd have expected it to move until the next step command was issued that declared move should be something different. Is it b/c, with the button press, the simulator goes ahead and models the fact that a layer in the associated run-via- Run-button would only run for a fixed period of time before the robot had to reexamine its sensors? Also, is it the case that a subsumption layer is considered as possible for being active in the current time step only if SOME move command (it could even be 0,0) is issued by its update function? Thanks again! --b From dblank at brynmawr.edu Fri Mar 16 16:00:43 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri Mar 16 16:00:40 2007 Subject: [Pyro-users] light sensor questions In-Reply-To: References: <1566.68.39.198.212.1174043853.squirrel@webmail.brynmawr.edu> Message-ID: <37374.69.253.206.161.1174078843.squirrel@webmail.brynmawr.edu> On Fri, March 16, 2007 4:28 pm, belinda thom said: > Your answers are at least as good as my questions :-). :) Thanks! > On Mar 16, 2007, at 4:17 AM, Douglas S. Blank wrote: > >>> but I'm unsure what this means (the robots I'm using are ones I >>> inherited from Lisa's asst, there doesn't appear to be any bumper >>> sensors on these robots). I would have thought hits referred to >>> locations that the robot is currently touching something. (My lack of >>> familiarity w/real robots here, in addition to conflation in terms, >>> is likely the problem; nonetheless I hope others might benefit from >>> these basic questions, which is why I'm sending them to the list.) >> >> Yes, that text is more confusing than helpful. Here, "hit" is >> suggestive >> of the ray that extends from the range sensor and then intersects >> with an >> object in the world. So, the (x,y,z) tuple is the location (in local >> coordinates) where the sensor detected an object. > > So what's the difference between hit and distance (or value)? > > Given hit values, is distance uniquely determined? ".distance" is the distance between the sensor's pose coordinates (".geometry"), and where the sensor's ray intersects an object, at location ".hit". > I am very glad to hear stall is a local measurement. Perhaps in real > life it would be implemented by noticing wheel slippage somehow (via > an increased motor current)? Actually, the more I think about this, > the harder it seems to determine on a real robot when a stall is > occurring, because even with feedback like quadrature, that's wrt the > axles, not motion on the ground. Almost seems like you'd need a > camera and image analysis to know for sure that a robot isn't moving. That's basically how "wheel encoders" work. There is a sensor (normally IR I think) that is pointed at a wheel at looks for spots on the wheel, maybe 32 on a wheel. > I realize that, as these questions dig deeper, it would be valuable > for me to know more about the code's internals---something I was > hoping to avoid, at least until the end of my course. I plan to baby- > step start this effort by changing the trace/color locally. Some of this requires some knowledge of robots in general, and Pyro specifically. > Regarding the wiki and need for a central place to put answers to > these kinds of questions, I agree something is needed. The Pyro > online stuff is good, but things are still scattered. For that > reason, I tended towards writing my own subsumption Pyro-using > instructions for the students, and I then pointed them off to useful > pages like the Sensors page. But even with that, I've not been able > to find answers to basics like "what are the units of move's rotation > and translation". Thus, for instance, in my subsumption lab, I say > that these values can change from -1 to 1, but that if you'd like to > know what meaning these values have (i.e. their units), then issue a > command like robot.move(0,1) and estimate how long it takes for 1 > complete revolution. Later I tried robot.move(0,15) and was very > surprised to see it turning even more quickly. I could have sworn I > found some online text about the move range being 0 to 1. Yeah, that shouldn't be the case. With the simulator (and real robots), you shouldn't be able to go faster than 1, but in reality, there is no maximum. We also could have set 1 to be a certain mm/sec but instead we made it completely ad hoc. One could just say that 1 is fullspeed for the robot, whatever that happens to be. > On another note, wrt subsumption layers, if I issue a move in a > particular update function, and then I "try it out" with the step > button, it only moves for a brief period of time and then stops. > Given the stuff in my prior paragraph, I'd have expected it to move > until the next step command was issued that declared move should be > something different. Is it b/c, with the button press, the simulator > goes ahead and models the fact that a layer in the associated run-via- > Run-button would only run for a fixed period of time before the robot > had to reexamine its sensors? Also, is it the case that a subsumption > layer is considered as possible for being active in the current time > step only if SOME move command (it could even be 0,0) is issued by > its update function? When you run a brain, you run the step() method continuously---and nothing else special happens. If you issue a move(), than will stay in effect until you issue another action (some real robots will time-out and stop if they haven't received a command in a while, say 3 seconds). When you press the "Step" button, it does something special: - it executes the step() code - waits about a 1/10 of a second - it then stops the robot This was designed so that a series of step()'s would approximate the continuous movement, but allow you to check values in between. Good questions! Someone will have to go through the mailing list and add this to the wiki. -Doug > Thanks again! > > --b > -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 6501 From bthom at cs.hmc.edu Fri Mar 16 16:12:09 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Fri Mar 16 16:12:11 2007 Subject: [Pyro-users] Re: subsumption experiments In-Reply-To: <45F8DC3E.3000606@brynmawr.edu> References: <37476D68-093E-4F68-851D-539B33CF8617@cs.hmc.edu> <8D91423E-FC90-4516-9798-E92C31036DDC@cs.hmc.edu> <27694D45-9AAD-4916-987C-B0CD2A509C1A@cs.hmc.edu> <45F8DC3E.3000606@brynmawr.edu> Message-ID: <3D9EDBB4-F1D2-4356-8EE1-C42B97E64113@cs.hmc.edu> For others out there following this thread, http://pyrorobotics.org/?page=PyroModuleBehaviorBasedControl is a crucial link. --b From bthom at cs.hmc.edu Fri Mar 16 16:26:12 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Fri Mar 16 16:26:12 2007 Subject: [Pyro-users] Re: subsumption experiments In-Reply-To: <45F8DC3E.3000606@brynmawr.edu> References: <37476D68-093E-4F68-851D-539B33CF8617@cs.hmc.edu> <8D91423E-FC90-4516-9798-E92C31036DDC@cs.hmc.edu> <27694D45-9AAD-4916-987C-B0CD2A509C1A@cs.hmc.edu> <45F8DC3E.3000606@brynmawr.edu> Message-ID: I'm attempting to implement this suggestion (the step method in pysim has greatly aided in my understanding), but I'm having trouble figuring out how to get "robot.state". At the Pyro command line, dir(robot) returns entries like move and brain, but self.robot.brain returns None and type(robot.brain) returns 'NoneType'. Via the view button, I can view the brain and see the brain's attributes (e.g. behaviors, name='SubsumptionBrain`, found, which is my own personal attribute added to SubsumptionBrain), but am uncertain how to access them from within Simulator's addTrail method (I've tried doing robot.found in there but Python complains). Any pointers? --b From dblank at brynmawr.edu Fri Mar 16 16:48:09 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri Mar 16 16:48:06 2007 Subject: [Pyro-users] Re: subsumption experiments In-Reply-To: References: <37476D68-093E-4F68-851D-539B33CF8617@cs.hmc.edu> <8D91423E-FC90-4516-9798-E92C31036DDC@cs.hmc.edu> <27694D45-9AAD-4916-987C-B0CD2A509C1A@cs.hmc.edu> <45F8DC3E.3000606@brynmawr.edu> Message-ID: <49518.69.253.206.161.1174081689.squirrel@webmail.brynmawr.edu> This is not going to be the easiest place to start hacking Pyro because you are on two different sides: the pysim is a server, and the robot and brain are over on the client side. You would need a way to set a state property in the server. To test this idea out, you could reach into the simulator from outside, and set a robot's state property. For example, you could do something like: robot.simulation[0].eval("self.robots[0].state = 'red'") To do this in a more proper way, you'd probably want to create a method on the client, like: robot.setState('red') That would take a method of encoding the arguments, and then decoding them on the server side. This code is a major hack right now, where messages get turned into a string (like "s_red") and then decoded in pysim.py. As an aside, "self" in the Pyro Command window is the brain object. -Doug On Fri, March 16, 2007 5:26 pm, belinda thom said: > I'm attempting to implement this suggestion (the step method in pysim > has greatly aided in my understanding), but I'm having trouble > figuring out how to get "robot.state". > > At the Pyro command line, > > dir(robot) > > returns entries like move and brain, but > > self.robot.brain > > returns > > None > > and > > type(robot.brain) > > returns > > 'NoneType'. > > Via the view button, I can view the brain and see the brain's > attributes (e.g. behaviors, name='SubsumptionBrain`, found, which is > my own personal attribute added to SubsumptionBrain), but am > uncertain how to access them from within Simulator's addTrail method > (I've tried doing robot.found in there but Python complains). > > Any pointers? > > --b > -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 6501 From bthom at cs.hmc.edu Sat Mar 17 02:21:51 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Sat Mar 17 02:21:51 2007 Subject: [Pyro-users] light sensor questions In-Reply-To: <1566.68.39.198.212.1174043853.squirrel@webmail.brynmawr.edu> References: <1566.68.39.198.212.1174043853.squirrel@webmail.brynmawr.edu> Message-ID: On Mar 16, 2007, at 4:17 AM, Douglas S. Blank wrote: > > Yes, that text is more confusing than helpful. Here, "hit" is > suggestive > of the ray that extends from the range sensor and then intersects > with an > object in the world. So, the (x,y,z) tuple is the location (in local > coordinates) where the sensor detected an object. So what do local coordinates refer to? Is this wrt some "central spot" inside the robot? I've read about the geometry stuff, in conjunction with your hits explanation, but I'm still very confused on how to proceed. The reason I am asking these questions is that I'd like to be able to write a method to ask if three adjacent position sensors are looking at something that lies in the same plane (actually, along the same line, since I'm using the 2d world). I'm currently doing some hacks using sensor angles and distances, but that stuff isn't working the way I'd expect. Then I started to think perhaps all this stuff is already embedded (and debugged :-) in a local coordinates viewpoint, which led me to wonder if each sensor shares the same underlying local reference or not, and how to use this info to extract what I want. FWIW, I've looked at, say robot.range[2].hit and robot.range [2].geometry and there is exactly one element in these two tuples that appear to have identical values (0.0299...). From dblank at brynmawr.edu Sat Mar 17 08:45:43 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Sat Mar 17 08:45:41 2007 Subject: [Pyro-users] light sensor questions In-Reply-To: References: <1566.68.39.198.212.1174043853.squirrel@webmail.brynmawr.edu> Message-ID: <58209.69.253.206.161.1174139143.squirrel@webmail.brynmawr.edu> On Sat, March 17, 2007 3:21 am, belinda thom said: > > On Mar 16, 2007, at 4:17 AM, Douglas S. Blank wrote: > >> >> Yes, that text is more confusing than helpful. Here, "hit" is >> suggestive >> of the ray that extends from the range sensor and then intersects >> with an >> object in the world. So, the (x,y,z) tuple is the location (in local >> coordinates) where the sensor detected an object. > > So what do local coordinates refer to? Is this wrt some "central > spot" inside the robot? Yes. The origin is the center of the robot. > I've read about the geometry stuff, in conjunction with your hits > explanation, but I'm still very confused on how to proceed. > > The reason I am asking these questions is that I'd like to be able to > write a method to ask if three adjacent position sensors are looking > at something that lies in the same plane (actually, along the same > line, since I'm using the 2d world). I'm currently doing some hacks > using sensor angles and distances, but that stuff isn't working the > way I'd expect. Then I started to think perhaps all this stuff is > already embedded (and debugged :-) in a local coordinates viewpoint, > which led me to wonder if each sensor shares the same underlying > local reference or not, and how to use this info to extract what I want. Take a look at pyrobot/plugins/brains/LPSWander.py which uses pyrobot/map/lps.py and pyrobot/map/gps.py to see how you could use geometry and hits. > FWIW, I've looked at, say robot.range[2].hit and robot.range > [2].geometry and there is exactly one element in these two tuples > that appear to have identical values (0.0299...). Planning ahead, the geometry and hits also have a z component, for height. Of course, this won't change for these sensors. -Doug > > > -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 6501 From galk at cs.biu.ac.il Fri Mar 23 02:28:42 2007 From: galk at cs.biu.ac.il (Gal Kaminka) Date: Fri Mar 23 09:03:02 2007 Subject: [Pyro-users] CFP Special Issue on Multi-Robot Coverage, Search, and Exploration In-Reply-To: <001d01c756bb$b6673a40$0401a8c0@amirshapiro> References: <001d01c756bb$b6673a40$0401a8c0@amirshapiro> Message-ID: <200703230928.43127.galk@cs.biu.ac.il> (Our apologies if you receive multiple copies of this message.) Please distribute to colleagues and interest parties as appropriate Dear Colleague. We are happy to announce a call for papers, for a special issue of the Annals of Math and Artificial Intelligence (AMAI) journal on Multi-Robot Coverage, Search, and Exploration. Please see below for details. ----------------------------------------------------------------------- Research in multi robot area coverage, search, and exploration has been receiving consistent attention in recent years, due to the increasing number of real-world applications, such as vacuuming, lawn mowing, demining, surveillance, search and rescue operations, mapping, planetary exploration, etc. All of these applications require that the area of interest be covered by the robots sensors or end-effectors for various purposes. The use of multiple robots potentially provides redundancy and offers opportunities for increasing efficiency. The problem of multi robot area coverage imposes great challenges to researchers in robotics and AI area. This special issue will explore the new research frontiers that emerge as new applications are identified and new technologies in robots are introduced. The special issue follows in the footsteps of the highly successful 2001 AMAI special issue on coverage. We seek high-quality papers reporting on innovative work on coverage, search, and exploration and related areas of research. Our focus is on algorithmic and analytical approaches. Heuristic approaches should be supported by analysis and empirical evidence. Submissions extending previously published conference papers are acceptable, as long as the extensions are clearly explained. The following potential topics are of interest: Complete-coverage path planning for a group of robots in known and unknown environments Multiple robot coordination in area coverage, exploration, and/or search; Issues in trade-off of tasks between teams members; how team members decide who performs which task Fault-tolerance and robustness in multi robot area coverage Performance metrics for coverage, exploration, and search. of the use of heterogeneous teams (combining different vehicles/ end-effectors/ sensors) Novel applications of coverage, exploration, and search The effect of the task complexity and of the environment on the design of the cooperative capabilities of multi-robot systems Communications aspects between the robots during multi robot area coverage Repeated coverage and patrolling On-line search for a path, navigation Important Dates --------------- August 15, 2007: Deadline for Paper Submission November 15, 2007: Completion of First Review February 15, 2008: Completion of Final Review Submission of papers -------------------- All manuscripts should include a title page containing the title of the paper, full names and affiliations, complete postal and electronic addresses, phone and fax numbers, an abstract, and keywords. The contacting author should be clearly identified. Electronic submissions in PDF, postscript, or zipped postscript form are strongly encouraged, and will expedite the review and publication process. Please email the guest editors (addresses below). The submission message should use the subject $-1??AMAI Submission??. Guest Editors ------------- Dr. Gal A. Kaminka Computer Science Department Bar Ilan University Ramat Gan 52900, Israel Phone: +972 3 531 7607 Fax: +972 3 736 0498 Email: galk@cs.biu.ac.il Dr. Amir Shapiro Department of Mechanical Engineering Ben Gurion University of the Negev P.O.Box 653 Beer Sheva 84105, Israel Phone: +972 8 647 7165 Fax: +972 8 647 2813 Email: ashapiro@bgu.ac.il -- ----------------------------------------------------------------------- Gal A. Kaminka, Ph.D. http://www.cs.biu.ac.il/~galk Assistant Professor Computer Science Dept. Bar Ilan University Only those who see the invisible can do the impossible "Death is an engineering problem." -- Bart Kosko, "Fuzzy Thinking" "But life is not an engineering task." -- Gal A. Kaminka From galk at macs.biu.ac.il Fri Mar 23 03:39:31 2007 From: galk at macs.biu.ac.il (Gal Kaminka) Date: Fri Mar 23 09:03:02 2007 Subject: [Pyro-users] CFP: Workshop on Evaluating Architectures for Intelligence Message-ID: <200703231039.31936.galk@cs.biu.ac.il> (Our apologies if you receive multiple copies of this message.) Dear Colleague. We are happy to announce a call for submissions to the AAAI 2007 Workshop on Evaluating Architectures for Intelligence http://www.cs.biu.ac.il/~galk/architectures/ Details are below. Please distribute to all interested parties, as appropriate. -------------------------------------------------------------------- Purpose and Scope ================= Cognitive architectures form an integral part of robots and agents. Architectures structure and organize the knowledge and algorithms used by the agents to select actions in dynamic environments, plan and solve problems, learn, and coordinate with others. Architectures enable intelligent behavior by agents, and serve to integrate general capabilities expected of an intelligent agent (e.g. planning and learning), to implement and test theories about natural or synthetic agent cognition, and to explore domain-independent mechanisms for intelligence. As AI research has improved in formal and empirical rigor, traditional evaluation methodologies for architectures have sometimes proved insufficient. On the formal side, rigorous analysis has often proved elusive; we seem to be missing the notation required for formally proving properties of architectures. On the empirical side, experiments which demonstrate generality are notoriously expensive to perform, and are not sufficiently informative. And at a high-level, evaluation is difficult because the criteria are not well defined: Is it generality? Ease of programmability? Compatibility with data from biology and psychology? Applicability in real systems? Recognizing that scientific progress depends on the ability to conduct informative evaluation (by experiment or formal analysis), this workshop will address the methodologies needed for evaluating architectures. The focus is on evaluation methodology, rather than specific architectures; there are many researchers investigating architectures, but surprisingly little published work on evaluation methodology. Thus the workshop's immediate goal is to generate discussion of a wide spectrum of evaluation challenges and methods for addressing them. The next step is to harness such discussions to propose guidelines for evaluation of architectures, that would be acceptable to the AI community, and allow researchers to both evaluate their own work, and the progress of others. We believe such guidelines will facilitate the collection of objective and reproducible evidence of the depth and breadth of an architecture's support for cognition, and its relationship to human or other natural cognition. We intend to publish the results in a special issue of an international journal and to archive presentation slides and explanatory material on an active web site. Key Issues for Discussion ------------------------- The following key questions will be raised to motivate the workshop discussion, with the goal of providing answers (or at least steps towards answers) within the workshop: o What are the underlying research hypotheses one explores with architectures? o Which functions/characteristics turn an architecture into an architecture supporting intelligence? o How are architectures to be compared in an informative manner? o What evaluation methods are needed for different types of cognitive architectures? o What are the criteria and scales of evaluation? o How should we validate the design of a cognitive architecture? o Are there any relevant formal methods? Can we prove properties of architectures? o Can we develop a common ontology for describing architectures and/or the various sets of requirements against which they can be evaluated? o How can data-sets and benchmarks (standardized tasks) be used to evaluate architectures? Are there useful case-studies? o How can we determine what architectures to use for different tasks or environments? Are there any trade-offs involved? Format and Submissions ---------------------- The workshop will be composed of invited and contributed talks on evaluation methodologies, interleaved with panels, and moderated discussions. We seek submission of extended abstracts (2 pages) and short position papers (4 pages) that discuss evaluation methodologies for architectures. Submissions should clearly address architecture evaluation issues and methods and explicitly relate to one or more of the questions posed above. Submissions that discuss specific architectures are only acceptable if they discuss evaluation case-studies. A selected group of contributors will be invited to present their position, to participate in panels, and/or to moderate group discussions. Submissions, in AAAI format, should be emailed by April 15, 2007, to Gal Kaminka (galk@cs.biu.ac.il) and Catherina Burghart (burghart@ira.uka.de), with a subject line containing "ARCH-EVAL SUBMISSION". Important Dates --------------- o Submission of extended abstracts: April 15, 2007 o Notification, selection of speakers: May 7, 2007 o Camera-ready copy of workshop material: May 15, 2007 o Workshop at AAAI 2007: July 22-23, 2007 Organizers ---------- The workshop is co-chaired by Gal A. Kaminka (Bar Ilan University, Israel) and Catherina R. Burghart (University of Karlsruhe, Germany). The organizing committee additionally includes: o Kevin Gluck, Air Force Research Laboratory, USA o Pat Langley, Stanford University, USA o Brian Logan, University of Nottingham, UK o Ralf Mikut, Karlsruhe Institute for Technology, Germany o Praveen Paritosh, Northwestern University, USA o Bilge Say, Middle East Technical University, Turkey o Robert Wray, Soar Technology, Inc., USA -- ----------------------------------------------------------------------- Gal A. Kaminka, Ph.D. http://www.cs.biu.ac.il/~galk Assistant Professor Computer Science Dept. Bar Ilan University Only those who see the invisible can do the impossible "Death is an engineering problem." -- Bart Kosko, "Fuzzy Thinking" "But life is not an engineering task." -- Gal A. Kaminka From nvander at seas.upenn.edu Fri Mar 23 14:13:48 2007 From: nvander at seas.upenn.edu (Nick Vander Valk) Date: Fri Mar 23 14:30:08 2007 Subject: [Pyro-users] Using the fiducial sensor with the Stage Simulator Message-ID: <460426EC.1090404@seas.upenn.edu> Hi, I am currently running off of the pyrobot-5.0.0.iso image and I am trying to set up a stage simulation using pyrobot. I am having problems using the fiducial sensor on a simple robot that I created. I tried using the included everything.world and everything.cfg as a model for this sensor. When I load the server, all of the devices seem to be created without a problem. The issue arises when I attempt to load the robot. I use the supplied Player6665.py script and it loads the simulation, position, and laser, but does not seem to load the fiducial sensor. So, I looked through the Player.py script and it seems that the fiducial sensor is never started by the PlayerRobot() class initialization script. I then tried to manually start the sensor by typing "robot.startDevice('fiducial')" and I get the message: After doing this, if I select View->fiducial data, I can see a green line pointing at the objects and each object shows the number returned by the fiducial sensor. My problem now comes when trying to retrieve this information with the pyrobot interface. I first tried using the object viewer to see the fiducial device. Within that tree (fiducial devices->fiducial[0]->List[0-31]), I get the following attribute error when trying to view the SensorValue: " 'NoneType' object has no attribute '__dict___' " The only thread already in the mailing list that I came across this post: http://emergent.brynmawr.edu/pipermail/pyro-users/2006-February/000261.html When typing " print self.robot.fiducial[0].getDeviceData() " in the command window, I get a list of outputs that look like this: I am not very familiar with python, but I am assuming this is just telling me the data type of the object that is stored there. The end result I am looking for is to extract the range and bearing of the detected object from the fiducial sensor. I also need to know the fiducial id of the object that is being detected so I can discriminate among many landmark objects. If anyone can help me to set up and extract this information from the fiducial sensor, I would really appreciate it. Thanks in advance for your time. Regards, Nick Here are the sections of my world files that I created: simple.cfg: driver ( name "stage" provides ["7000:simulation:0" ] plugin "libstageplugin" # load the named file into the simulator worldfile "simple.world" ) driver ( name "stage" provides ["map:0"] model "border" ) driver ( name "stage" provides ["position2d:0" "laser:0" "fiducial:0"] model "robot1" ) simple.world: rect_robot ( name "robot1" color "red" pose [-6.5 -6.5 0] sick_laser( ) fiducialfinder( range_max 8 range_max_id 5 ) ) From crabbe at usna.edu Mon Mar 26 15:30:36 2007 From: crabbe at usna.edu (Prof Ric Crabbe) Date: Mon Mar 26 15:30:08 2007 Subject: [Pyro-users] video 4 linux In-Reply-To: <45EE4295.2060106@brynmawr.edu> References: <17901.63044.128811.545913@crab.cs.usna.edu> <45EE4295.2060106@brynmawr.edu> Message-ID: <17928.11628.127991.290945@crab.cs.usna.edu> Just an update on my progress. I have a Hauppauge WinTV card that uses the ivtv driver. Apparently the right driver doesn't exist for the card in Core 4, so I went to upgrade to FC 6. It took weeks to do the upgrade, I'll spare you the nightmare, but share my favorite error message: "Please insert Disk -99 to continue". Now, when I go to install Pyro, pyrobot will not install, though everything esle seems to: [root@localhost ~]# yum install player stage gazebo pyrobot Loading "installonlyn" plugin Setting up Install Process Setting up repositories pyrobot 100% |=========================| 951 B 00:00 Reading repository metadata in from local files primary.xml.gz 100% |=========================| 1.8 kB 00:00 ################################################## 3/3 Parsing package install arguments No Match for argument: pyrobot Is there some conflict with FC6? Any ideas what's happening? cheers, ric [root@localhost ~]# cat > /etc/yum.repos.d/pyrobot.repo [pyrobot] name=Python Robotics baseurl=http://PyroRobotics.org/fedora/$releasever/$basearch enabled=1 gpgcheck=1 gpgkey=http://PyroRobotics.org/fedora/RPM-GPG-KEY-dblank [root@localhost ~]# yum install player stage gazebo pyrobot Loading "installonlyn" plugin Setting up Install Process Setting up repositories pyrobot 100% |=========================| 951 B 00:00 Reading repository metadata in from local files primary.xml.gz 100% |=========================| 1.8 kB 00:00 ################################################## 3/3 Parsing package install arguments No Match for argument: pyrobot Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for player to pack into transaction set. player-2.0.3-fc6.i386.rpm 100% |=========================| 34 kB 00:00 ---> Package player.i386 0:2.0.3-fc6 set to be updated ---> Downloading header for gazebo to pack into transaction set. gazebo-0.7.0-fc6.i386.rpm 100% |=========================| 21 kB 00:00 ---> Package gazebo.i386 0:0.7.0-fc6 set to be updated ---> Downloading header for stage to pack into transaction set. stage-2.0.3-fc6.i386.rpm 100% |=========================| 8.6 kB 00:00 ---> Package stage.i386 0:2.0.3-fc6 set to be updated --> Running transaction check --> Processing Dependency: freeglut-devel for package: gazebo --> Processing Dependency: wxPythonGTK2 for package: gazebo --> Processing Dependency: ode for package: player --> Processing Dependency: gsl for package: player --> Processing Dependency: libglut.so.3 for package: gazebo --> Processing Dependency: libode.so.0 for package: gazebo --> Processing Dependency: libglut.so.3 for package: player --> Processing Dependency: gsl for package: gazebo --> Processing Dependency: wxPythonGTK2 for package: player --> Processing Dependency: ode for package: gazebo --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Downloading header for freeglut-devel to pack into transaction set. freeglut-devel-2.4.0-11.f 100% |=========================| 6.7 kB 00:00 ---> Package freeglut-devel.i386 0:2.4.0-11.fc6 set to be updated ---> Downloading header for wxPython to pack into transaction set. wxPython-2.6.3.2-2.fc6.i3 100% |=========================| 146 kB 00:01 ---> Package wxPython.i386 0:2.6.3.2-2.fc6 set to be updated ---> Downloading header for freeglut to pack into transaction set. freeglut-2.4.0-11.fc6.i38 100% |=========================| 9.0 kB 00:00 ---> Package freeglut.i386 0:2.4.0-11.fc6 set to be updated ---> Downloading header for ode to pack into transaction set. ode-0.7-2.fc6.i386.rpm 100% |=========================| 4.1 kB 00:00 ---> Package ode.i386 0:0.7-2.fc6 set to be updated ---> Downloading header for gsl to pack into transaction set. gsl-1.8-1.1.i386.rpm 100% |=========================| 7.2 kB 00:00 ---> Package gsl.i386 0:1.8-1.1 set to be updated --> Running transaction check --> Processing Dependency: libwx_gtk2u_animate-2.6.so.0 for package: wxPython --> Processing Dependency: libwx_gtk2u_html-2.6.so.0(WXU_2.6) for package: wxPython --> Processing Dependency: libwx_gtk2u_xrc-2.6.so.0(WXU_2.6.2) for package: wxPython --> Processing Dependency: libwx_gtk2u_gl-2.6.so.0 for package: wxPython --> Processing Dependency: libwx_gtk2u_core-2.6.so.0 for package: wxPython --> Processing Dependency: libwx_baseu_net-2.6.so.0 for package: wxPython --> Processing Dependency: libwx_baseu_net-2.6.so.0(WXU_2.6) for package: wxPython --> Processing Dependency: libwx_gtk2u_core-2.6.so.0(WXU_2.6) for package: wxPython --> Processing Dependency: libwx_gtk2u_gizmos-2.6.so.0(WXU_2.6) for package: wxPython --> Processing Dependency: libwx_baseu_xml-2.6.so.0 for package: wxPython --> Processing Dependency: libwx_baseu_xml-2.6.so.0(WXU_2.6) for package: wxPython --> Processing Dependency: libwx_gtk2u_core-2.6.so.0(WXU_2.6.2) for package: wxPython --> Processing Dependency: libwx_baseu-2.6.so.0 for package: wxPython --> Processing Dependency: libwx_gtk2u_xrc-2.6.so.0(WXU_2.6) for package: wxPython --> Processing Dependency: libwx_gtk2u_html-2.6.so.0 for package: wxPython --> Processing Dependency: libwx_baseu-2.6.so.0(WXU_2.6.2) for package: wxPython --> Processing Dependency: libwx_gtk2u_gizmos-2.6.so.0 for package: wxPython --> Processing Dependency: libwx_gtk2u_stc-2.6.so.0(WXU_2.6) for package: wxPython --> Processing Dependency: libwx_gtk2u_animate-2.6.so.0(WXU_2.6) for package: wxPython --> Processing Dependency: libwx_gtk2u_stc-2.6.so.0 for package: wxPython --> Processing Dependency: libwx_gtk2u_xrc-2.6.so.0 for package: wxPython --> Processing Dependency: libwx_baseu-2.6.so.0(WXU_2.6) for package: wxPython --> Processing Dependency: libwx_gtk2u_gl-2.6.so.0(WXU_2.6) for package: wxPython --> Processing Dependency: libwx_gtk2u_core-2.6.so.0(WXU_2.6.3) for package: wxPython --> Processing Dependency: libwx_gtk2u_qa-2.6.so.0 for package: wxPython --> Processing Dependency: libwx_gtk2u_adv-2.6.so.0(WXU_2.6) for package: wxPython --> Processing Dependency: libwx_gtk2u_adv-2.6.so.0 for package: wxPython --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Downloading header for wxGTK to pack into transaction set. wxGTK-2.6.3-2.6.3.2.3.fc6 100% |=========================| 24 kB 00:00 ---> Package wxGTK.i386 0:2.6.3-2.6.3.2.3.fc6 set to be updated ---> Downloading header for wxGTK-gl to pack into transaction set. wxGTK-gl-2.6.3-2.6.3.2.3. 100% |=========================| 11 kB 00:03 ---> Package wxGTK-gl.i386 0:2.6.3-2.6.3.2.3.fc6 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: gazebo i386 0.7.0-fc6 pyrobot 2.5 M player i386 2.0.3-fc6 pyrobot 6.3 M stage i386 2.0.3-fc6 pyrobot 1.3 M Installing for dependencies: freeglut i386 2.4.0-11.fc6 extras 142 k freeglut-devel i386 2.4.0-11.fc6 extras 13 k gsl i386 1.8-1.1 core 760 k ode i386 0.7-2.fc6 extras 346 k wxGTK i386 2.6.3-2.6.3.2.3.fc6 extras 3.5 M wxGTK-gl i386 2.6.3-2.6.3.2.3.fc6 extras 28 k wxPython i386 2.6.3.2-2.fc6 extras 7.4 M Transaction Summary ============================================================================= Install 10 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 22 M Is this ok [y/N]: y Downloading Packages: (1/10): freeglut-devel-2. 100% |=========================| 13 kB 00:00 (2/10): wxGTK-2.6.3-2.6.3 100% |=========================| 3.5 MB 00:10 (3/10): stage-2.0.3-fc6.i 100% |=========================| 1.3 MB 00:04 (4/10): wxGTK-gl-2.6.3-2. 100% |=========================| 28 kB 00:00 (5/10): player-2.0.3-fc6. 100% |=========================| 6.3 MB 00:19 (6/10): gazebo-0.7.0-fc6. 100% |=========================| 2.5 MB 00:07 (7/10): wxPython-2.6.3.2- 100% |=========================| 7.4 MB 00:21 (8/10): freeglut-2.4.0-11 100% |=========================| 142 kB 00:00 (9/10): ode-0.7-2.fc6.i38 100% |=========================| 346 kB 00:02 (10/10): gsl-1.8-1.1.i386 100% |=========================| 760 kB 00:01 warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 1ac70ce6 Importing GPG key 0x1AC70CE6 "Fedora Project " Is this ok [y/N]: y warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID c17d8428 Importing GPG key 0xC17D8428 "Douglas Blank " Is this ok [y/N]: y warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 Importing GPG key 0x4F2A6FD2 "Fedora Project " Is this ok [y/N]: y Importing GPG key 0xDB42A60E "Red Hat, Inc " Is this ok [y/N]: y Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: freeglut ####################### [ 1/10] Installing: gsl ####################### [ 2/10] Installing: ode ####################### [ 3/10] Installing: wxGTK ####################### [ 4/10] Installing: wxGTK-gl ####################### [ 5/10] Installing: wxPython ####################### [ 6/10] Installing: player ####################### [ 7/10] Installing: freeglut-devel ####################### [ 8/10] Installing: stage ####################### [ 9/10] Installing: gazebo ####################### [10/10] Installed: gazebo.i386 0:0.7.0-fc6 player.i386 0:2.0.3-fc6 stage.i386 0:2.0.3-fc6 Dependency Installed: freeglut.i386 0:2.4.0-11.fc6 freeglut-devel.i386 0:2.4.0-11.fc6 gsl.i386 0:1.8-1.1 ode.i386 0:0.7-2.fc6 wxGTK.i386 0:2.6.3-2.6.3.2.3.fc6 wxGTK-gl.i386 0:2.6.3-2.6.3.2.3.fc6 wxPython.i386 0:2.6.3.2-2.fc6 Complete! [root@localhost ~]# pyrobot bash: pyrobot: command not found From quadpl_03 at yahoo.com Wed Mar 28 12:36:48 2007 From: quadpl_03 at yahoo.com (Daniel Brian Myers) Date: Wed Mar 28 12:36:48 2007 Subject: [Pyro-users] can't control Intellibrain-bot from within pyrobot Message-ID: <424570.81761.qm@web60819.mail.yahoo.com> Hi, I am using a bluetooth connection with an Intellibrain robot. I can connect to the robot with no problems, but when I try to move it, it doesn't do anything. According to the directions, there is a file called IBB.java that needs to be sent to the robot, so I opened the file in the RoboJDE software and compiled and loaded it to the flash memory on the robot. Is there something I'm missing or did I just do something wrong? Thanks, Daniel --------------------------------- No need to miss a message. Get email on-the-go with Yahoo! Mail for Mobile. Get started. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://emergent.brynmawr.edu/pipermail/pyro-users/attachments/20070328/197585f9/attachment.htm From bthom at cs.hmc.edu Wed Mar 28 15:43:52 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Wed Mar 28 15:43:53 2007 Subject: [Pyro-users] colors question Message-ID: Hi, I'm wondering what menu of colors is available for drawing the TkPioneer robots in. I've looked through pysim.py and found where the .color attribute is set, in the class SimRobot. But from there I'm stumped to infer what colors are available. If I was creating a world w/just 3 or 4 robots in it, I could try things out manually, but if I'd like a maximal list, this wouldn't work... Thanks, --b From dblank at brynmawr.edu Wed Mar 28 16:10:01 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Wed Mar 28 16:10:01 2007 Subject: [Pyro-users] colors question In-Reply-To: References: Message-ID: <1699.66.80.15.66.1175116201.squirrel@webmail.brynmawr.edu> [I'm on the road right now; I'll respond to other email in the next day or two, but this one is quick. -Doug] Belinda, Most of the colors used in Pyro are just Tkinter colors. From the page http://infohost.nmt.edu/tcc/help/pubs/tkinter/colors.html: """ There are two general ways to specify colors in Tkinter. 1. You can use a string specifying the proportion of red, green, and blue in hexadecimal digits: #rgb Four bits per color #rrggbb Eight bits per color #rrrgggbbb Twelve bits per color For example, "#fff" is white, "#000000" is black, "#000fff000" is pure green, and "#00ffff" is pure cyan (green plus blue). 2. You can also use any locally defined standard color name. The colors "white", "black", "red", "green", "blue", "cyan", "yellow", and "magenta" will always be available. Other names may work, depending on your local installation. """ So, depending on your platform, these colors can vary. Also, one other complication: in pysim.py you may have noticed the colorMap and colorCode dictionaries. If you want to use other colors for lights or if you want to see other colors with the camera, then those color names and (r,g,b) values should be added to these data structures. (If someone can find a complete list of Tkinter color names with RGB values, I'll add them to the code). See also the corresponding data structures on the client in pyrobot/robot/symbolic.py... should just be defined once and imported...) Also, the use of the colorMap and colorCode could be fixed to work with the Tkinter '#rgb' hex formats, or with (r,g,b) tuples. (BTW, colorCode is used to compress an "image" description in the simulator.) Hope that helps, -Doug On Wed, March 28, 2007 4:43 pm, belinda thom said: > Hi, > > I'm wondering what menu of colors is available for drawing the > TkPioneer robots in. > > I've looked through pysim.py and found where the .color attribute is > set, in the class SimRobot. > > But from there I'm stumped to infer what colors are available. > > If I was creating a world w/just 3 or 4 robots in it, I could try > things out manually, but if I'd like a maximal list, this wouldn't > work... > > Thanks, > > --b From bthom at cs.hmc.edu Wed Mar 28 16:12:30 2007 From: bthom at cs.hmc.edu (belinda thom) Date: Wed Mar 28 16:12:30 2007 Subject: [Pyro-users] Re: colors question Message-ID: <2D7B608B-6FE2-48B2-BCEA-3CBB07297DC0@cs.hmc.edu> After a bit more google-ing, I came across http://tmml.sourceforge.net.doc/tk/colors.html which identifies things like "azure" and "alice blue". When I tried using those as robot colors, the beast was displayed as a wire box (white body?). Advice appreciated. Thx, --b From dblank at brynmawr.edu Wed Mar 28 16:29:23 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Wed Mar 28 16:29:22 2007 Subject: [Pyro-users] Re: colors question In-Reply-To: <2D7B608B-6FE2-48B2-BCEA-3CBB07297DC0@cs.hmc.edu> References: <2D7B608B-6FE2-48B2-BCEA-3CBB07297DC0@cs.hmc.edu> Message-ID: <1743.66.80.15.66.1175117363.squirrel@webmail.brynmawr.edu> Great; I will add those names and RGB values to Pyrobot. I can only speculate that your "local installation" doesn't support those colors. Let us know otherwise. -Doug On Wed, March 28, 2007 5:12 pm, belinda thom said: > After a bit more google-ing, I came across > > http://tmml.sourceforge.net.doc/tk/colors.html > > which identifies things like "azure" and "alice blue". When I tried > using those as robot colors, the beast was displayed as a wire box > (white body?). > > Advice appreciated. > > Thx, > > --b > _______________________________________________ > Pyro-users mailing list > Pyro-users@pyrorobotics.org > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > -- Douglas S. Blank Associate Professor, Bryn Mawr College http://cs.brynmawr.edu/~dblank/ Office: 610 526 6501 From dblank at brynmawr.edu Fri Mar 30 14:20:30 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri Mar 30 14:20:52 2007 Subject: [Pyro-users] video 4 linux In-Reply-To: <17928.11628.127991.290945@crab.cs.usna.edu> References: <17901.63044.128811.545913@crab.cs.usna.edu> <45EE4295.2060106@brynmawr.edu> <17928.11628.127991.290945@crab.cs.usna.edu> Message-ID: <460D62FE.70107@brynmawr.edu> Prof Ric Crabbe wrote: > Just an update on my progress. I have a Hauppauge WinTV card that > uses the ivtv driver. Apparently the right driver doesn't exist for > the card in Core 4, so I went to upgrade to FC 6. It took weeks to do > the upgrade, I'll spare you the nightmare, but share my favorite error > message: "Please insert Disk -99 to continue". > > Now, when I go to install Pyro, pyrobot will not install, though > everything esle seems to: > > [root@localhost ~]# yum install player stage gazebo pyrobot > Loading "installonlyn" plugin > Setting up Install Process > Setting up repositories > pyrobot 100% |=========================| 951 B 00:00 > Reading repository metadata in from local files > primary.xml.gz 100% |=========================| 1.8 kB 00:00 > ################################################## 3/3 > Parsing package install arguments > No Match for argument: pyrobot Ric, Sorry to hear about these problems; I think most of us have had very different experience these days. Pyrobot is now in our Fedora Core 6 repository. This is Pyrobot-5.0.0 which is almost finalized, but doesn't have any major issues. Try the command "yum install pyrobot" again, and let us know if you have any problems. For those of you who want to update your pyrobot under Fedora, please see Section 1.3 of: http://pyrorobotics.org/?page=PyroInstallation -Doug > > > Is there some conflict with FC6? Any ideas what's happening? > > cheers, > ric > > > > [root@localhost ~]# cat > /etc/yum.repos.d/pyrobot.repo > [pyrobot] > name=Python Robotics > baseurl=http://PyroRobotics.org/fedora/$releasever/$basearch > enabled=1 > gpgcheck=1 > gpgkey=http://PyroRobotics.org/fedora/RPM-GPG-KEY-dblank > [root@localhost ~]# yum install player stage gazebo pyrobot > Loading "installonlyn" plugin > Setting up Install Process > Setting up repositories > pyrobot 100% |=========================| 951 B 00:00 > Reading repository metadata in from local files > primary.xml.gz 100% |=========================| 1.8 kB 00:00 > ################################################## 3/3 > Parsing package install arguments > No Match for argument: pyrobot > Resolving Dependencies > --> Populating transaction set with selected packages. Please wait. > ---> Downloading header for player to pack into transaction set. > player-2.0.3-fc6.i386.rpm 100% |=========================| 34 kB 00:00 > ---> Package player.i386 0:2.0.3-fc6 set to be updated > ---> Downloading header for gazebo to pack into transaction set. > gazebo-0.7.0-fc6.i386.rpm 100% |=========================| 21 kB 00:00 > ---> Package gazebo.i386 0:0.7.0-fc6 set to be updated > ---> Downloading header for stage to pack into transaction set. > stage-2.0.3-fc6.i386.rpm 100% |=========================| 8.6 kB 00:00 > ---> Package stage.i386 0:2.0.3-fc6 set to be updated > --> Running transaction check > --> Processing Dependency: freeglut-devel for package: gazebo > --> Processing Dependency: wxPythonGTK2 for package: gazebo > --> Processing Dependency: ode for package: player > --> Processing Dependency: gsl for package: player > --> Processing Dependency: libglut.so.3 for package: gazebo > --> Processing Dependency: libode.so.0 for package: gazebo > --> Processing Dependency: libglut.so.3 for package: player > --> Processing Dependency: gsl for package: gazebo > --> Processing Dependency: wxPythonGTK2 for package: player > --> Processing Dependency: ode for package: gazebo > --> Restarting Dependency Resolution with new changes. > --> Populating transaction set with selected packages. Please wait. > ---> Downloading header for freeglut-devel to pack into transaction set. > freeglut-devel-2.4.0-11.f 100% |=========================| 6.7 kB 00:00 > ---> Package freeglut-devel.i386 0:2.4.0-11.fc6 set to be updated > ---> Downloading header for wxPython to pack into transaction set. > wxPython-2.6.3.2-2.fc6.i3 100% |=========================| 146 kB 00:01 > ---> Package wxPython.i386 0:2.6.3.2-2.fc6 set to be updated > ---> Downloading header for freeglut to pack into transaction set. > freeglut-2.4.0-11.fc6.i38 100% |=========================| 9.0 kB 00:00 > ---> Package freeglut.i386 0:2.4.0-11.fc6 set to be updated > ---> Downloading header for ode to pack into transaction set. > ode-0.7-2.fc6.i386.rpm 100% |=========================| 4.1 kB 00:00 > ---> Package ode.i386 0:0.7-2.fc6 set to be updated > ---> Downloading header for gsl to pack into transaction set. > gsl-1.8-1.1.i386.rpm 100% |=========================| 7.2 kB 00:00 > ---> Package gsl.i386 0:1.8-1.1 set to be updated > --> Running transaction check > --> Processing Dependency: libwx_gtk2u_animate-2.6.so.0 for package: wxPython > --> Processing Dependency: libwx_gtk2u_html-2.6.so.0(WXU_2.6) for package: wxPython > --> Processing Dependency: libwx_gtk2u_xrc-2.6.so.0(WXU_2.6.2) for package: wxPython > --> Processing Dependency: libwx_gtk2u_gl-2.6.so.0 for package: wxPython > --> Processing Dependency: libwx_gtk2u_core-2.6.so.0 for package: wxPython > --> Processing Dependency: libwx_baseu_net-2.6.so.0 for package: wxPython > --> Processing Dependency: libwx_baseu_net-2.6.so.0(WXU_2.6) for package: wxPython > --> Processing Dependency: libwx_gtk2u_core-2.6.so.0(WXU_2.6) for package: wxPython > --> Processing Dependency: libwx_gtk2u_gizmos-2.6.so.0(WXU_2.6) for package: wxPython > --> Processing Dependency: libwx_baseu_xml-2.6.so.0 for package: wxPython > --> Processing Dependency: libwx_baseu_xml-2.6.so.0(WXU_2.6) for package: wxPython > --> Processing Dependency: libwx_gtk2u_core-2.6.so.0(WXU_2.6.2) for package: wxPython > --> Processing Dependency: libwx_baseu-2.6.so.0 for package: wxPython > --> Processing Dependency: libwx_gtk2u_xrc-2.6.so.0(WXU_2.6) for package: wxPython > --> Processing Dependency: libwx_gtk2u_html-2.6.so.0 for package: wxPython > --> Processing Dependency: libwx_baseu-2.6.so.0(WXU_2.6.2) for package: wxPython > --> Processing Dependency: libwx_gtk2u_gizmos-2.6.so.0 for package: wxPython > --> Processing Dependency: libwx_gtk2u_stc-2.6.so.0(WXU_2.6) for package: wxPython > --> Processing Dependency: libwx_gtk2u_animate-2.6.so.0(WXU_2.6) for package: wxPython > --> Processing Dependency: libwx_gtk2u_stc-2.6.so.0 for package: wxPython > --> Processing Dependency: libwx_gtk2u_xrc-2.6.so.0 for package: wxPython > --> Processing Dependency: libwx_baseu-2.6.so.0(WXU_2.6) for package: wxPython > --> Processing Dependency: libwx_gtk2u_gl-2.6.so.0(WXU_2.6) for package: wxPython > --> Processing Dependency: libwx_gtk2u_core-2.6.so.0(WXU_2.6.3) for package: wxPython > --> Processing Dependency: libwx_gtk2u_qa-2.6.so.0 for package: wxPython > --> Processing Dependency: libwx_gtk2u_adv-2.6.so.0(WXU_2.6) for package: wxPython > --> Processing Dependency: libwx_gtk2u_adv-2.6.so.0 for package: wxPython > --> Restarting Dependency Resolution with new changes. > --> Populating transaction set with selected packages. Please wait. > ---> Downloading header for wxGTK to pack into transaction set. > wxGTK-2.6.3-2.6.3.2.3.fc6 100% |=========================| 24 kB 00:00 > ---> Package wxGTK.i386 0:2.6.3-2.6.3.2.3.fc6 set to be updated > ---> Downloading header for wxGTK-gl to pack into transaction set. > wxGTK-gl-2.6.3-2.6.3.2.3. 100% |=========================| 11 kB 00:03 > ---> Package wxGTK-gl.i386 0:2.6.3-2.6.3.2.3.fc6 set to be updated > --> Running transaction check > > Dependencies Resolved > > ============================================================================= > Package Arch Version Repository Size > ============================================================================= > Installing: > gazebo i386 0.7.0-fc6 pyrobot 2.5 M > player i386 2.0.3-fc6 pyrobot 6.3 M > stage i386 2.0.3-fc6 pyrobot 1.3 M > Installing for dependencies: > freeglut i386 2.4.0-11.fc6 extras 142 k > freeglut-devel i386 2.4.0-11.fc6 extras 13 k > gsl i386 1.8-1.1 core 760 k > ode i386 0.7-2.fc6 extras 346 k > wxGTK i386 2.6.3-2.6.3.2.3.fc6 extras 3.5 M > wxGTK-gl i386 2.6.3-2.6.3.2.3.fc6 extras 28 k > wxPython i386 2.6.3.2-2.fc6 extras 7.4 M > > Transaction Summary > ============================================================================= > Install 10 Package(s) > Update 0 Package(s) > Remove 0 Package(s) > > Total download size: 22 M > Is this ok [y/N]: y > Downloading Packages: > (1/10): freeglut-devel-2. 100% |=========================| 13 kB 00:00 > (2/10): wxGTK-2.6.3-2.6.3 100% |=========================| 3.5 MB 00:10 > (3/10): stage-2.0.3-fc6.i 100% |=========================| 1.3 MB 00:04 > (4/10): wxGTK-gl-2.6.3-2. 100% |=========================| 28 kB 00:00 > (5/10): player-2.0.3-fc6. 100% |=========================| 6.3 MB 00:19 > (6/10): gazebo-0.7.0-fc6. 100% |=========================| 2.5 MB 00:07 > (7/10): wxPython-2.6.3.2- 100% |=========================| 7.4 MB 00:21 > (8/10): freeglut-2.4.0-11 100% |=========================| 142 kB 00:00 > (9/10): ode-0.7-2.fc6.i38 100% |=========================| 346 kB 00:02 > (10/10): gsl-1.8-1.1.i386 100% |=========================| 760 kB 00:01 > warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 1ac70ce6 > Importing GPG key 0x1AC70CE6 "Fedora Project " > Is this ok [y/N]: y > warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID c17d8428 > Importing GPG key 0xC17D8428 "Douglas Blank " > Is this ok [y/N]: y > warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 > Importing GPG key 0x4F2A6FD2 "Fedora Project " > Is this ok [y/N]: y > Importing GPG key 0xDB42A60E "Red Hat, Inc " > Is this ok [y/N]: y > Running Transaction Test > Finished Transaction Test > Transaction Test Succeeded > Running Transaction > Installing: freeglut ####################### [ 1/10] > Installing: gsl ####################### [ 2/10] > Installing: ode ####################### [ 3/10] > Installing: wxGTK ####################### [ 4/10] > Installing: wxGTK-gl ####################### [ 5/10] > Installing: wxPython ####################### [ 6/10] > Installing: player ####################### [ 7/10] > Installing: freeglut-devel ####################### [ 8/10] > Installing: stage ####################### [ 9/10] > Installing: gazebo ####################### [10/10] > > Installed: gazebo.i386 0:0.7.0-fc6 player.i386 0:2.0.3-fc6 stage.i386 0:2.0.3-fc6 > Dependency Installed: freeglut.i386 0:2.4.0-11.fc6 freeglut-devel.i386 0:2.4.0-11.fc6 gsl.i386 0:1.8-1.1 ode.i386 0:0.7-2.fc6 wxGTK.i386 0:2.6.3-2.6.3.2.3.fc6 wxGTK-gl.i386 0:2.6.3-2.6.3.2.3.fc6 wxPython.i386 0:2.6.3.2-2.fc6 > Complete! > [root@localhost ~]# pyrobot > bash: pyrobot: command not found > From dblank at brynmawr.edu Fri Mar 30 14:22:49 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri Mar 30 14:24:25 2007 Subject: [Pyro-users] can't control Intellibrain-bot from within pyrobot In-Reply-To: <424570.81761.qm@web60819.mail.yahoo.com> References: <424570.81761.qm@web60819.mail.yahoo.com> Message-ID: <460D6389.6080703@brynmawr.edu> Daniel, I've just received my Intellibrainbot Bluetooth myself, so I'll try this too. Perhaps our Potsdam colleagues may have some suggestions? -Doug Daniel Brian Myers wrote: > Hi, I am using a bluetooth connection with an Intellibrain robot. I can > connect to the robot with no problems, but when I try to move it, it > doesn't do anything. According to the directions, there is a file called > IBB.java that needs to be sent to the robot, so I opened the file in the > RoboJDE software and compiled and loaded it to the flash memory on the > robot. Is there something I'm missing or did I just do something wrong? > Thanks, > Daniel From dblank at brynmawr.edu Fri Mar 30 14:25:18 2007 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri Mar 30 14:25:41 2007 Subject: [Pyro-users] Re: colors question In-Reply-To: <1743.66.80.15.66.1175117363.squirrel@webmail.brynmawr.edu> References: <2D7B608B-6FE2-48B2-BCEA-3CBB07297DC0@cs.hmc.edu> <1743.66.80.15.66.1175117363.squirrel@webmail.brynmawr.edu> Message-ID: <460D641E.3090008@brynmawr.edu> I have fixed the colors in pysim. It will now define all 650+ colors, define them for the camera and lights, and define them in just one location. I used all lowercase names, with no spaces. For example, use "aliceblue". This is in CVS and in the FC6 yum repository. -Doug Douglas S. Blank wrote: > Great; I will add those names and RGB values to Pyrobot. I can only > speculate that your "local installation" doesn't support those colors. Let > us know otherwise. > > -Doug > > > On Wed, March 28, 2007 5:12 pm, belinda thom said: >> After a bit more google-ing, I came across >> >> http://tmml.sourceforge.net.doc/tk/colors.html >> >> which identifies things like "azure" and "alice blue". When I tried >> using those as robot colors, the beast was displayed as a wire box >> (white body?). >> >> Advice appreciated. >> >> Thx, >> >> --b >> _______________________________________________ >> Pyro-users mailing list >> Pyro-users@pyrorobotics.org >> http://emergent.brynmawr.edu/mailman/listinfo/pyro-users >> > > From snow91 at potsdam.edu Sat Mar 31 14:30:58 2007 From: snow91 at potsdam.edu (James Snow) Date: Sat Mar 31 14:31:00 2007 Subject: [Pyro-users] can't control Intellibrain-bot from within pyrobot Message-ID: <1193881E-B9FD-4F60-BE8F-C74E5D443BC7@potsdam.edu> Daniel, After you load the file onto the IBB what kind of prompt are you getting after you push the start button. You should be getting a clear screen. Are you sure that the bluetooth pairing went okay? We found that the IBB doesn't support hardware handshaking, if you can't disable it then you need to "spoof" it. The directions are on the wiki. If that doesn't help could you tell us exactly which steps you are taking? - James Douglas Blank wrote: > Daniel, > > I've just received my Intellibrainbot Bluetooth myself, so I'll try > this > too. Perhaps our Potsdam colleagues may have some suggestions? > > -Doug Daniel Brian Myers wrote: > Hi, I am using a bluetooth connection with an Intellibrain robot. > I can > connect to the robot with no problems, but when I try to move it, it > doesn't do anything. According to the directions, there is a file > called > IBB.java that needs to be sent to the robot, so I opened the file > in the > RoboJDE software and compiled and loaded it to the flash memory on > the > robot. Is there something I'm missing or did I just do something > wrong? > Thanks, > Daniel > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://emergent.brynmawr.edu/pipermail/pyro-users/attachments/20070331/2267c34b/attachment.htm From quadpl_03 at yahoo.com Sat Mar 31 16:31:47 2007 From: quadpl_03 at yahoo.com (Daniel Brian Myers) Date: Sat Mar 31 16:31:47 2007 Subject: [Pyro-users] can't control Intellibrain-bot from within pyrobot Message-ID: <31994.44756.qm@web60814.mail.yahoo.com> James, I do get a clear screen after starting the program, and I am fairly sure that the bluetooth pairing went okay, however I neglected to make sure that hardware handshaking is disabled, so that may be my problem. Unfortunately, I won't get a chance to look into this until Monday, so I'll post back what I find out then. Thanks, - Daniel James Snow wrote:Daniel, After you load the file onto the IBB what kind of prompt are you getting after you push the start button. You should be getting a clear screen. Are you sure that the bluetooth pairing went okay? We found that the IBB doesn't support hardware handshaking, if you can't disable it then you need to "spoof" it. The diretions are on the wiki. If that doesn't help could you tell us exactly which steps you are taking? - James --------------------------------- No need to miss a message. Get email on-the-go with Yahoo! Mail for Mobile. Get started. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://emergent.brynmawr.edu/pipermail/pyro-users/attachments/20070331/56b5cb91/attachment.htm