[Robotics] Middlewares

Ruben Smits ruben.smits at mech.kuleuven.be
Mon Aug 31 13:33:46 CEST 2009


On Mon, Aug 31, 2009 at 12:11 PM, Stefaan
michielsen<stefaan.michielsen at gmail.com> 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.

This isn't entirely true, for mobile platforms the location is important.

> - 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.
>

The rest seems promising, do you have an example blend file so we can
try some stuff out?

Ruben


More information about the Robotics mailing list