-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes.txt
1739 lines (1497 loc) · 82.1 KB
/
Changes.txt
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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Aria 2.9.4
January 25, 2018
---------------------------
* Fix to ArActionGotoStraight to honor justDistance flag in setGoal(), and to
add parameters allowing it to turn in place for large heading changes.
* Add very basic rust bindings to the "ariac" library (which is a simplified
plain-C interface to ARIA.)
* Add the start of C# wrapper library for ARIA. Not well tested, continue
discussion about development in ARIA public user discussion Group.
See http://www.swig.org/Doc3.0/CSharp.html for information on C# support
in Swig. There are various features and changes that could probably be useful.
Another option would be to use the "CppSharp" tools from the Mono project to
generate C# bindings as an alternative to Swig.
Aria 2.9.3
November 15, 2017
---------------------------
* Added pioneer-lx-ld parameters for LD-series PioneerLX robots, with secondary
laser enabled and configured.
* Fixes for building ARIA on MacOSX
* Fixes for building ARIA on MinGW
* Fixes for building Matlab interface on newer versions of Matlab
(required Visual C++ version is detected from Matlab rather than
requiring Visual C++ 2010, added Visual Studio projects for newer
versions.)
* Added missing DiscoverWiBox.py file to Python packages.
* Prebuilt libraries are included in Windows packages for Visual C++ 2017
(New), Visual C++ 2015 and Visual C++ 2012. Project files are also provided
for 2013 and 2010.
* Added ArServerDataProvider and ArClientDataReceiver utilities to
ArNetworking to make it easy for user code to request single-value, list or
vector data types from a server and for server to add
them. ArServerDataProvider gets new values via a user supplied function when
requested by clients, optionally locking a mutex. ArClientDataReceiver
automaticall makes requests and provides received values to user-supplied function,
or stores the value for your. These both use a new ArPacketUtil class with
generic methods for adding/removing packet fields based on a type
given via template parameter, this utility can be used if desired when
construtcting or parsing more complex ArNetworking packets, if their format
matches ArPacketUtil's standard behavior for different types.
* ArMTXIO can now set/get LX analog IO
* Improved examples/mtxPower and examples/mtxDigitalIOExample to be more useful tools
and examples, add mtxAnalogIOExample.
* Allow "tim5XX" laser type identifier as alias for tim510. (For compatibilty
with amigo-sh-tim3xx.p parameter file.)
* Swig 3.0 is now used to generate Python and Java wrapper libraries. Make sure
to use Swig 3.0 or later (instead of Swig 1.3) if you are regenerating them yourself.
We are considering wrapper libraries for new languages using Swig 3.0, if you
have feedback on languages you would like to use (e.g. Ruby, C#, Lua,
Lisp or Scheme, R, Go, Javascript, etc.) please let us know via
aria-users group or [email protected].
* Added information to pythonExamples/README.txt about using the "nteract"
interactve Python notebook tool.
* Improvements to ArDataLogger:
* Can now use comma-separated-values (CSV) or tab-separated-values (TSV) as
output format, (easier to load into other software for graphing or analysis),
or original fixed column output (easier to read as plain text).
* It is now also easier to add any data item to log via generic addData() method
(and new ArStringFormatBufFunctor classes),
* New functions to clear and reset log file, insert comments, and save copies to
timestamped backup file (or supplied name). These utilities can easily be added
to an ArNetworking server as "custom commands" to be called from MobileEyes.
* Timestamps fixed to include fractional seconds for sub-second log intervals.
* Added new ArServerInfoTrailDrawings, a tool to obtain positions (ArPose
objects) from any class and send a history of these to be drawn as a dot trail
in MobileEyes. Use this to plot various calculated robot positions as it
moves, or other points over time.
* Added a small testing tool to ArNetworking, ArServerModeTestLoop, to
drive robot back and forth on a short line, with very basic obstacle
detection, using direct motion commands only. May be helpful to debug
issues with the robot itself.
* Added new ArSeekurIMU API for receiving Gyro or IMU data from Seekur and Seekur
Jr. robots
* serverDemo displays remaining free disk space for log files in MobileEyes.
* Added key command to ARIA demo program to toggle digital outputs.
* Added Seekur LATVEL and some other commands to ArCommands enum.
* Added ArUtil::availableDiskSpace() as cross platform utility to determine
free disk space for a file, with more specific functioons for ArDataLogger
and ArLog.
* Other documentation improvements and other fixes.
Aria 2.9.1
October 14, 2016
---------------------------
This version contains all of the changes
listed for ARIA 2.9.0 and 2.8.x below, as well as the following:
* Fixed serial port (COM port) names for Pioneer LX components on Windows
* ArGPS will now work with more types of GPS receivers, even if they use
different NMEA message/sentence prefixes other than "GP..."
* amigo-sh-tim3xx (aka amigo-sh-tim5xx) robot type and default parameters added to ARIA
Amigobot with TiM laser on Wibox.
* Add missing RobotLengthFront and RobotLengthRear parameters for
Seekur and Seekur Jr. (in internal defaults and seekur.p and seekurjr.p).
(This caused bad driving trajectories in ARNL e.g. turning away from path)
* Add identifiers for newer camera connection and separate arm logic power to
seekurPower control tool
* Default port for RVision PTZ camera is now COM4 (/dev/ttyS3 on Linux)
* RVision now works in ARIA demo.
* Can now add ArRobot packet handler callbacks from Python (added typemap and
supporting code for ArRetFunctor1<bool, ArRobotPacket*>)
* Added new "tim551", "tim561", and "tim571" laser types to support SICK TiM
lasers. Specify them in robot parameter files or with the -laserType command
line option to use.
* Can use "tim510" laser type identifier as alias for "tim3xx".
* In ARIA demo program, a few USB serial port options have been added to
menu selection of PTZ camera ports.
* ArNetworking includes new ArServerModeJogPosition. Remote clients can send
requests to this mode to move the robot in short relative increments
forward/back and rotate.
* Minor fixes to Visual Studio 2013 projects
* Added ArCallbackList2 and ArCallbackList3 classes.
* ArNetworking includes new ArClientRatioDrive, a class to make it easier to
remotely drive robot by velocity requests. (Same as teleoperation tools in
MobileEyes)
* ArNetworking now includes a consolidated list of remote requests with
packet field descriptions, as a page in the ArNetworking API Reference
documentation. (These requests and replies are used by ArNetworking clients
to communicate with servers including ARNL servers.)
* Misc ArNetworking documentation and examples improvements, including new
example program that shows how to get String Info Group data
aka "Custom Details" from server (ArServerInfoStrings). Corrected
documentation of ArServerInfoStrings "getStrings" request.
* Enable HasRearBumps by default in Pioneer LX parameters (params/pioneer-lx.p
and internal defaults): The first three "User Bumpers" inputs trigger the same
bumper flags as the robot's built-in front bumpers; the second set of
three User Bumps inputs trigger the Rear Bumps.
* Includes fixes to LMS1xx and TiM interfaces that allow rotated laser
(backwards-facing) mounting to work.
* Added function to Aria Python library to seach network for WiBox
wireless devices, and prompt user for connection, making Python
development a bit easier. Added more information to Python documentation,
including notes on how to use the Idle IDE on Windows and how to get
started using the Jupyter Notebook interactive Python workflow (formerly
known as iPython Notebook)
* Fixed HasMoveCommand flag in default robot parameters for Pioneer LX
that indicates how ArRobot should implement move(). (Set to false.) LX
currently does not have a working built-in MOVE command so discrete
movement is implemented within ArRobot.
* On Windows, there is now partial support for Visual C++ 2015 (VC14)
in ARIA and ArNetworking. Other libraies will get support in future
versions.
* Added Visual Studio templates that can be copied into your user
directory (Visual Studio directories in My Documentes) and used to
create new projects already set up for ARIA and with example code.
* Windows installer now sets up Python environment (by setting PATH environment
variable and permanently in Windows Registry, and by adding to PythonPath in
Windows Registry, these are done in both the System and User scopes.)
Aria 2.9.0
November 10, 2014
---------------------------
This version contains all of the changes
listed for ARIA 2.8.0 and 2.8.1 below, as well as the following:
Bug Fixes:
* 'demo' and 'gpsRobotTaskExample' example programs now
only print a warning on error connecting to laser, rather than
exiting. This allows them to be used on robots with lasers configured
in robot parameters (with LaserAutoConnect set to true), even
if there is no laser rangefinder actually connected.
* Internal defaults for MTX (Pioneer LX) sonar are now configured
correctly if pioneer-lx.p parameter file is not available or loaded.
* Fixed checks for MTX/Lynx/Pioneer LX dock in ArBatteryMTX that could
cause applications to retain "docked" state if robot actually
removed from dock.
* Added good default values for Pioneer LX acceleration parameters
* Bug fixes to Matlab interface
* Removed declaration of undefined (and unneeded) function in
ArConfigArg, which was preventing Python and Java wrappers from
working.
* Fixed ArNetworking ArServerModeRatioDrive timeout to cover missing
cases
* Fixed ArNetworking ArServerMode mode-lock
* Reset ArSocket timeout immediately after a successful connection
(in addition to creation and reading data)
* Add missing RobotLengthFront and RobotLengthRear parameters for
Seekur Jr. (in internal defaults and seekurjr.p)
* Some additional diagnostics added to ArS3Laser
* Fixes to SICK TiM laser support
* Fixed disconnect-normally callbacks in ArRobot
* Prevent ArNetworking from sending too-large packets. Followup
packets will be sent with rest of data.
* Fixed names of Windows COM10 port and higher in ArUtil
(ArUtil::COM10, ArUtil::COM11, etc.) to include \\.\ prefix that is
required for high COM ports on Windows.
* Updated more examples (including Python examples) to correctly use
new ArRobotConnector instead of deprecated ArSimpleConnector.
* Fixed bug in which ArRobotConnector would erroneously stop any JOYINFO
packets requested by ArRobotJoyHandler; ArRobotJoyHandler now requests
JOYINFO packets to stop when disconnected, destroyed, or ARIA program
exits.
New Features and Other Changes:
* The MTX-related classes (for Pioneer LX) added in ARIA 2.8 for Linux
have been updated to work on Windows, except for ArMTXIO, so ARIA
can now be used in Windows with the Pioneer LX. ArMTXIO will be
included in ARIA 2.10.
* Some additional parameter checks were added to ArSonarMTX
* ArClientHandlerRobotUpdate added to ArNetworking
* Matlab client interface added to ArNetworking
* Matlab interface code is now included in the Aria package. See
matlab and ArNetworking matlab subdirectories. Read the README files
for instructions.
* Added ability to disable autofocus through ArPTZ interface;
implemented in ArVCC4; added key to 'demo' camera mode to toggle
autofocus.
* Added new mode to 'demo' that displays and explains some diagnostic
flags and messages from the robot (especially MTX/Pioneer LX)
* Visual C++ 2012 and 2013 solutions and projects were added. Visual
C++ versions prior to 2010 are no longer supported. (If using Visual
C++ 2013, use the "Windows Desktop" variant.) Python and Java
wrappers were built (and canbe rebuilt) using only Visual C++ 2012.
* Python 2.7 is now used for the Python wrapper on Windows. Default
system Python versions are used on Debian 5 and Ubuntu 12.
* Various minor additions to ARIA API, including:
* ArRobot::isStopped() which can be more reliable than checking
for velocity value exactly 0.
* ArRobot::isFrontBumperTriggered(), isRearBumperTriggered()
* Items in ArConfig (ArConfigArg objects) can be omitted from saving
to files (serializable flag)
* New ArTimeChecker class, which can help measure elapsed time through
different stages or parts of a process or function.
* The Python wrapper DLLs now end in .pyd file extension instead of
.dll (this change should be transparent when importing AriaPy or
ArNetworkingPy wrapper Python modules, Python should load the new
.pyd file the same as the old .dll)
* Added getMaxTiltSpeed() and getMaxPanSpeed() method to ArPTZ interface.
Added setTiltSpeed() and setPanSpeed() methods as aliases for existing
tiltSlew() and panSlew() methods.
Aria 2.8.1
November 8, 2013
---------------------------
NOTE: MTX interface classes (for Pioneer LX) are not tested or
supported on Windows in this release (support will be added in Aria 2.9).
This version includes the following bug fixes:
* A bug was fixed in ArLaserLogger that caused a crash in creation
(e.g. when starting a new map in ARNL or using sickLogger)
* Loading of Pioneer LX sonar parameters from robot parameter file was
fixed.
* The number of sonars and SonarUnit parameters for Pioneer LX have
been updated in built-in defaults and in the pioneer-lx.p parameter
file for MTX sonar module firmware version 7.
* The remaining examples that used ArSimpleConnector have been updated
to use ArRobotConnector and ArLaserConnector or replaced by new examples
* The primary laser for all types of robots now has its connect flag
(LaserAutoConnect) set to 'true' in robot parameter files and internal
defaults. This means that any program using ArLaserConnector::connectLasers()
will by default try to connect the primary laser, even if -connectLaser
was not given on the command line. Some robot parameter files define
additional, optional lasers (e.g. second LMS-100 on Seekur robots, URG
laser on PatrolBot). LaserAutoConnect remains 'false' for these secondary
lasers, but can be changed to 'true' if you have those optional additional
lasers. If you want a program to use ArLaserConnector.connectLasers()
and succeed even if the robot does not have any laser rangefinders,
either allow the program to continue (with a warning, perhaps) even
after connectLasers() fails, or create a custom parameter file for
that robot that changes LaserAutoConnect to false for the primary laser.
(ARIA examples which require a laser, such as the laserConnect and
lasers examples, exit with an error if ArLaserConnector::connectLasers()
fails, but examples which do not strictly require a laser, will usually
log a warning but continue.) This change allows most programs to connect
to typical laser rangefinder devices if present, exit if neccesary on
error, and also remains similar to prior ArSimpleConnector behavior,
but allowing the use of the LaserAutoConnect flag to adjust laser
connection via parameter files if desired as well.
* ARIA now logs full path to the actual parameter file loaded after
connecting to the robot.
* Fixed some compilation errors and warnings in examples
* Fixed names of Windows COM10 port and higher in ArUtil (ArUtil::COM10,
ArUtil::COM11, etc.) to include \\.\ prefix that is required for high
COM ports on Windows.
Aria 2.8.0
August 22, 2013
---------------------------
NOTE: MTX interface classes (for Pioneer LX) are not yet tested or
supported on Windows in this release.
This release adds support for the Pioneer LX. The Pioneer LX is the
first of a new type of robots referred to as the MTX generation or type.
MTX is largely compatible with previous Pioneer type robots, with the
exception of connections to sonar, battery, LCD, IO and some other
components. The ARIA API is largely the same, remaining transparently
compatible, but you may need to use some MTX-specific classes for
certain MTX-specific fetaures, in particular general purpose IO via
the ArMTXIO class. See the MTX-specific example programs in the
examples/ directory for examples of use of these features. A more
detailed summary of classes added or changes made for MTX is below.
2.8.0 has been released for Linux only. A release with Windows
support is forthcoming.
MTX LCD display implementation is incomplete in 2.8.0. An update will be
released in the future with complete LCD support (with robot firmware
upgrade if needed.)
Analog IO support is incomplete, this will also be added in the next
update.
Additional changes made in this release of ARIA include:
* Support for the SICK TiM300 laser rangefinder. Use the tim3xx
laser type identifier in robot configuration or command-line
parameters. (Implemented internally as a variant in ArLMS1xx class)
* ArRobot disables the robot motors explicitly before disconnecting on exit
* ArActionDeceleratingLimiter now has option to limit rotation as well
as translation
* ArActionLimiterRot added, which can be used to limit rotation
separately from other actions.
* ArActionTriangleDriveTo improved
* List parameter type added (and other API changes) to ArConfig,
though not generally used in ARIA or ARNL yet.
* ArRobotJoyHandler can now be connected to ArConfig for user control
of some parameters.
* SICK S300 support has been improved
* RS-422 support in ArSerialConnection now available in Windows as
well as Linux
* ArSonarAutoDisabler can now be temporarily supressed with a method or
functor call.
* ArSoundsQueue can call callbacks before and after each item is played.
* Signed and unsigned long int values can now be added to ArStringInfoGroup
* strSuffixCmp(), strSuffixCaseCmp(), stripQuotes() methods added to ArUtil
* Equal and not equal (== and !=) operators added to ArLine
* Negative and positive rotational velocity limits separated in
ArActionDesired
* ArArgumentBuilder handling of spaces and quotes can be customized a bit
* State of charge, lateral velocity, and battery data added to ArDataLogger.
* ArLog::logBacktrace() added for Linux, which calls Linux backtrace()
system call.
* Diagnostic ArMutex lock timing can be used on Windows now.
* ArFunctor classes added which can pass five arguments
ArNetworking changes include:
* Number of connected clients can be limited in ArServerBase
* ArServerHandlerMapping can call callbacks before and after mapping
is done, and can also be given additional ArLaser interfaces to
include in the scan log.
* ArServerMode objects have a new "extended status" field which can
hold details in addition to mode name and status field. This is
also provided to clients for the active server mode by ArServerInfoRobot
in addition to existing mode name and status. Extended status may
contain multiple lines (normal status is expected to not contain
any newlines). MobileEyes 2.2 does not display extended status, this
will be supported in a future MobileEyes release.
Details of MTX (Pioneer LX) additions:
* ArMTXIO class added. Communicates with "mtx" operating system driver to
interface with MTX digital general purpose IO and power control.
* ArSonarConnector and ArSonarMTX classes. By default the connection
to MTX sonar is handled automatically by ArRobotConnector, no
changes to existing software need to be made. The existing
ArSonarDevice and ArRobot API can be used with MTX sonar.
* ArBatteryConnector and ArBatteryMTX classes. By default, the
connection to MTX battery is handled automatically by ArRobotConnector,
no changes to existing software needs to be made. The state of charge
and other information is available in the existing ArRobot API.
Extra diagnostic information about the batter(ies) is provided in
ArBatteryMTX objects which can be obtained from ArRobot.
* Default Pioneer LX parameters have been built in to ARIA for
"pioneer-lx" type robots and a pioneer-lx.p
parameter file is included in the params directory. Early revisions of
the MTX core report a robot subtype of "marc_devel" which is assumed to be
an LX.
* A Pioneer LX model has been added to MobileSim 0.7.3
* mtxIO, mtxPowerControl and mtxWheelLights examples added. Other examples
including demo have been updated to use ArRobotConnector and other
current classes for MTX/LX compatability.
* New command identifiers added to ArCommands
Aria 2.7.6
March 29, 2013
---------------------------
* Added ArPTZConnector, which can automatically create ArPTZ subclass instances
based on configuration information read from robot parameer files (params/<type>.p,
params/<name>.p) and program command line arguments. (See also the new ArVideo library
now available with this ARIA release.) Some common functionality (inverted, limits) has
also been moved from individual ArPTZ subclasses into the ArPTZ class.
* Robot parameters (ArRobotParams, defaults, and .p files) now contain parameters for PTZ and video devices
(used by new ArPTZConnector and ArVideo library)
* The way subclasses of ArPTZ implement methods has changed. Inverting the axes
and other common functionality is now done in ArPTZ, subclasses implement _i
internal methods instead. This is transparent to most users, but if you have
created a new subclass of ArPTZ you may need to update your class.
* Increased GPS connection timeout to 20sec.
* Added support for simulated or dummy GPS
* Added new NMEA messages: GPHDG, GPHDM, GPHDT (for receivers with integrated compass)
* Misc. documentation fixes and improvements, including class categories (e.g. essential,
optional, device interfaces, actions, etc.)
* Desired sound playback volume can be set in ArSoundPlayer (implemented for Linux with
sox tool).
* Some SWIG and Windows DLL export fixes.
* ArUtil::isOnlyNumeric() and ArUtil::isOnlyAlphaNumeric() now accept '+' and
'-' characters as valid parts of numeric and alphanumeric strings.
Aria 2.7.5.2
August 2, 2012
---------------------------
* Fixed regression in which start and end FOV angles couldn't be set in
robot parameter files for LMS1xx laser rangefinders.
Aria 2.7.5.1
July 9, 2012
---------------------------
* ArRVisionPTZ now defaults to automatically connecting through serial port
COM3, rather than requring you to manually set it up with an
ArDeviceConnection object (though this is still possible.)
* Fixed system installation of Python pacakges on Debian --
now installs in correct Python version directory
/usr/lib/python2.5/site-pacakges instead of old 2.4 directory.
Aria 2.7.5
June 12, 2012
---------------------------
* Fixed bug in ArLMS1xx class that prevented connecting to LMS-100 or LMS-111.
It now has correct default resolution option, and allow selecting both half or
quarter degree resolution.
* You can now select one, half or quarter degree resolution if connecting to an
LMS-500, rather than just one as in 2.7.4.
* Made some minor updates to examples. Added new example lasers.cpp showing
how to connect to one or more lasers (from parameters) and obtain data from
them. Added rvisionCameraExample.cpp (conect to RVision camera). Added seekurPower.cpp
utility (control seekur power ports).
* Default position for a second laser on a Seekur Jr. corrected (reverse-mounted on the
back of the robot. this can be changed in parameters.)
* Default/builtin laser parameter type for Seekur changed to lms1xx
* ArDPPTU now reads the PTU's position back from the device. This position is returned for
getPan() and getTilt() and canGetRealPanTilt() now returns true if this data has been
received from the device.
* ArDPPTU now queries the position resolution (conversion factor) from the device itself
rather than requiring specifying D46 or D47 in the constructor. (But you can still specify
these to force hardcoded conversion factors for those specific models.)
Aria 2.7.4
March 13, 2012
---------------------------
* Added SICK LMS-500 support.
* Added SICK S-300 and S-3000 support
* Added Keyence SZ series laser support
* Added lms1xx robot types to automatic parameter generation (generated by
utils/makeParams)
* Added RS-422 support (for Linux) to ArSerialConnection
* Added more Visual Studio 2010 projects (for most libraries and examples)
* Fixed bug in ArTime::mSecSince(ArTime since) in which very large value would be
truncated in internal arithmetic resulting in incorrect output. Now valid within range of a long. (Note ArTime also has
methods that return "long long" values, which should be used in situations
when very long time differences are possible.)
* Change to ArPTZ to allow Pan/tilt/zoom cameras to now be connected to the
third auxilliary robot serial port (AUX3), which is available in newer SH
Pioneers. (Previously only AUX1 and AUX2 were possible.)
* Minor fix to NMEA parser
* Better error reporting in ArSocket
* Minor fix to baud selection in ArSerialConnection on Windows
This version of Aria is compatible with other Aria 2.7 releases and will work
with any software built with Aria 2.7.
Aria 2.7.3
September 8, 2011
---------------------------
* Fixed minor bug in ArLMS1XX (was not ignoring some invalid readings, if the
LMS100 was returning a nonzero but impossibly small range)
* Fixed minor bug in demo's laser mode (would show incorrect values initially)
* Fixed minor bug in examples/sickLogger.cpp, which would prevent the laser
log from being processed by Mapper3. Also updated sickLogger.cpp to change
use of deprecated classes to their replacements.
* Includes support for URG SCIP 2.0 via ArUrg_2.0 class and "urg2.0" laser
type.
* Fixed bug in ArActionLimiterBackwards
* Added parameter files p3dx-sh-lms1xx.p, p3at-sh-lms1xx.p,
peoplebot-sh-lms1xx.p with standard mounting locations of SICK LMS-100/111
laser, and lms1xx laser type selected for primary laser.
* Added project files for Visual Studio 2010
Aria 2.7.2
January 7, 2010
---------------------------
* Added Seekur Jr. support
* Added support for distinct "research patrolbot" robot type
* Added SICK LMS 100 support
* Added experimental Novatel SPAN GPS support
* Fixed a bug in ArLaser (not enough space in buffer for all laser readings if
more than 180)
* Added parameter files researchPB.p, mt400.p, seekurjr.p.
This version of libAria should be compatible with libAria 2.7.0 and dependent
libraries built with 2.7.0 should work with this version.
Aria 2.7.1
September 9, 2009
---------------------------
Bugs fixed:
* Fixed problems connecting to laser, mainly in demo: Serial port
is now opened when entering laser mode (when laser is really connected
to) rather than on startup, and fixed an uninitialized variable in ArLM2xx.
* Fixed possible incorrect error return when connecting to an URG laser
with ArUrg::blockingConnect().
This version of libAria is compatible with libAria 2.7.0 and dependent
libraries built with 2.7.0 will work with this version.
Aria 2.7.0
April 30, 2009
---------------------------
Summary:
Among many other changes and improvements, Aria 2.7.0 includes:
* New ArRobotConnector and ArLaserConnector classes replace the old
ArSimpleConnector. ArSimpleConnector is still available however.
* New improved support for multiple heterogenous laser rangefinding
devices in ArLaserConnector, ArRobot, and generally in ARIA. Configure
what devices are available on an individual robot, and device options,
in the robot parameter file, Aria.args file, or program command line options.
* Visual Studio 2008 project files are included; VC2003 project files
have been renamed.
* Java 1.6 is now used to build Java libraries rather than 1.4; you must
either upgrade to 1.6 (J2SE JDK release 6), or rebuild the Java
wrapper libraries with 1.4 if you must continue using 1.4.
* Java wrapper libraries are now contained in Java packages:
com.mobilerobots.Aria for ARIA, and com.mobilerobots.ArNetworking for
ArNetworking.
* On Windows, the ws2_32 sockets library is now used instead of the
older wsock32 library.
* On Linux, a better monotonic clock is used if the OS supports it.
This requires that all programs now link with librt (-lrt) on Linux.
* Aria now includes classes to support the RVision PTZ camera, Hokuyo URG
laser, some additional GPS data (if receiver provides it), lateral motion
on a Seekur robot, and various other miscellaneous improvements and features.
Read below for a complete list and more information. Upgrading MobileEyes
to 2.2.4 or later is also recommended for teleoperation to work right.
Important Linux compilation change:
* ARIA now uses the monotonic system clock if available, via the librt
system library. Therefore all programs using ARIA must now link to
librt using the -lrt link flag, in addition to libAria, libpthread
and libdl as before. The ARIA examples and tests Makefiles have
been updated, but you must update your own Makefiles or other
build systems. This change only applies to building on Linux.
Important laser range device class changes:
* Made support for lasers much more generic, this involves the rest
of the changes in this section. There's compatibility classes for
all of the old code, so existing code should still compile. The
one exception to this is the 'second laser' parameters in the .p
file will no longer be read so you'll need to change them to 'Laser
2 settings'.
* There is now an ArLaser class that does most everything that ArSick
used to do in terms of filtering and callbacks and such, the names
and arguments are sometimes slightly different. ArLaser is a
superset of everything that can be set on any of the lasers, so
that it can be generically configured.
* Made a new ArLMS2xx class to replace ArSick. ArSick is now a
legacy class with all of the old functions on it that old code
should still work.
* Added ArUrg class to support for Hokuyo URG URG-04LX if using the
SCIP 1.1 protocol).
* Made ArRobotConnector and ArLaserConnector to replace
ArSimpleConnector (which is now a legacy class that uses the new
classes). ArRobotConnector has the same functionality as before,
but can autoParse the args when blockingConnect is called.
ArLaserConnector will create lasers and add them to the robot and
configure them with the arguments from the command line (though it
does pull the device connection information from the .p file).
Lasers wind up named <laserType>_<laserNumber> (except the legacy
sick of course). Lasers themselves will configure themselves with
the information in the .p file (as long as that parameter wasn't
already set by the command line).
* Made the laser type and parameter information so that it is stored
in the .p and can be passed into the command line.
* Made it so that the robot should be connected (with
ArRobotConnector) before the Aria::parseArgs call, so that the
types in the .p files and what not can be used. The legacy code
works without this (because it only works with one type of laser).
* ArUtil now has a createLaser call that will create a laser of a
given type, and a getCreateLaserTypes that will list the types that
can be created. This is mostly for use by the new ArLaserConnector.
* ArUtil now has a createDeviceConnection call that will create a
device connection of a given type and try to connect it to a given
port, and a getCreateDeviceConnectionTypes that will list the
device connection types that can be created. This is mostly for
use by the new ArLaserConnector, but could be used by other things
too.
* Made ArRobot so that it has a mapping of laser numbers to lasers,
so that classes can pull out lasers without as much work. It
doesn't do anything with these at all. Lasers are automatically
added to the robot by ArLaserConnector now... They still have to be
added as range devices to do anything, which automatically happens
in the ArLaserConnector now. The calls for this are
ArRobot::addlaser, ArRobot::remLaser, ArRobot::findLaser, and
ArRobot::getLaserMap
* The LaserIgnore parameter in the .p file and the corresponding
command line arguments (-laserAdditionalIgnoreReadings) can now
take ranges (begin-end), the multiple arguments can be separated by
commas (with or without extra spaces), or it can be separated
simply by spaces as the old ones were (though that won't work from
the command line).
* Simulated lasers are now done totally differently than before
(unless you are using the ArSick legacy class where the behavior is
unchanged). There is new class called ArSimulatedLaser that
basically takes over for the normal laser class of that type and
can be configured the exact same way, but gets its readings from
the simulator. This is all handled transparently by
ArLaserConnector. Right now this will only deal with 1 laser, but
later there will be modifications to MobileSim and Aria to allow it
to work with multiple lasers. These wind up with the name
sim_<laserType>_<laserNumber>.
* Made ArModeLaser (the laser mode in demo) so that it would work
with multiple lasers
* Lasers maximum range can now be set in the .p file. This is mostly
for if you want to shorten it from the default.
* Lasers now don't have a current buffer size passed in, it is now
set to whatever the maximum number of readings will be when the
laser connects (based on degrees and increment). ArSick remains
the same as it was.
* Lasers cumulative buffer size can now be set in the .p file, the
default is now 200. ArSick remains the same as it was.
See also changes in ARIA 2.6.0, below.
Changes:
* Project files for Visual Studio 2008 (Version 9) are now
included. These are named with a "-vc2008" at the end, and
libraries built using these projects are named with a "VC9" suffix
before the .lib or .dll extension. Project files for Visual Studio
2003 (Version 7) have been (mostly) renamed to end with "-vc2003",
though libraries built using these projects have the same names as
before.
* Java 1.6 is now used to build the Java wrapper library on Windows
and Debian Linux. You should upgrade to Java 1.6 if you are still
using 1.4. If you get an error message referring to a "bad class
file" in Aria.jar, that the "wrong version 50.0, should be 48.0", then
it's due to using 1.4 with the Aria classes built using Java 1.6.
* Java wrapper libraries are now contained in packages: com.mobilerobots.Aria
for Aria, and com.mobilerobots.ArNetworking for ArNetworking. You must change
Java programs to import the Aria and ArNetworking packages by adding these
lines (near the top of the program file):
import com.mobilerobots.Aria.*;
import com.mobilerobots.ArNetworking.*;
* On Windows, ArSocket now uses the better ws2_32 sockets library, rather
than the old wsock32 library. Aria and ArNetworking project files (for
libraries and example programs) have been changed to link to this
library, but you should also remove the wsock32 "additional library
dependency" from the Linker settings of any project files
for programs that might still have it. Linux ArSocket is unchanged.
* For non-windows platforms ArTime will use a monotonic clock
(clock_gettime) if it is supported by the OS (it looks like linux
kernel 2.6 and up support this). If it isn't available it'll
continue to use the non-monotonic clock (gettimeofday) that has
issues if the time on the platform is changed. In Windows the
clock was always monotonic (timeGetTime).
ArTime::usingMonotonicClock is available to see if the clock is
monotonic (make sure you've done an Aria::init before you use it
though).
* ArArgumentParser now takes const char* arguments instead of char*
* Made ArSocket (and therefore ArTcpConnection) so that if you give
the hostname as hostname:port that it will override the passed in
port number. This is mostly for default ports on the laser, but
could be useful for other device connections (so there don't need
to be multiple arguments to each thing).
* Some changes to ArArgumentParser with how it deals with the
wasReallySet parameters, described more in the documentation for
the class.
* ArServerModeRatioDrive now expects to receive commands every 2
seconds (or faster) from a client; if it doesn't receive a new
command after 2 seconds, it stops the robot. This stops the robot
if there is a loss or degradation of network connectivity while
driving. You must upgrade to MobileEyes 2.2.4 or later for teleoperation
to work correctly with this version of Aria.
See also the changes in ARIA 2.6.0 below.
Additions:
* In ArNetworking, there are now server simple commands for
microcontrollerCommand and microcontrollerMotionCommand,
microcontrollerMotionCommand will susped the normal state
reflection so that you can just send motion commands down (like 'd'
mode in demo).
* Added ArUrg (laser) class.
* Added support for the newer DP PTU-D47 to the ArDPPTU class. Select
the D47 by passing PANTILT_PTUD47 as second argument to the ArDPPTU
constructor.
* Added support for the RVision PTZ camera
* ArUtil now has a setFileCloseOnExec() function call. This function
makes a call to fork() or exec() close a file or socket.
* ArUtil now has fopen, open, open, creat, and popen functions that
will call the new setFileCloseOnExec() function for the new
file or socket. It is recommended that these functions always
be used to avoid resource leaks if a program uses exec() or fork().
* Made ArKeyHandler so that it could take a FILE * pointer instead of
always using stdin, and has the option to not take the keys in the
constructor... these will only do anything in non Windows platforms
* ArGPS reads and provides some additional GPS info (if the receiver
provides it)
* ArFunctor and ArCallbackList now have setNameVar, and ArMutex now
has setLogNameVar. These functions take printf style arguments to
make it easier to set the names for more complicated uses
* There is now an Aria::remExitCallback which will make sure that it
isn't exiting before removing a callback, since that would break
the looping. Aria::addExitCallback will now make sure it isn't
exiting before adding a callback (which shouldn't be needed,
but...)
Bug fixes:
* In Windows the ArThread::self and ArThread::osSelf previously did
not work at all since it was returning a constant that meant the
current thread (it used GetCurrentThread instead of
GetCurrentThreadId)... they do now work, but the
ArThread::ThreadType has been redefined to be a DWORD instead of a
HANDLE... all existing code should work after a recompile as long
as it was using the ThreadType define. ArThread in windows now
keeps track of the thread handle separately so uses it where it
used to. This bug also means that some of the thread
infrastructure wasn't entirely working in Windows (like shutting
the threads all down on a shutdown).
* Modified ArSocket::open() (and therefore ArNetServer and ArServerBase)
so that it calls setLinger(0), setReuseAddress(), setNonBlock()
between creating the socket and binding the port, since apparently
SO_REUSEADDR does not work unless you use it this way. This should
prevent the times when programs couldn't start because they were
waiting for a port that was just closed.
* The Linux part of ArMutex was checking all of the return values
wrong... so would never return an actual error happened... that's
been fixed. This probably didn't matter except with tryLock() which
would return that it had the lock when it really didn't (tryLock()
is never used by ARIA itself or any example programs, and is rarely
needed in most programs).
* ArNetServer and ArServerBase now have a member socket they use to
accept new client connections instead of creating a new socket
(and all the resources that go along with that) every single time
they were called.
* Modified the ArPose constructor so that it normalizes the given theta
to be in the range -180 to 180. This is consistent with the
behavior of the setPose() and setTh() methods.
* ArSocket will now set its socket file descriptors so that they will be closed
if an exec() system call is used.
* Fixed bug in ArDPPTU that crashed given pan values < -51 when in PTUD47 mode.
(or possibly effectively ignored the pan value on some computers.)
* In ArMap (and ArMapInterface-related classes), if built on Windows, when loading
or saving a file, a filename starting with a possible Windows drive letter is
recognized as an absolute path rather than a relative path within ArMap's baseDirectory
path. (The file name must start with "x:\" where x is any one upper- or lowercase
alphabetic character, i.e. a-z or A-Z.)
* Fixed various errors reported by GCC versions 4+.
See also the changes in ARIA 2.6.0 below.
Aria 2.6.0
August 3, 2007
---------------------------
(Limited release)
Important changes and bug fixes:
* Support for Seekur's lateral velocity (sideways motion) in ArRobot, Actions,
and ArNetworking teleoperation servers.
* Java wrapper libraries are now contained in packages: com.mobilerobots.Aria
for Aria, and com.mobilerobots.ArNetworking for ArNetworking. You must change
Java programs to import the Aria and ArNetworking packages by adding these
lines (near the top of the program file):
import com.mobilerobots.Aria.*;
import com.mobilerobots.ArNetworking.*;
* ArActionDeceleratingLimiter change to contructor so it can work
with the lateral motion, it takes an enum now instead of a bool,
old true would be ArActionDeceleratingLimiter::FORWARDS, and old
false would be ::BACKWARDS
* New firmware has a kinematics delay value it sends us (because
using the gyro can cause the microcontroller to send us older but
more correct odometry). ArRobot now takes this delay into account
when putting information in for the pose interpolation.
This change should be transparent to everyone... but there
might be more forward projection in data returned from
ArRobot::getPoseInterpPosition() and
ArRobot::getEncoderPoseInterpPosition(). ArSick already takes this
into account. The forward projection on ArInterpolation is more
forgiving of future projections too (allows 50% projection instead
of 3%)
* Made it so an Aria.args file that was empty no longer resulted in
an uninitialized string (change was to ArUtil::getStringFromFile)
* ArSoundsQueue::speak() has been renamed to speakf(), and replaced
by a new speak() method which does not take printf-style varargs.
* Added support for a TCM2 compass connected directly to the
computer. The ArTCM2 class is now an interface to both kinds of
compass. Use an ArCompassConnector to create a compass object based
on command-line arguments (default is ArTCM2Robot), and call
blockingConnect()to connect to the compass (see demo.cpp for
example). Almost everyone should use ArTCM2Robot ("robot" type).
* Fixed various errors reported by GCC 4+.
Enhancements:
* ArSimpleConnector now has arguments to log packets received and
sent, movement received and sent, velocity received, and actions.
* Moved timeout configuration into a section called 'Connection timeouts' and
renamed them to be clearer
* Made ArNetworking timeouts for To as well as From, these relate to if the data
is backing up and is to prevent extreme memory usage that could
kill the program, and would happen if a connection from a
client/robot/centralServer wouldn't take more data but didn't get
closed (which is really a networking problem)
* Added support for Trimble AgGPS, improved ArGPS class interface.
* NMEA parser (used for GPS and compass data) is now available seperately
for use with other NMEA devices as needed.
* Information about laser height and a possible second laser may be given
in robot params (won't generally be used for most robots).
* More optional diagnostic logging, especially in ArMutex objects
* Added "odometer" and "trip odometer" to ArRobot. These keep track of total
distance travelled and turned over the course of the program run.
"Trip" odometer may be reset at different events.
Aria 2.5.1
February 22, 2007
---------------------------
* Adds support for gyro-corrected heading automatically calculated by
the microcontroller firmware (requires updated firmware), and for
obtaining the odometry calculation delay (firmware's delay between
reading odometers and reporting heading and pose to to the
client). If the firmware supports it, ARIA now normally uses the
firmware's integrated gyro heading rather than calculating it on
the client side.
* Fixes memory leak in ArNetworking (some stored packets were not
deleted if ArNetPacketSenderTcp was destroyed)
* Fixed method declarations in ArSystemStatus to be legal C++ and
work with GCC 4
Aria 2.5.0
December 1, 2006
---------------------------
Important Changes and Bug Fixes:
* The ArServerHandlerMapping start and end mapping callbacks now have
the robot locked (they didn't used to)
* Modified ArPTZ so that the functions for pan and tilt take doubles
instead of integers so we can get finer grained movement, updated
ArVCC4, ArSonyPTZ, ArAMPTU, and ArDPPTU for this. Tested ArVCC4
and ArSonyPTZ and they worked fine, if there are problems with this
or with the AMPTU or ArDPPTU send email to aria-users. Modified
ArServerHandlerCamera to fix for the change too.
* ArNetworking: Removed some functions from ArServerInfoStrings to manually
add items. Instead, ArServerInfoStrings receives data from Aria's new
ArStringInfoGroup global data store.
* ArActionDesired behavior changed slightly in that now for the
transMaxVel, transNegMaxVel, transAccel, transDecel, rotMaxVel,
rotAccel, and rotDecel can now just use the slowest value (so that
if you have multiple things trying to set a maximum speed they
don't have to coordinate each can just set the slowest and the
slowest is what is used) (note of course that decel uses the
fastest decel instead). You can specify the old behavior when you
do the sets on these if you want to (its not recommended and won't
work with the built in actions).
* All libraries are built with -fPIC for greater binary compatability when
linking at runtime.
* Added Aria::parseArgs() and Aria::logOptions(), and the functions
Aria::addParseArgsCB() and Aria::addLogOptionsCB() for classes/modules
to add functors that parseArgs() and logOptions() call; modified all
the things that parse arguments and log options to use these new functions
(old code will still work since the functions still work when called directly,
but this usage is deprecated)
* ArNetworking: ArServerBase and ArClientBase should be threadsafe,
you shouldn't need to worry about locking and unlocking them when doing
things and may cause problems if you do
* ArServerBase::broadcastPacketTcp and
ArServerBase::broadcastPacketUdp will no longer take clients to not
send the data too, this is because that behavior does not work with
the central server... there's now a WithExclusion command for each
of these if you need that behavior (its not recommended)
* Python wrapper now requires Python 2.4, except on RedHat 7.3 where it
still uses Python 2.2 (which is the last Python released for RHL).
You can install python2.4 if on Debian, or download for Windows or other
systems at <http://www.python.org/download/releases/2.4.4>.
Enhancements:
* Added new ArSonarAutoDisabler that turns off the sonar if the
robot is stopped for a period of time and re-enables them when the robot
moves; ArNetworking's ArServerModeStop no longer turns off the sonar.
* Made ArArgumentParser::loadDefaultArguments so it can put them in
something other than the first position
* Modified ArConfig so that it can save unknown sections and
parameters, so that information isn't lost if nothing knows about it
this run
* Added ArActionDriveDistance, an action which will just take a
distance and drive forward that distance
* ArNetworking: Added ArServerMode::setWillUnlockIfRequested and
getWillUnlockIfRequested to get the info about whether we'll unlock
if requested or not (so other things can tell if docking is forced
or not)
* ArNetworking: Added code so that ArServerMode can keep track of
which data (commands) belong to which mode and a test program for
that (ArNetworking/tests/modeInfoClient.cpp) and added the new call
to ArServerMode::addData to all existing ArServerModes.
ArNetworking clients can get this information
* Added new simulator commands to ArCommands enum
* Added support for SICK reflectance (for reflector markers); also
added support for retrieving extended-info laser packets from the
simulator (which contain reflectance information)
* ArNetworking: Added boolean to ArServerMode::lockMode (defaults to
old behavior) which indicates if the mode will unlock if requested
or not and added ArServerMode::willUnlockIfRequested to get the
info about whether we'll unlock if requested or not
* ArNetworking: Added code to ArServerBase so that clients can get
which mode is active and if its locked or not, and if it'll unlock
if requested or not
* New class ArSystemStatus (for Linux only).
* Modifed some code in ArKeyHandler and ArNetworking/ArNetpacketReceiverTcp
so that they'd work better on Mac OS X
* There's now network usage tracking in ArNetworking (by packet type)
see logTracking and resetTracking in ArServerBase, there's also an
ArServerSimpleServerCommands that'll let you do these things over
the network
* Fixed a crash bug on shutdown with adding actions to ArActionGroups
then deleting them
* Fixed the Aria::signalHandlerCB and Aria::exit so that it
couldn't loop anymore (previously it would loop if you did an
Aria::shutdown and that caused a segfault)
* Added ArServerClient::hasGroupAccess so that an ArNetworking call
can check to see if a client has access to some group, note that
this is generally not needed since the command won't be called if
the user doesn't have access to that group (its for the next enhancement)
* Made ArServerModeRatioDrive so that if a user didn't have access to
unsafe drive mode and tried to drive the robot while it was in
unsafe mode the mode would kick back over into safe driving mode
* Made ArSickLogger so that it takes in a robot joy handler too and
changed the way it takes goals a little, now if you press a button
for a goal you have to let it go before another goal is taken (this
is instead of a time/distance/turn based check) Also changed it so
that if you were adding goals it'd only check if you had a
keyhandler, it wouldn't add a keyhandler
* Made ArServerModeMapping so that when it makes a new ArSickLogger
it passes in Aria::getJoyHandler and Aria::getRobotJoyHandler as
well as now telling it to add goals
* ArServerHandlerCamera now has different modes and can look at goals
as it is driving to them, look at points, and can adjust its
position relative to the image, and some commands to set the
position on the camera but play well with the modes while doing
it...
* Added ArNetServer calls to send to a specific client, this is so
that one doesn't have to worry about if the socket was closed or
not... this may have a better method later
* Added some calls to the ArServerHandlerConfig to make it a little
more generically usable
* Added requestOnceUdp and findCommandByName to ArClientBase
* Added examples/gotoActionExample.cpp
* Added ArRobot::getRobotLengthFront and ArRobot::getRobotLengthRear
with associated entries in the parameters file, if either value is
zero then it will be set to half of the robot length
* Added ArRobot::getAbsoluteMaxTransAccel,
ArRobot::getAbsoluteMaxTransDecel, ArRobot::getAbsoluteMaxRotAccel,
and ArRobot::getAbsoluteMaxRotDecel which will report the top
values (accel and decel are the same on the pioneers now but
someday may not be)... these (like the versions for the max vels)
are set from the config packet if its there, otherwise they are set
to an arbitrary value (unlike the max vel ones which come from a
param file).... made ArActionMovementParams use this value
* ArMapObject now has getFromToSegments which can get the rotated
line segments so that everyone doesn't have to calculate the
rotated rectangles on their own
* New ArGPS, ArGPSConnector and ArNovatelGPS classes to receive data
from Global Positioning System devices, and the Novatel ProPak G2
in particular.
* Made ArRobot so that it has a new method isTryingToMove that is set
to true if the robot is trying to move even if it isn't moving
(this is mainly for where the robot isn't moving because an action
is stopping it from hitting something), there's a forceTryingToMove
to go with this for things that want the robot always look like its
trying to move
* Made ArSonarAutoDisabler so that it'd use the new isTryingToMove
flag and so that it would assume its the only thing changing the