Hi all!
I'm currently working in a project related with ROS (robot operative system), which already have a library to develop in C++ and other to do the same at Python. So, there a lot of variables to contrast to make a choice (performance, code-easy-to-prototype, flexibility, and a lot more), but the main variable is the accessibility from Pharo, then the question is, is there any project that use python from pharo? Or, if i select python i should write a library in C that bootstrap python and give access to pharo via FFI? I looked in the list's mails and in google without any success. Thanks in advance! Santiago. |
On Wed, Sep 5, 2012 at 3:58 PM, Santiago Bragagnolo
<[hidden email]> wrote: > Hi all! > > I'm currently working in a project related with ROS (robot operative > system), which already have a library to develop in C++ and other to do the > same at Python. So, there a lot of variables to contrast to make a choice > (performance, code-easy-to-prototype, flexibility, and a lot more), but the > main variable is the accessibility from Pharo, then the question is, is > there any project that use python from pharo? Or, if i select python i > should write a library in C that bootstrap python and give access to pharo > via FFI? > > I looked in the list's mails and in google without any success. > > Thanks in advance! > > Santiago. > - from Pharo's past, I believe) it does include Python scripting: * Python Scripting of 2d applications and 3d objects (taken from the wikipedia on OpenQwaq). I'm not sure how they did it - not being a Python guy myself. -Chris |
In reply to this post by Santiago Bragagnolo
On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo
<[hidden email]> wrote: > Hi all! Hi Santiago, > I'm currently working in a project related with ROS (robot operative > system), which already have a library to develop in C++ and other to do the > same at Python. So, there a lot of variables to contrast to make a choice > (performance, code-easy-to-prototype, flexibility, and a lot more), but the > main variable is the accessibility from Pharo, then the question is, is > there any project that use python from pharo? Or, if i select python i > should write a library in C that bootstrap python and give access to pharo > via FFI? > > I looked in the list's mails and in google without any success. As Chris already told, there is a Python binding with OpenQwaq: https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/ I'm really interested to be able to use ROS from Pharo. I start some weeks ago to work on a pure Smalltalk client for ROS: http://ss3.gemstone.com/ss/RosSmalltalk.html Noury is also interested and start some work also: http://car.mines-douai.fr/squeaksource/RoSt.html We planned with Noury to join our efforts to have a ROS client as soon as possible. Noury will also recruit a engineer to work full time on this. Another alternative in order to use ROS from Smalltalk is to use websockets and rosbridge. I have done some work to use ROS from Amber here: https://github.com/SergeStinckwich/rostalk You are than welcome to join us ;-) Regards, -- Serge Stinckwich UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam Every DSL ends up being Smalltalk http://doesnotunderstand.org/ |
Is there a source / person who could detail how the python binding is done...
1. To port this into Pharo 2. Port this design to bind Groovy to Pharo.. On Thu, Sep 6, 2012 at 6:47 AM, Serge Stinckwich <[hidden email]> wrote: On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo |
Can't you just get the current implementation run as a separate
process managing that main variable along with some web/TCP interface and get that working through Zinc or OSProcess with a control script? I am currently experimenting with CUDA (same kind of freaking interfacing) and frankly, the quickest way to see some progress and understand what's going on has been to use OSProcess to compile what I need, ship the code to the card etc. No FFI etc. Just make a neat little set of scripts. FWIW, I also leverage Tcl quite often to wrap C stuff (Yeah, I love homoiconic languages - ah, can't resist: http://en.wikipedia.org/wiki/Homoiconicity). And also, SWIG may help a lot for these endeavors. http://www.swig.org/ Also, Pharo can give HTTP-based access (lots of options here) for controlling the other around. There seems to be some REST support available and JSON parsing is around. Of course, this doesn't answer the question... Phil 2012/9/6 S Krish <[hidden email]>: > Is there a source / person who could detail how the python binding is > done... > > 1. To port this into Pharo > > 2. Port this design to bind Groovy to Pharo.. > > > > > On Thu, Sep 6, 2012 at 6:47 AM, Serge Stinckwich > <[hidden email]> wrote: >> >> On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo >> <[hidden email]> wrote: >> > Hi all! >> >> Hi Santiago, >> >> > I'm currently working in a project related with ROS (robot operative >> > system), which already have a library to develop in C++ and other to do >> > the >> > same at Python. So, there a lot of variables to contrast to make a >> > choice >> > (performance, code-easy-to-prototype, flexibility, and a lot more), but >> > the >> > main variable is the accessibility from Pharo, then the question is, is >> > there any project that use python from pharo? Or, if i select python i >> > should write a library in C that bootstrap python and give access to >> > pharo >> > via FFI? >> > >> > I looked in the list's mails and in google without any success. >> >> As Chris already told, there is a Python binding with OpenQwaq: >> >> https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/ >> >> I'm really interested to be able to use ROS from Pharo. >> I start some weeks ago to work on a pure Smalltalk client for ROS: >> http://ss3.gemstone.com/ss/RosSmalltalk.html >> >> Noury is also interested and start some work also: >> http://car.mines-douai.fr/squeaksource/RoSt.html >> >> We planned with Noury to join our efforts to have a ROS client as soon >> as possible. >> Noury will also recruit a engineer to work full time on this. >> >> Another alternative in order to use ROS from Smalltalk is to use >> websockets and rosbridge. >> I have done some work to use ROS from Amber here: >> https://github.com/SergeStinckwich/rostalk >> >> You are than welcome to join us ;-) >> Regards, >> -- >> Serge Stinckwich >> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam >> Every DSL ends up being Smalltalk >> http://doesnotunderstand.org/ >> > |
In reply to this post by SergeStinckwich
he, Santiago *is* the engineer recruited by Noury :)
On Sep 6, 2012, at 3:17 AM, Serge Stinckwich <[hidden email]> wrote: > On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo > <[hidden email]> wrote: >> Hi all! > > Hi Santiago, > >> I'm currently working in a project related with ROS (robot operative >> system), which already have a library to develop in C++ and other to do the >> same at Python. So, there a lot of variables to contrast to make a choice >> (performance, code-easy-to-prototype, flexibility, and a lot more), but the >> main variable is the accessibility from Pharo, then the question is, is >> there any project that use python from pharo? Or, if i select python i >> should write a library in C that bootstrap python and give access to pharo >> via FFI? >> >> I looked in the list's mails and in google without any success. > > As Chris already told, there is a Python binding with OpenQwaq: > https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/ > > I'm really interested to be able to use ROS from Pharo. > I start some weeks ago to work on a pure Smalltalk client for ROS: > http://ss3.gemstone.com/ss/RosSmalltalk.html > > Noury is also interested and start some work also: > http://car.mines-douai.fr/squeaksource/RoSt.html > > We planned with Noury to join our efforts to have a ROS client as soon > as possible. > Noury will also recruit a engineer to work full time on this. > > Another alternative in order to use ROS from Smalltalk is to use > websockets and rosbridge. > I have done some work to use ROS from Amber here: > https://github.com/SergeStinckwich/rostalk > > You are than welcome to join us ;-) > Regards, > -- > Serge Stinckwich > UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam > Every DSL ends up being Smalltalk > http://doesnotunderstand.org/ > |
Hum, I see ;-)
Welcome on board Santiago ! If you are interested, we can talk about the alternatives to build a ROS client in Smalltalk (rosbridge, pure client or Python bindings). Regards, On Thu, Sep 6, 2012 at 1:43 PM, Esteban Lorenzano <[hidden email]> wrote: > he, Santiago *is* the engineer recruited by Noury :) > > On Sep 6, 2012, at 3:17 AM, Serge Stinckwich <[hidden email]> wrote: > >> On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo >> <[hidden email]> wrote: >>> Hi all! >> >> Hi Santiago, >> >>> I'm currently working in a project related with ROS (robot operative >>> system), which already have a library to develop in C++ and other to do the >>> same at Python. So, there a lot of variables to contrast to make a choice >>> (performance, code-easy-to-prototype, flexibility, and a lot more), but the >>> main variable is the accessibility from Pharo, then the question is, is >>> there any project that use python from pharo? Or, if i select python i >>> should write a library in C that bootstrap python and give access to pharo >>> via FFI? >>> >>> I looked in the list's mails and in google without any success. >> >> As Chris already told, there is a Python binding with OpenQwaq: >> https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/ >> >> I'm really interested to be able to use ROS from Pharo. >> I start some weeks ago to work on a pure Smalltalk client for ROS: >> http://ss3.gemstone.com/ss/RosSmalltalk.html >> >> Noury is also interested and start some work also: >> http://car.mines-douai.fr/squeaksource/RoSt.html >> >> We planned with Noury to join our efforts to have a ROS client as soon >> as possible. >> Noury will also recruit a engineer to work full time on this. >> >> Another alternative in order to use ROS from Smalltalk is to use >> websockets and rosbridge. >> I have done some work to use ROS from Amber here: >> https://github.com/SergeStinckwich/rostalk >> >> You are than welcome to join us ;-) >> Regards, >> -- >> Serge Stinckwich >> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam >> Every DSL ends up being Smalltalk >> http://doesnotunderstand.org/ >> > > -- Serge Stinckwich UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam Every DSL ends up being Smalltalk http://doesnotunderstand.org/ |
Hello there, I am a nooby with smalltalk but quite experienced with python. Here is a little background about python libraries. Python libraries come in 3 flavors a) Pure python
libraries b) Pure C libraries c) A mix between the two Now as you may have guessed option C is the most popular but lets see how either one works. Option A ------------- Pure python libraries are not that common, but they do exist, an example of this is pyglet, it uses Ctypes a FFI that allows to access dynamical libraries (*.dll ,*.so etc) use just pure python , so pyglet access both opengl and native OS support for games, like windows, events etc. Pure python libraries, use only python and as suck accessing them from another programming language is relatively easy usually via sockets or even embeding python inside your app, in this case pharo. Obviously sockets is way easier. Option B -------------- Pure C libraries in python are very common. Python was invented for simplifying and extending C apps, so it comes as no suprised that python core is written in C but even a 50 % of the libraries python comes with by default are written in C at least partly. Pure C libraries wrapped for python use the C python API which is nothing than a collection of C functions that can convert C types to python types and increase and decrease the reference counter which plays a huge role in python automatic memory management. The good news is that
what you end up with even though it may come with the strange extension of *.pyd its actually a normal dynamic library (dll in windows). That is good news for Pharo because it means that this type of python library is accessible through pharos FFIs , so if the library is open source it should be fairly easy to use from pharo without converting code to smalltalk or using sockets that are not that fast Option C ------------ This must be the most popular option out there. I think this option is relative easy to guess. Its still option B but with additional python modules to extend the core pyd file, if those modules are not much you could convert the library to smalltalk and use FFI to access the core pyd file. Of course in all cases sockets are an easy solution. You just fire up a python intepreter and you create a socket bridge between pharo and
python. If you want additional technically details I will be glad to help , though I am not a python expert. From: Serge Stinckwich <[hidden email]> To: [hidden email] Sent: Thursday, 6 September 2012, 10:03 Subject: Re: [Pharo-project] FFI & Python Hum, I see ;-) Welcome on board Santiago ! If you are interested, we can talk about the alternatives to build a ROS client in Smalltalk (rosbridge, pure client or Python bindings). Regards, On Thu, Sep 6, 2012 at 1:43 PM, Esteban Lorenzano <[hidden email]> wrote: > he, Santiago *is* the engineer recruited by Noury :) > > On Sep 6, 2012, at 3:17 AM, Serge Stinckwich <[hidden email]> wrote: > >> On Thu, Sep 6, 2012 at 5:58 AM, Santiago Bragagnolo >> <[hidden email]> wrote: >>> Hi all! >> >> Hi Santiago, >> >>> I'm currently working in a project related with ROS (robot operative >>> system), which already have a library to develop in C++ and other to do the >>> same at Python. So, there a lot of variables to contrast to make a choice >>> (performance, code-easy-to-prototype, flexibility, and a lot more), but the >>> main variable is the accessibility from Pharo, then the question is, is >>> there any project that use python from pharo? Or, if i select python i >>> should write a library in C that bootstrap python and give access to pharo >>> via FFI? >>> >>> I looked in the list's mails and in google without any success. >> >> As Chris already told, there is a Python binding with OpenQwaq: >> https://squeakingalong.wordpress.com/2011/05/04/openqwaq-python-integration/ >> >> I'm really interested to be able to use ROS from Pharo. >> I start some weeks ago to work on a pure Smalltalk client for ROS: >> http://ss3.gemstone.com/ss/RosSmalltalk.html >> >> Noury is also interested and start some work also: >> http://car.mines-douai.fr/squeaksource/RoSt.html >> >> We planned with Noury to join our efforts to have a ROS client as soon >> as possible. >> Noury will also recruit a engineer to work full time on this. >> >> Another alternative in order to use ROS from Smalltalk is to use >> websockets and rosbridge. >> I have done some work to use ROS from Amber here: >> https://github.com/SergeStinckwich/rostalk >> >> You are than welcome to join us ;-) >> Regards, >> -- >> Serge Stinckwich >> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam >> Every DSL ends up being Smalltalk >> http://doesnotunderstand.org/ >> > > -- Serge Stinckwich UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam Every DSL ends up being Smalltalk http://doesnotunderstand.org/ |
Hi all,
Yes Santiago is THE new engineer at Ecole des Mines that will do the ROS/Pharo bridge. We are investigating what are the alternatives to do this bridge: FFI, Network, ? Cheers, #Luc 2012/9/6 dimitris chloupis <[hidden email]>
|
In reply to this post by SergeStinckwich
Serge, i'm diving into all this stuff right now, prototyping things to lern about the architecture and have more info about how-to-reach our goal. I'm browsing your implementation and Noury's right now, so, probably today or maybe tomorrow i'll have questions and better ideas :).
Thanks to all for the answers! PS: Thanks for the presentation Esteban jajaja. 2012/9/6 Serge Stinckwich <[hidden email]> Hum, I see ;-) |
On Thu, Sep 6, 2012 at 3:32 PM, Santiago Bragagnolo
<[hidden email]> wrote: > Serge, i'm diving into all this stuff right now, prototyping things to lern > about the architecture and have more info about how-to-reach our goal. I'm > browsing your implementation and Noury's right now, so, probably today or > maybe tomorrow i'll have questions and better ideas :). Don't expect too much from my implementation ;-) We can discuss latter by Skype or gtalk about the different alternatives. I would like to help in order to have a working ROS implementation at the end. Regards, -- Serge Stinckwich UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam Every DSL ends up being Smalltalk http://doesnotunderstand.org/ |
In reply to this post by philippeback
I have a fairly simple XMLRPC interface working.. but then that is no substitute to direct interface..
I like the simplicity of the python binding from Smalltalk..
On Thu, Sep 6, 2012 at 11:38 AM, [hidden email] <[hidden email]> wrote: Can't you just get the current implementation run as a separate |
Wrap things up in an Objective-C thing and then use the ObjectiveC bridge to bring the object into Smalltalk space. Like Esteban did with the DefaultFileManager in the iPad VM.
Mac only obviously. Phil
2012/9/6 S Krish <[hidden email]> I have a fairly simple XMLRPC interface working.. but then that is no substitute to direct interface.. |
In reply to this post by Santiago Bragagnolo
On 6 September 2012 00:58, Santiago Bragagnolo
<[hidden email]> wrote: > Hi all! > > I'm currently working in a project related with ROS (robot operative > system), which already have a library to develop in C++ and other to do the > same at Python. So, there a lot of variables to contrast to make a choice > (performance, code-easy-to-prototype, flexibility, and a lot more), but the > main variable is the accessibility from Pharo, then the question is, is > there any project that use python from pharo? Or, if i select python i > should write a library in C that bootstrap python and give access to pharo > via FFI? > C++ or C? If it C you can use FFI to speak with. > I looked in the list's mails and in google without any success. > > Thanks in advance! > > Santiago. > -- Best regards, Igor Stasenko. |
Free forum by Nabble | Edit this page |