forked from georgmartius/lpzrobots
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
172 lines (151 loc) · 7.79 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
2016-01-19 martius (0.8.1)
fixing some small bugs
motorbabbler more configureable
2014-06-06 martius (0.8)
use of C++11 (need gcc 4.7 or higher)
Robot interface for ode_robots changed, see UPDATE
generic sensor and motors can not be used widely, (Servo motors as well)
Sensor and motor descriptions routed from robots to controllers
Generic set of config variables from console -set "{key1=val1 key2=val2 ...}"
Ctrl-h resets robots to initial pose (of main primitive)
Fixation and displacement of robots integrated
video recording also records logfiles and saves agents automatically
encodevideo.sh creates a src archive with sources and logfiles
PlotOptions allow filtering. From commandline e.g. -g 10 "{+x,+y}" or "{-C}"
Bugfixes: Following camera mode, irsensor-nographics-crash,...
RelatvePositionSensor fixed
TorqueSensors added
Contacts can be drawn with -drawcontacts
commandline inputs go into logfiles
Matrix uses move-assignment from C++11, speedup
2011-11-11 martius (0.7)
Build system: use config scripts like selforg-config etc.
Configurator added (some stability issues remain)
Operators/Manipulators: observe agent and can turn it over of lift up
see LimitOrientationOperator and LiftUpOperator
Colors and ColorSchema: named colors and alias sets
color palette files (gimp format)
alias files: simple tab seperated file
2010-07-05 martius (0.65)
Build system changed. Object files come to separate directory.
M4 Makefile for simulations
Angularmotors bug fixed. Axis were global.
New Servos (XAxisVel) that control internally the velocity work great now
2010-03-25 martius (0.6)
long time no update in the Changelog file. Almost everthing changed ;-)
Main points
1. Camera Support
2. Normal target is with -O1 and there is an additional debug target
2008-04-17 martius
1. OSG2 port
New viewer is used.
Various shadow algorithms are avaiable
2. Multithreading build in using QuickMP
Controllers (Agent::step) run in parallel
Threadnumber is the number of processors.
ODE can also run in a separate thread if wanted, this has some consequences:
- sensors are one timestep delayed
OSG can also run in a separate thread if wanted, this has some consequences:
- sometimes the program just stalls right after the start which is due
to some problems with the Xlib and concurrent access
3. Random generator with state
Agents have there own random generator and
pass it to controller and wiring
4. Configuration file
a config file (~/.lpzrobots/ode_robots.cfg) loads defaults for
e.g. shadow, window size, threads and so on.
The cfg file is written at the first start,
and it can be also saved with -savecfg flag
5. Support for simple sound signals
very simple sound sensor and sound emitting with graphic represenation
6. Binary distribution creation script
2007-03-26 martius
1. new collision treatment
Class substance carries information about material of each primitive.
The substance for new primitives is taken from odeHandle.
For an example see simulations/tests.
On collision the substances of two colliding primitives are combines to
contact surface parameter.
There is a global list of ignored pairs of geoms. If you create a joint the
two parts are automatically inserted in this list. If you want to specify
additional pairs, which should not collide, then use odeHandle.addIgnoredPair().
If you want to ignore an entire space then use odeHandle.addIgnoredSpace().
In order to stay backwards compatible each robot is asked for the collision
handling as before. If no robots handles the collision the general collision
handling is used. See also simulations/tests.
2.There is a new commandline interface using gnu readline.
Features: Commands
param=val sets PARAM of all objects to VAL.
help Display this text.
? Synonym for `help'.
list Lists all objects and agents.
ls Synonym for `list'.
set syntax: set [OBJECTID] PARAM=VAL; sets parameter of Object (or all all objects) to value.
store Stores controller of AGENTID to FILE.
load Loads controller of AGENTID from FILE.
show [OBJECTID]: Lists paramters of OBJECTID or of all objects (if no id given).
view Synonym for `show'.
quit Quit program.
There is also a history and all features you know from you terminal console e.g.:
Up / Down previous and next in history
TAB auto completion
Ctrl+r reverse search in history
...
With store and load you can save the controller of any agent
2006-12-12 martius
1. agents receive comments about changes in configuration values
from simulations.cpp
2006-12-11 martius
1. controllinterval wie schon angekuendigt ist jetzt die richtige
Verhalten bezueglich des controllintervals eingecheckt. D.h. in
jedem Simulationsschritt werden die Motorsignale an den Roboter
geschickt, aber nur aller "controllinterval" Schritte werden sie
Sensoren abgefragt und der Controller benutzt.
2. derivativewiring
2a: Reihenfolge hat sich geaendert: Jetzt: sensoren einer Qualitaet in
Bloecken. Also erst alle Sensorwerte (Id), dann alle ersten Ableitungen
(FirstD), dann alle zweiten Ableitungen (SecondD)
2b: Rauschen: Nur der erste Block an Sensorwerten wird verrauscht. Also wenn
man Id und FirstD benutzt, dann sind nur Id verrauscht. Wenn man FirstD und
SecondD benutzt, dann ist nur FirstD verrauscht.
2c: Defaults: es gibt jetzt zwei Default Funktionen:
getDefautConf(): Id und FirstD, kein Smoothing, kein Scaling
getDetaultConf1() Nur FirstD, Smoothing ueber 2 Zeitschritte, Scaling mit 5
(die alten Einstellungen: Smoothing ueber 20 Zeitschritte, Scaling mit 10)
2d: bei blind motors wird jetzt direkt die Nummer angegeben.
3. agent hat eigenen noisefactor:
beim Konstuktor eines Agents, kann man jetzt einen noisefactor angeben.
z.B. OdeAgent* agent = new OdeAgent(plotoptions, 0.1);
Heisst dann dieser Agent nur ein 10tel des Rauschens benutzt. Das eigentliche
Rauschlevel wird nach wie vor von der globalen noise Variable bestimmt.
4. colornoise
4a: die Varianz des farbigen Rauschens ist jetzt farbunabhaengig. (Haette es
schon die ganze Zeit sein sollen). Also egal welches tau man angibt, die
Varianz ist wie beim weissen Rauschen.
4b: der default Wert fuer tau (Farbigkeit) ist jetzt bei 0.05, d.h. ueber 20
Schritte. Meist haben wir 0.1 benutzt, aber der default wert war auf 0.5, was
quasi fast weiss ist.
5. memory leak tester valgrind
Ich habe die letzten 2 Tage damit verbracht unsere Simulationsumgebung von
Memoryleak und dergleichen zu gefreien. Dazu gibt es ein schoenes Tool namens
"valgrind". Das findet wirklich alles raus. Leider soviel, dass es auch in
den Standard-libs und in OpenGl und osg und uberall was findet. Damit man bei
unserem Komplexen Programm ueberhaupt etwas sieht habe ich ein suppression
file unter ode_robots/ angelegt. Der Aufruf von valgrind ist unter
ode_robots/utils/valgrind.cmd zu finden. Aber es werden immer irgendwelche
Sachen gefunden, die aber nicht durch uns auftreten.
Controller kann man am besten testen, in dem man sie in
selforg/examples/directconnect oder selforg/examples/integration einsetzt und
dann dort valgrind startet. Aufruf ist auch in
selforg/examples/integration/valgrind.cmd zu finden.
2005-12-12 11:58 martius
to version 0.2
* selforg agent and controller and abstract robot are moved to selforg directory
and are cleaned of ode related stuff.
Implication: - includes from selforg: #include <selforg/header.h>
- robots in ode have to be inherited from OdeRobot instead of AbstractRobot
* includes are automatically copied (by link) to include directories in ode_robots and selforg.
This occurs on make depend.
* OpenSceneGraph integration!
* OsgHandle is a structure that is needed for create an OpenSceneGraph note.
* osg directory contains some osg wrappers for ODE objects and joints