interfaces and algorithms for event based cameras, lidars, and actuators
Software to operate the go-kart in autonomous and manual modes.
The performance of the go-kart hardware and software are documented in reports.
The code in the repository operates a heavy and fast robot that may endanger living creatures. We follow best practices and coding standards to protect from avoidable errors - see development guidelines.
![]() Trajectory pursuit | ![]() Navigation initial, demo | ![]() Autonomous braking | ![]() Event-based SLAM, Fig. 8 |
![]() Kin. MPC outside, inside | ![]() Dyn. MPC outside, inside | ![]() ANN MPC |
The student projects are supervised by Andrea Censi, Jacopo Tani, Alessandro Zanardi, and Jan Hakenberg.
The gokart is operated at Innovation Park Dübendorf since December 2017.
![]() Doughnuts | ![]() Clothoid pursuit | ![]() Lane keeping | ![]() MPC |
![]() Clothoid RRT* |
![]() Torque Vectoring | ![]() Doughnuts |
tensor
for linear algebra with physical unitsowl
for motion planninglcm
Lightweight Communications and Marshalling for message interchange, logging, and playback. All messages are encoded using a single type BinaryBlob
. The byte order of the binary data is little-endian
since the encoding is native on most architectures.io.humble
for video generationjSerialComm
platform-independent serial port accessELKI
for DBSCANlwjgl
for joystick readoutSensor interfaces
distance as 360[deg] panorama
intensity as 360[deg] panorama
our code builds upon the
urg_library-1.2.0
Rolling shutter mode
![]() | ![]() | ![]() |
Global shutter mode
![]() 2.5[ms] | ![]() 5[ms] |
Events only
![]() 1[ms] | ![]() 2.5[ms] | ![]() 5[ms] |
AEDAT 2.0, and AEDAT 3.1
Quote from Luca/iniLabs:
APS.Exposure
and APS.FrameDelay
APS.RowSettle
is used to tell the ADC how many cycles to delay before reading a pixel value, and due to the ADC we’re using, it takes at least three cycles for the value of the current pixel to be output by the ADC, so an absolute minimum value there is 3. Better 5-8, to allow the value to settle. Indeed changing this affects the framerate, as it directly changes how much time you spend reading a pixel, but anything lower than 3 gets you the wrong pixel, and usually under 5-6 gives you degraded image quality.We observed that in global shutter mode, during signal image capture the stream of events is suppressed. Whereas, in rolling shutter mode the events are more evenly distributed.
![]() | ![]() |