#include <vector>
Go to the source code of this file.
Functions | |
void | setUpFrictionEdges (unsigned int &numEdges, std::vector< double > &frictionEdges) |
void | setUpFrictionEllipsoid (unsigned int numLatitudes, unsigned int numDirs[], double phi[], double eccen[], unsigned int &numFrictionEdges, std::vector< double > &frictionEdges) |
void | setUpSoftFrictionEdges (unsigned int &numEdges, std::vector< double > &frictionEdges) |
void setUpFrictionEdges | ( | unsigned int & | numEdges, |
std::vector< double > & | frictionEdges | ||
) |
Definition at line 99 of file ContactFunctions.cpp.
void setUpFrictionEllipsoid | ( | unsigned int | numLatitudes, |
unsigned int | numDirs[], | ||
double | phi[], | ||
double | eccen[], | ||
unsigned int & | numFrictionEdges, | ||
std::vector< double > & | frictionEdges | ||
) |
Copyright (C) 2015 Jennifer Buehler
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Copied and adapted from GraspIt! Contact class, April 2014.
Sets up the friction edges of this contact using an ellipsoid approximation. This is convenience function, as friction edges can be set in many ways. However, we currently use PCWF and SFC models which are both cases of linearized ellipsoids, so this function can be used for both.
Consider a 3D friction ellipsoid, where the first two dimensions are tangential frictional force (along X and Y) and the third is frictional torque (along Z). This function samples this ellipsoid at numLatitudes latitudes contained in phi[]; at each latitude l it takes numDirs[l] equally spaced discrete samples. Each of those samples becomes a friction edge, after it is converted to the full 6D space by filling in the other dimensions with zeroes.
numFrictionEdges | output: number of edges generated |
frictionEdges | the array (size numEdges*6) defining the friction cone |
Copyright (C) 2015 Jennifer Buehler
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Definition at line 21 of file ContactFunctions.cpp.
void setUpSoftFrictionEdges | ( | unsigned int & | numEdges, |
std::vector< double > & | frictionEdges | ||
) |
Copied and adapted from GraspIt! Contact class (soft contact), April 2014.
Sets up friction edges as a 3D friction ellipsoid. All the computations for fitting analytical surfaces to the two bodies should already have been completed.
Definition at line 60 of file ContactFunctions.cpp.