robotic 0.3.1.dev2__cp311-cp311-manylinux2014_x86_64.whl → 0.3.2__cp311-cp311-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.
- robotic/_robotic.pyi +40 -7
- robotic/_robotic.so +0 -0
- robotic/include/rai/Algo/SplineCtrlFeed.h +1 -1
- robotic/include/rai/Algo/spline.h +4 -8
- robotic/include/rai/Control/CtrlSolver.h +1 -1
- robotic/include/rai/Core/defines.h +7 -8
- robotic/include/rai/Core/graph.h +3 -20
- robotic/include/rai/Core/thread.h +11 -11
- robotic/include/rai/Core/util.h +43 -76
- robotic/include/rai/Geo/geo.h +1 -0
- robotic/include/rai/Geo/mesh.h +2 -1
- robotic/include/rai/Gui/RenderData.h +2 -2
- robotic/include/rai/Gui/opengl.h +2 -2
- robotic/include/rai/Gui/plot.h +1 -1
- robotic/include/rai/KOMO/komo.h +1 -1
- robotic/include/rai/KOMO/testProblems_KOMO.h +12 -9
- robotic/include/rai/Kin/frame.h +1 -1
- robotic/include/rai/Optim/NLP.h +1 -1
- robotic/include/rai/Optim/NLP_GraphSolver.h +1 -1
- robotic/include/rai/Optim/testProblems_Opt.h +3 -9
- robotic/include/rai/Perception/surfels.h +1 -1
- robotic/include/rai/ry/types.h +1 -0
- robotic/librai.so +0 -0
- robotic/meshTool +0 -0
- robotic/src/h5_helper.py +31 -0
- robotic/version.py +1 -1
- {robotic-0.3.1.dev2.dist-info → robotic-0.3.2.dist-info}/METADATA +1 -1
- {robotic-0.3.1.dev2.dist-info → robotic-0.3.2.dist-info}/RECORD +38 -37
- {robotic-0.3.1.dev2.data → robotic-0.3.2.data}/scripts/ry-bot +0 -0
- {robotic-0.3.1.dev2.data → robotic-0.3.2.data}/scripts/ry-h5info +0 -0
- {robotic-0.3.1.dev2.data → robotic-0.3.2.data}/scripts/ry-info +0 -0
- {robotic-0.3.1.dev2.data → robotic-0.3.2.data}/scripts/ry-meshTool +0 -0
- {robotic-0.3.1.dev2.data → robotic-0.3.2.data}/scripts/ry-test +0 -0
- {robotic-0.3.1.dev2.data → robotic-0.3.2.data}/scripts/ry-urdfConvert.py +0 -0
- {robotic-0.3.1.dev2.data → robotic-0.3.2.data}/scripts/ry-view +0 -0
- {robotic-0.3.1.dev2.dist-info → robotic-0.3.2.dist-info}/WHEEL +0 -0
- {robotic-0.3.1.dev2.dist-info → robotic-0.3.2.dist-info}/licenses/LICENSE +0 -0
- {robotic-0.3.1.dev2.dist-info → robotic-0.3.2.dist-info}/top_level.txt +0 -0
robotic/_robotic.pyi
CHANGED
|
@@ -6,7 +6,7 @@ import numpy
|
|
|
6
6
|
import typing
|
|
7
7
|
from . import DataGen
|
|
8
8
|
from . import test
|
|
9
|
-
__all__ = ['Actions2KOMO_Translator', 'ArgWord', 'BSpline', 'BotOp', 'CameraView', 'CameraViewSensor', 'Config', 'ConfigurationViewer', 'ControlMode', 'DataGen', 'FS', 'Frame', 'JT', 'KOMO', 'KOMO_Objective', 'LGP_Tool', 'NLP', 'NLP_Factory', 'NLP_Sampler', 'NLP_Solver', 'NLP_SolverOptions', 'OT', 'OptBench_Skeleton_Handover', 'OptBench_Skeleton_Pick', 'OptBench_Skeleton_StackAndBalance', 'OptBenchmark_InvKin_Endeff', 'OptMethod', 'Quaternion', 'RRT_PathFinder', 'ST', 'SY', 'Simulation', 'SimulationEngine', 'Skeleton', 'SolverReturn', 'TAMP_Provider', 'compiled', 'default_Actions2KOMO_Translator', 'default_TAMP_Provider', 'depthImage2PointCloud', 'params_add', 'params_clear', 'params_file', 'params_print', 'raiPath', 'setRaiPath', 'test']
|
|
9
|
+
__all__ = ['Actions2KOMO_Translator', 'ArgWord', 'BSpline', 'BotOp', 'CameraView', 'CameraViewSensor', 'Config', 'ConfigurationViewer', 'ControlMode', 'DataGen', 'FS', 'Frame', 'JT', 'KOMO', 'KOMO_Objective', 'LGP_Tool', 'NLP', 'NLP_Factory', 'NLP_Sampler', 'NLP_Solver', 'NLP_SolverOptions', 'OT', 'OptBench_Skeleton_Handover', 'OptBench_Skeleton_Pick', 'OptBench_Skeleton_StackAndBalance', 'OptBenchmark_InvKin_Endeff', 'OptMethod', 'Quaternion', 'RRT_PathFinder', 'ST', 'SY', 'Simulation', 'SimulationEngine', 'Skeleton', 'SolverReturn', 'TAMP_Provider', 'compiled', 'default_Actions2KOMO_Translator', 'default_TAMP_Provider', 'depthImage2PointCloud', 'get_NLP_Problem_names', 'make_NLP_Problem', 'params_add', 'params_clear', 'params_file', 'params_print', 'raiPath', 'rnd_seed', 'rnd_seed_random', 'setRaiPath', 'test']
|
|
10
10
|
class Actions2KOMO_Translator:
|
|
11
11
|
"""
|
|
12
12
|
Actions2KOMO_Translator
|
|
@@ -72,10 +72,18 @@ class BSpline:
|
|
|
72
72
|
"""
|
|
73
73
|
non-initialized
|
|
74
74
|
"""
|
|
75
|
+
def append(self, points: arr, times_rel: arr, inside: bool = False) -> None:
|
|
76
|
+
"""
|
|
77
|
+
appends points to the current spline; times_rel become relative to the current last knot; inside = remove the current end double knot (zero vel), smoothly blending but not transitioning anymore through the current end point
|
|
78
|
+
"""
|
|
75
79
|
def eval(self, sampleTimes: arr, derivative: int = 0) -> arr:
|
|
76
80
|
"""
|
|
77
81
|
evaluate the spline (or its derivative) for given sampleTimes
|
|
78
82
|
"""
|
|
83
|
+
def eval3(self, time: float) -> arr:
|
|
84
|
+
"""
|
|
85
|
+
evaluate the spline pos, vel, acc (3xn matrix) at a single time
|
|
86
|
+
"""
|
|
79
87
|
def getBmatrix(self, sampleTimes: arr, startDuplicates: bool = False, endDuplicates: bool = False) -> arr:
|
|
80
88
|
"""
|
|
81
89
|
return the B-matrix mapping from ctrlPoints to (e.g. finer) sampleTimes (e.g. uniform linspace(0,1,T)
|
|
@@ -84,6 +92,14 @@ class BSpline:
|
|
|
84
92
|
...
|
|
85
93
|
def getKnots(self) -> arr:
|
|
86
94
|
...
|
|
95
|
+
def overwriteSmooth(self, points: arr, times_rel: arr, time_cut: float) -> None:
|
|
96
|
+
"""
|
|
97
|
+
overwrites the spline by adopting the pos+vel at time_cut of the current spline and appending given points; NOTE: times_rel are added to time_cut)
|
|
98
|
+
"""
|
|
99
|
+
def set(self, degree: int, points: arr, times: arr, setStartVel: arr = ..., setEndVel: arr = ...) -> BSpline:
|
|
100
|
+
"""
|
|
101
|
+
convenience: same as setKnots(degree, times) and setCtrlPoints(points, true, true, startVel, endVel)
|
|
102
|
+
"""
|
|
87
103
|
def setCtrlPoints(self, points: arr, addStartDuplicates: bool = True, addEndDuplicates: bool = True, setStartVel: arr = ..., setEndVel: arr = ...) -> None:
|
|
88
104
|
"""
|
|
89
105
|
set the ctrl points, automatically duplicating them as needed at start/end, optionally setting vels at start/end
|
|
@@ -103,11 +119,11 @@ class BotOp:
|
|
|
103
119
|
"""
|
|
104
120
|
constructor
|
|
105
121
|
"""
|
|
106
|
-
def attach(self,
|
|
122
|
+
def attach(self, from: ..., to: ...) -> None:
|
|
107
123
|
"""
|
|
108
124
|
cheating: attach two objects kinematically
|
|
109
125
|
"""
|
|
110
|
-
def detach(self,
|
|
126
|
+
def detach(self, from: ..., to: ...) -> None:
|
|
111
127
|
"""
|
|
112
128
|
cheating: detach two previously attached objects
|
|
113
129
|
"""
|
|
@@ -1188,7 +1204,7 @@ class NLP:
|
|
|
1188
1204
|
"""
|
|
1189
1205
|
def getBounds(self) -> arr:
|
|
1190
1206
|
"""
|
|
1191
|
-
returns
|
|
1207
|
+
returns a 2xn array with lower and upper bounds as rows (or size zero, if there are no bounds)
|
|
1192
1208
|
"""
|
|
1193
1209
|
def getDimension(self) -> int:
|
|
1194
1210
|
"""
|
|
@@ -1505,6 +1521,7 @@ class OptMethod:
|
|
|
1505
1521
|
...
|
|
1506
1522
|
class Quaternion:
|
|
1507
1523
|
"""
|
|
1524
|
+
See the Quaternion Lecture Note https://www.user.tu-berlin.de/mtoussai/notes/quaternions.html for details
|
|
1508
1525
|
"""
|
|
1509
1526
|
@staticmethod
|
|
1510
1527
|
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
@@ -1847,11 +1864,11 @@ class Simulation:
|
|
|
1847
1864
|
"""
|
|
1848
1865
|
def addSensor(self, sensorName: str, width: int = 640, height: int = 360, focalLength: float = -1.0, orthoAbsHeight: float = -1.0, zRange: arr = []) -> ...:
|
|
1849
1866
|
...
|
|
1850
|
-
def attach(self,
|
|
1867
|
+
def attach(self, from: Frame, to: Frame) -> None:
|
|
1851
1868
|
...
|
|
1852
1869
|
def depthData2pointCloud(self, arg0: numpy.ndarray[numpy.float32], arg1: list[float]) -> numpy.ndarray[numpy.float64]:
|
|
1853
1870
|
...
|
|
1854
|
-
def detach(self,
|
|
1871
|
+
def detach(self, from: Frame, to: Frame) -> None:
|
|
1855
1872
|
...
|
|
1856
1873
|
def getGripperWidth(self, gripperFrameName: str) -> float:
|
|
1857
1874
|
...
|
|
@@ -1896,7 +1913,7 @@ class Simulation:
|
|
|
1896
1913
|
"""
|
|
1897
1914
|
def setState(self, frameState: arr, jointState: arr = ..., frameVelocities: arr = ..., jointVelocities: arr = ...) -> None:
|
|
1898
1915
|
...
|
|
1899
|
-
def step(self, u_control: arr
|
|
1916
|
+
def step(self, u_control: arr = ..., tau: float = 0.01, u_mode: ControlMode = ...) -> None:
|
|
1900
1917
|
...
|
|
1901
1918
|
class SimulationEngine:
|
|
1902
1919
|
"""
|
|
@@ -2008,6 +2025,14 @@ def depthImage2PointCloud(depth: numpy.ndarray[numpy.float32], fxycxy: arr) -> a
|
|
|
2008
2025
|
"""
|
|
2009
2026
|
return the point cloud from the depth image
|
|
2010
2027
|
"""
|
|
2028
|
+
def get_NLP_Problem_names() -> StringA:
|
|
2029
|
+
"""
|
|
2030
|
+
return all problem names
|
|
2031
|
+
"""
|
|
2032
|
+
def make_NLP_Problem(problem_name: ...) -> NLP:
|
|
2033
|
+
"""
|
|
2034
|
+
create a benchmark NLP
|
|
2035
|
+
"""
|
|
2011
2036
|
def params_add(*args, **kwargs) -> None:
|
|
2012
2037
|
"""
|
|
2013
2038
|
add/set parameters
|
|
@@ -2028,6 +2053,14 @@ def raiPath(arg0: str) -> ...:
|
|
|
2028
2053
|
"""
|
|
2029
2054
|
get a path relative to rai base path
|
|
2030
2055
|
"""
|
|
2056
|
+
def rnd_seed(s: int) -> None:
|
|
2057
|
+
"""
|
|
2058
|
+
seed rnd with s
|
|
2059
|
+
"""
|
|
2060
|
+
def rnd_seed_random() -> None:
|
|
2061
|
+
"""
|
|
2062
|
+
seed rnd randomly
|
|
2063
|
+
"""
|
|
2031
2064
|
def setRaiPath(arg0: str) -> None:
|
|
2032
2065
|
"""
|
|
2033
2066
|
redefine the rai (or rai-robotModels) path
|
robotic/_robotic.so
CHANGED
|
Binary file
|
|
@@ -40,7 +40,7 @@ struct BSplineCtrlReference : ReferenceFeed {
|
|
|
40
40
|
//info:
|
|
41
41
|
double getEndTime() { return spline.get()->end(); }
|
|
42
42
|
arr getEndPoint() { return spline.get()->ctrlPoints[-1].copy(); }
|
|
43
|
-
void eval(arr& x, arr& xDot, arr& xDDot, double t) { spline.get()->
|
|
43
|
+
void eval(arr& x, arr& xDot, arr& xDDot, double t) { spline.get()->eval3(x, xDot, xDDot, t); }
|
|
44
44
|
|
|
45
45
|
void report(double ctrlTime);
|
|
46
46
|
};
|
|
@@ -29,27 +29,23 @@ struct BSpline {
|
|
|
29
29
|
arr getBmatrix(const arr& sampleTimes, bool startDuplicates=false, bool endDuplicates=false);
|
|
30
30
|
|
|
31
31
|
//-- methods concerning ctrl points
|
|
32
|
-
void setCtrlPoints(const arr&
|
|
33
|
-
void append(const arr& points, const arr& times, bool inside);
|
|
32
|
+
void setCtrlPoints(const arr& points, bool addStartDuplicates=true, bool addEndDuplicates=true, const arr& setStartVel=NoArr, const arr& setEndVel=NoArr);
|
|
34
33
|
|
|
35
34
|
//-- convenience user functions
|
|
36
35
|
BSpline& set(uint _degree, const arr& points, const arr& times, const arr& startVel=NoArr, const arr& endVel=NoArr);
|
|
36
|
+
void overwriteSmooth(const arr& points, const arr& times_rel, double time_cut);
|
|
37
|
+
void append(const arr& points, const arr& times_rel, bool inside);
|
|
37
38
|
void clear();
|
|
38
39
|
arr& getKnots(){ return knots; }
|
|
39
40
|
arr& getCtrlPoints(){ return ctrlPoints; }
|
|
40
41
|
arr getPoints();
|
|
41
42
|
|
|
42
|
-
//-- obsolete
|
|
43
|
-
// BSpline& set_vel(uint degree, const arr& points, const arr& velocities, const arr& _times);
|
|
44
|
-
|
|
45
|
-
|
|
46
43
|
//experimental
|
|
47
44
|
void doubleKnot(uint t);
|
|
48
45
|
void setDoubleKnotVel(int t, const arr& vel);
|
|
49
46
|
|
|
50
47
|
/// core method to evaluate spline
|
|
51
|
-
|
|
52
|
-
void eval2(arr& x, arr& xDot, arr& xDDot, double t, arr& Jpoints=NoArr, arr& Jtimes=NoArr) const;
|
|
48
|
+
void eval3(arr& x, arr& xDot, arr& xDDot, double t, arr& Jpoints=NoArr, arr& Jtimes=NoArr) const;
|
|
53
49
|
arr eval(double t, uint derivative=0) const;
|
|
54
50
|
arr eval(const arr& sampleTimes, uint derivative=0) const;
|
|
55
51
|
|
|
@@ -52,14 +52,16 @@ using std::istream;
|
|
|
52
52
|
using std::ofstream;
|
|
53
53
|
using std::ifstream;
|
|
54
54
|
|
|
55
|
+
namespace rai {
|
|
56
|
+
|
|
57
|
+
struct String;
|
|
58
|
+
|
|
55
59
|
//===========================================================================
|
|
56
60
|
//
|
|
57
61
|
// enums
|
|
58
62
|
//
|
|
59
63
|
|
|
60
|
-
namespace rai {
|
|
61
64
|
enum ArgWord { _left, _right, _sequence, _path, _xAxis, _yAxis, _zAxis, _xNegAxis, _yNegAxis, _zNegAxis };
|
|
62
|
-
}
|
|
63
65
|
|
|
64
66
|
//===========================================================================
|
|
65
67
|
|
|
@@ -84,9 +86,6 @@ struct Stepper {
|
|
|
84
86
|
// logging
|
|
85
87
|
//
|
|
86
88
|
|
|
87
|
-
namespace rai {
|
|
88
|
-
struct String;
|
|
89
|
-
|
|
90
89
|
/// An object that represents a log file and/or cout logging, together with log levels read from a cfg file
|
|
91
90
|
struct LogObject {
|
|
92
91
|
std::ofstream* fil=0;
|
|
@@ -117,12 +116,12 @@ extern LogObject _log;
|
|
|
117
116
|
const char* errString();
|
|
118
117
|
String& errStringStream();
|
|
119
118
|
|
|
120
|
-
}
|
|
121
|
-
|
|
122
119
|
//----- parsing strings in a stream
|
|
123
120
|
struct PARSE { const char* str; PARSE(const char* _str):str(_str) {} };
|
|
124
121
|
std::istream& operator>>(std::istream& is, const PARSE&);
|
|
125
122
|
|
|
123
|
+
} //namespace
|
|
124
|
+
|
|
126
125
|
//===========================================================================
|
|
127
126
|
//
|
|
128
127
|
// macros for LOG and CHECK
|
|
@@ -177,7 +176,7 @@ std::istream& operator>>(std::istream& is, const PARSE&);
|
|
|
177
176
|
// macros to define the standard <<and >>operatos for most classes
|
|
178
177
|
//
|
|
179
178
|
|
|
180
|
-
#define stdInPipe(type)\
|
|
179
|
+
#define stdInPipe(type) \
|
|
181
180
|
inline std::istream& operator>>(std::istream& is, type& x){ x.read(is); return is; }
|
|
182
181
|
#define stdOutPipe(type)\
|
|
183
182
|
inline std::ostream& operator<<(std::ostream& os, const type& x){ x.write(os); return os; }
|
robotic/include/rai/Core/graph.h
CHANGED
|
@@ -53,7 +53,6 @@ struct Node {
|
|
|
53
53
|
void swapParent(uint i, Node* p);
|
|
54
54
|
|
|
55
55
|
//-- get value
|
|
56
|
-
//get() -> as()
|
|
57
56
|
template<class T> bool is() const { return type==typeid(T); }
|
|
58
57
|
template<class T> T& as() { T* x=getValue<T>(); CHECK(x, "this node '" <<*this <<"' is not of type '" <<typeid(T).name() <<"' but type '" <<type.name() <<"'"); return *x; }
|
|
59
58
|
template<class T> const T& as() const { const T* x=getValue<T>(); CHECK(x, "this node '" <<*this <<"'is not of type '" <<typeid(T).name() <<"' but type '" <<type.name() <<"'"); return *x; }
|
|
@@ -61,10 +60,9 @@ struct Node {
|
|
|
61
60
|
|
|
62
61
|
template<class T> T* getValue(); ///< query whether node type is equal to (or derived from) T, return the value if so
|
|
63
62
|
template<class T> const T* getValue() const; ///< as above
|
|
64
|
-
template<class T>
|
|
65
|
-
template<class T> bool getFromDouble(T& x) const; ///< return value = false means parsing object of type T from the string failed
|
|
63
|
+
template<class T> bool getFromDouble(T& x) const; ///< return value = false means parsing object of type T from the double failed
|
|
66
64
|
template<class T> bool getFromString(T& x) const; ///< return value = false means parsing object of type T from the string failed
|
|
67
|
-
template<class T> bool getFromArr(T& x) const; ///< return value = false means parsing object of type T from the
|
|
65
|
+
template<class T> bool getFromArr(T& x) const; ///< return value = false means parsing object of type T from the arr failed
|
|
68
66
|
bool isBoolAndTrue() const { if(type!=typeid(bool)) return false; return *getValue<bool>() == true; }
|
|
69
67
|
bool isBoolAndFalse() const { if(type!=typeid(bool)) return false; return *getValue<bool>() == false; }
|
|
70
68
|
|
|
@@ -82,12 +80,10 @@ struct Node {
|
|
|
82
80
|
virtual void copyValue(Node*) {NIY}
|
|
83
81
|
virtual bool hasEqualValue(Node*) {NIY}
|
|
84
82
|
virtual void writeValue(std::ostream& os) const {NIY}
|
|
85
|
-
// virtual void copyValueInto(void*) const {NIY}
|
|
86
83
|
virtual Node* newClone(Graph& container) const {NIY}
|
|
87
84
|
};
|
|
88
|
-
|
|
89
|
-
inline std::istream& operator>>(std::istream& is, Node*& x) { HALT("prohibited"); return is; }
|
|
90
85
|
stdOutPipe(Node)
|
|
86
|
+
|
|
91
87
|
} //namespace
|
|
92
88
|
|
|
93
89
|
//===========================================================================
|
|
@@ -408,10 +404,6 @@ struct Node_typed : Node {
|
|
|
408
404
|
else os <<value;
|
|
409
405
|
}
|
|
410
406
|
|
|
411
|
-
// virtual void copyValueInto(void* value_ptr) const {
|
|
412
|
-
// *((T*)value_ptr) = value;
|
|
413
|
-
// }
|
|
414
|
-
|
|
415
407
|
virtual const std::type_info& getValueType() const {
|
|
416
408
|
return typeid(T);
|
|
417
409
|
}
|
|
@@ -445,15 +437,6 @@ template<class T> const T* Node::getValue() const {
|
|
|
445
437
|
return &typed->value;
|
|
446
438
|
}
|
|
447
439
|
|
|
448
|
-
template<class T> std::shared_ptr<T> Node::getPtr() const {
|
|
449
|
-
NIY
|
|
450
|
-
// std::shared_ptr<T> typed = std::dynamic_pointer_cast<T>(std::shared_ptr<T>(value_ptr));
|
|
451
|
-
return std::shared_ptr<T>();
|
|
452
|
-
// const Node_typed<std::shared_ptr<T>>* typed = dynamic_cast<const Node_typed<std::shared_ptr<T>>*>(this);
|
|
453
|
-
// if(!typed) return nullptr;
|
|
454
|
-
// return typed->value;
|
|
455
|
-
}
|
|
456
|
-
|
|
457
440
|
template<class T> bool Node::getFromDouble(T& x) const {
|
|
458
441
|
if(!is<double>()) return false;
|
|
459
442
|
double y = as<double>();
|
|
@@ -51,7 +51,7 @@ struct CallbackL : rai::Array<Callback<F>*> {
|
|
|
51
51
|
struct RWLock {
|
|
52
52
|
std::shared_timed_mutex rwLock;
|
|
53
53
|
int rwCount=0; ///< -1==write locked, positive=numer of readers, 0=unlocked
|
|
54
|
-
Mutex rwCountMutex;
|
|
54
|
+
rai::Mutex rwCountMutex;
|
|
55
55
|
RWLock();
|
|
56
56
|
~RWLock();
|
|
57
57
|
void readLock(); ///< multiple threads may request 'lock for read'
|
|
@@ -67,7 +67,7 @@ struct RWLock {
|
|
|
67
67
|
//
|
|
68
68
|
|
|
69
69
|
/// This RW lock counts revisions and broadcasts accesses to listeners; who is accessing can be logged; it has a unique name
|
|
70
|
-
struct Var_base : NonCopyable {
|
|
70
|
+
struct Var_base : rai::NonCopyable {
|
|
71
71
|
RWLock rwlock; ///< rwLock (handled via read/writeAccess)
|
|
72
72
|
uint revision=0;
|
|
73
73
|
rai::String name; ///< name
|
|
@@ -227,7 +227,7 @@ template<class T> std::ostream& operator<<(std::ostream& os, Var<T>& x) { x.writ
|
|
|
227
227
|
/// a basic condition variable
|
|
228
228
|
struct Signaler {
|
|
229
229
|
int status;
|
|
230
|
-
Mutex statusMutex;
|
|
230
|
+
rai::Mutex statusMutex;
|
|
231
231
|
std::condition_variable cond;
|
|
232
232
|
|
|
233
233
|
Signaler(int initialStatus=0);
|
|
@@ -240,13 +240,13 @@ struct Signaler {
|
|
|
240
240
|
void statusLock(); //the user can manually lock/unlock, if he needs locked state access for longer -> use userHasLocked=true below!
|
|
241
241
|
void statusUnlock();
|
|
242
242
|
|
|
243
|
-
int getStatus(Mutex::Token* userHasLocked=0) const;
|
|
244
|
-
bool waitForSignal(Mutex::Token* userHasLocked=0, double timeout=-1.);
|
|
245
|
-
bool waitForEvent(std::function<bool()> f, Mutex::Token* userHasLocked=0);
|
|
246
|
-
bool waitForStatusEq(int i, Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
247
|
-
int waitForStatusNotEq(int i, Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
248
|
-
int waitForStatusGreaterThan(int i, Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
249
|
-
int waitForStatusSmallerThan(int i, Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
243
|
+
int getStatus(rai::Mutex::Token* userHasLocked=0) const;
|
|
244
|
+
bool waitForSignal(rai::Mutex::Token* userHasLocked=0, double timeout=-1.);
|
|
245
|
+
bool waitForEvent(std::function<bool()> f, rai::Mutex::Token* userHasLocked=0);
|
|
246
|
+
bool waitForStatusEq(int i, rai::Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
247
|
+
int waitForStatusNotEq(int i, rai::Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
248
|
+
int waitForStatusGreaterThan(int i, rai::Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
249
|
+
int waitForStatusSmallerThan(int i, rai::Mutex::Token* userHasLocked=0, double timeout=-1.); ///< return value is the state after the waiting
|
|
250
250
|
};
|
|
251
251
|
|
|
252
252
|
//===========================================================================
|
|
@@ -331,7 +331,7 @@ struct Thread {
|
|
|
331
331
|
rai::String name;
|
|
332
332
|
std::unique_ptr<std::thread> thread; ///< the underlying pthread; nullptr iff not opened
|
|
333
333
|
int tid; ///< system thread id
|
|
334
|
-
Mutex stepMutex; ///< This is set whenever the 'main' is in step (or open, or close) --- use this in all service methods callable from outside!!
|
|
334
|
+
rai::Mutex stepMutex; ///< This is set whenever the 'main' is in step (or open, or close) --- use this in all service methods callable from outside!!
|
|
335
335
|
uint step_count; ///< how often the step was called
|
|
336
336
|
Metronome metronome; ///< used for beat-looping
|
|
337
337
|
CycleTimer timer; ///< measure how the time spend per cycle, within step, idle
|
robotic/include/rai/Core/util.h
CHANGED
|
@@ -19,17 +19,19 @@
|
|
|
19
19
|
#include <climits>
|
|
20
20
|
#include <mutex>
|
|
21
21
|
#include <functional>
|
|
22
|
+
#include <random>
|
|
22
23
|
|
|
23
24
|
using std::cout;
|
|
24
25
|
using std::cerr;
|
|
25
26
|
using std::endl;
|
|
26
27
|
|
|
28
|
+
namespace rai {
|
|
29
|
+
|
|
27
30
|
//===========================================================================
|
|
28
31
|
//
|
|
29
32
|
// standard little methods (this needs cleanup)
|
|
30
33
|
//
|
|
31
34
|
|
|
32
|
-
namespace rai {
|
|
33
35
|
extern int argc;
|
|
34
36
|
extern char** argv;
|
|
35
37
|
extern std::string startDir;
|
|
@@ -121,7 +123,6 @@ const char* niceTypeidName(const std::type_info& type);
|
|
|
121
123
|
//----- get verbose level
|
|
122
124
|
bool getInteractivity();
|
|
123
125
|
bool getDisableGui();
|
|
124
|
-
}
|
|
125
126
|
|
|
126
127
|
//===========================================================================
|
|
127
128
|
//
|
|
@@ -132,7 +133,6 @@ bool getDisableGui();
|
|
|
132
133
|
#define STRINGF(format,...) (rai::String().printf(format, __VA_ARGS__))
|
|
133
134
|
#define STREAM(x) (((rai::String&)(rai::String().stream() <<x)).stream())
|
|
134
135
|
|
|
135
|
-
namespace rai {
|
|
136
136
|
/** @brief String implements the functionalities of an ostream and an
|
|
137
137
|
istream, but also can be send to an ostream or read from an
|
|
138
138
|
istream. It is based on a simple streambuf derived from the
|
|
@@ -214,16 +214,13 @@ struct String : public std::iostream {
|
|
|
214
214
|
|
|
215
215
|
/// @name I/O
|
|
216
216
|
void write(std::ostream& os) const;
|
|
217
|
-
uint read(std::istream& is, const char* skipSymbols=
|
|
217
|
+
uint read(std::istream& is, const char* skipSymbols=0, const char* stopSymbols=0, int eatStopSymbol=-1);
|
|
218
218
|
};
|
|
219
219
|
stdPipes(String)
|
|
220
220
|
|
|
221
221
|
inline String operator+(const String& a, const char* b) { String s=a; s <<b; return s; }
|
|
222
222
|
//template<class T> String operator+(const String& a, const T& b) { String s=a; s <<b; return s; }
|
|
223
223
|
|
|
224
|
-
} //namespace
|
|
225
|
-
|
|
226
|
-
typedef rai::String str;
|
|
227
224
|
|
|
228
225
|
void setLogLevels(int fileLogLevel=3, int consoleLogLevel=2);
|
|
229
226
|
|
|
@@ -236,26 +233,25 @@ void setLogLevels(int fileLogLevel=3, int consoleLogLevel=2);
|
|
|
236
233
|
// give names to Enum (for pipe << >> )
|
|
237
234
|
//
|
|
238
235
|
|
|
239
|
-
namespace rai {
|
|
240
236
|
template<class enum_T>
|
|
241
237
|
struct Enum {
|
|
242
238
|
enum_T x;
|
|
243
239
|
static const char* names [];
|
|
244
240
|
Enum():x((enum_T)-1) {}
|
|
245
241
|
Enum(enum_T y):x(y) {}
|
|
246
|
-
explicit Enum(const
|
|
242
|
+
explicit Enum(const String& str):Enum() { operator=(str); }
|
|
247
243
|
const enum_T& operator=(enum_T y) { x=y; return x; }
|
|
248
244
|
bool operator==(const enum_T& y) const { return x==y; }
|
|
249
245
|
bool operator!=(const enum_T& y) const { return x!=y; }
|
|
250
246
|
operator enum_T() const { return x; }
|
|
251
247
|
void read(std::istream& is) {
|
|
252
|
-
|
|
248
|
+
String str(is);
|
|
253
249
|
operator=(str);
|
|
254
250
|
}
|
|
255
251
|
void operator=(const char* str) {
|
|
256
252
|
operator=(STRING(str));
|
|
257
253
|
}
|
|
258
|
-
void operator=(const
|
|
254
|
+
void operator=(const String& str) {
|
|
259
255
|
bool good=false;
|
|
260
256
|
for(int i=0; names[i]; i++) {
|
|
261
257
|
const char* n = names[i];
|
|
@@ -263,14 +259,14 @@ struct Enum {
|
|
|
263
259
|
if(str==n) { x=(enum_T)(i); good=true; break; }
|
|
264
260
|
}
|
|
265
261
|
if(!good) {
|
|
266
|
-
|
|
262
|
+
String all;
|
|
267
263
|
for(int i=0; names[i]; i++) all <<names[i] <<' ';
|
|
268
264
|
HALT("Enum::read could not find the keyword '" <<str <<"'. Possible Enum keywords: " <<all);
|
|
269
265
|
} else {
|
|
270
266
|
CHECK(str.p && !strcmp(names[x], str.p), "");
|
|
271
267
|
}
|
|
272
268
|
}
|
|
273
|
-
static bool contains(const
|
|
269
|
+
static bool contains(const String& str) {
|
|
274
270
|
for(int i=0; names[i]; i++) {
|
|
275
271
|
if(str==names[i]) return true;
|
|
276
272
|
}
|
|
@@ -287,14 +283,12 @@ struct Enum {
|
|
|
287
283
|
};
|
|
288
284
|
template<class T> std::istream& operator>>(std::istream& is, Enum<T>& x) { x.read(is); return is; }
|
|
289
285
|
template<class T> std::ostream& operator<<(std::ostream& os, const Enum<T>& x) { x.write(os); return os; }
|
|
290
|
-
}
|
|
291
286
|
|
|
292
287
|
//===========================================================================
|
|
293
288
|
//
|
|
294
289
|
// parameters
|
|
295
290
|
//
|
|
296
291
|
|
|
297
|
-
namespace rai {
|
|
298
292
|
//----- parameter grabbing from command line, config file, or default value
|
|
299
293
|
template<class T> T getParameter(const char* tag);
|
|
300
294
|
template<class T> T getParameter(const char* tag, const T& Default);
|
|
@@ -331,8 +325,6 @@ template<class T> struct ParameterInitEnum {
|
|
|
331
325
|
auto& set_##name(type _##name){ name=_##name; return *this; } \
|
|
332
326
|
rai::ParameterInitEnum<type> __init_##name = {name, scope #name, Default};
|
|
333
327
|
|
|
334
|
-
}
|
|
335
|
-
|
|
336
328
|
//===========================================================================
|
|
337
329
|
//
|
|
338
330
|
// Testing
|
|
@@ -359,15 +351,13 @@ template<class T> struct ParameterInitEnum {
|
|
|
359
351
|
// FileToken
|
|
360
352
|
//
|
|
361
353
|
|
|
362
|
-
namespace rai {
|
|
363
|
-
|
|
364
354
|
/** @brief A ostream/istream wrapper that allows easier initialization of objects, like:
|
|
365
355
|
arr X = FILE("inname");
|
|
366
356
|
X >>FILE("outfile");
|
|
367
357
|
etc
|
|
368
358
|
*/
|
|
369
359
|
struct FileToken {
|
|
370
|
-
|
|
360
|
+
String path, name, baseDir;
|
|
371
361
|
std::shared_ptr<std::ofstream> os;
|
|
372
362
|
std::shared_ptr<std::ifstream> is;
|
|
373
363
|
|
|
@@ -386,9 +376,9 @@ struct FileToken {
|
|
|
386
376
|
operator std::istream& () { return getIs(); }
|
|
387
377
|
operator std::ostream& () { return getOs(); }
|
|
388
378
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
379
|
+
String autoPath() const;
|
|
380
|
+
String relPath() const;
|
|
381
|
+
String fullPath() const;
|
|
392
382
|
};
|
|
393
383
|
template<class T> FileToken& operator>>(FileToken& fil, T& x) { fil.getIs() >>x; return fil; }
|
|
394
384
|
template<class T> std::ostream& operator<<(FileToken& fil, const T& x) { fil.getOs() <<x; return fil.getOs(); }
|
|
@@ -396,7 +386,7 @@ inline std::ostream& operator<<(std::ostream& os, const FileToken& fil) { return
|
|
|
396
386
|
template<class T> FileToken& operator<<(T& x, FileToken& fil) { fil.getIs() >>x; return fil; }
|
|
397
387
|
template<class T> void operator>>(const T& x, FileToken& fil) { fil.getOs() <<x; }
|
|
398
388
|
inline bool operator==(const FileToken&, const FileToken&) { return false; }
|
|
399
|
-
|
|
389
|
+
|
|
400
390
|
#define FILE(filename) (rai::FileToken(filename)()) //it needs to return a REFERENCE to a local scope object
|
|
401
391
|
|
|
402
392
|
//===========================================================================
|
|
@@ -404,15 +394,17 @@ inline bool operator==(const FileToken&, const FileToken&) { return false; }
|
|
|
404
394
|
// random number generator
|
|
405
395
|
//
|
|
406
396
|
|
|
407
|
-
namespace rai {
|
|
408
397
|
/** @brief A random number generator. An global instantiation \c
|
|
409
|
-
|
|
398
|
+
rnd of a \c Rnd object is created. Use this one object to get
|
|
410
399
|
random numbers.*/
|
|
411
400
|
class Rnd {
|
|
412
401
|
private:
|
|
413
402
|
bool ready;
|
|
414
403
|
int32_t rpoint; /* Feldindex */
|
|
415
404
|
int32_t rfield[256]; /* Schieberegisterfeld */
|
|
405
|
+
public:
|
|
406
|
+
std::minstd_rand e1;
|
|
407
|
+
std::random_device r;
|
|
416
408
|
|
|
417
409
|
public:
|
|
418
410
|
/// ...
|
|
@@ -420,52 +412,23 @@ class Rnd {
|
|
|
420
412
|
|
|
421
413
|
public:/// @name initialization
|
|
422
414
|
/// initialize with a specific seed
|
|
423
|
-
|
|
415
|
+
void seed(int s){ e1.seed(s); ready=true; }
|
|
424
416
|
|
|
425
417
|
/// use Parameter<uint>("seed") as seed
|
|
426
|
-
|
|
418
|
+
void seed(){ e1.seed(getParameter<uint32_t>("seed", 0)); ready=true; }
|
|
427
419
|
|
|
428
420
|
/// uses the internal clock to generate a seed
|
|
429
|
-
|
|
421
|
+
void seed_random(){ e1.seed(r()); ready=true; }
|
|
430
422
|
|
|
431
423
|
public:/// @name access
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
uint32_t operator()() { return num(); }
|
|
436
|
-
/// a initeger random number uniformly distributed in [0, \c i-1]
|
|
437
|
-
uint32_t num(uint32_t limit) {
|
|
438
|
-
CHECK(limit, "zero limit in rnd.num()"); return num() % limit;
|
|
439
|
-
}
|
|
440
|
-
uint32_t num(int32_t lo, int32_t hi) { return lo+num(hi-lo+1); }
|
|
441
|
-
/// same as \c num(i)
|
|
442
|
-
uint32_t operator()(uint32_t i) { return num(i); }
|
|
443
|
-
uint32_t operator()(int32_t lo, int32_t hi) { return num(lo, hi); }
|
|
444
|
-
/// a random variable uniformly distributed in [0, 1]
|
|
445
|
-
double uni() { return ((double)num(1 <<22))/(1 <<22); }
|
|
446
|
-
/// a random variable uniformly distributed in [\c low, \c high]
|
|
447
|
-
double uni(double low, double high) { return low+uni()*(high-low); }
|
|
448
|
-
/// a gaussian random variable with mean zero
|
|
449
|
-
double gauss();
|
|
450
|
-
/** @brief a positive integer drawn from a poisson distribution with given
|
|
451
|
-
\c mean; is case \c mean>100, a (positive) gauss number
|
|
452
|
-
\c floor(mean+gauss(sqrt(mean))+.5) is returned */
|
|
453
|
-
uint32_t poisson(double mean);
|
|
424
|
+
int uni_int(int lo, int up) { if(!ready) seed(); std::uniform_int_distribution<int> dist(lo, up); return dist(e1); }
|
|
425
|
+
double uni(double lo=0., double up=1.) { if(!ready) seed(); std::uniform_real_distribution<double> dist(lo, up); return dist(e1); }
|
|
426
|
+
double gauss(double mean=0., double std=1.){ if(!ready) seed(); std::normal_distribution<double> dist(mean, std); return dist(e1); }
|
|
454
427
|
|
|
455
|
-
|
|
456
|
-
int32_t rnd250() {
|
|
457
|
-
rpoint = (rpoint+1) & 255; // Index erhoehen
|
|
458
|
-
return rfield[rpoint] = rfield[(rpoint-250) & 255]
|
|
459
|
-
^ rfield[(rpoint-103) & 255];
|
|
460
|
-
}
|
|
428
|
+
uint operator()(uint up) { return uint(uni_int(0, up-1)); }
|
|
461
429
|
|
|
462
|
-
void seed250(int32_t seed);
|
|
463
430
|
};
|
|
464
431
|
|
|
465
|
-
}
|
|
466
|
-
/// The global Rnd object
|
|
467
|
-
extern rai::Rnd rnd;
|
|
468
|
-
|
|
469
432
|
//===========================================================================
|
|
470
433
|
//
|
|
471
434
|
/// a little inotify wrapper
|
|
@@ -475,7 +438,7 @@ struct Inotify {
|
|
|
475
438
|
int fd, wd;
|
|
476
439
|
char* buffer;
|
|
477
440
|
uint buffer_size;
|
|
478
|
-
|
|
441
|
+
FileToken* fil;
|
|
479
442
|
Inotify(const char* filename);
|
|
480
443
|
~Inotify();
|
|
481
444
|
bool poll(bool block=false, bool verbose=false);
|
|
@@ -541,7 +504,6 @@ struct Singleton {
|
|
|
541
504
|
// just a hook to make things gl drawable
|
|
542
505
|
//
|
|
543
506
|
|
|
544
|
-
struct OpenGL;
|
|
545
507
|
struct OpenGLDrawOptions {
|
|
546
508
|
bool drawWires=false;
|
|
547
509
|
bool drawColors=true;
|
|
@@ -569,22 +531,20 @@ struct CoutToken {
|
|
|
569
531
|
~CoutToken() { coutMutex.unlock(); }
|
|
570
532
|
std::ostream& getOs() { return cout; }
|
|
571
533
|
};
|
|
572
|
-
#define COUT (CoutToken().getOs())
|
|
534
|
+
#define COUT (rai::CoutToken().getOs())
|
|
573
535
|
|
|
574
536
|
//===========================================================================
|
|
575
537
|
//
|
|
576
538
|
// to register a type
|
|
577
539
|
//
|
|
578
540
|
|
|
579
|
-
namespace rai {
|
|
580
541
|
struct Node;
|
|
581
542
|
struct Graph;
|
|
582
|
-
}
|
|
583
543
|
|
|
584
544
|
struct Type {
|
|
585
545
|
virtual ~Type() {}
|
|
586
546
|
virtual const std::type_info& typeId() const {NIY}
|
|
587
|
-
virtual struct
|
|
547
|
+
virtual struct Node* readIntoNewNode(struct Graph& container, std::istream&) const {NIY}
|
|
588
548
|
virtual void* newInstance() const {NIY}
|
|
589
549
|
void write(std::ostream& os) const { os <<"Type '" <<typeId().name() <<"' "; }
|
|
590
550
|
void read(std::istream& is) const {NIY}
|
|
@@ -606,7 +566,7 @@ inline bool operator==(Type& t1, Type& t2) { return t1.typeId() == t2.typeId();
|
|
|
606
566
|
//
|
|
607
567
|
|
|
608
568
|
template<class T> T fromFile(const char* filename) {
|
|
609
|
-
|
|
569
|
+
FileToken file(filename);
|
|
610
570
|
T x;
|
|
611
571
|
file.cd_file();
|
|
612
572
|
x.read(file.getIs());
|
|
@@ -621,6 +581,14 @@ inline bool operator==(Type& t1, Type& t2) { return t1.typeId() == t2.typeId();
|
|
|
621
581
|
// return x;
|
|
622
582
|
// }
|
|
623
583
|
|
|
584
|
+
} //namespace
|
|
585
|
+
|
|
586
|
+
//===========================================================================
|
|
587
|
+
|
|
588
|
+
typedef rai::String str;
|
|
589
|
+
extern rai::Rnd rnd;
|
|
590
|
+
std::istream& operator>>(std::istream& is, char* str);
|
|
591
|
+
|
|
624
592
|
//===========================================================================
|
|
625
593
|
//
|
|
626
594
|
// shared ptrs
|
|
@@ -629,20 +597,19 @@ inline bool operator==(Type& t1, Type& t2) { return t1.typeId() == t2.typeId();
|
|
|
629
597
|
template<class T> void _delete(T* ptr){}
|
|
630
598
|
template<class T> std::shared_ptr<T> _shared(T& x){ return std::shared_ptr<T>(&x, &_delete<T>); }
|
|
631
599
|
|
|
632
|
-
|
|
633
600
|
//===========================================================================
|
|
634
601
|
//
|
|
635
|
-
|
|
602
|
+
// gnuplot calls
|
|
636
603
|
//
|
|
637
604
|
|
|
638
|
-
|
|
639
|
-
|
|
605
|
+
void gnuplot(const char* command, bool pause=false, bool persist=false, const char* PDFfile=nullptr);
|
|
606
|
+
void gnuplotClose();
|
|
640
607
|
|
|
641
608
|
//===========================================================================
|
|
642
609
|
//
|
|
643
|
-
|
|
610
|
+
/// running code on init (in cpp files)
|
|
644
611
|
//
|
|
645
612
|
|
|
646
|
-
|
|
647
|
-
|
|
613
|
+
#define RUN_ON_INIT_BEGIN(key) struct key##_RUN_ON_INIT{ key##_RUN_ON_INIT(){
|
|
614
|
+
#define RUN_ON_INIT_END(key) } } key##_RUN_ON_INIT_dummy;
|
|
648
615
|
|
robotic/include/rai/Geo/geo.h
CHANGED
|
@@ -262,6 +262,7 @@ struct Camera {
|
|
|
262
262
|
void focus(float x, float y, float z, bool makeUpright=false);
|
|
263
263
|
void watchDirection(const Vector& d);
|
|
264
264
|
void upright(const Vector& up=Vector(0, 0, 1));
|
|
265
|
+
bool checkFocus();
|
|
265
266
|
|
|
266
267
|
//-- projection matrix stuff
|
|
267
268
|
arr getT_IC() const;
|
robotic/include/rai/Geo/mesh.h
CHANGED
|
@@ -21,7 +21,7 @@ struct SharedTextureImage{ byteA img; charA file; uint glBufferID=UINT32_MAX; };
|
|
|
21
21
|
|
|
22
22
|
namespace rai {
|
|
23
23
|
|
|
24
|
-
enum ShapeType { ST_none=-1, ST_box=0, ST_sphere, ST_capsule, ST_mesh, ST_cylinder, ST_marker, ST_pointCloud, ST_ssCvx, ST_ssBox, ST_ssCylinder, ST_ssBoxElip, ST_quad, ST_camera, ST_sdf, ST_tensor, ST_lines };
|
|
24
|
+
enum ShapeType : int { ST_none=-1, ST_box=0, ST_sphere, ST_capsule, ST_mesh, ST_cylinder, ST_marker, ST_pointCloud, ST_ssCvx, ST_ssBox, ST_ssCylinder, ST_ssBoxElip, ST_quad, ST_camera, ST_sdf, ST_tensor, ST_lines };
|
|
25
25
|
|
|
26
26
|
//===========================================================================
|
|
27
27
|
/// a mesh (arrays of vertices, triangles, colors & normals)
|
|
@@ -150,6 +150,7 @@ struct Mesh {
|
|
|
150
150
|
void writeJson(std::ostream&);
|
|
151
151
|
void readJson(std::istream&);
|
|
152
152
|
void writeArr(std::ostream&);
|
|
153
|
+
void writeAssimp(const char* filename, const char* format);
|
|
153
154
|
void writeH5(const char* filename, const String& group);
|
|
154
155
|
void readH5(const char* filename, const String& group);
|
|
155
156
|
void readArr(std::istream&);
|
robotic/include/rai/Gui/opengl.h
CHANGED
|
@@ -139,14 +139,14 @@ struct OpenGL {
|
|
|
139
139
|
int scrollCounter=0;
|
|
140
140
|
byteA captureImage;
|
|
141
141
|
floatA captureDepth;
|
|
142
|
-
Mutex dataLock; //'data' means anything: member fields (camera, variables), drawers, data the drawers access
|
|
142
|
+
rai::Mutex dataLock; //'data' means anything: member fields (camera, variables), drawers, data the drawers access
|
|
143
143
|
// uint fbo, render_buf;
|
|
144
144
|
uint offscreenFramebuffer=0;
|
|
145
145
|
uint offscreenColor=0;
|
|
146
146
|
uint offscreenDepth=0;
|
|
147
147
|
Signaler isUpdating;
|
|
148
148
|
Signaler watching;
|
|
149
|
-
OpenGLDrawOptions drawOptions;
|
|
149
|
+
rai::OpenGLDrawOptions drawOptions;
|
|
150
150
|
int selectID=-1;
|
|
151
151
|
std::shared_ptr<rai::RenderData> _data;
|
|
152
152
|
|
robotic/include/rai/Gui/plot.h
CHANGED
robotic/include/rai/KOMO/komo.h
CHANGED
|
@@ -14,6 +14,18 @@
|
|
|
14
14
|
|
|
15
15
|
#include "../Optim/NLP.h"
|
|
16
16
|
|
|
17
|
+
namespace rai{
|
|
18
|
+
std::shared_ptr<NLP> make_NLP_Problem(str problem={});
|
|
19
|
+
StringA get_NLP_Problem_names();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
struct KOMO_wrap : std::shared_ptr<NLP> {
|
|
23
|
+
std::shared_ptr<KOMO> komo;
|
|
24
|
+
KOMO_wrap(const std::shared_ptr<KOMO>& _komo) : komo(_komo){
|
|
25
|
+
std::shared_ptr<NLP>::operator=( komo->nlp() );
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
|
|
17
29
|
shared_ptr<KOMO> problem_IK();
|
|
18
30
|
shared_ptr<KOMO> problem_IKobstacle();
|
|
19
31
|
shared_ptr<KOMO> problem_IKtorus();
|
|
@@ -22,15 +34,6 @@ shared_ptr<KOMO> problem_StableSphere();
|
|
|
22
34
|
|
|
23
35
|
//===========================================================================
|
|
24
36
|
|
|
25
|
-
struct Problem{
|
|
26
|
-
std::shared_ptr<KOMO> komo;
|
|
27
|
-
std::shared_ptr<NLP> nlp;
|
|
28
|
-
|
|
29
|
-
void load(str problem={});
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
//===========================================================================
|
|
33
|
-
|
|
34
37
|
//a set of spheres, confined in a box, and no collision, minimizing their height..
|
|
35
38
|
struct SpherePacking : NLP{
|
|
36
39
|
arr x; //position of spheres
|
robotic/include/rai/Kin/frame.h
CHANGED
|
@@ -174,7 +174,7 @@ struct Frame : NonCopyable {
|
|
|
174
174
|
Frame& setConvexMesh(const arr& points, const byteA& colors= {}, double radius=0.);
|
|
175
175
|
Frame& setSdf(std::shared_ptr<SDF>& sdf);
|
|
176
176
|
Frame& setTensorShape(const floatA& data, const arr& size);
|
|
177
|
-
Frame& setImplicitSurface(const floatA& data, const arr& size, uint blur, double resample);
|
|
177
|
+
Frame& setImplicitSurface(const floatA& data, const arr& size, uint blur=0, double resample=-1.);
|
|
178
178
|
Frame& setColor(const arr& color);
|
|
179
179
|
Frame& setJoint(rai::JointType jointType, const arr& limits={}, double scale=1., Frame* mimic=0);
|
|
180
180
|
Frame& setContact(int cont);
|
robotic/include/rai/Optim/NLP.h
CHANGED
|
@@ -32,7 +32,7 @@ extern ObjectiveTypeA& NoObjectiveTypeA;
|
|
|
32
32
|
*
|
|
33
33
|
* Importantly: the Jacobian may be sparse! This allows to implicitly represent structured NLP (in contrast to explicit structure, see below)
|
|
34
34
|
*/
|
|
35
|
-
struct NLP : NonCopyable {
|
|
35
|
+
struct NLP : rai::NonCopyable {
|
|
36
36
|
//-- problem signature: needs to be defined in the constructor or a derived class
|
|
37
37
|
uint dimension=0;
|
|
38
38
|
ObjectiveTypeA featureTypes;
|
|
@@ -75,7 +75,7 @@ struct NLP_TrivialSquareFunction : NLP {
|
|
|
75
75
|
struct NLP_RandomLP : NLP {
|
|
76
76
|
arr randomG;
|
|
77
77
|
|
|
78
|
-
NLP_RandomLP(uint dim);
|
|
78
|
+
NLP_RandomLP(uint dim=2);
|
|
79
79
|
|
|
80
80
|
virtual void evaluate(arr& phi, arr& J, const arr& x);
|
|
81
81
|
|
|
@@ -126,13 +126,7 @@ struct SimpleConstraintFunction : NLP {
|
|
|
126
126
|
struct NLP_RastriginSOS : NLP {
|
|
127
127
|
double a;
|
|
128
128
|
double condition;
|
|
129
|
-
NLP_RastriginSOS()
|
|
130
|
-
a = rai::getParameter<double>("Rastrigin/a");
|
|
131
|
-
condition = rai::getParameter<double>("benchmark/condition");
|
|
132
|
-
|
|
133
|
-
dimension=2;
|
|
134
|
-
featureTypes = rai::consts<ObjectiveType>(OT_sos, 4);
|
|
135
|
-
}
|
|
129
|
+
NLP_RastriginSOS();
|
|
136
130
|
virtual void evaluate(arr& phi, arr& J, const arr& x);
|
|
137
131
|
};
|
|
138
132
|
|
|
@@ -143,7 +137,7 @@ struct NLP_Squared : NLP {
|
|
|
143
137
|
arr C; /// $A = C^T C $
|
|
144
138
|
uint n; /// dimensionality of $x$
|
|
145
139
|
|
|
146
|
-
NLP_Squared(uint n, double condition=100., bool random=true);
|
|
140
|
+
NLP_Squared(uint n=2, double condition=100., bool random=true);
|
|
147
141
|
|
|
148
142
|
virtual void evaluate(arr& phi, arr& J, const arr& x) { phi=C*x; if(!!J) J=C; }
|
|
149
143
|
// virtual arr getInitializationSample(){ return ones(n); }
|
robotic/include/rai/ry/types.h
CHANGED
robotic/librai.so
CHANGED
|
Binary file
|
robotic/meshTool
CHANGED
|
Binary file
|
robotic/src/h5_helper.py
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
import argparse
|
|
4
|
+
import h5py
|
|
5
|
+
|
|
6
|
+
class H5Writer:
|
|
7
|
+
def __init__(self, filename):
|
|
8
|
+
self.fil = h5py.File(filename, 'w')
|
|
9
|
+
|
|
10
|
+
def write(self, name, data, dtype = 'float32'):
|
|
11
|
+
self.fil.create_dataset(name, data=data, dtype=dtype)
|
|
12
|
+
|
|
13
|
+
class H5Reader:
|
|
14
|
+
def __init__(self, filename):
|
|
15
|
+
self.fil = h5py.File(filename, 'r')
|
|
16
|
+
|
|
17
|
+
def print_attrs(self,name, obj):
|
|
18
|
+
if isinstance(obj, h5py.Dataset):
|
|
19
|
+
print(' ', name, obj.name, obj.shape, obj.dtype, f'{obj.size*obj.dtype.itemsize/1024:.2f}kB')
|
|
20
|
+
if obj.dtype=='int8':
|
|
21
|
+
print(' ', ''.join([chr(x) for x in obj[()]]))
|
|
22
|
+
elif obj.size<20:
|
|
23
|
+
print(' ', obj[()])
|
|
24
|
+
else:
|
|
25
|
+
print('---', name)
|
|
26
|
+
|
|
27
|
+
def print_info(self):
|
|
28
|
+
self.fil.visititems(self.print_attrs)
|
|
29
|
+
|
|
30
|
+
def read(self, name):
|
|
31
|
+
return self.fil[name][()]
|
robotic/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '0.3.
|
|
1
|
+
__version__ = '0.3.2'
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
robotic/DataGen.pyi,sha256=qDQjATpbIgFvOrWk7F3ZTVbOuyXjT5nwHxrsRfGxWRU,3716
|
|
2
2
|
robotic/__init__.py,sha256=H8Qi-wA95h6SuziEFNZFEt6Tpt5UrttS9ftBjZCsMm4,421
|
|
3
|
-
robotic/_robotic.pyi,sha256=
|
|
4
|
-
robotic/_robotic.so,sha256=
|
|
5
|
-
robotic/librai.so,sha256=
|
|
3
|
+
robotic/_robotic.pyi,sha256=gr5_H1AoXHl6fbJqoseQRs5Iiue59qa3HBKVUSW6X08,76998
|
|
4
|
+
robotic/_robotic.so,sha256=iHRWCMC7jSyASvmpNQ3j7h033VgeFn5kF3ZCWpO3R_Y,1263400
|
|
5
|
+
robotic/librai.so,sha256=SuIUWB7bLk-2iTy7SfXWGrHIdn1GXLZ4abjqoXdku6c,38758816
|
|
6
6
|
robotic/manipulation.py,sha256=0B7UzU9J7b4f19thz67TbvknoncxffQEMHSBB6ez1Jg,22279
|
|
7
|
-
robotic/meshTool,sha256=
|
|
7
|
+
robotic/meshTool,sha256=kYLO2HPXn8nj98Qx-MIvJYpkFzOk2zY9-d30DgFZT80,52176
|
|
8
8
|
robotic/mujoco-import.py,sha256=8eC8ldlFwnYQfqII3FVdWEQ7zd1PkSdAF-oyryIQtkY,231
|
|
9
9
|
robotic/nlp.py,sha256=n9_hOj3i707DdL_r49Yd2eWyjsSOahW8DmJrEhQlNFw,3200
|
|
10
10
|
robotic/render.py,sha256=OE1dvyWHD7Oyzk4wlhXZ7m3v3xxa3zAL5_LCV1RgJXk,4662
|
|
@@ -17,10 +17,10 @@ robotic/ry-urdfConvert.py,sha256=8Efnq3PU202rrZrVEZiGwzFOJdvrLjTJ2q-gnY6-tiU,255
|
|
|
17
17
|
robotic/ry-view,sha256=T1Omn1QS7cNAtjQhBjMJTNz7aW5FgoOf9vBIfW0mFME,613
|
|
18
18
|
robotic/test.py,sha256=8hiDRB2kB37hE5cZ7h26AJDnSGYb1y8DwOrcEGD_5Hc,620
|
|
19
19
|
robotic/test.pyi,sha256=vVxwRSerjUG4bpB7pIhof7ZatrBqwg3Bj5voywa-YTI,917
|
|
20
|
-
robotic/version.py,sha256=
|
|
20
|
+
robotic/version.py,sha256=bqu4G7Is-8Were-hMi-SthEalL7QW-PAbKWGZ9pVB6U,22
|
|
21
21
|
robotic/include/rai/Algo/MLcourse.h,sha256=TGkAJWC5ollGfPw0-gcYL0TZeDJiHtWFzkHSMK8_lqU,1828
|
|
22
22
|
robotic/include/rai/Algo/RidgeRegression.h,sha256=VXiv6-xr3j--CN7DJTzUg9Xb49zV9FZ9dwzxP1CmcPM,3730
|
|
23
|
-
robotic/include/rai/Algo/SplineCtrlFeed.h,sha256=
|
|
23
|
+
robotic/include/rai/Algo/SplineCtrlFeed.h,sha256=yILBoUh9Ce0YtzGVZeAKmdUqsf0xeCGjXGC8bXNzZ3o,3339
|
|
24
24
|
robotic/include/rai/Algo/ann.h,sha256=XCQSzJIg_cPzZBKgIJMuHvBLc3ayD1FzSFqh2s_1TnM,1294
|
|
25
25
|
robotic/include/rai/Algo/dataNeighbored.h,sha256=NfwS4xJElLxX8t5cYY3xiTLXgJyMsHoaD-J0kT2GXqE,1208
|
|
26
26
|
robotic/include/rai/Algo/eigenValues.h,sha256=U76I5DT_WO_o7k-W3qYt2exc0WCpw4yYjR8WCqxGBv4,942
|
|
@@ -31,11 +31,11 @@ robotic/include/rai/Algo/kalman.h,sha256=c3i6ebYHZtyT5ReTmpJVx8aJ26JWLymqK_QRDY4
|
|
|
31
31
|
robotic/include/rai/Algo/minimalSpanningTree.h,sha256=56zTSWdMi4TMjtQDVv7tHo4ahivfidTXWN4zp9NX-Jw,512
|
|
32
32
|
robotic/include/rai/Algo/priorityQueue.h,sha256=nF-5_eSbGjXMmY2K3SpD-Hxwb3bhFA1ilr6IBsFq87Q,1938
|
|
33
33
|
robotic/include/rai/Algo/rungeKutta.h,sha256=Kbqeu-MauQDQnmKXSRk3VnOLUY_ngKzy-rqSskBqR9k,1761
|
|
34
|
-
robotic/include/rai/Algo/spline.h,sha256=
|
|
34
|
+
robotic/include/rai/Algo/spline.h,sha256=mNi6ktREVFYkdJWPZaCrnvCW3AuZyMAsktYkRz3Ywxo,4269
|
|
35
35
|
robotic/include/rai/Control/CtrlMsgs.h,sha256=61lxkvpcVB2ZAL7qmB35CJ1KkhZUB27lUJ4ZMiFH0Co,2406
|
|
36
36
|
robotic/include/rai/Control/CtrlObjective.h,sha256=fC-6cS0X0RR_7ooFm1xnAXlN2mgyF26qKfTjomUK45U,2591
|
|
37
37
|
robotic/include/rai/Control/CtrlSet.h,sha256=o7u8N9ZSoMbiDR3TGKDjfIarIP1JAw0SHMFL18t1fv0,1404
|
|
38
|
-
robotic/include/rai/Control/CtrlSolver.h,sha256=
|
|
38
|
+
robotic/include/rai/Control/CtrlSolver.h,sha256=fwlXJcgHl01FL1n6HR-dKgEZKp8mYOhC085vb1yw4l0,1100
|
|
39
39
|
robotic/include/rai/Control/CtrlSolvers.h,sha256=gxr_aTn-dyV1J6HxDSX8SVrqIPm14oxOkXx5-OGfamo,3094
|
|
40
40
|
robotic/include/rai/Control/CtrlTargets.h,sha256=FRjAi9KwDL2-5ziKYP5g_-uR234SdPw70TNZbYn3QVg,5475
|
|
41
41
|
robotic/include/rai/Control/RTControllerSimulation.h,sha256=iDpVRfivTlGS7DVWxVrS-xzCdVWrag1pUHsczZEb0po,1254
|
|
@@ -49,11 +49,11 @@ robotic/include/rai/Control/timingOpt.h,sha256=Ne_IH8QuFCID0Sy88LS5i3qkp1nL1FbIg
|
|
|
49
49
|
robotic/include/rai/Core/array.h,sha256=YcI48DcBMUYgdlXP4V1dV6juBUe1iCtbKoxWjp4nCxI,26125
|
|
50
50
|
robotic/include/rai/Core/array.ipp,sha256=DNmfosznj0jF-5lXTb8NUejfrVfs_Fw3O0IvvnDfF7M,63560
|
|
51
51
|
robotic/include/rai/Core/arrayDouble.h,sha256=9pr_9g50dFluF2dLgc29bl9o6ri9C84p69fNW2PYqXg,28724
|
|
52
|
-
robotic/include/rai/Core/defines.h,sha256=
|
|
53
|
-
robotic/include/rai/Core/graph.h,sha256=
|
|
52
|
+
robotic/include/rai/Core/defines.h,sha256=Y5YF92lo5dV3r0W6DFCapY7_7vUk9dS1po6ixtNxGIg,6896
|
|
53
|
+
robotic/include/rai/Core/graph.h,sha256=XkRLNuU8Aav9FMm-zgdWP6025NN5gauO1HFkWB2-e34,20351
|
|
54
54
|
robotic/include/rai/Core/h5.h,sha256=cfs8cew5QYpOxbWFZHV9TXVh5_dEJdFF1-aGZVR54EY,1162
|
|
55
|
-
robotic/include/rai/Core/thread.h,sha256=
|
|
56
|
-
robotic/include/rai/Core/util.h,sha256=
|
|
55
|
+
robotic/include/rai/Core/thread.h,sha256=oCcqgzPHYoVwCbarDibmbTwxKxnGGwdK0e0re3yWfPY,18303
|
|
56
|
+
robotic/include/rai/Core/util.h,sha256=2Od8h_k5YTiE4WK1D0_Cr7A0dgOuHccY8f_cJi-x3CQ,18856
|
|
57
57
|
robotic/include/rai/Core/util.ipp,sha256=soCVdpzWTpLL9i6rilFPNGozHZP40yhkmuXul7gHC7o,2157
|
|
58
58
|
robotic/include/rai/Core/lapack/blaswrap.h,sha256=jl8W6GwBGMiU-ND9ILeKqWlIvryw7AsIydPUCQGT_ew,3750
|
|
59
59
|
robotic/include/rai/Core/lapack/cblas.h,sha256=4bSmMzZ4idIPlmcwjw5HuwY1cs5RU73ZwmfydSpaBdk,32367
|
|
@@ -64,8 +64,8 @@ robotic/include/rai/DataGen/shapenetGrasps.h,sha256=NlpKWicgaylzw1si7EPzeM7cE_-V
|
|
|
64
64
|
robotic/include/rai/Geo/assimpInterface.h,sha256=2Jg7v2GZ83nz4kkgPLzbSWTIBmL9nZg-LhMlWcjiF_o,1055
|
|
65
65
|
robotic/include/rai/Geo/depth2PointCloud.h,sha256=0mXJnTk0sMB--KDE9CO_2gKgGw4gHXUe7xg6DcROhvk,1168
|
|
66
66
|
robotic/include/rai/Geo/fclInterface.h,sha256=d89JFW3WKI64gOdQSGs6uFdE7NcMavNg89BMHhzMDac,984
|
|
67
|
-
robotic/include/rai/Geo/geo.h,sha256=
|
|
68
|
-
robotic/include/rai/Geo/mesh.h,sha256=
|
|
67
|
+
robotic/include/rai/Geo/geo.h,sha256=04dkfACju5vir09K2hS-p9Dptn6H1LLGprujnu4UocY,14879
|
|
68
|
+
robotic/include/rai/Geo/mesh.h,sha256=LrVD3QjxIPotRtFL5s6_t-9Lv5eoVkwRf1Br2C70Shg,6972
|
|
69
69
|
robotic/include/rai/Geo/pairCollision.h,sha256=DOrRoKrYFHM_--h1Ubcgc7tc3xt6KyxA0ezLRCn5IaM,4256
|
|
70
70
|
robotic/include/rai/Geo/qhull.h,sha256=dRAAHIdvujPPW1fXW4hXMjgixpBDajDg-y_OX1JMi_0,1890
|
|
71
71
|
robotic/include/rai/Geo/signedDistanceFunctions.h,sha256=hrC838CsYWQ6TXm536iNRwB8W5-62LNb-JPqPoDAFPE,4831
|
|
@@ -88,12 +88,12 @@ robotic/include/rai/Geo/ccd_rai/support.h,sha256=B9KBuOctG7Hx-e1TXpnkU667WVH7SP4
|
|
|
88
88
|
robotic/include/rai/Geo/ccd_rai/vec3.h,sha256=ARkNnQz8yWf_Cs3vgt22zclN1cLeGmwWPTVHVpvmfEA,8115
|
|
89
89
|
robotic/include/rai/Geo/ply/ply.h,sha256=_oAXgQ5CyHvUMtPDBxYtOBbnKDVoZf5PKMswisqvOeI,9384
|
|
90
90
|
robotic/include/rai/Geo/vhacd/VHACD.h,sha256=QT_cT6PPzec_mxKODsS9cJGr6nBt6S8cUJF7dCeBQCc,258343
|
|
91
|
-
robotic/include/rai/Gui/RenderData.h,sha256=
|
|
91
|
+
robotic/include/rai/Gui/RenderData.h,sha256=6YDE58vdQ2E18IfgGUj40fmxqgj4-LZAVrZftkKG3-c,4996
|
|
92
92
|
robotic/include/rai/Gui/color.h,sha256=4ElBkpWgwBuqQEFD4Mdhv_afZE4ul6NkptwFQ2oDS5o,2596
|
|
93
|
-
robotic/include/rai/Gui/opengl.h,sha256=
|
|
94
|
-
robotic/include/rai/Gui/plot.h,sha256=
|
|
93
|
+
robotic/include/rai/Gui/opengl.h,sha256=NipYBJ40hqC6K7xqmB0UYdU4rX_zQgnh7rsi5_Fg0-8,9101
|
|
94
|
+
robotic/include/rai/Gui/plot.h,sha256=Y_X9-V6IExvFafNzkG88O2wUGDCCnarUzpi5b0DKBcQ,2346
|
|
95
95
|
robotic/include/rai/KOMO/PathSmoother.h,sha256=y-t3yVEZvxfQIs8_EA-WI7FJ_RzfbG8TEfdiNAruuUI,813
|
|
96
|
-
robotic/include/rai/KOMO/komo.h,sha256=
|
|
96
|
+
robotic/include/rai/KOMO/komo.h,sha256=lyhu0CTfJliiHRywA-Mk8x15ro4-Z3DhTP3IOtmQ1Lw,13400
|
|
97
97
|
robotic/include/rai/KOMO/komo_NLP.h,sha256=kSzUMDmw4yzAXtpNB2v38dpw2tBS8n8R_op_T3yS3DQ,3681
|
|
98
98
|
robotic/include/rai/KOMO/manipTools.h,sha256=WMdCxQB2rTcb3kzbiW9CHDpmGJZcKRqAnT861_iTsH4,4233
|
|
99
99
|
robotic/include/rai/KOMO/objective.h,sha256=Cl4-KjheRMNWoh_xFas5tLWMKSMlJf-HLDihfqvfcSw,2704
|
|
@@ -102,7 +102,7 @@ robotic/include/rai/KOMO/skeleton.h,sha256=NPaMfUMC_sUd3AjlLHTFpxWH4QtnKP_zzvHb2
|
|
|
102
102
|
robotic/include/rai/KOMO/skeletonSymbol.h,sha256=mrPqRn_1i4PuqbkQBhKEYc5WPEGqPjBN6TvwZxZ5e7A,1261
|
|
103
103
|
robotic/include/rai/KOMO/splined.h,sha256=G_fu9gXCboJLkwhwu77F6F3Ei6deqzbvkgP8r9kiNL8,903
|
|
104
104
|
robotic/include/rai/KOMO/switch.h,sha256=teNNnHFe4h9W5rLlL3TFBsq97ni-RUEhcxw4uVPYR1g,1850
|
|
105
|
-
robotic/include/rai/KOMO/testProblems_KOMO.h,sha256=
|
|
105
|
+
robotic/include/rai/KOMO/testProblems_KOMO.h,sha256=K68JhZOpPcB9A0K2IEnfOJHG3-QweSDmHB2u_YfjeIA,3000
|
|
106
106
|
robotic/include/rai/Kin/F_LeapCost.h,sha256=wNAUNgAJjLirMurF67BlFLHtjyuXy1EPr--9XLBe6Wk,556
|
|
107
107
|
robotic/include/rai/Kin/F_collisions.h,sha256=Atq9LPVOkEuMF-kSHk78cGjaJYwDIbvrTxHmLBJw3yk,2092
|
|
108
108
|
robotic/include/rai/Kin/F_forces.h,sha256=tHyBQcKhi4ZdsHoBU5bu7kLWVm611SfEYG_o-vMSDN0,6694
|
|
@@ -117,7 +117,7 @@ robotic/include/rai/Kin/dof_particles.h,sha256=PboLndC5a5extUKAfUPAIsJEGTTs6_ACD
|
|
|
117
117
|
robotic/include/rai/Kin/dof_path.h,sha256=XRPj3bH90JUIdkTS4jxwbAb5n9yAsRoemWUWUV1xDtQ,792
|
|
118
118
|
robotic/include/rai/Kin/feature.h,sha256=xicsrElMcYnYXdIXdO5LBLmXxvCGVUVgZJY2NIarO5I,3935
|
|
119
119
|
robotic/include/rai/Kin/featureSymbols.h,sha256=JVXbXoW43PlEGOgwHPpULlbXUQzkl79F1EFnfl-0wyk,1984
|
|
120
|
-
robotic/include/rai/Kin/frame.h,sha256=
|
|
120
|
+
robotic/include/rai/Kin/frame.h,sha256=Glq5nVSukaxl4NITLx0cabIrGToUVhLPKy0zP7QQkhA,14623
|
|
121
121
|
robotic/include/rai/Kin/kin.h,sha256=uu2rwBXk0vMLH4NzXJTBHyV2sRRXK_zHrnoy61zh0qc,16060
|
|
122
122
|
robotic/include/rai/Kin/kin_bullet.h,sha256=y8aApXpXY4bD5QN_WmDAU2vNEvvbdo1Rd4zY7qo-FKE,1970
|
|
123
123
|
robotic/include/rai/Kin/kin_feather.h,sha256=o-hOJA8UcmIBKx_qPzoG9R7fxzz-4zhBNMBmBTK21oA,1627
|
|
@@ -138,9 +138,9 @@ robotic/include/rai/Logic/folWorld.h,sha256=XpqTWOIvZbKlS_vsJkXOexrhjfy3_iywebFe
|
|
|
138
138
|
robotic/include/rai/Logic/treeSearchDomain.h,sha256=sO5Y6o9wRTQxfST9YyJw3P0KcqGX7ISqbIN-uGQ5abU,3882
|
|
139
139
|
robotic/include/rai/Optim/BayesOpt.h,sha256=GqOqGk5Y0USf513duMPtt--TBYGqujdsvY2qi17jVxI,1241
|
|
140
140
|
robotic/include/rai/Optim/GlobalIterativeNewton.h,sha256=WRaTFUrx0A1FO7d7shgZbJVaC5AWKZT5PTD8LnuPXiE,801
|
|
141
|
-
robotic/include/rai/Optim/NLP.h,sha256=
|
|
141
|
+
robotic/include/rai/Optim/NLP.h,sha256=UwlTvUopRLYldVtx_WiFYDegPCssd4slWMQQD2EqI9s,8200
|
|
142
142
|
robotic/include/rai/Optim/NLP_Factory.h,sha256=xDn73B-u6fFvtu-udkXgyTiFyjTzfJNHwUm6z88FiOo,1979
|
|
143
|
-
robotic/include/rai/Optim/NLP_GraphSolver.h,sha256=
|
|
143
|
+
robotic/include/rai/Optim/NLP_GraphSolver.h,sha256=Te5_uyLrBvHANfGv9uHdR6YPuCWCqgJqj9EL8WYfF14,1172
|
|
144
144
|
robotic/include/rai/Optim/NLP_Sampler.h,sha256=JaOEc8YJwatW5toOviTFXlOoF3Dg8ZWPM9zejyW9ND8,4643
|
|
145
145
|
robotic/include/rai/Optim/NLP_Solver.h,sha256=Y07FfnrTjkVldXFU5HJ0SB0pOlGGivQ9k_4vpEM3YoA,2482
|
|
146
146
|
robotic/include/rai/Optim/SlackGaussNewton.h,sha256=b5w2ti8AqqothZtCFevUNSs1Y5dz4LOLBJXZQvoKNmU,1338
|
|
@@ -153,7 +153,7 @@ robotic/include/rai/Optim/opt-ipopt.h,sha256=1v147tZVY3MuNMRLaFFWxKC7fyNP5-59WJz
|
|
|
153
153
|
robotic/include/rai/Optim/opt-nlopt.h,sha256=R0ma9SjxcVU9nI7H39QOWUIPy95H4AiQwLRHz3DRe7k,970
|
|
154
154
|
robotic/include/rai/Optim/options.h,sha256=JSqHw6agqLkvfvw6kd54KHQ6Hz7xZyHeRkWAumYUag0,1876
|
|
155
155
|
robotic/include/rai/Optim/primalDual.h,sha256=xHXhAPbZWPVj17ZGpDr4OrLJLYj_G1Wr_k4TCPFBiHc,1272
|
|
156
|
-
robotic/include/rai/Optim/testProblems_Opt.h,sha256=
|
|
156
|
+
robotic/include/rai/Optim/testProblems_Opt.h,sha256=4gpRMynlhr-01r3Tls1C4pueylO_UsCw8wElbgxhMf8,6338
|
|
157
157
|
robotic/include/rai/Optim/utils.h,sha256=VMTSVUcg3UWN8RhBYSSyqoBCa_AcUrZ_7zvcz3XWEC0,3517
|
|
158
158
|
robotic/include/rai/PathAlgos/ConfigurationProblem.h,sha256=Zl_J3yooYFxA2-z-ulFL67nfzQBX90hUbD_cVFzpb3U,1351
|
|
159
159
|
robotic/include/rai/PathAlgos/PathResult.h,sha256=xxZiD8ClGKO719mQR50BsIzOlHeoH0UH4QNzWifoz6c,1070
|
|
@@ -174,7 +174,7 @@ robotic/include/rai/Perception/pcl.h,sha256=bb_INnIt89xfwvx3gkLRqRPiH2OOpdPL7f-3
|
|
|
174
174
|
robotic/include/rai/Perception/pclPlaneExtraction.h,sha256=RTyPIrxS4oZGZ1rXAhaRWxBrs3YX-PHmUimLG7t0LG0,2077
|
|
175
175
|
robotic/include/rai/Perception/pixel_format.h,sha256=dNRLdsMdckP0npn19WO_37RpH3poNamOT4JfEM6QAco,1064
|
|
176
176
|
robotic/include/rai/Perception/pointcloud_io.h,sha256=G908jUYDi8QFXmBDXrIuUrqZh24utcv3ABK2pWmhB50,1085
|
|
177
|
-
robotic/include/rai/Perception/surfels.h,sha256=
|
|
177
|
+
robotic/include/rai/Perception/surfels.h,sha256=OblVWjI_bEpQwqcANJ8cHYvah4BraYmLpicN_Vn39Dg,1952
|
|
178
178
|
robotic/include/rai/Perception/videoEncoder.h,sha256=TWphAWKPuvwwM6kNSfbEv57w9_LzZSbx-zkovfPVGA0,1823
|
|
179
179
|
robotic/include/rai/Search/AStar.h,sha256=qXZybtUHusQUjmA2xYCvKtLpe8Saq73klpnBuz1plZc,1209
|
|
180
180
|
robotic/include/rai/Search/ComputeNode.h,sha256=JcUy-8fmMsFbluSriDOh9FgLrJhaC4ggoiQwQa-1IZ0,3420
|
|
@@ -190,7 +190,7 @@ robotic/include/rai/ry/py-Quaternion.h,sha256=EydIMfUB_Zf9H21x29dhBjDm7472Ge_XD6
|
|
|
190
190
|
robotic/include/rai/ry/py-Simulation.h,sha256=Kc4e6pK1yQyxDMCQu1HvXOYt9IlUiojBYFdqv3PP1AY,437
|
|
191
191
|
robotic/include/rai/ry/py-Spline.h,sha256=gR8Cvwt5PlzlolxegS1wUEEOQj9RydOp1gS67Zxm0jk,433
|
|
192
192
|
robotic/include/rai/ry/py-tests.h,sha256=-l_0V-yRqeOEztqCo_BAdcKCAMovyd8-9tnrytM5pQM,432
|
|
193
|
-
robotic/include/rai/ry/types.h,sha256=
|
|
193
|
+
robotic/include/rai/ry/types.h,sha256=gfyXJCRwkvrQ8jibdJVMRxPUIhXMUQJlgws9ocKyB8c,8537
|
|
194
194
|
robotic/rai-robotModels/g1/g1.g,sha256=9lA31eCRoFENw9Nbg04KoX3diIIQYKz981oRYNKLvO4,499
|
|
195
195
|
robotic/rai-robotModels/g1/g1_29dof_conv.yml,sha256=KU7Usxi4fMCKFH7Jfb6Jvs98fbK1UozBHCeTnD0KPPU,12132
|
|
196
196
|
robotic/rai-robotModels/g1/g1_clean.g,sha256=jXlPAlL02pPSybl5DgazO0Qf96wAg2tbVwXKYh9e5XQ,11883
|
|
@@ -351,20 +351,21 @@ robotic/rai-robotModels/ur10/meshes/wrist2.h5,sha256=fJSQ4Jh-ChmwvRYfDobqXssVaBZ
|
|
|
351
351
|
robotic/rai-robotModels/ur10/meshes/wrist3.h5,sha256=F8FrYVVp8YBdkgJ6EHKb5r_rm0kyhxf6b8KbwHjeegk,20770
|
|
352
352
|
robotic/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
353
353
|
robotic/src/cleanMeshes.py,sha256=42T9WwN_cn4u_s_BzN2eRfBQxmZTEQ6ZYPBtsesA5BM,1678
|
|
354
|
+
robotic/src/h5_helper.py,sha256=erZTmCSWIROWcn4MojakXSdvFtkWaDpaIhFCf7y8_Cc,899
|
|
354
355
|
robotic/src/mesh_helper.py,sha256=AMSOz3Eew9uJkDm5tFThbfJKcEQCmGyRLN4bZphISNk,16691
|
|
355
356
|
robotic/src/meshlabFilters.mlx,sha256=SCIiIk7XZusvKEKY62pHSem_R3TcMUP8BFaLTVUcnEg,3833
|
|
356
357
|
robotic/src/mujoco_io.py,sha256=drLNE4yo30hpOY01-AsuCWKLvNoG5w2YDSzR_rlyfz0,9474
|
|
357
358
|
robotic/src/urdf_io.py,sha256=bbPcJWS9rnYk8CWgEZTmx1XJRBIDrfwgCj-S_RFxl9U,8800
|
|
358
359
|
robotic/src/yaml_helper.py,sha256=Jf9QaKSNQrPkUPqd5FUDv7_h0wDlGXrhCdMwu6y-Nh0,925
|
|
359
|
-
robotic-0.3.
|
|
360
|
-
robotic-0.3.
|
|
361
|
-
robotic-0.3.
|
|
362
|
-
robotic-0.3.
|
|
363
|
-
robotic-0.3.
|
|
364
|
-
robotic-0.3.
|
|
365
|
-
robotic-0.3.
|
|
366
|
-
robotic-0.3.
|
|
367
|
-
robotic-0.3.
|
|
368
|
-
robotic-0.3.
|
|
369
|
-
robotic-0.3.
|
|
370
|
-
robotic-0.3.
|
|
360
|
+
robotic-0.3.2.data/scripts/ry-bot,sha256=LBNbbQeNNNd_tupI5463Xe-RKSD6xy4HGTbJloisCGk,2280
|
|
361
|
+
robotic-0.3.2.data/scripts/ry-h5info,sha256=eh9McT5Ury7bbTudxkSOLWo-tZ6heiSEpGStM07N-Dc,810
|
|
362
|
+
robotic-0.3.2.data/scripts/ry-info,sha256=fL5QXJL4Xx-Q42L2C29HHbj1XsmWdWiKIv9rVfc5sm4,425
|
|
363
|
+
robotic-0.3.2.data/scripts/ry-meshTool,sha256=h4f4wFPNaey3ziz870SrEvy6SsQSL-ZnR_cH3UuAZxE,101
|
|
364
|
+
robotic-0.3.2.data/scripts/ry-test,sha256=vcaPrFq9Co9N2F2Mdl2_1CTieOBssSoEhU67wXqJ2EY,981
|
|
365
|
+
robotic-0.3.2.data/scripts/ry-urdfConvert.py,sha256=762MIDmAhdCCj55QftY7wsy9gOEs-TDEWcRPt5dECyc,2542
|
|
366
|
+
robotic-0.3.2.data/scripts/ry-view,sha256=_GjUbVS2X3AWnlXqIHwU5dofLmUKA2-NUPySgS-QJNI,599
|
|
367
|
+
robotic-0.3.2.dist-info/licenses/LICENSE,sha256=oT-pAsUSXiuMq2_3omR87-GFBeBnegQYixH4Bm_7wag,1071
|
|
368
|
+
robotic-0.3.2.dist-info/METADATA,sha256=owChbzqRWeS2Kiak332W1oF4-jY1cBu9NV8ADIfiReI,6654
|
|
369
|
+
robotic-0.3.2.dist-info/WHEEL,sha256=ITVdYpiTGnryqIbOR0i1wcdISo8YPJzlx8rAyocabzM,104
|
|
370
|
+
robotic-0.3.2.dist-info/top_level.txt,sha256=x5A4haAZ18y9FpO1IhXSVJ2TFdhVAgT5JMkejHUg_9U,8
|
|
371
|
+
robotic-0.3.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|