GRAPHICS ROBOT GENERATOR
ROBOTV3

APURVA PRAKASH
MUKUL GUPTA
Indian Institute of Technology - Kanpur : December 1997


 



Contents


Motivation

The whole idea Robotv3 came from the desired to develop second generation Virtual Director. Virtual Director is a software that converts text to graphics using some predefined dictionary. It has modules for text parsing, object identification, spacial reasoning, motion planning, etc. Virtual Director has very poor graphics developed using Starbase. Moreover, it has predefined functions for every object in it's dictionary, which preverts further generalization of it's domain. Hence came the need for a more generalised structure for it's graphics module.
 
 

Introduction

Robotv3 is an articulated object editor and simulator used for animating robots and other articulated objects in 3D with action dynamics.
 
 

How it works

Any 3D scene to be modelled can be represented in the form of a tree, where the base node is the world frame or the frame of reference. Branches of the tree are objects or robots either static or dynamics in the world frame, which in itself are further branched out.

The object structure can be divided into two parts

  • Skeleton frame of local coordinate systems on each joint, with the type of the joint.
  • Body geometry of the object in that skeleton frame.

  • Using a push and pop stack system for the transformation matrix, the whole tree can be traversed, thus creating the desired scene or the desired object in the scene.
     

    How to define the Input

    The input consists of three things :

  • Skeleton frame defined using four parameters - a, alpha, d, theta. This convention can be read in more detail in the third chapter of the book "Introduction to Robotics, Mechanics and Control" by John J. Craig. Parent link no. or frame no. is also defined for each frame or link. Joint type and range is defined as revolute or prismatic by the value of d or theta.
  • Body geometry is then defined in the skeleton frame locally in each coordinate system using some predefined 3D primitives like cylinder, sphere, cuboid etc. Body geometry is then positioned and orientated in the local frame using five parameters - x, y, z, theta, phi.
  • Motion is defined using a seperate set of data, which has frame or link numbers with the new value of the joint parameter d (prismatic) or theta (revolute), defined at each time step.

  • The whole input is a set of numbers which can be manually entered into a file and can be read into the program robotv3. Motion data is to be specified into a seperate file and can be read afterwards.
     

    Sample Input File for Skeleton and Body Geometry :

    26                                 # Total no of frames

    22                                 # frame 1, parent link = 22
    -90  0  0  0                 # alpha(i-1), a(i-1), d(i), theta(i)
    0                                   # Joint type Revolute
    -50  0  5                     # Joints lower, upper limit and step size
    1                                   # 3D primitive type - Cylinder
    0.1  0.3                        # Radius and Height of the Cylinder
    0  90  0.1  0  0.34      # theta, phi, x, y, z
    ...
    ...
     

    Sample motion file

    3                           # No. of links whose value you are changing
    2  0.000000       # Link no. and it's new value
    25  0.000000     # Total 8 links are changed
    27  0.000000

    4                           # New time frame, again 8 links are changed
    19  0.000000
    20  0.000000
    23  59.999996
    24  -119.999992
    ...
    ...
     
     

    Results

  • Some models have been simulated by us using this program like a hand, a man and a robot called PUMA. See them here on this page.

  •  



    Puma Robot                                                      Man Model


     



  • The model of the man was used in another course project called "From Footprint to Animation"  also. Look this page for it.

  •  

    Program and available Features

    The code is written in C language and uses OpenGL libraries for graphics.

    Some features available in the program are :

  • Wire Frame or Solid Frame Model.
  • Lighting On/Off.
  • View Angle Adjustments.
  • Zoom In/Out.
  • Orthographic or Perspective View.
  • Motion On/Off.

  • Soon executables of this program will be available here on this page.

    To ask for a copy of the program contact me at [email protected]
     
     

    Scope for Improvements

    At present, the input data has to be entered into the program manually. There is no user interface available for it, which makes this activity a little boring and difficult to edit. A user interface can be expected in near future.
     
     

    References

  • "The Virtual Director", by Singh M. P., Mishra N. K., Mukherjee Amitabha in "Conference of the Computer Society of India"
  • "Introduction to Robotics, Mechanics and Control", by John J.Craig, Addison Wesley Publishing Company, Edition May 1988, Chapter 3, "Manipulator Kinematics".
  • "From Footprint to Animation", by Michiel van de Panne, Journal "Computer Graphics Forum", year 1997, volume 16, number 4, pages 211-223.


  • This project was made by Mukul Gupta and Apurva Prakash  in December Semester, 1997. (Guide : Amitabha Mukerjee )
    This page was last updated on 21st July, 1998.