← Back to team overview

opencog-dev team mailing list archive

Fwd: Coding an OpenCog implication for the robot to carry out a command like "Do Tai Chi"

 

 Hi Troy

Last period, I meant to build a new messaging system based on xml-rpc. So I
did not quite understand what you mentioned in the mail. But after I look
over all the source code of embodiment, I know what you mean and I decided
to use its message system.

good :)

Now I am coding a PLNServer(in C++) like the Learning server, it receives
messages coming from the router.

PLNServer will be used for what purpose? What does PLN stands for?
(Probabilistic Logic Network?) If You're preparing PLNServer to directly
communicate with the robot, you shouldn't. The correct way of communicating
with an external entity/environment is via Proxy (see the explanation
bellow).

There's a parsing server(in Java) like MV_Proxy, which implements with
ReLex, it parses the message from the client and then send to the router.

Ok.

Now  supposed there is only one robot and one robot owner, therefore we do
not need to judge the robot id, do I need to define a custom node type in
atomspace?

Well, if you're referring to create a new node type by "define a custom
node" the answer is no. But if you meant to instantiate two nodes for both
entities, the answer is yes. You need to instantiate an already defined node
type for the robot and another for its owner.

i.e.:

HUMANOID_NODE "id_robot_01"
AVATAR_NODE "id_owner_01"

Both HUMANOID and AVATAR are nodes used by the embodiment. So, you can use
them to declare your entities.

However, the easiest way of declaring the physical entities, that are into
the robot's environment, is using map-info messages. MV_PVP make use of
map-info messages to notify the Embodiment the position, orientation and
many other entities characteristics. So, your proxy should use it too.
Embodiment uses a bi-dimensional map (LocalSpaceMap2D opencog/spatial ) to
represent the physical objects that were perceived by the agent. The
LocalSpaceMap2D is created and updated via map-info messages. I've attached
an example of the map-info message. Anyway, just to make the things clearer,
lets see the main structures of the map-info message:

The tag bellow is used to represent the map dimension and position.
<map-info global-position-x="319084" global-position-y="-193599"
global-position-offset="67400">
global-position-x and global-position-y represents the lower left corner of
the map. Please note that the map has a square geometry.
global-position-offset is the dimension of the map. it is added to the
global-position-(x|y) to determine the upper right corner of the map and,
consequently, its final area.

Each object inside the map is added into the LocalSpaceMap2D through a blip
tag. Blip is used to insert, update and remove entities from the
LocalSpaceMap2D. So, your proxy must to read the visual informations of the
entities (prepared by the robot) and convert them to structures like the
shown bellow.
*
<blip timestamp="2009-09-03T17:33:25.640" >

<entity id="19859" name="Fido" type="pet" owner-id="55" owner-name="Sally"/>
*
id: is a unique number which identifies an entity inside the environment. it
can be an incremental counter.
name: alias used by the human avatars to refer to the agent
*type: here you will define the type of the agent or entity which will be
represented inside the LocalSpaceMap. Here you will define the node for you
agents. Use "humanoid" for the robot blip and "avatar" for the owner blip*
owner-id: is a unique number which identifies the owner of the agent.
owner-name: alias used by the owner to refer to itself for the agent.

This is the spatial properties of the entity. They're self explicative.
*<position x="326193.0" y="-139482.0" z="0"/>
<rotation pitch="-0.0" roll="-3.141592653589793" yaw="1.4939652380932174"/>
<velocity x="0.0" y="0.0" z="0"/>
*
And finally you must to define some properties of the entity. The properties
bellow are obligatory. You can also send custom properties, if you wish, but
you will need to handle them in the PAI::processMapInfo method inside the
PAI.cc file (opencog/embodiment/Control/PerceptionActionInterface/).
*<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="100.00" />
<property name="length" value="200.00" />
<property name="height" value="200.00" />
<property name="detector" value="true" />
</properties>
</blip>*
Obs.: color, material and texture are optional properties supported by the
embodiment.


 Do you got the module that can evaluate the rules (ImpLinks) and turn out
commands that can be understood by robot?

Well, the module that do the command resolution can be found at
opencog/embodiment/Control/OperationalPetController/ and it is called
LanguageComprehension (.h .cc). This module is already been called by the
PAI when an "instruction message" of content-type different than
"SPECIFIC_COMMAND" arrives (from the proxy the the router and then handled
by PAI). If you take a look at
http://www.opencog.org/wiki/EmbodimentLanguageComprehension you can find
examples of instruction messages.
As I mentioned in the previous email, the instructions for creating custom
ImpLinks (new commands) can be found here:
http://www.opencog.org/wiki/Embodiment#Language_Comprehension.

Notice that every action executed by the agents is fired by the RuleEngine
module ( http://www.opencog.org/wiki/RuleEngine_(Embodiment)<http://www.opencog.org/wiki/RuleEngine_%28Embodiment%29>).
RuleEngine evaluates a set of rules at each cycle (~500ms) and chooses
one that best matches the actual state of the agent (considering the rules
pre-conditions). Thus, the effect of the chosen rule is then executed by the
agent. The rules declaration can be found at
opencog/embodiment/(pet|humanoid)_rules.lua .

There is one rule, declared at pet_rules.lua, called
"executeRequestedAction" which is responsible for executing commands
requested by the avatars (including the agent's owner). When a command is
requested by an avatar and detected by the LanguageComprehension module, the
predicate has_requested_schema (the unique rule precondition) becomes true.
So, in the next cycle of the RuleEngine the "executeRequestedAction" rule
can be selected for execution. If so, a combo procedure (the rule effect)
will be executed. This combo procedure is the same defined in the ImpLink
effect side.
i.e. look at the evaluate-grab-command ImpLink defined at
opencog/embodiment/scm/command-resolution-rules.scm. Its effect is:
(ExecutionLink
     (GroundedSchemaNode "goto_object_and_grabit")
     (ListLink
      (VariableNode "$targetRealNode")
      )
     )

So, during the execution of a requested grab action, by the RuleEngine, the
combo procedure goto_object_and_grabit($targetRealNode <- variable bound to
a real entity) will be evaluated. The evaluation of an action combo
procedure will result in a action-plan. An action plan is a XML message sent
by the embodiment to the proxy which describes the action that must be
executed by the agent. The MV-Proxy receives that kind of message and do the
necessary operations to animate the virtual pet inside the Multiverse. But
in your case, you will need to receive this message and call some API
(inside the proxy) to execute the desired command in the Robot.

Just to exemplify what I'm saying here is an example of the action-plan
message that is sent by the Embodiment to the proxy after the execution of
an action by the RuleEngine:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<pet:action-plan
xmlns:pet="http://proxy.esheepco.com/brain";<http://proxy.esheepco.com/brain>entity-id="19859"
id="0">

  <action name="walk" sequence="1">
    <param name="target" type="vector">
      <vector x="326193" y="-139482" z="0"/>
    </param>
    <param name="speed" type="float" value="2.5"/>
  </action>

  <action name="walk" sequence="2">
    <param name="target" type="vector">
      <vector x="324218" y="-137652" z="0"/>
    </param>
    <param name="speed" type="float" value="2.5"/>
  </action>

  <action name="bark" sequence="3"/>

</pet:action-plan>
This action plan will make the agent to move from one point to another,
passing through two different positions, and then bark.

In your case, you can create a combo procedure that generates something
like:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<pet:action-plan
xmlns:pet="http://proxy.esheepco.com/brain";<http://proxy.esheepco.com/brain>entity-id="19859"
id="1">
  <action name="do-tai-chi" sequence="1"/>
</pet:action-plan>

and then, after parsing this message in your proxy, you will identify the
request and call the necessary routines to command the Robot to do a
tai-chi.

Well, I guess that's all. If you do not understand something, please let me
know. I can help you coding the combo action to generate the correct
action-plan, if you wish (I guess this will be the hardest part).

Ps.: I suggest you to execute the whole application using MV_proxy and a
Multiverse client to help you understand how embodiment works. Read the
README file of the MV_Proxy before start configuring the environment.

Samir


Hi Samir,
> Sorry for disturbing!
> Last period, I meant to build a new messaging system based on xml-rpc. So I
> did not quite understand what you mentioned in the mail. But after I look
> over all the source code of embodiment, I know what you mean and I decided
> to use its message system. Now I am coding a PLNServer(in C++) like the
> Learning server, it receives messages coming from the router. There's a
> parsing server(in Java) like MV_Proxy, which implements with ReLex, it
> parses the message from the client and then send to the router. Now
>  supposed there is only one robot and one robot owner, therefore we do not
> need to judge the robot id, do I need to define a custom node type in
> atomspace? Do you got the module that can evaluate the rules (ImpLinks) and
> turn out commands that can be understood by robot?
>
> Thank you so much..
>
> Troy
>
<?xml version="1.0" encoding="UTF-8"?>
<pet:petaverse-msg xmlns:pet="http://proxy.esheepco.com/brain"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://proxy.esheepco.com/brain BrainProxyAxon.xsd">
<map-info global-position-x="319084" global-position-y="-193599" global-position-offset="67400">
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19859" name="Fido" type="pet" owner-id="55" owner-name="Sally"/>
<position x="326193.0" y="-139482.0" z="0"/>
<rotation pitch="-0.0" roll="-3.141592653589793" yaw="1.4939652380932174"/>
<velocity x="0.0" y="0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="100.00" />
<property name="length" value="200.00" />
<property name="height" value="200.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19805" name="rocks-1" type="structure"/>
<position x="345599.0" y="-180683.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="2350.00" />
<property name="length" value="2750.00" />
<property name="height" value="1000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19838" name="Ball3" type="accessory"/>
<position x="339040.0" y="-151132.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="50.00" />
<property name="length" value="50.00" />
<property name="height" value="5.00" />
<property name="color-50%" value="blue" />
<property name="isToy" value="true" />
<property name="material" value="leather" />
<property name="texture" value="smooth" />
<property name="class" value="ball" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19827" name="barrel03" type="structure"/>
<position x="356071.0" y="-139519.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="500.00" />
<property name="length" value="500.00" />
<property name="height" value="1600.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19816" name="thirdWaterBowl" type="object"/>
<position x="323627.0" y="-136560.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="150.00" />
<property name="length" value="150.00" />
<property name="height" value="1000.00" />
<property name="drinkable" value="true" />
<property name="waterBowl" value="true" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19826" name="barrel02" type="structure"/>
<position x="326803.0" y="-142825.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="500.00" />
<property name="length" value="500.00" />
<property name="height" value="1600.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19813" name="secondWaterBowl" type="object"/>
<position x="348391.0" y="-133655.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="150.00" />
<property name="length" value="150.00" />
<property name="height" value="1000.00" />
<property name="drinkable" value="true" />
<property name="waterBowl" value="true" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19806" name="rocks-2" type="structure"/>
<position x="341312.0" y="-181683.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="2350.00" />
<property name="length" value="2750.00" />
<property name="height" value="1000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19822" name="gazebo-leg-5" type="structure"/>
<position x="370032.0" y="-171864.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="400.00" />
<property name="length" value="400.00" />
<property name="height" value="5000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19828" name="barrel01" type="structure"/>
<position x="337074.0" y="-131842.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="500.00" />
<property name="length" value="500.00" />
<property name="height" value="1600.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19807" name="rocks-3" type="structure"/>
<position x="344639.0" y="-184683.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="2350.00" />
<property name="length" value="2750.00" />
<property name="height" value="1000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19814" name="thirdDogHouse" type="object"/>
<position x="323805.0" y="-132464.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-0.7853980154553872"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="1500.00" />
<property name="length" value="1000.00" />
<property name="height" value="1000.00" />
<property name="petHome" value="true" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19821" name="gazebo-leg-4" type="structure"/>
<position x="370065.0" y="-174996.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="0.00" />
<property name="length" value="400.00" />
<property name="height" value="5000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19802" name="fountain_1" type="structure"/>
<position x="336040.0" y="-146840.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.9722223137554347"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="2000.00" />
<property name="length" value="2000.00" />
<property name="height" value="1000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19829" name="rocks-1" type="structure"/>
<position x="345599.0" y="-180683.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="2350.00" />
<property name="length" value="2750.00" />
<property name="height" value="1000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19824" name="gazebo-leg-7" type="structure"/>
<position x="364641.0" y="-169613.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="400.00" />
<property name="length" value="400.00" />
<property name="height" value="5000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19835" name="Ball" type="accessory"/>
<position x="343508.0" y="-131469.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="50.00" />
<property name="length" value="50.00" />
<property name="height" value="5.00" />
<property name="color-50%" value="blue" />
<property name="isToy" value="true" />
<property name="material" value="leather" />
<property name="texture" value="smooth" />
<property name="class" value="ball" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="55" name="Sally" type="avatar"/>
<position x="326423.0" y="-136491.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.6476274159356097"/>
<velocity x="-0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="350.00" />
<property name="length" value="250.00" />
<property name="height" value="1800.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19815" name="thirdFoodBowl" type="object"/>
<position x="323913.0" y="-137243.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="150.00" />
<property name="length" value="150.00" />
<property name="height" value="1000.00" />
<property name="edible" value="true" />
<property name="foodBowl" value="true" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19837" name="Ball2" type="accessory"/>
<position x="334041.0" y="-152906.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="50.00" />
<property name="length" value="50.00" />
<property name="height" value="5.00" />
<property name="color-50%" value="blue" />
<property name="isToy" value="true" />
<property name="material" value="leather" />
<property name="texture" value="smooth" />
<property name="class" value="ball" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19836" name="Ball1" type="accessory"/>
<position x="334039.0" y="-148423.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="50.00" />
<property name="length" value="50.00" />
<property name="height" value="5.00" />
<property name="color-50%" value="blue" />
<property name="isToy" value="true" />
<property name="material" value="leather" />
<property name="texture" value="smooth" />
<property name="class" value="ball" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19804" name="fountain-box-2" type="unknown"/>
<position x="336233.0" y="-146840.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="5080.00" />
<property name="length" value="780.00" />
<property name="height" value="1000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19830" name="rocks-2" type="structure"/>
<position x="341312.0" y="-181683.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="2350.00" />
<property name="length" value="2750.00" />
<property name="height" value="1000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19812" name="secondFoodBowl" type="object"/>
<position x="347679.0" y="-134155.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="150.00" />
<property name="length" value="150.00" />
<property name="height" value="1000.00" />
<property name="edible" value="true" />
<property name="foodBowl" value="true" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19841" name="bear" type="accessory"/>
<position x="331422.0" y="-131475.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="100.00" />
<property name="length" value="100.00" />
<property name="height" value="10.00" />
<property name="color-75%" value="brown" />
<property name="color-15%" value="white" />
<property name="color-10%" value="black" />
<property name="isToy" value="true" />
<property name="material" value="cloth" />
<property name="texture" value="velvety" />
<property name="class" value="bear" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19840" name="weight" type="accessory"/>
<position x="344948.0" y="-145469.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="100.00" />
<property name="length" value="100.00" />
<property name="height" value="10.00" />
<property name="color-75%" value="yellow" />
<property name="color-25%" value="white" />
<property name="isToy" value="true" />
<property name="material" value="iron" />
<property name="texture" value="smooth" />
<property name="class" value="weight" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19811" name="secondDogHouse" type="object"/>
<position x="351518.0" y="-131115.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="1000.00" />
<property name="length" value="1500.00" />
<property name="height" value="1000.00" />
<property name="petHome" value="true" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19817" name="gazebo" type="unknown"/>
<position x="366213.0" y="-173439.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="10.00" />
<property name="length" value="10.00" />
<property name="height" value="1.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19823" name="gazebo-leg-6" type="structure"/>
<position x="367801.0" y="-169639.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="400.00" />
<property name="length" value="400.00" />
<property name="height" value="5000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19839" name="soccer_ball" type="accessory"/>
<position x="333174.0" y="-141469.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="100.00" />
<property name="length" value="100.00" />
<property name="height" value="10.00" />
<property name="color-75%" value="white" />
<property name="color-25%" value="black" />
<property name="isToy" value="true" />
<property name="material" value="leather" />
<property name="texture" value="smooth" />
<property name="class" value="ball" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19834" name="Stick" type="accessory"/>
<position x="341627.0" y="-138269.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="300.00" />
<property name="length" value="50.00" />
<property name="height" value="5.00" />
<property name="color-100%" value="brown" />
<property name="isToy" value="true" />
<property name="material" value="wood" />
<property name="texture" value="smooth" />
<property name="class" value="stick" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19809" name="firstFoodBowl" type="object"/>
<position x="325583.0" y="-162501.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="150.00" />
<property name="length" value="150.00" />
<property name="height" value="1000.00" />
<property name="edible" value="true" />
<property name="foodBowl" value="true" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19810" name="firstWaterBowl" type="object"/>
<position x="324969.0" y="-161401.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="150.00" />
<property name="length" value="150.00" />
<property name="height" value="1000.00" />
<property name="drinkable" value="true" />
<property name="waterBowl" value="true" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19803" name="fountain-box-1" type="unknown"/>
<position x="336181.0" y="-146852.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="780.00" />
<property name="length" value="5080.00" />
<property name="height" value="1000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19818" name="gazebo-leg-1" type="structure"/>
<position x="362408.0" y="-175021.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="400.00" />
<property name="length" value="400.00" />
<property name="height" value="5000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19808" name="firstDogHouse" type="object"/>
<position x="323308.0" y="-157399.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.3435885648505064E-7"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="1500.00" />
<property name="length" value="1000.00" />
<property name="height" value="1000.00" />
<property name="petHome" value="true" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19842" name="bone_cross" type="accessory"/>
<position x="326626.0" y="-147469.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="100.00" />
<property name="length" value="100.00" />
<property name="height" value="10.00" />
<property name="color-100%" value="white" />
<property name="isToy" value="true" />
<property name="material" value="plastic" />
<property name="texture" value="smooth" />
<property name="class" value="bone" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19831" name="rocks-3" type="structure"/>
<position x="344639.0" y="-184683.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="2350.00" />
<property name="length" value="2750.00" />
<property name="height" value="1000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19820" name="gazebo-leg-3" type="structure"/>
<position x="367803.0" y="-177248.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="400.00" />
<property name="length" value="400.00" />
<property name="height" value="5000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19825" name="gazebo-leg-8" type="structure"/>
<position x="362408.0" y="-171791.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="400.00" />
<property name="length" value="400.00" />
<property name="height" value="5000.00" />
<property name="detector" value="true" />
</properties>
</blip>
<blip timestamp="2009-09-03T17:33:25.640" >
<entity id="19819" name="gazebo-leg-2" type="structure"/>
<position x="364623.0" y="-177274.0" z="0"/>
<rotation pitch="0.0" roll="0.0" yaw="-1.5707963267948966"/>
<velocity x="0.0" y="-0.0" z="0"/>
<properties>
<property name="visibility-status" value="visible" />
<property name="width" value="400.00" />
<property name="length" value="400.00" />
<property name="height" value="5000.00" />
<property name="detector" value="true" />
</properties>
</blip>
</map-info>
</pet:petaverse-msg>