Monday, February 25, 2013

Water Ways Website is up!


I can’t believe there’s only one more week until we leave for Malta! We’ve done a lot in the past couple of weeks to prepare. Yesterday, the whole Cal Poly team went to practice flying the ROV at the pool. It was great to get more experience setting up the ROV, which I hadn’t done before. I also got to practice driving it around the pool, while other people traded off taking sonar scans and Erik recorded the bearing, time, depth, and sketched out the pool based on the scans. Of course, it will be a lot more difficult when we’re in Malta and we can’t see the ROV when it’s in the cistern!

I’ve spent this past few weeks working on the Water Ways website. We are still waiting on the permanent server but for now we are using Omeka’s premium package to host the site temporarily. This means that we have to use one of Omeka’s “themes” for the layout and design of the site, and have extremely limited authority to change it. But, I was able to pick a good theme to match our projects goals. Although we still don’t have everything up, we have a great start.

The first step: finalizing the logo! With the input of the rest of the team and months of deciding, I finally settled on this final logo design:



Along the top of the website is the horizontal primary navigation bar. It has pages about the site, about our partners, our research, teaching resources, and a contact page.

About the site: I put information here about the “Water Ways” site, like why we are examining the relationships between water, society, and technology and why these topics help determine the future of the Mediterranean. I also put information about ICEX and the great experience it creates for engineering students to get practice working in a foreign country.

Partners: Here I listed the sponsors: National Science Foundation (NSF) and Collaborative Research Experiences for Undergraduates (CREU), and how their goals coordinate with our program goals.

Research: Right now, I have the research broken up into three groups: Data collection, Interpreting data, and 3D cistern visualizations. Inside data collection users can explore students at work, sites we visit, or the ROV sonar scans. Inside the 3D cistern visualizations, they can explore 5 different cisterns that we have collected data and created visualizations out of. Vanessa took screenshots from different views of her WebGL cistern visualizations to display on the website.




Teaching Resources: still under construction. Vanessa and I are currently working on the first Educational Module that will go here, which will be a two-lesson plan for 7th-8th grade Social Studies classes, incorporating Maltese water conditions in the past, present, and future.

The website is no where near complete, but we have a great start to showcase some of the work we’ve done so far. I’ll be working on it more, and will have a lot to add after I actually visit Malta next week!

Here's a screenshot of the homepage, which has featured and recent items posted. Check out the website here: icex.omeka.net


-Amanda



Making a list, and checking it twice

We are in the final countdown. It is less than a week before we board a plane for Malta! And so begins the frantic last minute packing. Early in the project, I took responsibility for buying, managing, and packing tools. After 4 trips to Home Depot, 5 Amazon orders, 1 GoPro order, 1 trip to a dive shop, and 1 camera store expedition I think we are in pretty good shape...minus one more trip to Home Depot. The Cal Poly team now has a great set of tools to diagnose and solve the most common problems that we may run into.

Duct Tape Fixes Everything

During a trial run, on Saturday, a nob on the control box got stuck. Fortunately, I purchase the more expensive hex set a few weeks ago with Standard and SI sizes. With a little tinkering we had the control box up and running in a few minutes.


This week I plan to run through my list of tools with some of our veterans to see if there are any last things that might be handy.

In addition, the Harvey Mudd team has a toolbox. Dr. Wood took a trip down to LA this weekend to pick it up. Once I receive it I will merge and remove duplicates.
I have also been designated team photographer. I will be bringing my Nikon D300, a couple of zoom lenses, some extra batteries, and a flash. I am so excited to take pictures and am glad that it is part of my official duty, since I would have done so anyways. Yesterday I ordered a new 2 terabyte external hard drive to store all of these pictures (from the GoPros and D300). This means that I can keep every image that I take and worry about deleting when we return.

Finally, I have begun to make a list of personal items to pack and will start packing later this week. I am trying to keep my clothes and other items light since I will be bring a lot of other things with me (as seen above).

I can't wait!

Stereo Tests

Since my last post, the team has run several tests in the Poly Canyon Pool. We have tested all of the ROVs systems and software, including the sonar, the new HOBO data logger,  the ROS logging system, and others. During two of the dives we also attached the GoPros to capture more stereo image for disparity tests.

After our tests we have made the final decision to use MatLab's built in disparity functionally to build our disparity maps. However, our images still require some pre-processing before they can be run though the disparity function. The first step is hand-selecting the best images. Then I crop, resize, color match, and align the images.

Right Image
Left Image



Left Image After Color Match










 Next they are run through MatLab and exported as a gray-scale image. These images are then cropped once again, and finally ready to be used to create geometry.





Below are some sample images of our results.

GoPro Image
Final Disparity Map
As you can see, there is still a significant amount of bad matching. This bad matching is the result of un-unique areas in the images. You can see in the image below that all of the circled areas have similar features and colors.


We are less concerned about this happening in cisterns because of the type of structures we will be focusing on.

Our biggest concern for capturing data right now is lighting. When the ROV does not produce enough light, the stereo images are darker and have less contrast. With less contrast most of the disparity maps turn out noisy and unusable. We have purchase a 95 lumen dive light this year to help shed some light on our subject. I will also be bringing some diffusion filters to spread the light evenly over the surface. Unfortunately, we like likely not have time to test the dive light before we leave. I guess it will be another opportunity to learn by doing!

Check back soon for more updates!

Sunday, February 24, 2013

Welcome to my 2013 project!

Hi everybody! Zoe", Spencer and I have roughed out some of the details of my project for this year's trip. In this blog post I'll talk about some of my project goals, and the progress I have made so far.

First, a background:
Last year the team purchased two HD GoPro Hero 3 cameras and an underwater housing that holds the cameras side by side. In this configuration, the cameras can collect depth information which can be fed into the sonar model to reconstruct some of the finer details present in cisterns. While we already have some pretty good sonar generated models, our sonar head has a limited resolution. We would like to be as accurate as possible when reconstructing the intricate surfaces inside the cisterns we deploy into, so last year we attempted to fuse some stereo data into the cistern mesh using "disparity maps" and "projective texturing".

We had limited success with last year's solution due to the fact that some of the best disparity mapping algorithms around were not robust enough to handle compressed fish-eyed occluded underwater pictures with sediment floating around. In addition, it was difficult to collect a full set of pictures of the walls of cisterns. We learned A LOT last year, and have appropriately readjusted our goals for this project. They are as follows:

1) Reincorporate GEOMETRY data captured via stereo into the model as accurately as possible
2) Reincorporate COLOR data captured via stereo into the model in a visibly appealing way

This year, I will be working on #1, and Spencer will be working on #2.

In our advanced computer graphics class we have been discussing various geometric modeling techniques, and I have come up with a few ideas. We now have a pretty good way to produce disparity maps (MATLAB has a great built in function to cover this for us). We still plan to fuse the data in our disparity maps into the sonar model, but now we have thought of a better way to do it.

Disparity maps can be thought of as a 'point cloud', or, a way of representing a ton of discrete points in 3D space. To picture this, the x and y coordinates of each point in the disparity map are stored in pixel space in the image, and the z coordinate of each point is stored in the intensity of the color value in the picture. Here's a picture of an aloe plant, and its corresponding disparity map:

We have a ton of disparity maps from inside the cisterns last year, but in my program I have been playing around with the aloe plant because I like it. What I have done is set up virtual projectors in a model scene, which PROJECT a point cloud based on a disparity map that is loaded in. This program will be used to manually line up each point cloud with the mesh. Once all point clouds are lined up, we will write out their new position in 3D world space into a file. These new points will be snapped to a volume (a 3D grid of integer value cell locations), and the cistern model volume info will be added in. From there we can use a technique called ray casting to check which points in the added disparity point cloud should be included into the cistern model. After this, we will reconstruct the model's surface from the new volume data.

I know that might not make much sense right now... but as I make progress I will post TONS of pictures! The great thing is that I have written all of the algorithms necessary to complete this task, just independently of each other. This project will merge a whole bunch of smaller computer graphics projects I've worked on!


Here is a pic of my progress so far. I have adjustable/movable projectors projecting point clouds into one of the cistern models from last year!



I didn't really line it up here, but ideally we'd have cool features like stairs that we took stereo pictures of. The stairs would be turned into a disparity map, which would be turned into a point cloud, which could be placed in the scene in the correct spot. Then, we add the stairs into the model. That's the plan!

More to come later!

Friday, February 22, 2013

Hardware Upgrades: a Design Excursion



Sometimes, new research goals lead to new design challenges.  Fortunately, we're thrilled to present our cutting-edge response to the challenge of mounting two sonars on one robot.  Armed with a set of callipers, we created a small sonar mount attachment, allowing the ROV to scan with both sonars attached  and unobstructed.  Leveraging the laser-cutter, we then sliced the sonar mount out of a sheet of scrap 1/8" delrin, a tough plastic.  The final results are depicted below:

Sunday, February 10, 2013

ROS scans at Cal Poly

During our last day at Cal Poly, we all went to the pool and took some scans.  We had the chance to try taking scans with two sonars at the same time, here are the results (vertical scans on the left, horizontal on the right) in chronological order such that each scan was in a deeper section of the pool then the last:


I attempted to normalize the horizontal scans to all face the same direction but did not come up with convincing results.  The compass on the robot was not calibrated which may have caused some of the confusion.  However we can still gather some interesting results, for example the headings during the second scan (shown below) had a standard deviation of 86 degrees which would explain the large amount of noise in the scans.  In the future scans like these can be filtered into segments for which the ROV was competely stationary.


Another issue to fix is that the range of the scans does not appear to be the full 5 meters as desired: the edges of the pool are barely visible.  The problem seems to be in some of the sampling rate settings on the sonar that we must set manually.

Finally I put together a mosaic of these scans.  However due to the range issue overlapping area was limited so mosaicing required a lot of guess work.



Friday, February 8, 2013

New Pacheco Outreach Lesson

This week was the first week of Lesson 2 of our outreach workshop in Pacheco elementary school. This year we changed our lessons from the previous years by introducing a new robot, the scribbler robot. The Computer Engineering department here in Cal Poly was kind enough to let us borrow 10 of these robots to use during our 3rd and 4th week of outreach.

Parallax Scribbler 2 Robot
These robots have a GUI software were instructions can be dragged and placed and that makes the programming of these robots fairly simple. Using this software, we have implemented a lesson plan to show the students a little bit more about how programming works and allow them to tell the robot what to do.

The concept of programming can be abstract to some of the kids so we are trying to improve the lesson so the kids can wrap around the idea of following instructions one at a time and seeing how the robot can only execute one instruction at a time. The whole in the middle of the robot is a spot to place a marker so that the path can be tracked and compared to the instructions that were given to the robot.

The kids all really seemed to like being able to tell the robot what to do and seeing the end result in paper. Though some kids were at different levels when it came to designing different paths and shapes, all of the ICEX students that went to help did a great job of making sure that all the kids were engaged and were getting something out of the lesson.

The next lesson will consist of using binary encoder robots that are also the same ones we will be taking to Malta for the outreach there. I love seeing all the kids super excited about robots and I hope we are making a difference with these kids and the kids we will meet in Malta.

--
Cecilia