robotic 0.3.3__cp39-cp39-manylinux2014_x86_64.whl → 0.3.3.dev1__cp39-cp39-manylinux2014_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of robotic might be problematic. Click here for more details.

Files changed (73) hide show
  1. robotic/__init__.py +4 -1
  2. robotic/_robotic.pyi +46 -34
  3. robotic/_robotic.so +0 -0
  4. robotic/algo.pyi +17 -0
  5. robotic/include/rai/{Geo → Algo}/Lewiner/MarchingCubes.h +0 -29
  6. robotic/include/rai/Algo/RidgeRegression.h +1 -1
  7. robotic/include/rai/Algo/marching_cubes.h +9 -0
  8. robotic/include/rai/Algo/trilinear.h +10 -0
  9. robotic/include/rai/Core/arrayDouble.h +15 -4
  10. robotic/include/rai/Core/util.h +3 -0
  11. robotic/include/rai/DataGen/rndStableConfigs.h +1 -0
  12. robotic/include/rai/Geo/geo.h +4 -4
  13. robotic/include/rai/Geo/mesh.h +5 -5
  14. robotic/include/rai/Geo/pairCollision.h +1 -1
  15. robotic/include/rai/Geo/signedDistanceFunctions.h +2 -3
  16. robotic/include/rai/Gui/RenderData.h +1 -0
  17. robotic/include/rai/KOMO/komo.h +2 -0
  18. robotic/include/rai/KOMO/komo_NLP.h +2 -2
  19. robotic/include/rai/KOMO/manipTools.h +4 -0
  20. robotic/include/rai/Kin/kin_physx.h +6 -4
  21. robotic/include/rai/Kin/simulation.h +9 -4
  22. robotic/include/rai/LGP/LGP_TAMP_Abstraction.h +33 -0
  23. robotic/include/rai/LGP/LGP_Tool.h +4 -25
  24. robotic/include/rai/LGP/LGP_computers2.h +196 -0
  25. robotic/include/rai/LGP/NLP_Descriptor.h +5 -0
  26. robotic/include/rai/Optim/BayesOpt.h +3 -3
  27. robotic/include/rai/Optim/GlobalIterativeNewton.h +1 -1
  28. robotic/include/rai/Optim/NLP.h +5 -5
  29. robotic/include/rai/Optim/SlackGaussNewton.h +0 -10
  30. robotic/include/rai/Optim/constrained.h +1 -1
  31. robotic/include/rai/Optim/gradient.h +8 -6
  32. robotic/include/rai/Optim/lagrangian.h +3 -2
  33. robotic/include/rai/Optim/lbfgs.h +18 -0
  34. robotic/include/rai/Optim/liblbfgs.h +755 -0
  35. robotic/include/rai/Optim/m_LeastSquaresZeroOrder.h +38 -0
  36. robotic/include/rai/Optim/newton.h +3 -3
  37. robotic/include/rai/Optim/opt-ceres.h +2 -2
  38. robotic/include/rai/Optim/options.h +3 -2
  39. robotic/include/rai/Optim/primalDual.h +1 -1
  40. robotic/include/rai/Optim/testProblems_Opt.h +20 -8
  41. robotic/include/rai/Optim/utils.h +20 -79
  42. robotic/include/rai/Perception/pcl.h +10 -10
  43. robotic/include/rai/ry/py-algo.h +17 -0
  44. robotic/librai.so +0 -0
  45. robotic/meshTool +0 -0
  46. robotic/rai-robotModels/panda/panda.g +9 -9
  47. robotic/rai-robotModels/panda/panda_withoutCollisionModels.g +3 -11
  48. robotic/rai-robotModels/pr2/pr2.g +5 -5
  49. robotic/rai-robotModels/pr2/pr2_clean.g +19 -19
  50. robotic/rai-robotModels/robotiq/robotiq_clean.g +2 -2
  51. robotic/rai-robotModels/scenarios/liftRing.g +2 -2
  52. robotic/rai-robotModels/scenarios/pandaSingle.g +1 -1
  53. robotic/rai-robotModels/tests/arm.g +15 -16
  54. robotic/ry-h5info +3 -12
  55. robotic/ry-test +3 -3
  56. robotic/src/h5_helper.py +20 -5
  57. robotic/src/h5_helper.py~ +42 -0
  58. robotic/version.py +1 -1
  59. robotic-0.3.3.dev1.data/scripts/ry-h5info +23 -0
  60. {robotic-0.3.3.data → robotic-0.3.3.dev1.data}/scripts/ry-test +3 -3
  61. {robotic-0.3.3.dist-info → robotic-0.3.3.dev1.dist-info}/METADATA +9 -9
  62. {robotic-0.3.3.dist-info → robotic-0.3.3.dev1.dist-info}/RECORD +71 -61
  63. robotic/test.py +0 -15
  64. robotic-0.3.3.data/scripts/ry-h5info +0 -32
  65. /robotic/include/rai/{Geo → Algo}/Lewiner/LookUpTable.h +0 -0
  66. {robotic-0.3.3.data → robotic-0.3.3.dev1.data}/scripts/ry-bot +0 -0
  67. {robotic-0.3.3.data → robotic-0.3.3.dev1.data}/scripts/ry-info +0 -0
  68. {robotic-0.3.3.data → robotic-0.3.3.dev1.data}/scripts/ry-meshTool +0 -0
  69. {robotic-0.3.3.data → robotic-0.3.3.dev1.data}/scripts/ry-urdfConvert.py +0 -0
  70. {robotic-0.3.3.data → robotic-0.3.3.dev1.data}/scripts/ry-view +0 -0
  71. {robotic-0.3.3.dist-info → robotic-0.3.3.dev1.dist-info}/WHEEL +0 -0
  72. {robotic-0.3.3.dist-info → robotic-0.3.3.dev1.dist-info}/licenses/LICENSE +0 -0
  73. {robotic-0.3.3.dist-info → robotic-0.3.3.dev1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,38 @@
1
+ #pragma once
2
+
3
+ #include "NLP.h"
4
+ #include "../Core/util.h"
5
+
6
+ struct LeastSquaredZeroOrder{
7
+ shared_ptr<NLP> P;
8
+
9
+ //-- parameters of the inner problem (Lagrangian, unconstrained problem)
10
+ double sigma=1e-3;
11
+ double lambda=1e-3;
12
+ uint steps=0;
13
+
14
+ //-- buffers to avoid re-evaluating points
15
+ arr x; ///< point where P was last evaluated
16
+ double phi2_x=-1.;
17
+ arr phi_x, J_x, H_x; ///< features at x
18
+ arr J;
19
+ arr data_X, data_Phi, data_Phi2;
20
+ str method="rank1";
21
+
22
+ LeastSquaredZeroOrder(shared_ptr<NLP> P, const arr& x_init={});
23
+
24
+ shared_ptr<SolverReturn> solve(){
25
+ while(!step()){}
26
+ shared_ptr<SolverReturn> ret = make_shared<SolverReturn>();
27
+ ret->x = x;
28
+ ret->sos = phi2_x;
29
+ ret->feasible=true;
30
+ return ret;
31
+ }
32
+
33
+ bool step();
34
+
35
+ void updateJ_rank1(arr& J, const arr& x, const arr& x_last, const arr& phi, const arr& phi_last);
36
+
37
+ void updateJ_linReg(arr& J, const arr& Xraw, const arr& Y, double lambdaReg=1e-3);
38
+ };
@@ -11,16 +11,16 @@
11
11
  #include "options.h"
12
12
  #include "../Core/array.h"
13
13
 
14
- int optNewton(arr& x, const ScalarFunction& f, rai::OptOptions opt=DEFAULT_OPTIONS);
14
+ int optNewton(arr& x, ScalarFunction& f, rai::OptOptions opt=DEFAULT_OPTIONS);
15
15
 
16
16
  struct OptNewton {
17
- ScalarFunction f;
17
+ ScalarFunction& f;
18
18
  arr& x;
19
19
  rai::OptOptions opt;
20
20
 
21
21
  enum StopCriterion { stopNone=0, stopDeltaConverge, stopTinyFSteps, stopTinyXSteps, stopCritEvals, stopStepFailed, stopLineSearchSteps };
22
22
 
23
- OptNewton(arr& _x, const ScalarFunction& _f, const rai::OptOptions& _opt);
23
+ OptNewton(arr& _x, ScalarFunction& _f, const rai::OptOptions& _opt);
24
24
  ~OptNewton();
25
25
  OptNewton& setBounds(const arr& _bounds);
26
26
  void reinit(const arr& _x);
@@ -27,12 +27,12 @@ struct CeresInterface {
27
27
 
28
28
  //===========================================================================
29
29
 
30
- struct Conv_NLP_CeresProblem {
30
+ struct Conv_NLP2Ceres {
31
31
  shared_ptr<NLP_Factored> P;
32
32
 
33
33
  arr x_full, phi_full; //the full linear memory for all decision variables and all features
34
34
 
35
35
  shared_ptr<ceres::Problem> ceresProblem;
36
36
 
37
- Conv_NLP_CeresProblem(const shared_ptr<NLP_Factored>& _P);
37
+ Conv_NLP2Ceres(const shared_ptr<NLP_Factored>& _P);
38
38
  };
@@ -14,9 +14,10 @@ namespace rai {
14
14
 
15
15
  enum OptMethod { M_none=0,
16
16
  M_gradientDescent, M_rprop, M_LBFGS, M_newton,
17
- M_augmentedLag, M_squaredPenalty, M_logBarrier, M_singleSquaredPenalty,
17
+ M_augmentedLag, M_logBarrier, M_slackGN_logBarrier, M_squaredPenalty, M_singleSquaredPenalty,
18
18
  M_slackGN,
19
- M_NLopt, M_Ipopt, M_Ceres };
19
+ M_NLopt, M_Ipopt, M_slackGN_Ipopt, M_Ceres,
20
+ M_LSZO};
20
21
 
21
22
 
22
23
  struct OptOptions {
@@ -25,7 +25,7 @@ struct PrimalDualProblem : ScalarFunction {
25
25
 
26
26
  PrimalDualProblem(const arr& x, const shared_ptr<NLP>& P, const rai::OptOptions& opt);
27
27
 
28
- double primalDual(arr& r, arr& R, const arr& x); ///< CORE METHOD: the unconstrained scalar function F
28
+ double f(arr& r, arr& R, const arr& x); ///< CORE METHOD: the unconstrained scalar function F
29
29
 
30
30
  void updateMu();
31
31
  };
@@ -11,17 +11,11 @@
11
11
  #include "NLP.h"
12
12
  #include "../Core/util.h"
13
13
 
14
- extern ScalarFunction RosenbrockFunction();
15
- extern ScalarFunction RastriginFunction();
16
- extern ScalarFunction SquareFunction();
17
- extern ScalarFunction SumFunction();
18
- extern ScalarFunction HoleFunction();
19
- extern ScalarFunction ChoiceFunction();
20
-
21
14
  std::shared_ptr<NLP> getBenchmarkFromCfg();
22
15
 
23
16
  //===========================================================================
24
17
 
18
+ #if 0
25
19
  struct ScalarUnconstrainedProgram : NLP {
26
20
  double forsythAlpha = -1.;
27
21
  shared_ptr<ScalarFunction> S;
@@ -47,9 +41,10 @@ struct ScalarUnconstrainedProgram : NLP {
47
41
  }
48
42
  virtual double f(arr& g, arr& H, const arr& x) {
49
43
  CHECK(S, "no scalar function given in the constructor");
50
- return (*S)(g, H, x);
44
+ return S->f(g, H, x);
51
45
  }
52
46
  };
47
+ #endif
53
48
 
54
49
  //===========================================================================
55
50
 
@@ -132,6 +127,20 @@ struct NLP_RastriginSOS : NLP {
132
127
 
133
128
  //===========================================================================
134
129
 
130
+ struct NLP_Rastrigin : ScalarFunction {
131
+ NLP_Rastrigin(uint _dim) { dim=_dim; }
132
+ virtual double f(arr& g, arr& H, const arr& x);
133
+ };
134
+
135
+ //===========================================================================
136
+
137
+ struct NLP_Rosenbrock : ScalarFunction {
138
+ NLP_Rosenbrock(uint _dim) { dim=_dim; }
139
+ virtual double f(arr& g, arr& H, const arr& x);
140
+ };
141
+
142
+ //===========================================================================
143
+
135
144
  /// $f(x) = x^T C x$ where C has eigen values ranging from 1 to 'condition'
136
145
  struct NLP_Squared : NLP {
137
146
  arr C; /// $A = C^T C $
@@ -150,6 +159,7 @@ struct NLP_Wedge : NLP {
150
159
  dimension=2;
151
160
  featureTypes = { OT_f };
152
161
  featureTypes.append(rai::consts(OT_ineq, 2));
162
+ bounds = arr{-2.,-2.,2.,2.}.reshape(2,2);
153
163
  }
154
164
 
155
165
  virtual void evaluate(arr& phi, arr& J, const arr& x) {
@@ -168,6 +178,7 @@ struct NLP_HalfCircle : NLP {
168
178
  dimension=2;
169
179
  featureTypes = { OT_f };
170
180
  featureTypes.append(rai::consts(OT_ineq, 2));
181
+ bounds = arr{-2.,-2.,2.,2.}.reshape(2,2);
171
182
  }
172
183
 
173
184
  virtual void evaluate(arr& phi, arr& J, const arr& x) {
@@ -205,6 +216,7 @@ struct ChoiceConstraintFunction : NLP {
205
216
  enum WhichConstraint { none=0, wedge2D=1, halfcircle2D, randomLinear, circleLine2D, boundConstrained, boundConstrainedIneq } which;
206
217
  uint n;
207
218
  arr randomG;
219
+ shared_ptr<ScalarFunction> f_uc;
208
220
  ChoiceConstraintFunction();
209
221
 
210
222
  void evaluate(arr& phi, arr& J, const arr& x);
@@ -9,76 +9,33 @@
9
9
  #pragma once
10
10
 
11
11
  #include "NLP.h"
12
+ #include "../Core/util.h"
12
13
 
13
- //===========================================================================
14
- //
15
- // lambda expression interfaces
16
- //
17
-
18
- // see function types defined in array.h
19
- //ScalarFunction
20
- //VectorFunction
21
- //fct
22
-
23
- struct Conv_ScalarProblem_NLP : NLP {
24
- ScalarFunction f;
25
- uint xDim;
26
- arr bounds_lo, bounds_up;
27
- Conv_ScalarProblem_NLP(const ScalarFunction& f, uint xDim): f(f), xDim(xDim) {}
28
- void evaluate(arr& phi, arr& J, const arr& x) {
29
- double y = f(J, NoArr, x);
30
- phi = {y};
31
- if(!!J) J.reshape(1, x.N);
32
- }
33
- void getFHessian(arr& H, const arr& x) {
34
- f(NoArr, H, x);
14
+ struct Conv_ScalarFunction2NLP : NLP {
15
+ shared_ptr<ScalarFunction> f;
16
+ Conv_ScalarFunction2NLP(shared_ptr<ScalarFunction> f);
17
+ virtual void evaluate(arr& phi, arr& J, const arr& x);
18
+ virtual void getFHessian(arr& H, const arr& x);
19
+ virtual void report(ostream& os, int verbose, const char *msg=0){
20
+ os <<"ScalarFunction of type '" <<rai::niceTypeidName(typeid(*this)) <<"'";
21
+ if(msg) os <<' ' <<msg;
22
+ os <<" dimension:" <<f->dim;
35
23
  }
36
- void setBounds(double lo, double up) { bounds_lo.resize(xDim) = lo; bounds_up.resize(xDim) = up; }
37
24
  };
38
25
 
39
- struct Conv_NLP_ScalarProblem : ScalarFunction {
26
+ struct Conv_NLP2ScalarProblem : ScalarFunction {
40
27
  std::shared_ptr<NLP> P;
41
-
42
- Conv_NLP_ScalarProblem(std::shared_ptr<NLP> _P) : P(_P) {
43
- ScalarFunction::operator=([this](arr& g, arr& H, const arr& x) -> double {
44
- return this->scalar(g, H, x);
45
- });
46
- }
47
-
48
- double scalar(arr& g, arr& H, const arr& x);
28
+ Conv_NLP2ScalarProblem(std::shared_ptr<NLP> _P) : P(_P) { dim = P->dimension; }
29
+ virtual double f(arr& g, arr& H, const arr& x);
49
30
  };
50
31
 
51
32
  struct Conv_NLP_SlackLeastSquares : NLP {
52
33
  std::shared_ptr<NLP> P;
34
+ Conv_NLP_SlackLeastSquares(std::shared_ptr<NLP> _P);
35
+ virtual void evaluate(arr& phi, arr& J, const arr& x);
36
+ virtual void report(ostream& os, int verbose, const char *msg=0){ os <<"SlackLeastSquares of: "; P->report(os, verbose, msg); }
37
+ private:
53
38
  uintA pick;
54
-
55
- Conv_NLP_SlackLeastSquares(std::shared_ptr<NLP> _P) : P(_P) {
56
- dimension = P->dimension;
57
- bounds = P->bounds;
58
-
59
- //pick constraints
60
- for(uint i=0; i<P->featureTypes.N; i++) {
61
- ObjectiveType f = P->featureTypes(i);
62
- if(f==OT_eq || f==OT_ineq) pick.append(i);
63
- }
64
- featureTypes.resize(pick.N) = OT_sos;
65
- }
66
-
67
- virtual void evaluate(arr& phi, arr& J, const arr& x) {
68
- arr Pphi, PJ;
69
- P->evaluate(Pphi, PJ, x);
70
- phi = Pphi.pick(pick);
71
- J = PJ.pick(pick);
72
- for(uint i=0; i<pick.N; i++) {
73
- if(P->featureTypes(pick(i))==OT_ineq) {
74
- if(phi(i)<0.) { phi(i)=0.; J[i]=0.; } //ReLu for g
75
- } else if(P->featureTypes(pick(i))==OT_eq) {
76
- if(phi(i)<0.) { phi(i)*=-1.; J[i]*=-1.; } //make positive
77
- } else {
78
- NIY;
79
- }
80
- }
81
- }
82
39
  };
83
40
 
84
41
  struct NLP_LinTransformed : NLP {
@@ -89,7 +46,7 @@ struct NLP_LinTransformed : NLP {
89
46
 
90
47
  virtual arr getInitializationSample();
91
48
  virtual void evaluate(arr& phi, arr& J, const arr& x);
92
- virtual void report(ostream& os, int verbose, const char* msg=0){ P->report(os, verbose, msg); }
49
+ virtual void report(ostream& os, int verbose, const char *msg=0){ os <<"LinTransformed of: "; P->report(os, verbose, msg); }
93
50
  };
94
51
 
95
52
  //===========================================================================
@@ -100,27 +57,11 @@ struct NLP_LinTransformed : NLP {
100
57
  bool checkDirectionalGradient(const ScalarFunction& f, const arr& x, const arr& delta, double tolerance);
101
58
  bool checkDirectionalJacobian(const VectorFunction& f, const arr& x, const arr& delta, double tolerance);
102
59
 
103
- //===========================================================================
104
- //
105
- // accumulative constraints
106
- //
107
-
108
- inline void accumulateInequalities(arr& y, arr& J, const arr& yAll, const arr& JAll) {
109
- y.resize(1).setZero();
110
- if(!!J) J.resize(1, JAll.d1).setZero();
111
-
112
- for(uint i=0; i<yAll.N; i++) {
113
- if(yAll.elem(i)>0.) {
114
- y.scalar() += yAll.elem(i);
115
- if(!!J && !!JAll) J[0] += JAll[i];
116
- }
117
- }
118
- }
119
-
120
60
  //===========================================================================
121
61
  //
122
62
  // helpers
123
63
  //
124
64
 
125
- void displayFunction(const ScalarFunction& f, bool wait=false, double lo=-1.2, double hi=1.2);
65
+ void accumulateInequalities(arr& y, arr& J, const arr& yAll, const arr& JAll);
66
+ void displayFunction(ScalarFunction& f, bool wait=false, double lo=-1.2, double hi=1.2);
126
67
 
@@ -24,19 +24,19 @@
24
24
  typedef pcl::PointCloud<pcl::PointXYZ> Pcl;
25
25
  typedef pcl::PointCloud<pcl::PointXYZRGB> PclC;
26
26
 
27
- Pcl::Ptr conv_ArrCloud_PclCloud(const arr& pts);
28
- void conv_ArrCloud_PclCloud(Pcl& cloud, const arr& pts);
29
- void conv_PclCloud_ArrCloud(arr& pts, const Pcl& cloud);
27
+ Pcl::Ptr conv_ArrCloud2PclCloud(const arr& pts);
28
+ void conv_ArrCloud2PclCloud(Pcl& cloud, const arr& pts);
29
+ void conv_PclCloud2ArrCloud(arr& pts, const Pcl& cloud);
30
30
 
31
- PclC::Ptr conv_ArrCloud_PclCloud(const arr& pts, const byteA& rgb);
32
- void conv_ArrCloud_PclCloud(PclC& cloud, const arr& pts, const byteA& rgb);
33
- void conv_PclCloud_ArrCloud(arr& pts, byteA& rgb, const PclC& cloud);
31
+ PclC::Ptr conv_ArrCloud2PclCloud(const arr& pts, const byteA& rgb);
32
+ void conv_ArrCloud2PclCloud(PclC& cloud, const arr& pts, const byteA& rgb);
33
+ void conv_PclCloud2ArrCloud(arr& pts, byteA& rgb, const PclC& cloud);
34
34
 
35
- void conv_ArrCloud_PclCloud(PclC& cloud, const arr& pts, const arr& rgb);
36
- void conv_PclCloud_ArrCloud(arr& pts, arr& rgb, const PclC& cloud);
35
+ void conv_ArrCloud2PclCloud(PclC& cloud, const arr& pts, const arr& rgb);
36
+ void conv_PclCloud2ArrCloud(arr& pts, arr& rgb, const PclC& cloud);
37
37
 
38
- inline arr PclPoints(const PclC& cloud) { arr pts; conv_PclCloud_ArrCloud(pts, NoByteA, cloud); return pts; }
38
+ inline arr PclPoints(const PclC& cloud) { arr pts; conv_PclCloud2ArrCloud(pts, NoByteA, cloud); return pts; }
39
39
 
40
- arr conv_PclNormals_Arr(const pcl::PointCloud<pcl::Normal>::Ptr& normals);
40
+ arr conv_PclNormals2Arr(const pcl::PointCloud<pcl::Normal>::Ptr& normals);
41
41
 
42
42
  #endif
@@ -0,0 +1,17 @@
1
+ /* ------------------------------------------------------------------
2
+ Copyright (c) 2011-2024 Marc Toussaint
3
+ email: toussaint@tu-berlin.de
4
+
5
+ This code is distributed under the MIT License.
6
+ Please see <root-path>/LICENSE for details.
7
+ -------------------------------------------------------------- */
8
+
9
+ #pragma once
10
+
11
+ #ifdef RAI_PYBIND
12
+
13
+ #include <pybind11/pybind11.h>
14
+
15
+ void init_algo(pybind11::module& m);
16
+
17
+ #endif
robotic/librai.so CHANGED
Binary file
robotic/meshTool CHANGED
Binary file
@@ -32,15 +32,15 @@ panda_coll7(panda_joint7): { shape: capsule, color: [1.,1.,1.,.1], size: [.1, .0
32
32
 
33
33
  ## zero position
34
34
 
35
- Edit panda_joint1: { q: 0.0 }
36
- Edit panda_joint2: { q: -.5 }
37
- Edit panda_joint3: { q: 0. }
38
- Edit panda_joint4: { q: -2. }
39
- Edit panda_joint5: { q: -0. }
40
- Edit panda_joint6: { q: 2., limits: [.5, 3.] }
41
- Edit panda_joint7: { q: -.5 }
42
- Edit panda_finger_joint1: { q: .04 }
43
- Edit panda_finger_joint2: { q: .04 }
35
+ Edit panda_joint1: { q: 0.0, mj_actuator_kp: "870.", mj_joint_damping: "100." }
36
+ Edit panda_joint2: { q: -.5, mj_actuator_kp: "870.", mj_joint_damping: "100." }
37
+ Edit panda_joint3: { q: 0., mj_actuator_kp: "870.", mj_joint_damping: "100." }
38
+ Edit panda_joint4: { q: -2., mj_actuator_kp: "870.", mj_joint_damping: "100." }
39
+ Edit panda_joint5: { q: -0., mj_actuator_kp: "120.", mj_joint_damping: "10." }
40
+ Edit panda_joint6: { q: 2., limits: [.5, 3.], mj_actuator_kp: "120.", mj_joint_damping: "10." }
41
+ Edit panda_joint7: { q: -.5, mj_actuator_kp: "120.", mj_joint_damping: "10." }
42
+ Edit panda_finger_joint1: { q: .04, mj_actuator_kp: "500.", mj_joint_damping: "100." }
43
+ Edit panda_finger_joint2: { q: .04, mj_actuator_kp: "500.", mj_joint_damping: "100." }
44
44
 
45
45
  ## kill rigid hand joints
46
46
 
@@ -1,13 +1,5 @@
1
1
  Include: <panda_clean.g>
2
2
 
3
- Delete panda_link0_0:
4
- Delete panda_link1_0:
5
- Delete panda_link2_0:
6
- Delete panda_link3_0:
7
- Delete panda_link4_0:
8
- Delete panda_link5_0:
9
- Delete panda_link6_0:
10
- Delete panda_link7_0:
11
- Delete panda_hand_0:
12
- Delete panda_leftfinger_0:
13
- Delete panda_rightfinger_0:
3
+ Delete: panda_hand_0
4
+ #Delete: panda_leftfinger_0
5
+ Delete: panda_rightfinger_0
@@ -1,5 +1,5 @@
1
1
  world: {}
2
- worldTranslationRotation (world): { joint: transXYPhi, Q: "d(90 0 0 1)", gains: [1, 1], limits: [-10, -10, -6, 10, 10, 6], ctrl_limits: [1, 1, 1], ctrl_H: 10, base }
2
+ worldTranslationRotation (world): { joint: transXYPhi, Q: "d(90 0 0 1)", gains: [1, 1], limits: [-10, -10, -6, 10, 10, 6], ctrl_H: 10, base }
3
3
 
4
4
  Include: <pr2_conv.g>
5
5
 
@@ -28,10 +28,10 @@ Edit bl_caster_r_wheel_joint: { joint: none }
28
28
  Edit br_caster_l_wheel_joint: { joint: none }
29
29
  Edit br_caster_r_wheel_joint: { joint: none }
30
30
 
31
- #Delete l_gripper_r_parallel_link_1: {}:
32
- #Delete l_gripper_l_parallel_link_1: {}:
33
- #Delete r_gripper_r_parallel_link_1: {}:
34
- #Delete r_gripper_l_parallel_link_1: {}:
31
+ #Delete: l_gripper_r_parallel_link_1
32
+ #Delete: l_gripper_l_parallel_link_1
33
+ #Delete: r_gripper_r_parallel_link_1
34
+ #Delete: r_gripper_l_parallel_link_1
35
35
 
36
36
  Edit r_gripper_l_finger_joint: { q: .1 }
37
37
  Edit l_gripper_l_finger_joint: { q: .1 }
@@ -1,11 +1,11 @@
1
1
  base_footprint: { mass: 1, inertia: [0.01, 0.01, 0.01] }
2
2
 
3
- base_footprint_0(base_footprint): { shape: box, size: [0.01, 0.01, 0.01, 0], visual: True }
3
+ base_footprint_0(base_footprint): { shape: box, size: [0.01, 0.01, 0.01], visual: True }
4
4
 
5
5
  base_link(base_footprint): { pose: [0, 0, 0.051, 1, 0, 0, 0], mass: 116, inertia: [5.65223, -0.00971993, 1.29399, 5.66947, -0.00737958, 3.6832] }
6
6
  base_link_0(base_footprint): { pose: [0, 0, 0.051, 1, 0, 0, 0], shape: mesh, mesh: <meshes/base.h5>, visual: True }
7
7
  base_laser_link(base_footprint): { pose: [0.275, 0, 0.303, 1, 0, 0, 0], mass: 0.001, inertia: [0.0001, 1e-06, 0.0001] }
8
- base_laser_link_0(base_footprint): { pose: [0.275, 0, 0.303, 1, 0, 0, 0], shape: box, size: [0.001, 0.001, 0.001, 0], visual: True }
8
+ base_laser_link_0(base_footprint): { pose: [0.275, 0, 0.303, 1, 0, 0, 0], shape: box, size: [0.001, 0.001, 0.001], visual: True }
9
9
 
10
10
  fl_caster_rotation_joint_origin(base_footprint): { pose: [0.2246, 0.2246, 0.0792, 1, 0, 0, 0] }
11
11
  fr_caster_rotation_joint_origin(base_footprint): { pose: [0.2246, -0.2246, 0.0792, 1, 0, 0, 0] }
@@ -37,7 +37,7 @@ br_caster_r_wheel_joint_origin(br_caster_rotation_joint): { pose: [0, -0.049, 0,
37
37
  torso_lift_link(torso_lift_joint): { mass: 36.248, inertia: [2.77165, 0.00428452, -0.160419, 2.51002, 0.0296645, 0.526432] }
38
38
  torso_lift_link_0(torso_lift_joint): { shape: mesh, mesh: <meshes/torso_lift.h5>, visual: True }
39
39
  imu_link(torso_lift_joint): { pose: [-0.02977, -0.1497, 0.164, -1.03412e-13, 0, 1, 0], mass: 0.001, inertia: [0.0001, 1e-06, 0.0001] }
40
- imu_link_0(torso_lift_joint): { pose: [-0.02977, -0.1497, 0.164, -1.03412e-13, 0, 1, 0], shape: box, size: [0.001, 0.001, 0.001, 0], visual: True }
40
+ imu_link_0(torso_lift_joint): { pose: [-0.02977, -0.1497, 0.164, -1.03412e-13, 0, 1, 0], shape: box, size: [0.001, 0.001, 0.001], visual: True }
41
41
  head_pan_joint_origin(torso_lift_joint): { pose: [-0.01707, 0, 0.38145, 1, 0, 0, 0] }
42
42
  laser_tilt_mount_joint_origin(torso_lift_joint): { pose: [0.09893, 0, 0.227, 1, 0, 0, 0] }
43
43
  r_shoulder_pan_joint_origin(torso_lift_joint): { pose: [0, -0.188, 0, 1, 0, 0, 0] }
@@ -76,7 +76,7 @@ head_tilt_joint_origin(head_pan_joint): { pose: [0.068, 0, 0, 1, 0, 0, 0] }
76
76
  laser_tilt_mount_link(laser_tilt_mount_joint): { mass: 0.05, inertia: [0.0001, 1e-05, 0.0001] }
77
77
  laser_tilt_mount_link_0(laser_tilt_mount_joint): { shape: mesh, mesh: <meshes/tilting_hokuyo.h5>, visual: True }
78
78
  laser_tilt_link(laser_tilt_mount_joint): { pose: [0, 0, 0.03, 1, 0, 0, 0], mass: 0.001, inertia: [0.0001, 1e-06, 0.0001] }
79
- laser_tilt_link_0(laser_tilt_mount_joint): { pose: [0, 0, 0.03, 1, 0, 0, 0], shape: box, size: [0.001, 0.001, 0.001, 0], visual: True }
79
+ laser_tilt_link_0(laser_tilt_mount_joint): { pose: [0, 0, 0.03, 1, 0, 0, 0], shape: box, size: [0.001, 0.001, 0.001], visual: True }
80
80
  r_shoulder_pan_link(r_shoulder_pan_joint): { mass: 25.7993, inertia: [0.866179, -0.0608651, -0.121181, 0.874217, -0.0588661, 0.273538] }
81
81
  r_shoulder_pan_link_0(r_shoulder_pan_joint): { shape: mesh, mesh: <meshes/shoulder_pan.h5>, visual: True }
82
82
  r_shoulder_lift_joint_origin(r_shoulder_pan_joint): { pose: [0.1, 0, 0, 1, 0, 0, 0] }
@@ -89,27 +89,27 @@ l_shoulder_lift_joint(l_shoulder_lift_joint_origin): { joint: hingeY, limits: [-
89
89
  head_tilt_link(head_tilt_joint): { mass: 1.74973, inertia: [0.0106023, -0.000408814, 0.00198304, 0.0118744, 0.000197909, 0.00551679] }
90
90
  head_tilt_link_0(head_tilt_joint): { shape: mesh, mesh: <meshes/head_tilt.h5>, visual: True }
91
91
  head_plate_frame(head_tilt_joint): { pose: [0.0232, 0, 0.0645, 1, 0, 0, 0], mass: 0.01, inertia: [0.001, 0.001, 0.001] }
92
- head_plate_frame_0(head_tilt_joint): { pose: [0.0232, 0, 0.0645, 1, 0, 0, 0], shape: box, size: [0.01, 0.01, 0.01, 0], visual: True }
92
+ head_plate_frame_0(head_tilt_joint): { pose: [0.0232, 0, 0.0645, 1, 0, 0, 0], shape: box, size: [0.01, 0.01, 0.01], visual: True }
93
93
  sensor_mount_link(head_tilt_joint): { pose: [0.0232, 0, 0.0645, 1, 0, 0, 0], mass: 0.05, inertia: [0.001, 0.001, 0.01] }
94
- sensor_mount_link_0(head_tilt_joint): { pose: [0.0232, 0, 0.0645, 1, 0, 0, 0], shape: box, size: [0.01, 0.01, 0.01, 0], visual: True }
94
+ sensor_mount_link_0(head_tilt_joint): { pose: [0.0232, 0, 0.0645, 1, 0, 0, 0], shape: box, size: [0.01, 0.01, 0.01], visual: True }
95
95
  high_def_frame(head_tilt_joint): { pose: [0.0232, -0.109, 0.0995, 1, 0, 0, 0], mass: 0.01, inertia: [0.001, 0.001, 0.001] }
96
- high_def_frame_0(head_tilt_joint): { pose: [0.0032, -0.109, 0.0995, 1, 0, 0, 0], shape: box, size: [0.04, 0.04, 0.04, 0], visual: True }
96
+ high_def_frame_0(head_tilt_joint): { pose: [0.0032, -0.109, 0.0995, 1, 0, 0, 0], shape: box, size: [0.04, 0.04, 0.04], visual: True }
97
97
  high_def_optical_frame(head_tilt_joint): { pose: [0.0232, -0.109, 0.0995, 0.5, -0.5, 0.5, -0.5], mass: 0.01, inertia: [0.001, 0.001, 0.001] }
98
- high_def_optical_frame_0(head_tilt_joint): { pose: [0.0232, -0.109, 0.0995, 0.707107, -3.46245e-12, 0.707107, -5.55112e-17], shape: cylinder, size: [0, 0, 0.05, 0.02], visual: True }
98
+ high_def_optical_frame_0(head_tilt_joint): { pose: [0.0232, -0.109, 0.0995, 0.707107, -3.46245e-12, 0.707107, -5.55112e-17], shape: cylinder, size: [0.05, 0.02], visual: True }
99
99
  double_stereo_link(head_tilt_joint): { pose: [0.0232, 0, 0.0675, 1, 0, 0, 0], mass: 0.1, inertia: [0.001, 0.001, 0.01] }
100
- double_stereo_link_0(head_tilt_joint): { pose: [0.0132, 0, 0.0925, 1, 0, 0, 0], shape: box, size: [0.02, 0.12, 0.05, 0], visual: True }
100
+ double_stereo_link_0(head_tilt_joint): { pose: [0.0132, 0, 0.0925, 1, 0, 0, 0], shape: box, size: [0.02, 0.12, 0.05], visual: True }
101
101
  wide_stereo_link(head_tilt_joint): { pose: [0.0232, 0.03, 0.098, 1, 0, 0, 0], mass: 0.1, inertia: [0.01, 0.01, 0.01] }
102
- wide_stereo_link_0(head_tilt_joint): { pose: [0.0232, 0.03, 0.098, 1, 0, 0, 0], shape: box, size: [0.001, 0.001, 0.001, 0], visual: True }
102
+ wide_stereo_link_0(head_tilt_joint): { pose: [0.0232, 0.03, 0.098, 1, 0, 0, 0], shape: box, size: [0.001, 0.001, 0.001], visual: True }
103
103
  wide_stereo_gazebo_l_stereo_camera_frame(head_tilt_joint): { pose: [0.0232, 0.03, 0.098, 1, 0, 0, 0], mass: 0.01, inertia: [0.001, 0.001, 0.001] }
104
- wide_stereo_gazebo_l_stereo_camera_frame_0(head_tilt_joint): { pose: [0.0232, 0.03, 0.098, 1, 0, 0, 0], shape: box, size: [0.01, 0.01, 0.01, 0], visual: True }
104
+ wide_stereo_gazebo_l_stereo_camera_frame_0(head_tilt_joint): { pose: [0.0232, 0.03, 0.098, 1, 0, 0, 0], shape: box, size: [0.01, 0.01, 0.01], visual: True }
105
105
  wide_stereo_gazebo_r_stereo_camera_frame(head_tilt_joint): { pose: [0.0232, -0.06, 0.098, 1, 0, 0, 0], mass: 0.01, inertia: [0.001, 0.001, 0.001] }
106
- wide_stereo_gazebo_r_stereo_camera_frame_0(head_tilt_joint): { pose: [0.0232, -0.06, 0.098, 1, 0, 0, 0], shape: box, size: [0.01, 0.01, 0.01, 0], visual: True }
106
+ wide_stereo_gazebo_r_stereo_camera_frame_0(head_tilt_joint): { pose: [0.0232, -0.06, 0.098, 1, 0, 0, 0], shape: box, size: [0.01, 0.01, 0.01], visual: True }
107
107
  narrow_stereo_link(head_tilt_joint): { pose: [0.0232, 0.06, 0.098, 1, 0, 0, 0], mass: 0.1, inertia: [0.01, 0.01, 0.01] }
108
- narrow_stereo_link_0(head_tilt_joint): { pose: [0.0232, 0.06, 0.098, 1, 0, 0, 0], shape: box, size: [0.001, 0.001, 0.001, 0], visual: True }
108
+ narrow_stereo_link_0(head_tilt_joint): { pose: [0.0232, 0.06, 0.098, 1, 0, 0, 0], shape: box, size: [0.001, 0.001, 0.001], visual: True }
109
109
  narrow_stereo_gazebo_l_stereo_camera_frame(head_tilt_joint): { pose: [0.0232, 0.06, 0.098, 1, 0, 0, 0], mass: 0.01, inertia: [0.001, 0.001, 0.001] }
110
- narrow_stereo_gazebo_l_stereo_camera_frame_0(head_tilt_joint): { pose: [0.0232, 0.06, 0.098, 1, 0, 0, 0], shape: box, size: [0.01, 0.01, 0.01, 0], visual: True }
110
+ narrow_stereo_gazebo_l_stereo_camera_frame_0(head_tilt_joint): { pose: [0.0232, 0.06, 0.098, 1, 0, 0, 0], shape: box, size: [0.01, 0.01, 0.01], visual: True }
111
111
  narrow_stereo_gazebo_r_stereo_camera_frame(head_tilt_joint): { pose: [0.0232, -0.03, 0.098, 1, 0, 0, 0], mass: 0.01, inertia: [0.001, 0.001, 0.001] }
112
- narrow_stereo_gazebo_r_stereo_camera_frame_0(head_tilt_joint): { pose: [0.0232, -0.03, 0.098, 1, 0, 0, 0], shape: box, size: [0.01, 0.01, 0.01, 0], visual: True }
112
+ narrow_stereo_gazebo_r_stereo_camera_frame_0(head_tilt_joint): { pose: [0.0232, -0.03, 0.098, 1, 0, 0, 0], shape: box, size: [0.01, 0.01, 0.01], visual: True }
113
113
  r_shoulder_lift_link(r_shoulder_lift_joint): { mass: 2.74988, inertia: [0.0210558, 0.00496704, -0.00194809, 0.0212722, 0.00110425, 0.0197575] }
114
114
  r_shoulder_lift_link_0(r_shoulder_lift_joint): { shape: mesh, mesh: <meshes/shoulder_lift.h5>, visual: True }
115
115
  l_shoulder_lift_link(l_shoulder_lift_joint): { mass: 2.74988, inertia: [0.0210558, 0.00496704, -0.00194809, 0.0212722, 0.00110425, 0.0197575] }
@@ -139,14 +139,14 @@ r_forearm_roll_link_0(r_forearm_roll_joint): { shape: mesh, mesh: <meshes/forear
139
139
  r_forearm_link(r_forearm_roll_joint): { mass: 2.57968, inertia: [0.00364857, 5.21588e-05, 0.000715348, 0.0150774, -1.31077e-05, 0.0165931] }
140
140
  r_forearm_link_0(r_forearm_roll_joint): { shape: mesh, mesh: <meshes/forearm.h5>, visual: True }
141
141
  r_forearm_cam_frame(r_forearm_roll_joint): { pose: [0.135, 0, 0.044, 0.679288, 0.679288, -0.196387, 0.196387], mass: 0.01, inertia: [0.001, 0.001, 0.001] }
142
- r_forearm_cam_frame_0(r_forearm_roll_joint): { pose: [0.135, 0, 0.044, 0.679288, 0.679288, -0.196387, 0.196387], shape: box, size: [0.01, 0.01, 0.01, 0], visual: True }
142
+ r_forearm_cam_frame_0(r_forearm_roll_joint): { pose: [0.135, 0, 0.044, 0.679288, 0.679288, -0.196387, 0.196387], shape: box, size: [0.01, 0.01, 0.01], visual: True }
143
143
  r_wrist_flex_joint_origin(r_forearm_roll_joint): { pose: [0.321, 0, 0, 1, 0, 0, 0] }
144
144
  l_forearm_roll_link(l_forearm_roll_joint): { mass: 0.1, inertia: [0.01, 0.01, 0.01] }
145
145
  l_forearm_roll_link_0(l_forearm_roll_joint): { shape: mesh, mesh: <meshes/forearm_roll.h5>, visual: True }
146
146
  l_forearm_link(l_forearm_roll_joint): { mass: 2.57968, inertia: [0.00364857, 5.21588e-05, 0.000715348, 0.0150774, -1.31077e-05, 0.0165931] }
147
147
  l_forearm_link_0(l_forearm_roll_joint): { shape: mesh, mesh: <meshes/forearm.h5>, visual: True }
148
148
  l_forearm_cam_frame(l_forearm_roll_joint): { pose: [0.135, 0, 0.044, 0.679288, -0.679288, -0.196387, -0.196387], mass: 0.01, inertia: [0.001, 0.001, 0.001] }
149
- l_forearm_cam_frame_0(l_forearm_roll_joint): { pose: [0.135, 0, 0.044, 0.679288, -0.679288, -0.196387, -0.196387], shape: box, size: [0.01, 0.01, 0.01, 0], visual: True }
149
+ l_forearm_cam_frame_0(l_forearm_roll_joint): { pose: [0.135, 0, 0.044, 0.679288, -0.679288, -0.196387, -0.196387], shape: box, size: [0.01, 0.01, 0.01], visual: True }
150
150
  l_wrist_flex_joint_origin(l_forearm_roll_joint): { pose: [0.321, 0, 0, 1, 0, 0, 0] }
151
151
  r_wrist_flex_joint(r_wrist_flex_joint_origin): { joint: hingeY, limits: [-2.094, 0, 3.078, -1, 10], ctrl_limits: [3.078, -1, 10] }
152
152
  l_wrist_flex_joint(l_wrist_flex_joint_origin): { joint: hingeY, limits: [-2.094, 0, 3.078, -1, 10], ctrl_limits: [3.078, -1, 10] }
@@ -161,7 +161,7 @@ r_wrist_roll_link_0(r_wrist_roll_joint): { shape: mesh, mesh: <meshes/wrist_roll
161
161
  r_gripper_palm_link(r_wrist_roll_joint): { mass: 0.58007, inertia: [0.000352239, -1.58048e-05, -9.175e-07, 0.000677413, -5.9554e-07, 0.000865633] }
162
162
  r_gripper_palm_link_0(r_wrist_roll_joint): { shape: mesh, mesh: <meshes/gripper_palm.h5>, visual: True }
163
163
  r_gripper_motor_accelerometer_link(r_wrist_roll_joint): { mass: 0.001, inertia: [0.001, 0.001, 0.001] }
164
- r_gripper_motor_accelerometer_link_0(r_wrist_roll_joint): { shape: box, size: [0.001, 0.001, 0.001, 0], visual: True }
164
+ r_gripper_motor_accelerometer_link_0(r_wrist_roll_joint): { shape: box, size: [0.001, 0.001, 0.001], visual: True }
165
165
  r_gripper_l_finger_joint_origin(r_wrist_roll_joint): { pose: [0.07691, 0.01, 0, 1, 0, 0, 0] }
166
166
  r_gripper_r_finger_joint_origin(r_wrist_roll_joint): { pose: [0.07691, -0.01, 0, 1, 0, 0, 0] }
167
167
  r_gripper_l_parallel_root_joint_origin(r_wrist_roll_joint): { pose: [0.05891, 0.031, 0, 1, 0, 0, 0] }
@@ -171,7 +171,7 @@ l_wrist_roll_link_0(l_wrist_roll_joint): { shape: mesh, mesh: <meshes/wrist_roll
171
171
  l_gripper_palm_link(l_wrist_roll_joint): { mass: 0.58007, inertia: [0.000352239, -1.58048e-05, -9.175e-07, 0.000677413, -5.9554e-07, 0.000865633] }
172
172
  l_gripper_palm_link_0(l_wrist_roll_joint): { shape: mesh, mesh: <meshes/gripper_palm.h5>, visual: True }
173
173
  l_gripper_motor_accelerometer_link(l_wrist_roll_joint): { mass: 0.001, inertia: [0.001, 0.001, 0.001] }
174
- l_gripper_motor_accelerometer_link_0(l_wrist_roll_joint): { shape: box, size: [0.001, 0.001, 0.001, 0], visual: True }
174
+ l_gripper_motor_accelerometer_link_0(l_wrist_roll_joint): { shape: box, size: [0.001, 0.001, 0.001], visual: True }
175
175
  l_gripper_l_finger_joint_origin(l_wrist_roll_joint): { pose: [0.07691, 0.01, 0, 1, 0, 0, 0] }
176
176
  l_gripper_r_finger_joint_origin(l_wrist_roll_joint): { pose: [0.07691, -0.01, 0, 1, 0, 0, 0] }
177
177
  l_gripper_l_parallel_root_joint_origin(l_wrist_roll_joint): { pose: [0.05891, 0.031, 0, 1, 0, 0, 0] }
@@ -19,6 +19,6 @@ right_inner_knuckle_0(right_inner_knuckle_joint): { shape: mesh, color: [0.1, 0.
19
19
  left_inner_finger_joint(left_outer_finger>left_inner_finger_joint): { joint: hingeX, limits: [0, 0.8757, 2, -1, 1000], mimic: "finger_joint", ctrl_limits: [2, -1, 1000] }
20
20
  right_inner_finger_joint(right_outer_finger>right_inner_finger_joint): { joint: hingeX, limits: [0, 0.8757, 2, -1, 1000], mimic: "finger_joint", ctrl_limits: [2, -1, 1000] }
21
21
  left_inner_finger_0(left_inner_finger_joint): { shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/visual/robotiq_arg2f_85_inner_finger.ply>, meshscale: 0.001, visual: True }
22
- left_inner_finger_pad_0(left_inner_finger_joint): { Q: [0, -0.0220203, 0.03242, 1, 0, 0, 0], shape: box, size: [0.022, 0.00635, 0.0375, 0], color: [0.9, 0.9, 0.9, 1], visual: True }
22
+ left_inner_finger_pad_0(left_inner_finger_joint): { Q: [0, -0.0220203, 0.03242, 1, 0, 0, 0], shape: box, size: [0.022, 0.00635, 0.0375], color: [0.9, 0.9, 0.9, 1], visual: True }
23
23
  right_inner_finger_0(right_inner_finger_joint): { shape: mesh, color: [0.1, 0.1, 0.1, 1], mesh: <meshes/visual/robotiq_arg2f_85_inner_finger.ply>, meshscale: 0.001, visual: True }
24
- right_inner_finger_pad_0(right_inner_finger_joint): { Q: [0, -0.0220203, 0.03242, 1, 0, 0, 0], shape: box, size: [0.022, 0.00635, 0.0375, 0], color: [0.9, 0.9, 0.9, 1], visual: True }
24
+ right_inner_finger_pad_0(right_inner_finger_joint): { Q: [0, -0.0220203, 0.03242, 1, 0, 0, 0], shape: box, size: [0.022, 0.00635, 0.0375], color: [0.9, 0.9, 0.9, 1], visual: True }
@@ -1,4 +1,4 @@
1
- world: { multibody: true }
1
+ world: {}
2
2
 
3
3
  table (world): {
4
4
  shape: ssBox, Q: "t(0 0. .6)", size: [1., 2., .1, .02], color: [.3, .3, .3]
@@ -41,6 +41,6 @@ target (table): {
41
41
  #Include: <panda_fixGripper.g>
42
42
  #Include: <panda_fixRobotiq.g>
43
43
  Include: <../panda/panda.g>
44
- (table panda_base): { joint: rigid, Q: "t(.3 .8 .05) d(-90 0 0 1)" }
44
+ Edit panda_base(table): { joint: rigid, Q: "t(.3 .8 .05) d(-90 0 0 1)" }
45
45
 
46
46
  Edit panda_finger_joint1: { joint_active: false }
@@ -3,7 +3,7 @@ world: {}
3
3
  ### table
4
4
 
5
5
  table(world): {
6
- shape: ssBox, Q: "t(0 0. .6)", size: [2.5, 2.5, .1, .02], color: [.3, .3, .3],
6
+ shape: ssBox, Q: [0 0. .6], size: [2.5, 2.5, .1, .02], color: [.3, .3, .3],
7
7
  contact: 1, logical: { },
8
8
  friction: .1
9
9
  }
@@ -1,22 +1,21 @@
1
1
 
2
- stem: { X: "t(0 0 1)", shape: capsule, size: [2, .1] }
2
+ stem { X: "t(0 0 1)" shape:capsule size=[2 .1] }
3
3
 
4
- arm1: { shape: capsule, size: [.4, .1], contact: -1, }
5
- arm2: { shape: capsule, size: [.4, .1], contact: -1, }
6
- arm3: { shape: capsule, size: [.4, .1], contact: -1, }
7
- arm4: { shape: capsule, size: [.4, .1], contact: -1, }
8
- arm5: { shape: capsule, size: [.4, .1], contact: -1, }
9
- arm6: { shape: capsule, size: [.4, .1], contact: -1, }
10
- arm7: { shape: capsule, size: [.4, .1], contact: -1, }
4
+ arm1(j1) { shape:capsule Q:[0 0 .2], size=[.4 .1] contact:-1, }
5
+ arm2(j2) { shape:capsule Q:[0 0 .2], size=[.4 .1] contact:-1, }
6
+ arm3(j3) { shape:capsule Q:[0 0 .2], size=[.4 .1] contact:-1, }
7
+ arm4(j4) { shape:capsule Q:[0 0 .2], size=[.4 .1] contact:-1, }
8
+ arm5(j5) { shape:capsule Q:[0 0 .2], size=[.4 .1] contact:-1, }
9
+ arm6(j6) { shape:capsule Q:[0 0 .2], size=[.4 .1] contact:-1, }
10
+ arm7(j7) { shape:capsule Q:[0 0 .2], size=[.4 .1] contact:-1, }
11
11
 
12
- (stem arm1): { joint: hingeX, limits:[-2,2], pre: "t(0 0 1) d(90 1 0 0)", post: "t(0 0 .2)", Q: "T d(1 0 0 0)" }
13
-
14
- (arm1 arm2): { joint: hingeX, limits:[-2,2], pre: "t(0 0 0.2) d(45 0 0 1)", post: "t(0 0 .2)", Q: "T d(1 0 0 0)" }
15
- (arm2 arm3): { joint: hingeX, limits:[-2,2], pre: "t(0 0 0.2) d(45 0 0 1)", post: "t(0 0 .2)", Q: "T d(1 0 0 0)" }
16
- (arm3 arm4): { joint: hingeX, limits:[-2,2], pre: "t(0 0 0.2) d(45 0 0 1)", post: "t(0 0 .2)", Q: "T d(1 0 0 0)" }
17
- (arm4 arm5): { joint: quatBall, limits:[-2,-2,-2,-2,2,2,2,2], pre: "t(0 0 0.2) d(45 0 0 1)", post: "t(0 0 .2)", Q: "T d(1 0 0 0)" }
18
- (arm5 arm6): { joint: hingeX, limits:[-2,2], pre: "t(0 0 0.2) d(45 0 0 1)", post: "t(0 0 .2)", Q: "T d(1 0 0 0)" }
19
- (arm6 arm7): { joint: hingeX, limits:[-2,2], pre: "t(0 0 0.2) d(45 0 0 1)", post: "t(0 0 .2)", Q: "T d(1 0 0 0)" }
12
+ j1(stem) { joint:hingeX A: "t(0 0 1) d(90 1 0 0)" limits:[-2 2] }
13
+ j2(arm1) { joint:hingeX A: "t(0 0 0.2) d(45 0 0 1)" limits:[-2 2] }
14
+ j3(arm2) { joint:hingeX A: "t(0 0 0.2) d(45 0 0 1)" limits:[-2 2] }
15
+ j4(arm3) { joint:hingeX A: "t(0 0 0.2) d(45 0 0 1)" limits:[-2 2] }
16
+ j5(arm4) { joint:quatBall A: "t(0 0 0.2) d(45 0 0 1)" limits:[0 -1 -1 -1 1.5 1 1 1] }
17
+ j6(arm5) { joint:hingeX A: "t(0 0 0.2) d(45 0 0 1)" limits:[-2 2] }
18
+ j7(arm6) { joint:hingeX A: "t(0 0 0.2) d(45 0 0 1)" limits:[-2 2] }
20
19
 
21
20
  target: { X: "t(.7 -.5 1.2)", shape: sphere, size: [.05], color: [0, .5, 0] }
22
21