Yucheng Jin (金昱成)
- Since Sep. 2013: Ph.D. Student at fortiss
- Master Student in Informatik Program
- Research Assistant in Augmented Reality Group
- I was born in northwestern part of China,Lanzhou. After finishing the bachelor study in Wuhan University(国立武汉大学), I came to Technical University of Munich for my further education. Now I have finished my master thesis in SAP Research Darmstadt with FP7 Program SERENOA, after that I plan to pursue my Ph.D in areas of HCI and Ubiquitous Computing.
- Novel Interaction Technologies
- Augmented Reality
- Ubiquitous Computing
- Recommender System
Work at FAR
I am participating in the project Crumbs
Project which mainly targets on Mobile Geo-Spatial Social Network and an Augmented Reality Engine. My work are related to development and evaluation of metaphors for augmented reality navigation by using Metaio Mobile SDK and Unity3D game engine. Now I am still doing works about improve existing navigation metaphors.
Improvement of path generation
Currently the navigation path is generated by functions of "LinearNavigation" and "BezierCurveNavigation", while both functions only generate path by connecting the current position to target position by a curve directly without considering the context of path. e.g. obstacle avoidance, turning at a corner and etc.
Kitchen is chosen as destination in the following example, the path was generated by connecting the original camera position to kitchen position directly which may collide with other objects on ground.
1.Generated path before improving navigation algorithm
Since the interpolation was also applied to the orientation, therefore arrow orientation will change according to the position of arrow.
2.Arrow with wrong orientation
Fortunately there exists a cool future in unity Pro (above 3.5), Navmesh and Pathfinding
, navigation mesh(also known as the Navmesh) is a simplified representation of world geometry, which gameplay agents use to navigate the world. Typically an agent has a goal, or a destination, to which it is trying to find a path, and then navigate to that goal along the path. This process is called pathfinding. Note that Navmesh generation (or baking) is done by game developers inside the editor, while the pathfinding is done by agents at run-time based on that Navmesh.
Before setting the Navmesh agent the geometry should be baked firstly. The blue zone in picture is the effect after baking. The gray cube in the picture is the invisible navmesh agent which can calculate the path after setting the destination of it.
Therefore we could use Navemesh and Pathfinding to provide a dynamic and feasible path. After baking navmesh(navigation enviroment) for NavMeshAgent, then setting up an agent by adding NavMeshAgent component in the scene. Once setting the destination for the agent, the path can be calculated by the function.
NavMesh.CalculatePath (sourcePosition : Vector3, targetPosition : Vector3, passableMask : int, path : NavMeshPath) : Boolean
| Parameter || Description |
| passableMask || A mask specifying which NavMesh layers can be passed when calculating a path. |
| targetPosition || The final position of the path requested. |
| sourcePosition || The initial postion of the path requested. |
| path || The resulting path. |
Calculate a path between two points and store the resulting path.
By calling path.corners
all key points on this path can be obtained, then new path can be applied to different visualization.
5.Arrow with improved navigation algorithm
6.Line with improved navigation algorithm
Finally an effective path is generated by pathfinding function of navmesh agent. If setting agent speed fast enough we can get correct path in real time according to current position change.