JMonkeyEngine

javadoc

Overview

JMonkey (http://jmonkeyengine.org/) is a open source game engine, made especially for Java game developers who want to create 3D games.  But it also works as a very capable simulator with tight integration to MRL.

I think it has enormous potential to begin providing a robotic "Mind State" - where real sensors generate virtual walls.  Or information from OpenCV is used to mark, tag or label 3D objects.  This can be central to how the robot "sees" the outside world.

Loading Models

Models currently are automatically loaded in the :
{mrl install dir}/data/JMonkeyEngine/assets/Models
This directory will automatically be created when a JMonkeyService is started for the first time.

View

  • Zoom In / Zoom Out - mouse wheel or ALT + CTRL + LMB
  • Rotate View    ALT + LMB
  • Pan View        ALT + SHIFT + LMB

Selection

  • Select Object     RMB

Service for JMonkeyEngine primarily used for 3D simulations.

Examples:


#file : service/JMonkeyEngine.py edit raw
#########################################
# JMonkeyEngine.py
# description: used as a general template
# categories: simulator
# more info @: http://myrobotlab.org/service/JMonkeyEngine
#########################################

# start the service
jmonkeyengine = Runtime.start('jmonkeyengine','JMonkeyEngine')

hairygael's picture

Wish list for JMonkey:-have

Wish list for JMonkey:

-Have similar mouse key functions than Blender, this will be nice for viewing and rotating around the parts.

-Some lock to avoid to dismantle the 3d parts when manipulating the view.

-ctrl+Z to undo if necessary. (a dismantled head for exemple)

-Lock the view panel to ovoid overlaying on the viewed objects. This panel could be manually resized if draging the corners?

-Have the grid by default.

-Have a preference box for users, to define some stuff that are by default or not.

-Have a ADD file button and save scene, for next start with all things memorized.

-The search is very handy, but the way it looks is not logic (to me) the black box to type should be next to the word search.

-The help view currently shows:

    forward  ctrl +

    backward ctrl +

 I currently can't see the arrows after the +

 

-Add holding key points with 3d arrows and rotation option at each servo joint, this to be able to manipulate graphically the robot and to "capture gesture". this is to create gestures for the real robot.

 

Crazy wish list:

-Behing able to add a virtual camera in the eye of VinMoov, so when lauching "object detection", it could say what it sees, bootle, glass, chair (I wonder if that is even possible, since yolo works with pictures and not with 3d objects)

-Make sure kinect skeleton tracking works properly on VinMoov, with correct velocity.

-Add inverse kinematic to create gestures for the real InMoov.

-

 

GroG's picture

Have similar mouse key

Have similar mouse key functions than Blender, this will be nice for viewing and rotating around the parts.

Done ... 

How is rotating "around" the part vs "rotating" the part done with blender.
Currently, I have a strong concept of an objected being selected ...   I've changed things such that when "nothing is selected (this can be done by left clicking on background) - the camera becomes the thing that is moved.

Potentially, there can be a difference between what is "view selected" and what is "move selected" - if we seperate these things the camera can be "moved" while objects can be "view selected" without being moved.

How to switch "view selected" - should just be left mouse click on the object (already working that way)
How to switch "move selected" ?  - a move button ? a hot key ? both ?

 

hairygael's picture

Hello Greg,Just tested

Hello Greg,

Just tested version 1.1.92. Some great progress!!

We need still to get it further.

:)

  • Zoom In / Zoom Out - mouse wheel or ALT + CTRL +  Works, but in Blender where you put/set the mouse is where it should zoom
  • Rotate View    ALT +  Works, but it currently rotates the whole scene around the camera, it should rotate the view around the selected object. Currently, if you are beind VinMoov, it's almost impossible to rotate to see him from the front.
  • Pan View        ALT + SHIFT + Works, but same as above it pan the whole scene, not around the selected object. Currently it pan above and down the camera.

I noted also, if I only install the JMonkey service without installing the complete InMoov service, JMonkey throws a error. I have sent a noworky.  ( even if I add in the directory C:\mrl\myrobotlab.1.1.92\data\JMonkeyEngine\assets\Models\VinMoov2.j3o )

Do you think it would be possible to see the node tree like in JMonkey? I have been trying in MRL to go back up in the node tree once I was down and the only way I found was to press "R", but it goes all the way back to root as once.

 

GroG's picture

Do you think it would be

Do you think it would be possible to see the node tree like in JMonkey? I have been trying in MRL to go back up in the node tree once I was down and the only way I found was to press "R", but it goes all the way back to root as once.

Yes.
When you select things (soon to be right mouse click) it will always hit a "Geometry" since that is the visible component.  This always is a leaf, since Nodes only contain Geometries and have no visual component themselves.

You can navigate up and down the scene graph by using the parent & children buttons.  Parent goes up, children go down.  "Current" object selected is the largest text, and full path to the current object is in the breadcrumbs.

I selected Texture1 of the foot, if I want to go "up" I press the parent i01.leftLeg.full 

Potentially this can get you anywhere in the scene graph, I'm not sure I want to invest the time in creating a full tree - I need to get to speed & animating ;)

 

GroG's picture

Zoom In / Zoom Out - mouse

  • Zoom In / Zoom Out - mouse wheel or ALT + CTRL +  Works, but in Blender where you put/set the mouse is where it should zoom
  • Rotate View    ALT +  Works, but it currently rotates the whole scene around the camera, it should rotate the view around the selected object. Currently, if you are beind VinMoov, it's almost impossible to rotate to see him from the front.
  • Pan View        ALT + SHIFT + Works, but same as above it pan the whole scene, not around the selected object. Currently it pan above and down the camera.

Ok so "when something is selected" - you want all the view navigation applied to that object from the viewpoint of the camera (Are you running Blender with modified settings ?)

When an object is NOT selected - does it behave the way you expect ?   There has to be a way in MRL-JMonkey to rotate/pan the whole scene

hairygael's picture

Hello, Thanks now I get it

Hello,

Thanks now I get it about the parent child navigation!

This video will explain better than a thousand words for the rotation around the object: 

hairygael's picture

Hello Captain, Tested version

Hello Captain,

Tested version 1.1.94

Just for info I get an error with right mouse click.

The green panel becomes VERY, VERY wide when you select the finger tip of VinMoov2, not very handy yet.

:)

 

GroG's picture

Hi Gael, ya - its super long

Hi Gael,

ya - its super long because the last thing you selected had very deep depth, additionally the nodes have long names, so the result is a super wide menu.

I looked into the details/possiblities of having it sized by the user .. 

I didn't find anything, although I have written the founder of the menu system.

I could also turn it into a set of buttons much like the (search/children) beneath - but this would resize the menu vertically (potentially blowing it out vertically - so it might just change axis)

However, we might be able to add scroll bars to the results ...

If you left-click on the title bar you can move it around, also at the moment hitting the "R" key selects the root node, which is shallow