From dblank at brynmawr.edu Mon Feb 6 13:24:33 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Mon Feb 6 13:24:50 2006 Subject: [Pyro-users] Re: using pyro on physical robot In-Reply-To: References: Message-ID: <1139250273.9231.34.camel@mightymouse.brynmawr.edu> Hugo, I'm responding to the pyro-users mailing list. Follow-ups can go there. More below: On Sun, 2006-02-05 at 14:05 +0100, Hugo Koopmans wrote: > Have the following question: > I have just bought a fox-board and want to use it to build a real > robot. > Now it would be nice to use pyro to control this thing, how should i > proceed? Can't find that much on real physical robot at pyro? It looks like you could run Linux on the board. You could therefore run Python, and much of Pyro. I'm not certain how much disk-type memory you'll have. But, that's what I would try first. -Doug > regards, > > hugo -- Douglas S. Blank Computer Science Assistant Professor Bryn Mawr College (610)526-6501 http://cs.brynmawr.edu/~dblank From hugo.koopmans at gmail.com Tue Feb 7 16:04:04 2006 From: hugo.koopmans at gmail.com (Hugo Koopmans) Date: Tue Feb 7 16:04:12 2006 Subject: [Pyro-users] pyro on physical robot Message-ID: Thank you for the response. The fox board has already linux distro on it. I only need to add python to it, that is not the problem. The board has 32MB Ram on board would that be enough? I can stick an usb flash disk on to it so that is no problem. The thing is I do not have a clue on where to start with pyro if I want to run it on a pyshical robot(needs to be build yet...). I have some experience building robots (see snampook.blogspot.com). Is ther a tutorial available somewhere? Do i need to build a pyro server based on the specs of my robot? Thanks for the help hugo -------------- next part -------------- An HTML attachment was scrubbed... URL: http://emergent.brynmawr.edu/pipermail/pyro-users/attachments/20060207/124c0e4e/attachment.htm From dblank at brynmawr.edu Tue Feb 7 17:17:52 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Tue Feb 7 17:18:08 2006 Subject: [Pyro-users] pyro on physical robot In-Reply-To: References: Message-ID: <1139350672.17092.105.camel@mightymouse.brynmawr.edu> Hugo, Ok, I understand where you are coming from a bit better. I'm not certain how much memory Python will need, but it should be easy to find out. You should be able to compile from source and it will include whatever you have available. Once you get that done, then you only need make your robot talk to Python. You can then wrap your Python code in this: http://pyrorobotics.org/?page=Interfacing_20Your_20Own_20Robot For example, if you have a sensor on /dev/ttyS0 (the serial COM1 port), then you can just write Python code that will open that up, and read the data. We have some sample code for doing that kind of thing. For example, see: pyrobot/system/SerialConnection.py and pyrobot/robot/khepera.py You can then build your own "devices" by extending the Device class and your own "robot" by extending the Robot class. Note that devices are designed to be updated about 10 times a second. Once you do that, you can use any of the standard Pyro tools. Good luck, and let us know if you have questions. Looking forward to seeing robocat II! -Doug On Tue, 2006-02-07 at 22:04 +0100, Hugo Koopmans wrote: > Thank you for the response. > The fox board has already linux distro on it. I only need to add > python to it, that is not the problem. The board has 32MB Ram on board > would that be enough? > I can stick an usb flash disk on to it so that is no problem. > > The thing is I do not have a clue on where to start with pyro if I > want to run it on a pyshical robot(needs to be build yet...). I have > some experience building robots (see snampook.blogspot.com). Is ther a > tutorial available somewhere? > Do i need to build a pyro server based on the specs of my robot? > > Thanks for the help > > hugo > _______________________________________________ > Pyro-users mailing list > Pyro-users@emergent.brynmawr.edu > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users -- Douglas S. Blank Computer Science Assistant Professor Bryn Mawr College (610)526-6501 http://cs.brynmawr.edu/~dblank From dtnguyen at cs.millersville.edu Wed Feb 8 10:54:36 2006 From: dtnguyen at cs.millersville.edu (Daniel T Nguyen) Date: Wed Feb 8 10:54:39 2006 Subject: [Pyro-users] Problem getting hemisson working Message-ID: <20060208155020.M87864@cs.millersville.edu> We have a hemisson that we would like to interface with pyrobot. The problem is that when we load 'hemisson.py' in the robot box, it tries and fails to find something called khepera.cntrl. Pyro is installed on Fedora Core 4. Any help would be greatly appreciated. Dan Nguyen Millersville University From dblank at brynmawr.edu Wed Feb 8 11:14:46 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Wed Feb 8 11:15:04 2006 Subject: [Pyro-users] Problem getting hemisson working In-Reply-To: <20060208155020.M87864@cs.millersville.edu> References: <20060208155020.M87864@cs.millersville.edu> Message-ID: <1139415286.17092.141.camel@mightymouse.brynmawr.edu> Dan, Oops. Thanks for the report. We removed the khepera simulator just recently because it was a hack, buggy, and didn't work right. You can now do all that the old simulator did in the new Pyrobot simulator (although, no one has a khepera model yet, but that should be easy to create). Anyway, to fix the issue, you can just remove that line trying to import khepera.cntrl. I have updated the code in CVS, seen here: http://compscitest.brynmawr.edu/cgi-bin/viewcvs.cgi/pyrobot/robot/khepera.py You can drop that new version (or just edit it) here: pyrobot/robot/khepera.py Usually, that is installed in: /usr/lib/python2.4/site-packages/pyrobot/robot/khepera.py Let me know if you have any trouble. -Doug On Wed, 2006-02-08 at 10:54 -0500, Daniel T Nguyen wrote: > We have a hemisson that we would like to interface with pyrobot. The problem > is that when we load 'hemisson.py' in the robot box, it tries and fails to > find something called khepera.cntrl. Pyro is installed on Fedora Core 4. > Any help would be greatly appreciated. > > Dan Nguyen > Millersville University > _______________________________________________ > Pyro-users mailing list > Pyro-users@emergent.brynmawr.edu > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > -- Douglas S. Blank Computer Science Assistant Professor Bryn Mawr College (610)526-6501 http://cs.brynmawr.edu/~dblank From BrianW at isis.vanderbilt.edu Fri Feb 10 12:58:36 2006 From: BrianW at isis.vanderbilt.edu (Brian Williams) Date: Fri Feb 10 12:58:40 2006 Subject: [Pyro-users] connecting pyrobot to a server Message-ID: Hi, I'm new to pyrobots. I have UnrealTournamentRuntime installed with USARSim, and Python2.4.1 installed with Pyrobots, but I can't figure out how to get Pyrobots to connect to my UnrealTournament server. When I click on the GUI to load a server, it just points me to some simulation classes. I need to figure out how to connect it to a server. I see there is some config file stuff, but I haven't found any info on the format or anything. Can anyone help me? Thanks, Brian -------------- next part -------------- An HTML attachment was scrubbed... URL: http://emergent.brynmawr.edu/pipermail/pyro-users/attachments/20060210/4992f839/attachment.htm From dblank at brynmawr.edu Fri Feb 10 18:00:03 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri Feb 10 18:00:19 2006 Subject: [Pyro-users] connecting pyrobot to a server In-Reply-To: References: Message-ID: <1139612403.19480.62.camel@mightymouse.brynmawr.edu> Brian, That's an interesting idea. Not necessarily where I might begin to learn a new system, but interesting. First, you might want to get familiar with Pyro, and what it can do out-of-the-box. You can't connect onto Unreal Tournament (although people have written code that allows that in the past). I'd start with the documentation. You can find that here: http://PyroRobotics.org/ After getting familiar with the basics, you might then look at: http://pyrorobotics.org/?page=Interfacing_20Your_20Own_20Robot If you can write Python code to connect to Unreal, then you can simple put a Pyro robot around that. There was a project that forked off of Pyro, and hacked a version to work with Unreal. They didn't talk to us, or commit their changes back, so it is its own project. Try googling "python unreal tournament" and see if you can find that. Maybe that would help. Otherwise, you're going to have to do some work. Hope that helps, -Doug On Fri, 2006-02-10 at 11:58 -0600, Brian Williams wrote: > Hi, I?m new to pyrobots. > I have UnrealTournamentRuntime installed with USARSim, and Python2.4.1 > installed with Pyrobots, but I can?t figure out how to get Pyrobots to > connect to my UnrealTournament server. When I click on the GUI to load > a server, it just points me to some simulation classes. I need to > figure out how to connect it to a server. I see there is some config > file stuff, but I haven?t found any info on the format or anything. > Can anyone help me? > Thanks, > Brian > -- Douglas S. Blank Computer Science Assistant Professor Bryn Mawr College (610)526-6501 http://cs.brynmawr.edu/~dblank From mukesh.kumar123 at gmail.com Fri Feb 17 01:48:37 2006 From: mukesh.kumar123 at gmail.com (Kumar Mukesh) Date: Fri Feb 17 01:48:43 2006 Subject: [Pyro-users] query about vfh code in pyrobot Message-ID: <7f0306e60602162248l4e554923re95bb7b3655deb27@mail.gmail.com> hello friends, i am new user of pyrobot robotic software. i have the live cd of knopix with pyrobot. i have a pioneer robot with sonars. i want to run the vfh code. on that with sonar. i have no laser with me is there vfh code which contains the sonar support. or suggest me nay other solution for that. -- Kumar mukesh -------------- next part -------------- An HTML attachment was scrubbed... URL: http://emergent.brynmawr.edu/pipermail/pyro-users/attachments/20060217/cf35e579/attachment.htm From dblank at brynmawr.edu Fri Feb 17 08:38:40 2006 From: dblank at brynmawr.edu (dblank@brynmawr.edu) Date: Fri Feb 17 08:38:48 2006 Subject: [Pyro-users] query about vfh code in pyrobot In-Reply-To: <7f0306e60602162248l4e554923re95bb7b3655deb27@mail.gmail.com> References: <7f0306e60602162248l4e554923re95bb7b3655deb27@mail.gmail.com> Message-ID: <14903.68.37.169.92.1140183520.squirrel@webmail.brynmawr.edu> I know you have asked about sonars and vhf code on the Player/Stage mailing list and that is where you'll find your answer as those are player-level questions. (Did you go through their email archives as suggested? I saw someone else wrestling with the same issue in the last few months.) Also, Pyro hasn't moved to Player-2.0 yet, and won't until Player-2.0 is released. So whatever the answer to your question, it won't work in Pyro unless it is a Player-1.6 answer. Hope that helps! -Doug > hello friends, > i am new user of pyrobot robotic software. i have the live cd of knopix > with > pyrobot. i have a pioneer robot with sonars. i want to run the vfh code. > on > that with sonar. i have no laser with me is there vfh code which contains > the sonar support. or suggest me nay other solution for that. > -- > Kumar mukesh > _______________________________________________ > Pyro-users mailing list > Pyro-users@emergent.brynmawr.edu > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > From hypeuler at gmail.com Tue Feb 21 05:18:58 2006 From: hypeuler at gmail.com (erman acar) Date: Tue Feb 21 05:19:05 2006 Subject: [Pyro-users] question about fiducial device Message-ID: <8b832bb0602210218i788b0df5l@mail.gmail.com> Hello friends, I use pyro for two weeks yet, and I want to make my robots (10-20) self deploying with a limited range such as 4 for obstacles and 2 for other robots, it is works for obstacles with sonars, but not for robots, i've tried to use fiducial device to calculate the distance and location of other robots , in everything.world i've added range_max to 2 and and fov to 360 in my worldfile, I explicitly started device from pyrobot console, but i don't know how to get a return from fiducial device about related distance or location of other robots , when i call robot.fiducial[0].value, it returns "[ ]", if you could help about it or suggest me another solution , i will be grateful. (also if you have an exact solution or suggestion for multi-robot repulsive deployment, it would be good to hear it), thanx for your guidance and help for now.. Erman Acar -------------- next part -------------- An HTML attachment was scrubbed... URL: http://emergent.brynmawr.edu/pipermail/pyro-users/attachments/20060221/c7ea8efc/attachment.htm From dblank at brynmawr.edu Tue Feb 21 08:00:07 2006 From: dblank at brynmawr.edu (dblank@brynmawr.edu) Date: Tue Feb 21 08:00:14 2006 Subject: [Pyro-users] question about fiducial device In-Reply-To: <8b832bb0602210218i788b0df5l@mail.gmail.com> References: <8b832bb0602210218i788b0df5l@mail.gmail.com> Message-ID: <37364.68.37.169.92.1140526807.squirrel@webmail.brynmawr.edu> > Hello friends, > I use pyro for two weeks yet, and I want to make my robots (10-20) self > deploying with a limited range such as 4 for obstacles and 2 for other > robots, it is works for obstacles with sonars, but not for robots, i've > tried to use fiducial device to calculate the distance and location of > other > robots , in everything.world i've added range_max to 2 and and fov to 360 > in my worldfile, I explicitly started device from pyrobot console, but i > don't know how to get a return from fiducial device about related distance > or location of other robots , when i call robot.fiducial[0].value, it > returns "[ ]", if you could help about it or suggest me another solution > , > i will be grateful. (also if you have an exact solution or suggestion for > multi-robot repulsive deployment, it would be good to hear it), thanx for > your guidance and help for now.. Erman, Some fiducial device specifics have been started. You can see the interface in pyrobot/robot/player.py. It looks like it has the following methods: def getFiducialsById(self, id): def getFiducialIDs(self): def getDeviceData(self): So you can do things like: print self.robot.fiducial[0].getDeviceData() fids = self.robot.fiducial[0].getFiducialIDs() for f in fids: self.robot.fiducial[0].getFiducialsByID(f) You can also look at the properties and methods of the underlying object by doing: print dir(self.robot.fiducial[0]._dev.fiducials) Hope that helps. If you have luck, we would like to hear it because we don't have any examples or feedback on this device. Also, if you have trouble let us know too, and we will continue to try to help. -Doug > Erman Acar > _______________________________________________ > Pyro-users mailing list > Pyro-users@emergent.brynmawr.edu > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > From shannon at centre.edu Tue Feb 21 10:04:00 2006 From: shannon at centre.edu (Christine A. Shannon) Date: Tue Feb 21 10:04:07 2006 Subject: [Pyro-users] reinforcement learning on the Aibo Message-ID: <0D6F3677FF3C0045BBEE54DB65C4EE4D01570B54@exchange.centre.edu> We are conducting some experiments to use RL to learn function parameters on the Sony Aibo. I think it is pretty clear that we have to understand the timing a bit better. e.g. we can see that the blobsize on a camera image is certainly large enough for it to trigger a different activity but the dog is still moving too fast. We have done a little with the sleep() comand to slow things down and we have used different parameters to the move() command but we definitely need to understand how the move() command etc. interact with the program, camera etc. Can you point us to a good reference or code that we should examine? Thank you From dblank at brynmawr.edu Tue Feb 21 11:01:49 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Tue Feb 21 11:02:12 2006 Subject: [Pyro-users] reinforcement learning on the Aibo In-Reply-To: <0D6F3677FF3C0045BBEE54DB65C4EE4D01570B54@exchange.centre.edu> References: <0D6F3677FF3C0045BBEE54DB65C4EE4D01570B54@exchange.centre.edu> Message-ID: <1140537709.3332.119.camel@mightymouse.brynmawr.edu> On Tue, 2006-02-21 at 10:04 -0500, Christine A. Shannon wrote: > We are conducting some experiments to use RL to learn function > parameters on the Sony Aibo. I think it is pretty clear that we have > to understand the timing a bit better. e.g. we can see that the > blobsize on a camera image is certainly large enough for it to trigger > a different activity but the dog is still moving too fast. We have > done a little with the sleep() comand to slow things down and we have > used different parameters to the move() command but we definitely need > to understand how the move() command etc. interact with the program, > camera etc. Can you point us to a good reference or code that we > should examine? Thank you Christine, You can find some overall detail about the basic brain here: http://pyrorobotics.org/?page=PyroModuleObjectOverview and here: http://pyrorobotics.org/?page=Pyro_20Brains In a nutshell, the brain thread fires the brain.step() method at most 10 times a second. The sequence is: 1) robot.update() is called, which calls update() on all devices. 2) brain.step() is called, which should call a motor action based on the already-read sensor readings. If you have a lot of processing going on in the step() method, then this makes it a little more complicated. Different robots respond to motor commands differently. The Aibo will take a motor command (say, robot.move(1,0)) and continue doing it until it receives another motor command, or a low-level TIMEOUT occurs. The TIMEOUT on Aibo is set to be 3 seconds, I believe (can be changed). This will prevent the robot from receiving a command, moving forward out of wireless range, and running off a cliff. So, you probably are issuing a command, deciding what to do while it continues to move. By the way, this could very well happen if you are using very fast, builtin C code rather than very slow, wireless Python. It is a nature of doing more computation than you have time to do continuously. What to do? Most RL researchers will make discrete movements, like: def step(self): self.robot.stop() t,r = self.decideWhatToDo() self.robot.move(t, r) # maybe add a sleep here to make sure it does it for a bit This will take care of the issue, but the behavior is a little jerky. You will also have to test it like this. That is, if you learn in a discrete start-stop environment, you better test it that way. Let us know if you have additional questions, -Doug > > _______________________________________________ > Pyro-users mailing list > Pyro-users@emergent.brynmawr.edu > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users > -- Douglas S. Blank Computer Science Assistant Professor Bryn Mawr College (610)526-6501 http://cs.brynmawr.edu/~dblank From hypeuler at gmail.com Wed Feb 22 13:49:15 2006 From: hypeuler at gmail.com (erman acar) Date: Wed Feb 22 13:49:24 2006 Subject: [Pyro-users] fiducial device questions(continued) Message-ID: <8b832bb0602221049u5f606e98lb61932b967ae74db@mail.gmail.com> Hello again, After I tried the methods for fiducial device inpyrobot/robot/player.py which you've pointed, I got some return valuesin pyro shell such as(my fiducial device on my robot was seeing 2 deadrobots at different locations):>>>self.robot.fiducial[0].getFiducialsById(id)>>>None >>>self.robot.fiducial[0].getDeviceData()>>>(,) >>>self.robot.fiducial[0].getF?ducialIDs()>>>[42,42] The last method returns 42 because, I defined the return value offiducial in my world file as fiducial_return 42, here is my relatedpart of world file(everything.world a little changed): define laserpioneer pioneer2dx( sicklaser( fiducialfinder( range_min 0.0 range_max 8.0 range_max_id5.0 color "green" size [0 0 ] ) ) blobfinder() fiducial_return 42 blobfinder_return 1) I entered the values from the site:http://playerstage.sourceforge.net/doc/stage-cvs/group__model__fiducial.html Unfortunately, I still couldn't find how to get the relative distanceof other fiducial equipped robots, thanx by now for your all help andcare Erman Acar From hypeuler at gmail.com Wed Feb 22 18:07:14 2006 From: hypeuler at gmail.com (erman acar) Date: Wed Feb 22 18:07:21 2006 Subject: [Pyro-users] angular problem for fiducial Message-ID: <8b832bb0602221507g75c64871x8f6da4b6f6f1abf6@mail.gmail.com> Hello again, I got an extra problem for fiducial device, my fiducial device returns its specific data only in interval of sonar device [2 to 5], i' m tried to get it pointing all fiducials around (360 degree or 16 sonars), to make it i set fov and samples to 360 in my world file, i did the same for laser device , it works on laser (setting samples value to 360) but not works on fiducial. It's a different device than ordinary ones, actually i didn't understand completely about how it works and why it is used, but it seems the key device for my need.. Erman Acar From lvnguyen at cs.millersville.edu Thu Feb 23 15:59:34 2006 From: lvnguyen at cs.millersville.edu (Long V Nguyen) Date: Thu Feb 23 15:59:38 2006 Subject: [Pyro-users] puck example Message-ID: <20060223204003.M56606@cs.millersville.edu> I just have a few question regarding the puck example at: http://pyrorobotics.org/?page=ExamplePickingUpPucks Im using pyrobot simulator, and was wondering what the numbers in the filterResults list mean, in the assignment: redBlobs = self.robot.camera[0].filterResults[1] I've gathered that the 3rd item in the list is the angular range of the camera device that is defined in the addition of the device from the world code, and the 4th item is some depth? but the number increases as the puck gets closer. what i am trying to do, is have the robot choose the closest of a set of pucks within view. Also what is the meaning of the first index in redBlobs[0][2]? thanks, Long Nguyen -- Open WebMail Project (http://openwebmail.org) Debian Project (http://www.debian.org) From shannon at centre.edu Thu Feb 23 16:35:12 2006 From: shannon at centre.edu (Christine A. Shannon) Date: Thu Feb 23 16:35:16 2006 Subject: [Pyro-users] (no subject) Message-ID: <0D6F3677FF3C0045BBEE54DB65C4EE4D016AD5C3@exchange.centre.edu> def step(self):arm = self.robot.getJoint("leg front left elevator") print "New step" + str(arm) if arm[0] < .7: self.robot.setPose("leg front left elevator", .75) sleep(3) arm = self.robot.getJoint("leg front left elevator") print arm else: self.robot.setPose("leg front left elevator", .2) sleep(3) arm = self.robot.getJoint("leg front left elevator") print arm Christine Shannon Margaret V. Haggin Professor of Computer Science and Mathematics Centre College 600 W. Walnut Danville, KY 40422 859-238-5406 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://emergent.brynmawr.edu/pipermail/pyro-users/attachments/20060223/b9f43b80/attachment.htm From shannon at centre.edu Thu Feb 23 16:46:26 2006 From: shannon at centre.edu (Christine A. Shannon) Date: Thu Feb 23 16:46:31 2006 Subject: [Pyro-users] More timing questions Message-ID: <0D6F3677FF3C0045BBEE54DB65C4EE4D016AD5C4@exchange.centre.edu> It seems to take a long time from the point where a setPose command is given to the time when the getJoint command returns the correct answer. The code below is from a trivial brain which just moves the arm - presumably changing the position in each state. But when it is "run", there are approximately three print statements in a row giving an answer near .75 followed by three near .2. Without the sleep statements, there are approximately a hundred of each although the number varies a lot. It certainly seems that the print statements are producing an old value long after the actual arm has moved. Which brings up a related question. If the step function is called 10 times per second but this one has a sleep of 3 sec how does this work? def step(self): arm = self.robot.getJoint("leg front left elevator") print "New step" + str(arm) if arm[0] < .7: self.robot.setPose("leg front left elevator", .75) sleep(3) arm = self.robot.getJoint("leg front left elevator") print arm else: self.robot.setPose("leg front left elevator", .2) sleep(3) arm = self.robot.getJoint("leg front left elevator") print arm Christine Shannon Margaret V. Haggin Professor of Computer Science and Mathematics Centre College 600 W. Walnut Danville, KY 40422 859-238-5406 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://emergent.brynmawr.edu/pipermail/pyro-users/attachments/20060223/623be25e/attachment.htm From dblank at brynmawr.edu Fri Feb 24 12:11:06 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri Feb 24 12:11:36 2006 Subject: [Pyro-users] More timing questions In-Reply-To: <0D6F3677FF3C0045BBEE54DB65C4EE4D016AD5C4@exchange.centre.edu> References: <0D6F3677FF3C0045BBEE54DB65C4EE4D016AD5C4@exchange.centre.edu> Message-ID: <1140801066.3320.23.camel@mightymouse.brynmawr.edu> On Thu, 2006-02-23 at 16:46 -0500, Christine A. Shannon wrote: > It seems to take a long time from the point where a setPose command is > given to the time when the getJoint command returns the correct > answer. The code below is from a trivial brain which just moves the > arm - presumably changing the position in each state. But when it is > "run", there are approximately three print statements in a row giving > an answer near .75 followed by three near .2. Without the sleep > statements, there are approximately a hundred of each although the > number varies a lot. It certainly seems that the print statements are > producing an old value long after the actual arm has moved. Christine, The robot.setPose() method on the Aibo immediately sends the request to move a particular joint. Exactly when that joint gets to the requested position is based on a few things: how long it takes for the Aibo to receive the command, how long it takes to move there, etc. I took your sample code, made a full brain (below), and ran it. I can get the Aibo to move its arm from one position to the other in at most 0.5 seconds (it may do it faster). Here's my output: Running... New step(0.22069187834858894, -0.146484375) (0.71547001600265503, 0.01953125) New step(0.71547001600265503, 0.01953125) (0.19933437928557396, -0.087890625) New step(0.19933437928557396, -0.087890625) (0.71190997958183289, 0.0390625) New step(0.71190997958183289, 0.0390625) (0.21357312798500061, -0.126953125) New step(0.21357312798500061, -0.126953125) (0.71902938187122345, 0.01953125) New step(0.71902938187122345, 0.01953125) (0.21357312798500061, -0.126953125) New step(0.21357312798500061, -0.126953125) (0.70835061371326447, 0.048828125) ... If yours is taking closer to 3 seconds, I'd say something is wrong with your wireless connection. What type of wireless do you have? > Which brings up a related question. If the step function is called 10 > times per second but this one has a sleep of 3 sec how does this work? The step function is called (and run) at most 10 times a second. If you have a 3 second sleep, then it will be run at most once every three seconds. Hope that helps! -Doug -------------------- import time from pyrobot.brain import Brain class AiboTest(Brain): def step(self): arm = self.robot.getJoint("leg front left elevator") print "New step" + str(arm) if arm[0] < .7: self.robot.setPose("leg front left elevator", .75) time.sleep(0.5) arm = self.robot.getJoint("leg front left elevator") print arm else: self.robot.setPose("leg front left elevator", .2) time.sleep(0.5) arm = self.robot.getJoint("leg front left elevator") print arm def INIT(engine): return AiboTest(engine=engine) > def step(self): > arm = self.robot.getJoint("leg front left elevator") > print "New step" + str(arm) > if arm[0] < .7: > self.robot.setPose("leg front left elevator", .75) > sleep(3) > arm = self.robot.getJoint("leg front left elevator") > print arm > else: > self.robot.setPose("leg front left elevator", .2) > sleep(3) > arm = self.robot.getJoint("leg front left elevator") > print arm > > > Christine Shannon > Margaret V. Haggin Professor > of Computer Science and Mathematics > Centre College > 600 W. Walnut > Danville, KY 40422 > 859-238-5406 > > _______________________________________________ > Pyro-users mailing list > Pyro-users@emergent.brynmawr.edu > http://emergent.brynmawr.edu/mailman/listinfo/pyro-users -- Douglas S. Blank Computer Science Assistant Professor Bryn Mawr College (610)526-6501 http://cs.brynmawr.edu/~dblank