This week we made a lot of progress testing our system as a whole. Over Thanksgiving break and this past week we put together the entire system on the robot and cleaned it up so that we could do proper remote testing, including 3d printing a camera mount, taping all the wiring and attaching all battery packs to the iRobot, connecting the Arduino with the Jetson over USB by serial writing from the Jetson to the Arduino to signal when the motor controller should start or stop the motor. With all of the components connected, we began testing.

 

One aspect we successfully tinkered with was the rotation degree of the iRobot. Earlier we were struggling a lot with the iRobot having a very wide turn angle and not being able to decrease that turn angle. During angle calculation where we adjust the robot position to center the bottle in front of it, this issue was causing the bot to lose track of a detected bottle since the angle of rotation would take it out of its field of vision. We tried many different ways to resolve this problem, including removing the back caster wheels and increasing weight at the front of the bot, none of which really worked. Finally we tried making the bot move forward a step while turning, which allowed us to reduce the turn angle and get a much smaller rotation each time. This worked much better than other tactics before and as a result our angle adjustments are much more refined.

 

With testing we first started out with one bottle placed at various starting locations around the robot, and once we were able to consistently detect and pick up the bottle, we started testing with our original test case— 3 bottles in a 1.5 meter radius. From our testing, we found additional areas to improve or debug, including adding a more robust distance reading script by sampling and averaging three points along the long axis of the detected bounding box instead of just taking the depth data of the center point, since we saw that there was consistently a drop off of the readings between around 0.3-5 meters away down to 0.0 meters away. While the sampling and averaging did not completely solve the dropoff issue, we hope that it allows the algorithm to be a little more resistant against extraneous depth readings. We collected a bunch of data this weekend on our testing and also debugging. In many trials we were able to detect all the bottles and move to pick them up, but we also struggle with our times being far longer than our use case requirement.

 

This coming week we will work on the final presentation with our collected metrics and continue tinkering with our pipeline. Some ideas I know we’ll add include making the rotation degree of the robot smaller but increase the number of rotations we take when searching for a bottle so that we again do not miss any bottles that are just out of view, and also to shorten the amount of time we run the motor driver for such that it doesn’t spin for so long after it’s picked up a bottle. We could also try moving backwards rather than forwards when angle adjusting so that we do not inch up on the bottle and accidentally lose track of it.


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *