You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
(13) |
Apr
|
May
(1) |
Jun
(34) |
Jul
(23) |
Aug
(16) |
Sep
|
Oct
(11) |
Nov
(13) |
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(2) |
Feb
(3) |
Mar
(13) |
Apr
(1) |
May
(5) |
Jun
(11) |
Jul
(5) |
Aug
(10) |
Sep
(16) |
Oct
(8) |
Nov
(4) |
Dec
(5) |
2006 |
Jan
(18) |
Feb
(5) |
Mar
(6) |
Apr
(12) |
May
(3) |
Jun
(1) |
Jul
(4) |
Aug
(16) |
Sep
(1) |
Oct
(5) |
Nov
(35) |
Dec
(7) |
2007 |
Jan
(17) |
Feb
(14) |
Mar
(7) |
Apr
(9) |
May
(16) |
Jun
(31) |
Jul
(13) |
Aug
(23) |
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(1) |
2008 |
Jan
(8) |
Feb
(1) |
Mar
(3) |
Apr
(2) |
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
(5) |
Mar
|
Apr
(2) |
May
|
Jun
(1) |
Jul
|
Aug
(5) |
Sep
(1) |
Oct
|
Nov
(3) |
Dec
|
2010 |
Jan
(6) |
Feb
(6) |
Mar
(10) |
Apr
(5) |
May
(11) |
Jun
|
Jul
|
Aug
(2) |
Sep
(8) |
Oct
(2) |
Nov
(3) |
Dec
(5) |
2011 |
Jan
(7) |
Feb
|
Mar
(1) |
Apr
(3) |
May
(10) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(6) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
(1) |
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
From: <al...@ci...> - 2010-03-28 16:32:48
|
Hello, I found the problem, see the attached file. Somewhere in the code, there is a line: # create a list to store any ODE bodies which are not part of the ragdoll (this # is needed to avoid Python garbage collecting these bodies) bodies = [] A similar code snippet is needed for geoms, too. That's why I added the following: geoms = [] And after creating every geom, I have added it to that list. That solved the problem. "bodies" and "geoms" are not used anywhere in the code. They just say to Python's garbage collector: I'm using these objects, do not delete them. When there are no more references to a body or a geom, PyODE removes those objects from ODE simulation automatically. That happened into your code: bodies were still present in simulation (that's why the doll was falling), but all the geoms (floors and capsules) were deleted. Is the ragdoll example the one from http://monsterden.net/software/ragdoll-pyode-tutorial ? I think it would be nice to include it in the PyODE examples folder. Alex > Hello Alex, > > Thanks for your note and recommendations. I have answed them one by one, > next to your questions: > > Kadir > > 2010/3/27 <al...@ci...> > >> Hello, >> >> First thing you should check: >> Do the examples from C:\Python26\pyode-examples run correctly? >> >> >>> Tutorial 1 runs OK, with the same numerical output >>>> Tutorial 2 runs OK with same double pendulum swinging >>>> Tutorial 3 runs with the same problem I had with new installation of > PyODE. Boxes falling down, penetrating the floor (plane). > > >> tutorial3.py has an example with a GeomPlane some falling boxes and >> spheres. >> Does it run correctly? >> > >>>> Tutorial 3 runs with the same problem I had with new installation of > PyODE. Boxes falling down, penetrating the floor (plane). > > >> I have just tested it with a fresh install of Python 2.6, PyOpenGL 3.0.1 >> and >> PyODE-snapshot-2010-03-22.win32-py2.6.exe. >> It worked from the first try. >> >> Which version of ODE do you use on Python 2.5? It seems that different ODE >> versions behave slightly differently >> with the same scene description. >> >> >>>> I believe PyODE 1.2.0, which was installed using > PyODE-1.2.0.win32-py2.5.exe. > > >> Do you use PyODE directly from your program or do you have some higher >> level >> library, like cgkit? >> In the second case, please check that it uses the same stepping method >> (step or >> quickStep) in both Py25 and 26. >> >> >>>> I use it directly. I use Vpython for visualisation. > > >> Can you send me a small test program, with the floor and one body, which >> works >> in Py25 and not in 26? >> > >>>>> I am attaching one famous RagDoll I have been using with PyODE. It is > supposed to fall and lie down on the floor. > Although I know nothing about robotics, I am trying to get this RagDoll up > and walking. > > I have visited your robot site. I have downloaded the windows version of > your robot and ran it on my laptop. I liked it very much. I tried to > implement a similar kinematic robot arm earlier, I had some coordination > problems, then I was planning to migrate it to ODE as a dynamic arm. I use > VPython for visualization, not OpenGL since VPython is very easy to use. > >> >> I am also using PyODE in a simulation which involves bodies sitting, and >> sometimes falling, on the ground. >> When the gravity, body mass or vertical speed were too high, they could >> break >> the floor and fall down. >> So you may start debugging with reducing the gravity value. >> >> >>> I set g = -0.81, same behaviour, slow-motion. > > It looks like a collision detection problem but where? Any double Precision > / SÝngle Precision issue? > > >> However, the simulation runs exactly the same in Py25 and 26, with exactly >> the >> same code. I do not use >> PyODE directly, but all the rendering and simulation is done using cgkit. >> I'm >> using boxes and trimeshes, >> and sometimes spheres for debugging. >> >> The program in which I use PyODE is a robot arm simulator, still in early >> stages >> of development, available here: >> http://github.com/alexdu/robot-sandbox . For now, it only runs on Windows >> out of >> the box (unzip and run). >> >> > Hi again, >> > >> > I have installed Python 2.6.4 and tried to install PyODE on top. I have >> > downloaded the >> > PyODE-snapshot-2010-03-22.win32-py2.6.exe< >> http://sourceforge.net/projects/pyode/files/pyode/snapshot-2010-03-22/PyODE-snapshot-2010-03-22.win32-py2.6.exe/download >> >from >> > the sourceforge and somehow got it working :)) >> > >> > But now funny things are happening. It looks like the GeomPlane is not >> > functioning correctly, so that everything falls down forever. My "floor" >> has >> > gone. The same exact code works OK in Python25, in 2.6, the rest seems OK >> > for the moment (At least gravity is there, joints are working, bodies are >> > working OK), but the floor is gone!? >> > >> > Is it a collision detection problem, although for the remaining parts it >> > seems to work ok. Bodies are mostly CappedCylinders (plus some spheres). >> > >> >>From Idle, I can see ode.GeomPlane is in there, but somehow it is not >> > working OK. >> > >> > I will check with some other programs, or simple geometries. >> > >> > Thnaks for your work and support. >> > >> > Kadir >> > >> > 2010/3/23 Ethan Glasser-Camp <gl...@cs...> >> > >> >> al...@ci... wrote: >> >> > I have tried to create a binary Win32 installer for latest PyODE >> >> snapshot. >> >> > I am sure Kadir and others will find it useful. >> >> >> >> This is awesome, thanks! >> >> >> >> I have uploaded this, as well as tarballs taken from today's git, to the >> >> files section of the sourceforge project: >> >> >> >> https://sourceforge.net/projects/pyode/files/ >> >> >> >> I've elected to use a snapshot-ymd system, since at present the project >> >> doesn't have "features" that are added in any regular fashion. >> >> >> >> I also updated the project website with the git URL and links to the >> >> most current files. >> >> >> >> > Since I'm a beginner in creating Python packages, I have two small >> >> issues: >> >> > >> >> > 1. The installer copies "ode.dll" to c:\python25. Is this a problem? >> >> > I believe it should be copied into "site-packages" instead, but I did >> not >> >> know >> >> > how to >> >> > specify this in setup.py. >> >> >> >> No idea here, sorry.. >> >> >> >> > 2. The examples are copied into c:\python25\pyode-examples. Is there a >> >> better >> >> > choice? >> >> >> >> I wouldn't include them at all, frankly. >> >> >> >> > 3. When installing the binary package to a fresh Python directory, >> >> tutorials 1 >> >> > and 3 >> >> > work fine; the others need pygame and maybe cgkit. Is there a way to >> >> specify >> >> > these dependencies in the binary installer? >> >> >> >> I think it's fine to leave these out -- not all people who use ODE are >> >> going to want to use it with Pygame. >> >> >> >> > I have added examples and ode.dll as "data_files" in setup.py. I would >> >> also like to >> >> > see the setup.py which created the releases from >> >> pyode.sourceforge.net(1.2.0). >> >> >> >> I would guess that the setup.py in the source tree is the one they used, >> >> but I have no idea. >> >> >> >> Ethan >> >> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> Download Intel® Parallel Studio Eval >> >> Try the new software tools for yourself. Speed compiling, find bugs >> >> proactively, and fine-tune applications for parallel performance. >> >> See why Intel Parallel Studio got high marks during beta. >> >> http://p.sf.net/sfu/intel-sw-dev >> >> _______________________________________________ >> >> Pyode-user mailing list >> >> Pyo...@li... >> >> https://lists.sourceforge.net/lists/listinfo/pyode-user >> >> >> > >> >> > |
From: <al...@ci...> - 2010-03-27 07:38:42
|
Hello, First thing you should check: Do the examples from C:\Python26\pyode-examples run correctly? tutorial3.py has an example with a GeomPlane some falling boxes and spheres. Does it run correctly? I have just tested it with a fresh install of Python 2.6, PyOpenGL 3.0.1 and PyODE-snapshot-2010-03-22.win32-py2.6.exe. It worked from the first try. Which version of ODE do you use on Python 2.5? It seems that different ODE versions behave slightly differently with the same scene description. Do you use PyODE directly from your program or do you have some higher level library, like cgkit? In the second case, please check that it uses the same stepping method (step or quickStep) in both Py25 and 26. Can you send me a small test program, with the floor and one body, which works in Py25 and not in 26? I am also using PyODE in a simulation which involves bodies sitting, and sometimes falling, on the ground. When the gravity, body mass or vertical speed were too high, they could break the floor and fall down. So you may start debugging with reducing the gravity value. However, the simulation runs exactly the same in Py25 and 26, with exactly the same code. I do not use PyODE directly, but all the rendering and simulation is done using cgkit. I'm using boxes and trimeshes, and sometimes spheres for debugging. The program in which I use PyODE is a robot arm simulator, still in early stages of development, available here: http://github.com/alexdu/robot-sandbox . For now, it only runs on Windows out of the box (unzip and run). > Hi again, > > I have installed Python 2.6.4 and tried to install PyODE on top. I have > downloaded the > PyODE-snapshot-2010-03-22.win32-py2.6.exe<http://sourceforge.net/projects/pyode/files/pyode/snapshot-2010-03-22/PyODE-snapshot-2010-03-22.win32-py2.6.exe/download>from > the sourceforge and somehow got it working :)) > > But now funny things are happening. It looks like the GeomPlane is not > functioning correctly, so that everything falls down forever. My "floor" has > gone. The same exact code works OK in Python25, in 2.6, the rest seems OK > for the moment (At least gravity is there, joints are working, bodies are > working OK), but the floor is gone!? > > Is it a collision detection problem, although for the remaining parts it > seems to work ok. Bodies are mostly CappedCylinders (plus some spheres). > >>From Idle, I can see ode.GeomPlane is in there, but somehow it is not > working OK. > > I will check with some other programs, or simple geometries. > > Thnaks for your work and support. > > Kadir > > 2010/3/23 Ethan Glasser-Camp <gl...@cs...> > >> al...@ci... wrote: >> > I have tried to create a binary Win32 installer for latest PyODE >> snapshot. >> > I am sure Kadir and others will find it useful. >> >> This is awesome, thanks! >> >> I have uploaded this, as well as tarballs taken from today's git, to the >> files section of the sourceforge project: >> >> https://sourceforge.net/projects/pyode/files/ >> >> I've elected to use a snapshot-ymd system, since at present the project >> doesn't have "features" that are added in any regular fashion. >> >> I also updated the project website with the git URL and links to the >> most current files. >> >> > Since I'm a beginner in creating Python packages, I have two small >> issues: >> > >> > 1. The installer copies "ode.dll" to c:\python25. Is this a problem? >> > I believe it should be copied into "site-packages" instead, but I did not >> know >> > how to >> > specify this in setup.py. >> >> No idea here, sorry.. >> >> > 2. The examples are copied into c:\python25\pyode-examples. Is there a >> better >> > choice? >> >> I wouldn't include them at all, frankly. >> >> > 3. When installing the binary package to a fresh Python directory, >> tutorials 1 >> > and 3 >> > work fine; the others need pygame and maybe cgkit. Is there a way to >> specify >> > these dependencies in the binary installer? >> >> I think it's fine to leave these out -- not all people who use ODE are >> going to want to use it with Pygame. >> >> > I have added examples and ode.dll as "data_files" in setup.py. I would >> also like to >> > see the setup.py which created the releases from >> pyode.sourceforge.net(1.2.0). >> >> I would guess that the setup.py in the source tree is the one they used, >> but I have no idea. >> >> Ethan >> >> >> ------------------------------------------------------------------------------ >> Download Intel® Parallel Studio Eval >> Try the new software tools for yourself. Speed compiling, find bugs >> proactively, and fine-tune applications for parallel performance. >> See why Intel Parallel Studio got high marks during beta. >> http://p.sf.net/sfu/intel-sw-dev >> _______________________________________________ >> Pyode-user mailing list >> Pyo...@li... >> https://lists.sourceforge.net/lists/listinfo/pyode-user >> > |
From: Kadir H. <kha...@gm...> - 2010-03-26 10:44:43
|
Hi again, I have installed Python 2.6.4 and tried to install PyODE on top. I have downloaded the PyODE-snapshot-2010-03-22.win32-py2.6.exe<http://sourceforge.net/projects/pyode/files/pyode/snapshot-2010-03-22/PyODE-snapshot-2010-03-22.win32-py2.6.exe/download>from the sourceforge and somehow got it working :)) But now funny things are happening. It looks like the GeomPlane is not functioning correctly, so that everything falls down forever. My "floor" has gone. The same exact code works OK in Python25, in 2.6, the rest seems OK for the moment (At least gravity is there, joints are working, bodies are working OK), but the floor is gone!? Is it a collision detection problem, although for the remaining parts it seems to work ok. Bodies are mostly CappedCylinders (plus some spheres). >From Idle, I can see ode.GeomPlane is in there, but somehow it is not working OK. I will check with some other programs, or simple geometries. Thnaks for your work and support. Kadir 2010/3/23 Ethan Glasser-Camp <gl...@cs...> > al...@ci... wrote: > > I have tried to create a binary Win32 installer for latest PyODE > snapshot. > > I am sure Kadir and others will find it useful. > > This is awesome, thanks! > > I have uploaded this, as well as tarballs taken from today's git, to the > files section of the sourceforge project: > > https://sourceforge.net/projects/pyode/files/ > > I've elected to use a snapshot-ymd system, since at present the project > doesn't have "features" that are added in any regular fashion. > > I also updated the project website with the git URL and links to the > most current files. > > > Since I'm a beginner in creating Python packages, I have two small > issues: > > > > 1. The installer copies "ode.dll" to c:\python25. Is this a problem? > > I believe it should be copied into "site-packages" instead, but I did not > know > > how to > > specify this in setup.py. > > No idea here, sorry.. > > > 2. The examples are copied into c:\python25\pyode-examples. Is there a > better > > choice? > > I wouldn't include them at all, frankly. > > > 3. When installing the binary package to a fresh Python directory, > tutorials 1 > > and 3 > > work fine; the others need pygame and maybe cgkit. Is there a way to > specify > > these dependencies in the binary installer? > > I think it's fine to leave these out -- not all people who use ODE are > going to want to use it with Pygame. > > > I have added examples and ode.dll as "data_files" in setup.py. I would > also like to > > see the setup.py which created the releases from pyode.sourceforge.net(1.2.0). > > I would guess that the setup.py in the source tree is the one they used, > but I have no idea. > > Ethan > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Pyode-user mailing list > Pyo...@li... > https://lists.sourceforge.net/lists/listinfo/pyode-user > |
From: Ethan Glasser-C. <gl...@cs...> - 2010-03-23 01:14:14
|
al...@ci... wrote: > I have tried to create a binary Win32 installer for latest PyODE snapshot. > I am sure Kadir and others will find it useful. This is awesome, thanks! I have uploaded this, as well as tarballs taken from today's git, to the files section of the sourceforge project: https://sourceforge.net/projects/pyode/files/ I've elected to use a snapshot-ymd system, since at present the project doesn't have "features" that are added in any regular fashion. I also updated the project website with the git URL and links to the most current files. > Since I'm a beginner in creating Python packages, I have two small issues: > > 1. The installer copies "ode.dll" to c:\python25. Is this a problem? > I believe it should be copied into "site-packages" instead, but I did not know > how to > specify this in setup.py. No idea here, sorry.. > 2. The examples are copied into c:\python25\pyode-examples. Is there a better > choice? I wouldn't include them at all, frankly. > 3. When installing the binary package to a fresh Python directory, tutorials 1 > and 3 > work fine; the others need pygame and maybe cgkit. Is there a way to specify > these dependencies in the binary installer? I think it's fine to leave these out -- not all people who use ODE are going to want to use it with Pygame. > I have added examples and ode.dll as "data_files" in setup.py. I would also like to > see the setup.py which created the releases from pyode.sourceforge.net (1.2.0). I would guess that the setup.py in the source tree is the one they used, but I have no idea. Ethan |
From: <al...@ci...> - 2010-03-22 15:21:46
|
Hello, I have tried to create a binary Win32 installer for latest PyODE snapshot. I am sure Kadir and others will find it useful. Since the distribution is not very small (about 1 MB), I did not attached it; instead, you may download it from: http://dl.dropbox.com/u/4124919/pyode-win32.zip The zip archive contains two files, for Python 2.5 and 2.6: PyODE-snapshot-2010-03-22.win32-py2.5.exe PyODE-snapshot-2010-03-22.win32-py2.6.exe The binary distribution was created from today's snapshot from git repository. The ODE DLL is compiled from SVN, from March 15 2010. This version worked for me much better than 0.11.1 (it was more stable and also faster). ODE was compiled with double precision, release, using mingw. Since I'm a beginner in creating Python packages, I have two small issues: 1. The installer copies "ode.dll" to c:\python25. Is this a problem? I believe it should be copied into "site-packages" instead, but I did not know how to specify this in setup.py. 2. The examples are copied into c:\python25\pyode-examples. Is there a better choice? 3. When installing the binary package to a fresh Python directory, tutorials 1 and 3 work fine; the others need pygame and maybe cgkit. Is there a way to specify these dependencies in the binary installer? I have added examples and ode.dll as "data_files" in setup.py. I would also like to see the setup.py which created the releases from pyode.sourceforge.net (1.2.0). Regards, Alex > Does the latest version of PyODE work with Python 2.6? > > Thanks. > > Kadir > > 2010/3/18 <al...@ci...> > >> Hello, >> >> I have patched PyODE by adding the following functions, which set the >> kinematic >> state of a rigid body: >> >> body.setKinematic() >> body.setDynamic() >> body.isKinematic() >> >> The functions are described here: >> http://opende.sourceforge.net/wiki/index.php/Manual_%28Rigid_Body_Functions >> %29#Kinematic_State<http://opende.sourceforge.net/wiki/index.php/Manual_%28Rigid_Body_Functions%0A%29#Kinematic_State> >> >> I have also attached the same patch to the project tracker a few days ago >> (at https://sourceforge.net/tracker/?group_id=73553&atid=538152 ), >> but I'm not sure whether anyone noticed it. >> >> Regards, >> Alex Dumitrache >> >> ------------------------------------------------------------------------------ >> Download Intel® Parallel Studio Eval >> Try the new software tools for yourself. Speed compiling, find bugs >> proactively, and fine-tune applications for parallel performance. >> See why Intel Parallel Studio got high marks during beta. >> http://p.sf.net/sfu/intel-sw-dev >> _______________________________________________ >> Pyode-user mailing list >> Pyo...@li... >> https://lists.sourceforge.net/lists/listinfo/pyode-user >> >> > |
From: <al...@ci...> - 2010-03-22 13:58:46
|
Hello Ethan, Thank you very much for the review and the comments. Since this is my first patch submitted to an open source project, I expected to received some critics. Next time I will try to read the manual more thoroughly. You are correct with suggesting setKinematic(True/False), it's more intuitive. To keep the API similar to ODE, and also take into account your suggestion, I'm thinking at something like this: body.setKinematic(kinematic = True) body.setDynamic() body.isKinematic() => True/False Therefore, setKinematic(False) will be identical to setDynamic(). The default dynamic state is "Dynamic", and currently there are only two possible values: kinematic and dynamic. P.S. I am glad you switched to git. It would be a good idea to add the git link to Pyode web site ( http://pyode.sourceforge.net ) Regards, Alex > al...@ci... wrote: >> Hello, >> >> I have patched PyODE by adding the following functions, which set the >> kinematic >> state of a rigid body: >> >> body.setKinematic() >> body.setDynamic() >> body.isKinematic() >> >> The functions are described here: >> http://opende.sourceforge.net/wiki/index.php/Manual_%28Rigid_Body_Functions >> %29#Kinematic_State > > This is very cool. I've reviewed the patch. Some suggestions, if I may: > > 1. Don't send patches with trailing whitespace. > 2. Send patches that apply from the root of the project (i.e. do cvs > diff from outside of src). > > I'd also suggest changing the API to setKinematic(True/False), or > setDynamism(DEFAULT/DYNAMIC/KINEMATIC), but I guess it is useful to have > similar APIs to ODE. > > I've cleaned up the whitespace and rewritten one of the docstrings for > clarity, and committed the resulting patch. Thanks. > >> I have also attached the same patch to the project tracker a few days ago >> (at https://sourceforge.net/tracker/?group_id=73553&atid=538152 ), >> but I'm not sure whether anyone noticed it. > > As you guessed, I don't check the project tracker and I doubt anyone > else does either :) > > Ethan > |
From: Ethan Glasser-C. <gl...@cs...> - 2010-03-21 23:27:27
|
al...@ci... wrote: > Hello, > > I have patched PyODE by adding the following functions, which set the kinematic > state of a rigid body: > > body.setKinematic() > body.setDynamic() > body.isKinematic() > > The functions are described here: > http://opende.sourceforge.net/wiki/index.php/Manual_%28Rigid_Body_Functions > %29#Kinematic_State This is very cool. I've reviewed the patch. Some suggestions, if I may: 1. Don't send patches with trailing whitespace. 2. Send patches that apply from the root of the project (i.e. do cvs diff from outside of src). I'd also suggest changing the API to setKinematic(True/False), or setDynamism(DEFAULT/DYNAMIC/KINEMATIC), but I guess it is useful to have similar APIs to ODE. I've cleaned up the whitespace and rewritten one of the docstrings for clarity, and committed the resulting patch. Thanks. > I have also attached the same patch to the project tracker a few days ago > (at https://sourceforge.net/tracker/?group_id=73553&atid=538152 ), > but I'm not sure whether anyone noticed it. As you guessed, I don't check the project tracker and I doubt anyone else does either :) Ethan |
From: Ethan Glasser-C. <gl...@cs...> - 2010-03-21 23:22:00
|
Hi guys, I took a few minutes today to convert the CVS repository for pyode into a git repository. You can access either, although I don't expect people to continue to use CVS if they don't have to ;) https://sourceforge.net/projects/pyode/develop The git repository pulls from the CVS repository and can be updated any time there's a commit. Unless someone objects, I'll probably turn off CVS access in the next couple weeks. Ethan |
From: <al...@ci...> - 2010-03-18 09:03:37
|
Hello, I have patched PyODE by adding the following functions, which set the kinematic state of a rigid body: body.setKinematic() body.setDynamic() body.isKinematic() The functions are described here: http://opende.sourceforge.net/wiki/index.php/Manual_%28Rigid_Body_Functions %29#Kinematic_State I have also attached the same patch to the project tracker a few days ago (at https://sourceforge.net/tracker/?group_id=73553&atid=538152 ), but I'm not sure whether anyone noticed it. Regards, Alex Dumitrache |
From: Ethan Glasser-C. <gl...@cs...> - 2010-02-11 17:30:03
|
Does anyone want to build a version of pyode for Windows? I can upload it, but don't really have access to a Windows computer to do the requisite building. Ethan |
From: Ethan Glasser-C. <gl...@cs...> - 2010-02-11 02:04:53
|
Christopher Flesher wrote: > So I decided to try building the wrapper from the latest CVS source. > Here is the output from setup.py. It seems to build fine despite a > couple of warnings. > > INFO: <ode/ode.h> found in /usr/include > INFO: ode_trimesh.c is up to date > INFO: ode_notrimesh.c is up to date > INFO: Installing with trimesh support. > running build > running build_py > creating build > creating build/lib.linux-i686-2.5 > creating build/lib.linux-i686-2.5/xode > copying xode/__init__.py -> build/lib.linux-i686-2.5/xode > copying xode/body.py -> build/lib.linux-i686-2.5/xode > copying xode/geom.py -> build/lib.linux-i686-2.5/xode > copying xode/transform.py -> build/lib.linux-i686-2.5/xode > copying xode/parser.py -> build/lib.linux-i686-2.5/xode > copying xode/node.py -> build/lib.linux-i686-2.5/xode > copying xode/joint.py -> build/lib.linux-i686-2.5/xode > copying xode/errors.py -> build/lib.linux-i686-2.5/xode > running build_ext > building 'ode' extension > creating build/temp.linux-i686-2.5 > gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall > -Wstrict-prototypes -fPIC -I/usr/include -I/usr/local/include > -I/opt/local/include -I/usr/include/python2.5 -c ode_trimesh.c -o > build/temp.linux-i686-2.5/ode_trimesh.o -I/usr/include > ode_trimesh.c: In function ‘__pyx_f_3ode_5World_setLinearDamping’: > ode_trimesh.c:2949: warning: implicit declaration of function > ‘dWorldSetLinearDamping’ > ode_trimesh.c: In function ‘__pyx_f_3ode_5World_getLinearDamping’: > ode_trimesh.c:2970: warning: implicit declaration of function > ‘dWorldGetLinearDamping’ > ode_trimesh.c: In function ‘__pyx_f_3ode_5World_setAngularDamping’: > ode_trimesh.c:2997: warning: implicit declaration of function > ‘dWorldSetAngularDamping’ > ode_trimesh.c: In function ‘__pyx_f_3ode_5World_getAngularDamping’: > ode_trimesh.c:3018: warning: implicit declaration of function > ‘dWorldGetAngularDamping’ > gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions > build/temp.linux-i686-2.5/ode_trimesh.o -L/usr/local/lib > -L/opt/local/lib -lode -lstdc++ -o build/lib.linux-i686-2.5/ode.so > -L/usr/lib -lode > > However when I import the file in python it gives the following error: >>>> import ode > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > ImportError: /usr/lib/python2.5/site-packages/ode.so: undefined > symbol: dWorldGetLinearDamping > > Any ideas on where to begin? My simulation seems to work in Windows XP > without any problems but I really need to get it working in Linux. Hey, sorry, I saw this bug but didn't find the time to respond. It looks like the warnings are related. You're building on Ubuntu, right? What version of the libode-dev package are you running? If you update the wrapper, you'll probably need to update the library it wraps too. (In a pinch, if you don't use those functions, you can probably modify the code to take out these calls from declarations.pyx and the methods that use them from world.pyx.) Ethan |
From: Christopher F. <chr...@gm...> - 2010-02-10 18:21:33
|
Hello, For some reason the Ubuntu 8.04 install package gives a segmentation fault when using to use a trimesh. I tried installing from a source package on the downloads page on Sourceforge. When I call triMesh.getTriangle() in python it gives the following error: python: /build/buildd/ode-0.9.dfsg/GIMPACT/src/gim_trimesh.cpp:183: void gim_trimesh_locks_work_data(GIM_TRIMESH*): Assertion `res==0' failed. Aborted So I decided to try building the wrapper from the latest CVS source. Here is the output from setup.py. It seems to build fine despite a couple of warnings. INFO: <ode/ode.h> found in /usr/include INFO: ode_trimesh.c is up to date INFO: ode_notrimesh.c is up to date INFO: Installing with trimesh support. running build running build_py creating build creating build/lib.linux-i686-2.5 creating build/lib.linux-i686-2.5/xode copying xode/__init__.py -> build/lib.linux-i686-2.5/xode copying xode/body.py -> build/lib.linux-i686-2.5/xode copying xode/geom.py -> build/lib.linux-i686-2.5/xode copying xode/transform.py -> build/lib.linux-i686-2.5/xode copying xode/parser.py -> build/lib.linux-i686-2.5/xode copying xode/node.py -> build/lib.linux-i686-2.5/xode copying xode/joint.py -> build/lib.linux-i686-2.5/xode copying xode/errors.py -> build/lib.linux-i686-2.5/xode running build_ext building 'ode' extension creating build/temp.linux-i686-2.5 gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include -I/usr/local/include -I/opt/local/include -I/usr/include/python2.5 -c ode_trimesh.c -o build/temp.linux-i686-2.5/ode_trimesh.o -I/usr/include ode_trimesh.c: In function ‘__pyx_f_3ode_5World_setLinearDamping’: ode_trimesh.c:2949: warning: implicit declaration of function ‘dWorldSetLinearDamping’ ode_trimesh.c: In function ‘__pyx_f_3ode_5World_getLinearDamping’: ode_trimesh.c:2970: warning: implicit declaration of function ‘dWorldGetLinearDamping’ ode_trimesh.c: In function ‘__pyx_f_3ode_5World_setAngularDamping’: ode_trimesh.c:2997: warning: implicit declaration of function ‘dWorldSetAngularDamping’ ode_trimesh.c: In function ‘__pyx_f_3ode_5World_getAngularDamping’: ode_trimesh.c:3018: warning: implicit declaration of function ‘dWorldGetAngularDamping’ gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/temp.linux-i686-2.5/ode_trimesh.o -L/usr/local/lib -L/opt/local/lib -lode -lstdc++ -o build/lib.linux-i686-2.5/ode.so -L/usr/lib -lode However when I import the file in python it gives the following error: >>> import ode Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: /usr/lib/python2.5/site-packages/ode.so: undefined symbol: dWorldGetLinearDamping Any ideas on where to begin? My simulation seems to work in Windows XP without any problems but I really need to get it working in Linux. Thanks, Chris |
From: Ethan Glasser-C. <gl...@cs...> - 2010-02-02 03:46:33
|
Ethan Glasser-Camp wrote: > Diez B. Roggisch wrote: >> function. But it sure is placable :) >> >> Is that corrected in CVS? > > No, it doesn't. The subclasses of GeomObject GeomBox, GeomCapsule, > GeomCylinder, GeomPlane, GeomRay, GeomSphere, GeomTransform, > GeomTriMesh, and SpaceBase.. all of those ought to be placeable except > SpaceBase, right? I'll fix that. I just checked and GeomPlane is also not placeable. I just committed the fix to GeomRay in CVS. Thanks for the bug report! Ethan |
From: Ethan Glasser-C. <gl...@cs...> - 2010-02-02 03:35:44
|
Diez B. Roggisch wrote: > function. But it sure is placable :) > > Is that corrected in CVS? No, it doesn't. The subclasses of GeomObject GeomBox, GeomCapsule, GeomCylinder, GeomPlane, GeomRay, GeomSphere, GeomTransform, GeomTriMesh, and SpaceBase.. all of those ought to be placeable except SpaceBase, right? I'll fix that. Ethan |
From: Diez B. R. <de...@we...> - 2010-02-01 23:33:42
|
Hi, I just discovered that GeomRay doesn't define the def placeable(self): return True function. But it sure is placable :) Is that corrected in CVS? Diez |
From: Ethan Glasser-C. <gl...@cs...> - 2010-01-11 03:41:40
|
Daniele Varrazzo wrote: > So, it looks like a structures ownership issue: as the head works, as > soon as the python object goes, so it does the wrapped C geom, also > when it is part of other structures (the space). This is a > counterintuitive behaviour from a Python P.o.V., because "well > behaved" python object are kept alive when another structure points to > them (while instead the association space ->geom seems more a weakref > now). Also the different outcome between my box and yours doesn't seem > a sign of robustness. Oh, crap, this is because you're running tutorial3 from the site, which hasn't been updated in a while. Boy, is my face red. There was a change a while back that made geoms get deallocated, and I updated tutorial3 in CVS but not on the site. I'm looking to see if I can do that now. It's true that the relationship space->geom behaves like a weakref, and so does the relationship world->body. I don't think there's any technical reason for this. It looks like at one point someone wanted to make geoms keep a reference to spaces they were in, but it doesn't look like that functionality got implemented. I think you're probably right, that spaces should keep references to their geoms, but not the other way around. I'll try to make that change this week. Ethan |
From: Daniele V. <dan...@gm...> - 2010-01-10 23:06:04
|
On Sun, Jan 10, 2010 at 7:19 PM, Ethan Glasser-Camp <gl...@cs...> wrote: > whatever). The only thing that strikes me as likely to be different is > that instead of doing "python setup.py install", I ran: > > PYTHONPATH=build/lib.linux-i686-2.5/ python examples/tutorial3.py > > (Or whatever -- substitute the correct build directory on your machine.) Well, I skipped over the details of my setup, but I am using a virtualenv and putting the python library in a private non-system directory. For ode I am using instead the /usr/local tree, taking care to keep a single version of the library at time, cleaning things up before "make install" of the new one I want to test. I have done some steps ahead: I've noticed that space.getNumGeoms() = 31 in the working demo runtime (30 boxes and the floor), but in the buggy one is always 1: this means that boxes geoms are not retained in the space collection. Further analysis shows that space.getNumGeoms() goes to 2 just after the addiction to the space (i.e. geom = ode.GeomBox(space, lengths=body.boxsize)), but when the function ends and the python "geom" variable goes out of scope, the count goes back to 1. As a test I added a global list of geoms appending the box geoms to it before they go out of scope: with this fix the demo works correctly. So, it looks like a structures ownership issue: as the head works, as soon as the python object goes, so it does the wrapped C geom, also when it is part of other structures (the space). This is a counterintuitive behaviour from a Python P.o.V., because "well behaved" python object are kept alive when another structure points to them (while instead the association space ->geom seems more a weakref now). Also the different outcome between my box and yours doesn't seem a sign of robustness. I already had an experience of writing a Pyrex wrapper around C structures that could have either lived alone or been part of other structures: to make everything work without leaks and dangling pointers, I used an explicit flag on every wrapper, saying if the wrapper was the "owner" of the structure (and this the structure had to be deleted together with the python object) or if the wrapper was just a view of a structure and some other object was in charge to delete it (e.g. when doing some "foo.bar.baz": the object returned by the "bar" attribute allowed a temporarily access to the underlying structure, but the latter is not destroyed with the short-lived wrapper: it is still "foo" to have its ownership). I don't know much about the life cycle of the ODE structures (e.g. who is in charge to free a geom when it is part of a space) but I suspect the bug I am experimenting is caused by a mismatch with the life cycle imposed by the pyrex wrappers and the Python runtime. Cheers -- Daniele |
From: Ethan Glasser-C. <gl...@cs...> - 2010-01-10 19:23:10
|
Daniele Varrazzo wrote: > It is a fairly standard 32 bit Ubuntu Karmic, using the ode library > packaged with the OS (packages libode-dev (2:0.11-4), libode1 > (2:0.11-4)). Python version 2.6 (the system version). Pyrex version > 0.9.8.5. > > I built the module regularly (python setup.py build/install), against > the correct library (checked with ldd). Tutorials 1 and 2 run > perfectly, in 3 the pieces fall without meeting the plane. I also made > the explosion happen earlier to make the falling pieces hit each > other, and there is no contact between them either. A print in the > callback function confirms it gets never called. > > Tell me if you need other details. Thank you very much for your efforts. I'm kind of grasping at straws here, since I can't reproduce it. I've tried on my 64-bit Karmic machine, running the same packages you are, and now I just tried on my 32-bit Debian machine (which is sorta running whatever). The only thing that strikes me as likely to be different is that instead of doing "python setup.py install", I ran: PYTHONPATH=build/lib.linux-i686-2.5/ python examples/tutorial3.py (Or whatever -- substitute the correct build directory on your machine.) I guess one thing I'd suggest is doing: import ode print ode.__file__ to make sure you're running the just-built version. I suspect you are -- if you weren't, I think you'd probably be seeing more severe problems. If that doesn't help, I'd start putting print statements in Space.collide (defined in src/space.pyx) to make sure that was getting called successfully, and if that didn't help I'd do the same thing in the ODE library (which I don't know that well -- sorry). Ethan |
From: Daniele V. <dan...@gm...> - 2010-01-10 16:23:54
|
On Sun, Jan 10, 2010 at 5:14 AM, Ethan Glasser-Camp <gl...@cs...> wrote: > Daniele Varrazzo wrote: >> collision detection doesn't work with PyODE checked out from CVS HEAD >> and ODE 0.11. The collision callback is never called. This can be >> tested with tutorial3.py or with the script in >> http://monsterden.net/software/ragdoll-pyode-tutorial: the objects >> don't meet the plane and keep falling forever. > > Yikes! > > I just built pyode from CVS on my work laptop against libode 0.11. Then > I ran examples/tutorial3 and it ran successfully (well, OpenGL > artifacts, but collision detection worked). Can you give me more details > on your setup? 32-/64-bit machine? OS? It is a fairly standard 32 bit Ubuntu Karmic, using the ode library packaged with the OS (packages libode-dev (2:0.11-4), libode1 (2:0.11-4)). Python version 2.6 (the system version). Pyrex version 0.9.8.5. I built the module regularly (python setup.py build/install), against the correct library (checked with ldd). Tutorials 1 and 2 run perfectly, in 3 the pieces fall without meeting the plane. I also made the explosion happen earlier to make the falling pieces hit each other, and there is no contact between them either. A print in the callback function confirms it gets never called. I've done other tests and I confirm the bug on my box also with ode 0.11 and 0.11.1 compiled from source, against the PyODE code just checked out from the head. The same tutorial3 script works fine with PyODE 1.2.0 compiled against ode 0.8 (modulo adding import OpenGL OpenGL.ERROR_CHECKING = False before importing the other opengl stuff to avoid a segfault in the current PyOpenGL... bleah). Tell me if you need other details. Thank you very much for your efforts. -- Daniele |
From: Ethan Glasser-C. <gl...@cs...> - 2010-01-10 05:33:11
|
Daniele Varrazzo wrote: > collision detection doesn't work with PyODE checked out from CVS HEAD > and ODE 0.11. The collision callback is never called. This can be > tested with tutorial3.py or with the script in > http://monsterden.net/software/ragdoll-pyode-tutorial: the objects > don't meet the plane and keep falling forever. Yikes! I just built pyode from CVS on my work laptop against libode 0.11. Then I ran examples/tutorial3 and it ran successfully (well, OpenGL artifacts, but collision detection worked). Can you give me more details on your setup? 32-/64-bit machine? OS? Ethan |
From: Daniele V. <dan...@gm...> - 2010-01-09 23:12:03
|
Hello, collision detection doesn't work with PyODE checked out from CVS HEAD and ODE 0.11. The collision callback is never called. This can be tested with tutorial3.py or with the script in http://monsterden.net/software/ragdoll-pyode-tutorial: the objects don't meet the plane and keep falling forever. The same scripts using PyODE 1.2 and ODE 0.8 work correctly. ODE and PyODE are new for me, so I wouldn't know where to start from to create a patch, sorry. I took a quick diff of the files space.pyx and ode.pyx between versions 1.2 and HEAD but I spotted nothing obviously wrong. -- Daniele |
From: Ethan Glasser-C. <gl...@cs...> - 2009-11-26 17:28:25
|
Simon McGregor wrote: > This fix works! > > Well, on a single-precision build anyway. I tried the double-precision > build with the following changes to setup.py: > > LIB_DIRS += [os.path.join(ODE_BASE, "lib", "ReleaseDoubleLib")] # > VS annoyingly builds to ReleaseDoubleLib > LIBS += ["ode_double", "user32"] # VS annoyingly builds > ode.lib as ode_double.lib > CC_ARGS += ["/ML /DdDOUBLE"] # VS annoyingly uses /D where gcc uses -D OK, I only have one idea here, which is to try: ["/ML", "/DdDOUBLE"] instead of ["/ML /DdDOUBLE"] I make this suggestion solely on the fact that the CC_ARGS (not CC_FLAGS, sorry :)) call has .split() at the end. >> I spoke to Matthias Baas, who writes: >> >> "I was actually thinking it might be a good idea to write a new version >> that's entirely based on ctypes instead of Pyrex, but there were just >> too many other things that kept me busy and PyODE just is a rather >> low-priority for me at the moment." > > Is that a good idea? I'm new to both ctypes and Pyrex, so I don't know > the ins and outs of both. After a quick perusal of ctypes, I can't see > how to interrogate a linked library's export table (which I'd quite > like to be able to do!)... It would at least obviate the need for figuring out how to compile things. I agree that I can't see a way to look at the symbols that are exported, but there has to be some way, because it's capable of figuring out that "dInitODE" is an existing symbol, and "foo" isn't. Anyhow, I don't see this as a major hurdle; whoever undertook this task would be working from the ODE docs and defining wrappers (much like the pyrex code already does). Ethan |
From: Ethan Glasser-C. <gl...@cs...> - 2009-11-20 04:52:14
|
Simon McGregor wrote: > Hi, > > Just posting my experience with installing PyODE on Windows XP with > Python 2.6.4 and VS 2008. > It took me 4 tries to get it working. Hi! Sorry about the long delay in responding. I think I might have encountered a problem like this once and I was waiting till I had my ducks in a row before replying. > TRY #1 > * Use the Windows installer from http://pyode.sourceforge.net/ > > PROBLEM #1 > * No installer for Python 2.6; installer for 2.5 complains that I don't have 2.5 > > SOLUTION #1 > * Compile from source I'm not really comfortable contributing Windows builds, as it's not really my chosen operating system. > TRY #2 > * Download PyODE source > * Download ODE 0.11.1 source > * Compile ODE 0.11.1 to a .lib using VS 2008 > * Modify setup.py to find the ODE 0.11.1 lib file > * Install PyODE using 'python setup.py install' > > PROBLEM #2 > * PyODE installs but crashes python.exe shortly after (but apparently > not inside) an "ODE.Mass()" call. No Python exceptions are raised; it > looks like a null pointer exception caught by Windows. > > SOLUTION #2 > * PyODE incompatible with ODE 0.11? Use ODE 0.8 instead? I think I encountered a very similar problem once. When you modified setup.py, did you update both CFLAGS and LIBS? The version in CVS should be fixed. http://pyode.cvs.sourceforge.net/viewvc/pyode/pyode/setup.py?revision=1.13&view=markup I suspect strongly that when I committed the fix of calling ode-config to get CFLAGS/LIBS, it didn't make it into the tarballs/zip archives on the "files" page. I'd like to update those files but I don't have permissions. I just sent an email to one of the former admins and hopefully I can get that changed. Without those CFLAGS, you can get bugs like you saw because of conflicts with single precision/double precision. > Hope this is useful for anyone else having similar problems. > Out of interest, can anyone estimate how much work would be required > to get PyODE working with ODE 0.11.1? Quite a lot has been done in ODE > since 0.8! Lots of features have been added to ODE that never made it into the Python bindings. Pyrex being fairly simple, it shouldn't be that hard to jump in and start sending patches :) I'm not using PyODE any more and I expect that the silence on this list testifies to the fact that none of the other people with commit access do either. So patches are the best way to see more of ODE get supported. Failing that, if you tell me which features you're most interested in, and are willing to test, I'll try to sit down and bash 'em out. Of course, if you can't successfully build against a new ODE, that's not really feasible, so let me know. Ethan |
From: Simon M. <lon...@gm...> - 2009-11-16 14:17:39
|
Hi, Just posting my experience with installing PyODE on Windows XP with Python 2.6.4 and VS 2008. It took me 4 tries to get it working. --------------------- TRY #1 * Use the Windows installer from http://pyode.sourceforge.net/ PROBLEM #1 * No installer for Python 2.6; installer for 2.5 complains that I don't have 2.5 SOLUTION #1 * Compile from source --------------------- TRY #2 * Download PyODE source * Download ODE 0.11.1 source * Compile ODE 0.11.1 to a .lib using VS 2008 * Modify setup.py to find the ODE 0.11.1 lib file * Install PyODE using 'python setup.py install' PROBLEM #2 * PyODE installs but crashes python.exe shortly after (but apparently not inside) an "ODE.Mass()" call. No Python exceptions are raised; it looks like a null pointer exception caught by Windows. SOLUTION #2 * PyODE incompatible with ODE 0.11? Use ODE 0.8 instead? --------------------- TRY #3 * Download ODE 0.8 precompiled Windows libraries * Modify setup.py to find the ODE 0.8 lib file * Install PyODE using 'python setup.py install' PROBLEM #3 * Linker failure: "unresolved external symbol __iob referenced" SOLUTION #3 * ODE 0.8 precompiled libraries incompatible with VS 2008? Try compiling ODE 0.8 from source using VS 2008? --------------------- TRY #4 * Download ODE 0.8 source * Compile ODE 0.8 using VS 2008 SUCCESS! --------------------- The complete list of steps which resulted in a working solution on my machine was: * Download premake 3.7 (not premake 4) * Download ODE 0.8 source (not ODE 0.11.1) * Run "premake --target vs2008" in the ODE "build" directory * Open "ode.vcproj" in the ODE "build/custom" directory, using VS 2008 * Compile the "ReleaseLib" solution in VS 2008 * Download PyODE source * Edit "setup.py" in PyODE directory changing the "ODE_BASE" variable to my ODE 0.8 directory * Run "python setup.py install" in PyODE directory Hope this is useful for anyone else having similar problems. Out of interest, can anyone estimate how much work would be required to get PyODE working with ODE 0.11.1? Quite a lot has been done in ODE since 0.8! Simon |
From: Derek L. <dl...@ma...> - 2009-09-11 23:14:04
|
I have a simulation of a series of bodies connected by links, and I'd like to get the joint torque at each link (while inputing joint velocities using Joint[i].setParam(ode.ParamFMax, jTorque[i]) I'm trying to get the torque using the Joint[i].getFeedback() command, and it seems to work for force but not torque. Does anyone have any idea how to get around this? Thanks, - Derek |