Tuesday, July 14, 2015

Conor, Entry #3, Taming The Beast

We have now finished testing the quadcopter's visual odometry and yaw controller, so now the focus is to run the quadcopter with the segbot. However, what this really means is we must run the quacopter through the segbot. To help explain this a little bit, I'll give a very brief explanation of how our robots function. A robot is a machine-- it is of itself a computer, except it does not have the same peripherals that we typically associate with a computer. Attached to this computer are sensors, motors, servos, etc. which are all controlled by pre-compiled code.
Our quadcopter needs to be light, so a smaller computer is attached to it. This computer is pretty much a smart phone. In order to operate this quadcopter, another computer (a legit one) is needed to SSH (secure shell) into the quadcopter's computer via wifi. Then, data can be transferred to the quadcopter, and it can then be operated.
Our segbot is a behemoth, which gives it the opportunity to have limitless computational power. Our segbot not only has a computer as its controller, but it also has a server. One day Jon did not show up to the lab, but from his home he was able to SSH into his lab computer and from then was able to SSH into the segbot to mend some of the code and actually control the robot.
Originally what we were doing was running the quadcopter's programs on a standalone desktop computer. We finished that and successfully troubleshooted with most of the kinks. Now, we want the quadcopter and the segbot to work in tandem, and one of the ways we can do this is to have the segbot run the quadcopter's programs. By doing this, it opens up a whole new list of problems. The lag time between the connections is currently our biggest issue. Data from the quadcopter now travels from the quadcopter to the segbot's server, then to the standalone desktop where the data is processed, and then back to the segbot, which finally sends it back to the quadcopter. This process extends the time for the velocity of the motors to respond to the visual feedback.
Another way we can have the quadcopter to work with the segbot is to have the segbot roam around with the QR codes ontop of it. The quadcopter is programmed to "see" these QR codes and judges distances based off of visual feedback of these QR codes. When the segbot is roaming around with the QR codes ontop of it, the quadcopter can do things like follow it or get a map of the room which the segbot is mapping for it.
I'm really happy because I am the one that is going to be teleoperating the segbot around. When Jon was first teaching me how to drive around the segbot, EJ asked me, "Do you even have your drivers license yet?" ... I do not, but I do have my permit!
We have our work cut out for us this week, so I should probably get back to doing that.

No comments:

Post a Comment