[Robotics] Middlewares: the sequel

Benoit Bolsee benoit.bolsee at online.be
Tue Sep 29 09:10:41 CEST 2009


You need to create an account on 
http://wiki.blender.org/index.php?title=Special:Userlogin&returnto=Robot
ics:Index

Send me your username, I'll forward it to the wiki administrator at
blender.org who will give you write permission.

Benoit

> -----Original Message-----
> From: robotics-bounces at blender.org 
> [mailto:robotics-bounces at blender.org] On Behalf Of Gilberto Echeverria
> Sent: lundi 28 septembre 2009 18:25
> To: Blender and Robotics
> Subject: Re: [Robotics] Middlewares: the sequel
> 
> 
> Hello,
> 
> I have made an example of using VideoTexture to export the 
> video from a 
> camera and send it through a YARP port. This way it is no longer 
> necessary to have additional viewports for every camera on the scene. 
> I'm now documenting the process in the Blender for Robotics wiki, and 
> will have the example posted there ... as soon as I have 
> permission to 
> upload images and files to the wiki. Who should I ask for 
> that autorization?
> 
> Cheers.
> 
> Gilberto
> 
> Benoit Bolsee wrote:
> > Hi Gilberto,
> >
> > First your question about Blender module: yes it's gone in 2.5 and 
> > replaced by RNA. You have the documentation (still partial) here : 
> > http://www.graphicall.org/ftp/ideasman42/html/bpy-module.html
> >
> > The principle is that you get reference to the data block 
> you want to 
> > manipulate from the context 
> > 
> (http://www.graphicall.org/ftp/ideasman42/html/bpy.types.Context-class
> > .h
> > tml): you start from the main and dig through it.
> >
> > Afaik it's not available in the GE yet. So in the GE you must stick 
> > with GE API only, which hasn't changed.
> >
> > I don't have information about the OpenGL functions, I will ask on 
> > IRC.
> >
> > Regarding your stereo camera sensor, you need to look at the 
> > VideoTexture module, it can do custom render from selected 
> camera. The 
> > main functions of the VideoTexture module are video 
> streaming to GPU 
> > texture and Render to Texture. This latter feature can be 
> intercepted 
> > to retrieve custom render in Python buffers.
> >
> > There is a wiki about VideoTexture but it doesn't cover advanced
> > features: 
> > 
> http://wiki.blender.org/index.php/Dev:Source/GameEngine/2.49/VideoText
> > ur
> > e
> >
> > Especially the Render to Texture is not covered but you can 
> find a lot 
> > of details in the commit log: 
> > 
> http://lists.blender.org/pipermail/bf-blender-cvs/2008-November/016793
> > .h
> > tml
> >
> > These examples assume that you want to update a GPU texture 
> but it's 
> > possible to intercept the image buffer and bypass the 
> Texture update. 
> > Instead of calling the Texture object's Refresh function, you can 
> > directly take the image buffer with this command sequence:
> >
> > image = GameLogic.video.source.image
> > if image: 
> >     ... Custom processing
> > GameLogic.video.source.refresh()
> >
> > Where 'video' is the Texture object and 'source' is the ImageRender 
> > object. Note that this method will allow you to keep the 
> image size to 
> > its original size at no cost: just set 
> GameLogic.video.source.scale = 
> > False during the initialization. If you want to apply the 
> render to a 
> > texture and process the image, you need the following sequence:
> >
> > GameLogic.video.refresh(False)	# as opposed to refresh(True)
> > image = GameLogic.video.source.image
> > if image: 
> >     ... Custom processing
> > GameLogic.video.source.refresh()
> >
> > Note that in that case you must set GameLogic.video.source.scale = 
> > True during initialization otherwise scaling is much too 
> slow but then 
> > the size of the image is reduced to the largest power of 2 that is 
> > equal or lower than the render size. Applying the render to 
> a texture 
> > will allow you to display what the robot sees inside the GE 
> Scene (for 
> > example on a wall or on a panel on the robot itself). I can 
> be handy 
> > for debugging or just for fun.
> >
> > One last comment: GameLogic.video.source.image builds and returns a 
> > string buffer of very large size. For performance reason, 
> you should 
> > only access it only once per script. The format is a string 
> containing 
> > the image as binary RGBA line by line.
> >
> > I hope you can find your way through this massive amount of 
> > information!
> >
> > /benoit
> >
> >
> >   
> >> -----Original Message-----
> >> From: robotics-bounces at blender.org
> >> [mailto:robotics-bounces at blender.org] On Behalf Of 
> Gilberto Echeverria
> >> Sent: lundi 21 septembre 2009 15:31
> >> To: Blender and Robotics
> >> Subject: Re: [Robotics] Middlewares: the sequel
> >>
> >>
> >> Hi Benoit,
> >>
> >> We are currently trying to implement a stereo camera sensor. As you
> >> mentioned there are no python sensors at the moment, so 
> our current 
> >> approach is to use the Game Engine sensors connected to a 
> >> python Controller.
> >>
> >> The way we're trying to implement the stereo camera is by 
> having two
> >> Blender camera objects on the robot, plus the scene camera. 
> >> We want to 
> >> generate screen captures of what the cameras on board the 
> >> robot see, but 
> >> without changing the users's view of the scene. As in 
> >> Severin's example, 
> >> we can capture a portion of the Blender screen using 
> >> glReadPixels, but 
> >> this requires the view from the robot camera to be shown 
> >> on-screen. So 
> >> what we need is to do off-screen rendering of the 
> additional cameras. 
> >> I'm looking at how this can be done in Blender 2.5.
> >>
> >>  From the other threads I see that Blender 2.5 no longer 
> includes the
> >> Blender module. So where can I now find the BGL or equivalent 
> >> module to 
> >> make use of OpenGL functions? Is there any documentation 
> available at 
> >> the moment?
> >>
> >> Cheers
> >> Gilberto
> >>
> >>
> >> Benoit Bolsee wrote:
> >>     
> >>> Nice stuff! I see clearly how it will work for 
> controllers but what
> >>> about sensors? There is currently no 'python' sensor. Of 
> course you 
> >>> can always replace a sensor by a python controller 
> running for each 
> >>> frame and doing some detection work.
> >>>
> >>> But for performance reason you might want to implement some C++
> >>> sensors. It's fairly easy to simulate a camera sensor: 
> all the code 
> >>> necessary to render the scene from a camera object is 
> >>>       
> >> present in the
> >>     
> >>> GE. It just needs to be put together. Using OGL filters, you could
> >>> even simulate noise, black&white camera, etc. It would even be 
> >>> possible to simulate a ultrasonic or radar sensor by 
> processing the 
> >>> Zbuffer.
> >>>
> >>> /benoit
> >>>
> >>>   
> >>>       
> >>>> -----Original Message-----
> >>>> From: robotics-bounces at blender.org 
> >>>> [mailto:robotics-bounces at blender.org] On Behalf Of Séverin
> >>>>         
> >> Lemaignan
> >>     
> >>>> Sent: mardi 15 septembre 2009 9:57
> >>>> To: Blender and Robotics
> >>>> Subject: [Robotics] Middlewares: the sequel
> >>>>
> >>>>
> >>>> Hello everyone,
> >>>>
> >>>> I've put on the wiki the current state of our design ideas for a 
> >>>> component-based, middleware independent, simulator 
> (check the two 
> >>>> last sections on this page
> >>>> 
> http://wiki.blender.org/index.php/Robotics:Simulators/OpenRobots).
> >>>>
> >>>> We are currently implementing first examples of such components 
> >>>> (starting with a GPS and a simple mobile robot), but 
> it's still at 
> >>>> drafting stage, and your reviews are very welcome.
> >>>>
> >>>> It would be especially interesting to think of how to integrate 
> >>>> what has been done on the arm in this workflow (if it's 
> relevant). 
> >>>> I'm also interested in Stefaan views regarding the 
> possible use of 
> >>>> channels within the component specification.
> >>>>
> >>>> By the way, we have a meeting tomorrow at LAAS-CNRS and ONERA to 
> >>>> update the roadmap. We'll keep you posted, but the target for a
> >>>> first, usable 
> >>>> release of the OpenRobots simulator is likely to be mid-march.
> >>>>
> >>>> Best regards,
> >>>> Severin
> >>>>
> >>>>     
> >>>>         
> >>> _______________________________________________
> >>> Robotics mailing list
> >>> Robotics at blender.org
> >>> http://lists.blender.org/mailman/listinfo/robotics
> >>>   
> >>>       
> >> _______________________________________________
> >> Robotics mailing list
> >> Robotics at blender.org
> >> http://lists.blender.org/mailman/listinfo/robo> tics
> >>
> >>     
> >
> > _______________________________________________
> > Robotics mailing list
> > Robotics at blender.org 
> > http://lists.blender.org/mailman/listinfo/robotics
> >   
> 
> _______________________________________________
> Robotics mailing list
> Robotics at blender.org 
> http://lists.blender.org/mailman/listinfo/robo> tics
> 



More information about the Robotics mailing list