|
|
|
|
| Downloads | Software: RRG Kinematix v4.0 |
|
|
| RRG Kinematix v4.0 is available for download below. The file size is 931 KB and is a self extracting archive. |
|
| Description |
'RRG Kinematix' is a C/C++ library for generalized robot kinematics. It can be used to perform forward and inverse kinematics of any serial chain robot, with any number of Degrees of Freedom. All information about the robot is included in the DH parameter file that the user has to supply for each robot. Also, the user can create and manipulate multiple robots at the same time.
The usage is very simple, because the forward and inverse kinematics is performed by calling simple functions like 'GetHandPosition( )' and 'GetJointPosition( )' respectively. For those who like to fine tune the kinematics routines to their own needs, functions are provided that will adjust the parameters of the inverse kinematics routines.
The library is supplied as a DLL file for Win95/NT. The LIB file supplied is to be included as one of your project files, while compiling programs made to use the DLL. Once compiled, the program will automatically look for the DLL in the Windows system directory. Version 4.0 adds basic collision detection and obstacle avoidance features to the generalized kinematics.
|
|
| Example Applications |
'RRG Kinematix' is distributed along with four sample applications developed with it. These examples demonstrate the capabilities of the library and also show how to use this package.
Example 1: This program performs the forward kinematics solution for a planar 3R robot. The user enters the 3 joint values in degrees and the program computes the position and orientation of the end-effector and prints it in the homogenous matrix form.
- Location: (Target Directory)/RRG Kinematix/Examples/3 DOF Forward/3DOFForward.c
Example 2: This program uses the 'RRG Kinematics.dll' to find the inverse solution of a Puma560 robot. Some initial set of angles are specified in the program and then it calculates the values of joint angles to make the EEF move in the x direction incrementally. The joint values are printed on to the screen. Additionally, in version 3.0, the GetHandJacobian() function is called at each step to print out the value of Jacobian.
- Location: (Target Directory)/RRG Kinematix/Examples/Puma Inverse/PumaInverse.c
Example 3: This Program demonstrates RRG Kinematix performing inverse kinematics for a 7-DOF robot. Here we specify the robot to move in a straight line along the x direction. This program needs RoboWorks running simultaneously. 'RoboWorks' is an easy-to-use 3D simulation package developed by Dr. Chetan Kapoor and available at http://www.newtonium.com/.
RoboWorks can communicate with other programs through the TCP/IP channel and thus other programs can control the simulations of robots in RoboWorks. The high level functions and libraries needed for third party programs to communicate with RoboWorks is distributed with it. Roboworks is available at: http://www.newtonium.com/.
In version 3.0 and higher of RRG Kinematix, this program also demonstrates the use of a different inverse type for the inverse kinematics calculation. Since this is a 7 DOF spatial (redundant) robot, the inverse type can be chosen and this feature is also demonstrated.
- Location: (Target Directory)/RRG Kinematix/Examples/7 DOF Inverse/7_DOF_Inverse.c
Example 4: This Program demonstrates the ability of RRG Kinematics in using multiple robots. Here, a 10 DOF robot is considered as 2 robots having 3DOF and 7DOF each. The 7DOF robot 'arm', sits on the end-effector of the 3DOF robot 'torso'. The user can move the torso DOFs using the keyboard keys.
This program then calculates the forward kinematics for torso and based on this result recalculates the arm inverse kinematics, so that the end-effector of the arm stays in the same position. This example also needs RoboWorks.
- Location: (Target Directory)/RRG Kinematix/Examples/7 DOF Inverse With Moving Base/7_DOF_Inverse_With_Moving_Base.c
Example 5: This Program demonstrates the ability of RRG Kinematics in performing collision prevention using a 6 DOF robot and a single spherical obstacle. An initial set of joint angles is specified in the program and then the program calculates the values of joint angles to make the EEF move in the z direction incrementally.
The hand position matrix, joint values, smallest minimum distance, and direction of this minimum distance line (from the obstacle to the manipulator) are printed to the screen.
- Location: (Target Directory)/RRG Kinematix/Examples/6DOF Inverse With Spherical Obstacle/6DOFInverse.c
Example 6: This Program demonstrates the ability of RRG Kinematics in performing obstacle avoidance using a 10 DOF robot and several obstacles. At each setpoint three options are generated for the commanded EE position. The user controls the EE position interactively using the keyboard.
For each option, artificial force values are calculated and output. The 'best' obstacle avoidance option is then chosen based on minimizing artificial EE forces. This example also needs RoboWorks.
- Location: (Target Directory)/RRG Kinematix/Examples/10DOF Inverse Avoiding Cylispherical Obstacle/10DOFInverse.c
|
|
| What's new in v4.0 |
View changes in version 3.0
Six new functions have been added in Version 4.0 of RRG Kinematix. These functions implement collision detection and obstacle avoidance by providing the minimum distance and its direction, artificial joint torque values, and artificial end-effector force and torque values at each setpoint . The new functions added are:
- CreateObstacleAvoidance(): Sets up obstacle avoidance using a data file supplied by the user. This data file contains a world model for the workspace. The computed obstacle avoidance values can be used for simple collision checking or for more complicated schemes. The details of how to use the calculated values are left to individual user applications. See the sample applications for examples of how to use obstacle avoidance and for a sample data file.
- GetObstacleAvoidanceData(): Returns the obstacle avoidance state of the robot for the last set of joint angles supplied to the robot (using GetHandPosition(), GetHandJacobian(), or GetJointPosition() ). The data is returned using an ObAvoidData structure. See the new RRG Kinematix.h file for the definition of this structure.
- SetObAvoidProperties(): Sets what type of obstacle avoidance data is returned (and calculated) when GetObstacleAvoidanceData() is called. The default value is to only calculate the smallest minimum distance.
- GetObAvoidProperties(): Returns the current settings for what obstacle avoidance data is to be calculated.
- SetArtificialForceProperties(): Sets the parameters to be used in calculating artificial forces.
- GetArtificialForceProperties(): Gets the current parameters used in calculating artificial forces.
In addition to adding the above functions, various data types for collision prevention and obstacle avoidance interaction have been added.
|
|
| Download |
| The file you are downloading is a self extracting archive. Double-click the file and extract the contents. In the folder labeled 'Disk1', double-click 'Setup.exe' to being installation. Prior to installing RRG Kinematix, please email Dr. Chetan Kapoor and request a serial number. |
|
| Download 'RRG Kinematix v4.0' |
|
|
|