[Robotics] Middlewares

Morten Lind morten at lind.no-ip.org
Wed Jan 20 08:31:10 CET 2010


Found this in an unsent condition in my mail. Sorry if this is severely 
outdated now :-)

--------------------------------------------------

Hi Stefaan

I was educated in comuter science and robotics, and now work with automatic 
manufacturing execution. For control of an example lab setup for part of a 
manufacturing system, comprising a couple of robots, several AGVs, and an 
overhead conveyor, we have chosen the Holonic Manufacturing System 
architecture over the ICE (zeroc.com) middleware. While waiting for the 
mechanical setup, I try to simulate the individual devices as low level 
resource holons, thus maybe addressing your issue.

I'm not sure if this is really what you mean by "middleware", but what I do 
is, for instance, exposing the velocity controller of every AGV in the system, 
i.e. in the blender game engine, as a holon. Likewise with the robot 
controller holon for every robot. The interfaces provided by these BGE-
simulated holons will be identical to the interface on the physical devices, 
thus enabling the use of the same higher level control holons, regardless of 
it being a simulated or the physical system.

I am not at all certain that the BGE will not be starved from computational 
resouces with the system we imagine simulating, but I have no indication that 
it will. 

Tell me if I should keep talking.

Best regards,
Morten Lind.

On Monday 31 August 2009 12:11:58 Stefaan michielsen wrote:
> Hi
>
> I've been looking at some middleware for blender robotics  the past few
> days and i'm wondering whether there is a middleware without having to
> write parsers for every junction in the system.
>
> On first hand, Verse seems like a good middleware. It brings out the
> structures of blender. So no need for parsing. But  on the other hand, it's
> an deserted project, and not every data structure of blender has the
> support needed by us (for instance armatures are non-existent)
>
> At LAAS, yarp is used. I've been exploring the way yarp can help. But it
> seems as though you have to write your own parser, for everything you want
> to be able to do. As well I don't understand why yarp has robotic in the
> name. Is there some bones data structure, or any other robotic related data
> set? Or are bottles used as data containers.
>
> Are there middleware for blender that don't need parsing and are alive?
> If not we should definitly start proposals for what data is to be
> represented towards the middleware.
>
> Since i'm focusing on the *game engine*,  channels are the point of
> interest.  These contain the information about the pose of a robot. So this
> one should be accessible. This is my proposal for data
> structure/management: - Each joint has it's channel.
> - Since location/size are not to be altered in a robot model while running,
> these values are not to be transported.
> - Quaternion should be transported,as 4 floats
>
> Since the setChannel() of the BX_actionactuator doesn't seem to have a read
> ability, I suggest using the channelEditor as wrapper. This permits to
> retrieve info about a pose, while in game.
>
>
> The list of channels are initialized the 1st iteration of the Game Engine
> in a setup routine.
> Putting them in a dictionary in the GameLogic seems the proper way of
> making them universally available. Example:
>
> def setup(self):
>     # Define your channelEditors here. This function will be called only
> once
>     #   "key" : Value
>     # The channels should be changed through this variables.
>     # The changes come into effect only after a channel run() is executed
>
>     GameLogic.channels = {"act1.axis1":ChannelEditor("act1","axis1"),
>                           "act1.axis2":ChannelEditor("act1","axis2"),
>                           "act1.axis3":ChannelEditor("act1","axis3"),
>                           "act1.axis4":ChannelEditor("act1","axis4"),
>                           "act1.axis5":ChannelEditor("act1","axis5")
>                          }
>
> Now you can access the pose rather easily. Each Middleware, can have access
> to each channel simultaneously.
> I've already made an example for yarp integration.
>
> When it's documented properly I'll put it on the blender/robotics wiki.
>
> Stefaan Michielsen


More information about the Robotics mailing list