How to represent the three major types (four subtypes) of connection edge-edge: addConnection((faceB,edgeB), (faceA,edgeA), orientation=front-front/front-back, offset=x, angle=x) initial placement: faceA is placed in the x-y plance of an x-y-z coordinate, edgeA is placed along the x-axis. Simila...
This past weekend we were able to do a complete test run of CoLo-PE that we’ve spent the last quarter updating with new changes. The most notable addition is the new communication module which collects data about the received signal strength and the link quality (based on the number of dropped p...
Throughout the past two weeks, I was able to figure out the I2c function calls from the ST’s Arduino API and extract and use them directly on the Arduino IDE. First, I used the Doxigen documentation tool with Graphviz dot to generate block diagrams of all functions, classes and structs and their con...
This week I worked on finishing up preparations for the test run of CoLo PE that will hopefully happen this Friday. Last week I opened up a new Create 2 robot to test how well using circular flat retro reflective stickers would work as a substitute for the official Optitrack markers or our 3D prin...
Recently I've been reading some interesting papers on SLAM algorithm specifically using cameras. Some of these really broadened my mind. Some of interesting algorithm incluedes the most fundamental one, mono SLAM [1], and the recent one, ORB-SLAM [2]. I'm now studying these frameworks in my spare ti...
Representation of addConnection: addConnection( (FaceA,EdgeofA), (FaceB,EdgeofB), front-front/front-back, (x,y,z), (rotationX,rotationY,rotationZ) ) Step1: user should assume FaceA is in an x-y-z coordinates with EdgeofA aligned with the x-axis in the xy plane. The connected faceB is also in the...
This week I was able to process and visualize the data received from the Arduino using a Python script. The code mainly uses the matplotlib and numpy libraries’ functions in order to manipulate and plot the data in different formats. The data were captured by the VL35L1X sensor on an Arduino Uno for...
Over the last week I've implemented relative observation and communication support as well as a random data generator for the simulation. Relative observations mean that robots can measure not only distances & bearings of landmarks, but also of other robots. Enabling communication in the simulatio...
After wrapping up testing the accuracy of NTP, this week I worked on creating new Optitrack Markers for the two new robots and landmarks we plan to add. Creating our own custom markers provides a cheaper, faster, and more flexible alternative to ordering genuine Optitrack markers. 3D Printed Mark...
Cut-off strategy means to use only first N observations to do polyak averaging, and stop updating landmark after N observation. The cut-off strategy has two advantages: More robust than traditional polyak averaging in both global observation model and intermittent observation model Able to...