Team Status Report for 3/27/2021

This week we ran into a problem with our servo where we realized it lacked the capabilities we needed to exactly turn to a degree that we wanted. This required us to change our design to a 270 degree servo and user gear ratio in order to fully spin the wheel. However, this was risk we had accounted for an we had backup parts ready to order.

Even though the servo didn’t work fully, we were still able to test our design and realized that it would be feasible. So despite having to change a few parts of our design the base concept would work and we can continue with assembling the hardware. The rest of the project is going well and we did account for there being flaws in our hardware design so the schedule is still looking good. Once we finish the hardware assembly that will the biggest risk of our project finished.

Link to video: https://drive.google.com/file/d/1W-uDNRuHiA_ZS4i7cMAcf0UPFy9S0NnW/view?usp=sharing

 

Fred’s Status Report for 3/27/2021

What I did this week

  • Worked on developing a prototype for our design to test its feasibility. Video can be seen in the team report for 3/27.
    • After discovering the servo we chose had some issues found and ordered new parts that would better fit our requirements
  • Picked up the remaining parts for our project and started assembling the base for our clothing hanger
  • Measured the dimensions of all of our products and determined the exact design we would for all our parts to fit together

For next week

  • Finish assembling our base and attaching the servo and turntable bearing to it
  • Begin work on the user preference model

Sung Hyun’s Status report for 3/27/2021

The past 2 weeks I have:

– Written the design report for the parts which I am responsible for: Matching API, Retriever API, and User interface.

– Worked on the specific logic for the user interface (which api / function calls each user input would create)

– Worked mostly on the verification of the servo. After doing the testing, we realized that our current Servo does not work for multiple reasons.

– First, our servo is simply not strong enough to rotate our hanger. After setting up the prototype, with the servo just rotating the hanger with no clothes on, the hanger wasn’t spinning. We believe this is due to the fact that our Lazy Susan was simply not smooth enough, so our estimation of the static coefficient is not enough.

– Second, we can’t designate the servo to rotate to a specific rotation angle. For a servo with a fixed rotation angle (ex) the 180 degrees servo, we can simply call

angle = 180;

servo_test.write(angle);

and this code would simply rotate to the angle.

However the servo that we currently have is a 360 degrees continuous rotation servo that if we input a constant pwm signal, it would just continuously rotate. In order to fix this issue, I have implemented a timer so that I can start and stop sending pwm signals, but the issue of this will be that the error would accumulate. Thus after doing validations, we have decided to buy a 270 fixed rotation servo, but have the gear ratio to be 3:4 so that using the gear, our servo would be able to rotate the hanger 360 degrees.

– Assuming that the new servo would work accordingly, I have rewritten the retriever API

– Due to this issue, I am slightly behind on schedule

Next week I will work on:

– catching up with our ghant chart.

– Finish writing the retriever API, assuming that the behavior would be identical to the 180 degrees servo that I have used for a different class

– start working on the matching API

Henry’s Status Report for 3/27/2021

The past two weeks I worked on:

  • Finished the design report. I wrote most of the documentation on the visualizer component.
  • formatted datasets for training. Detector required tfrecord files from DeepFashion2 dataset while classifier required images sorted into classes from DeepFashion dataset.
  • Trained a clothing detector that detects bounding boxes and does simple classification of clothing articles.
    • tried yolov4 using pytorch, but API was really bad and had many problems I had to fix by looking at pull requests. Ultimately, didn’t use.
    • tried efficientDet0 with tensorflow2 object detection API and it was much better documented and had more community support. Ultimately, used this.
    • Using DeepFashion2 dataset, which doesn’t provide good classification labels, but has bounding boxes over every clothing item (DeepFashion only has 1 bounding box per image)
    • unfortunately, I didn’t measure accuracy during training, but here are the loss figures:
  • Training a clothing classifier that provides more fine-grained classification.
    • Using efficientNetb0 from keras. Below is test accuracy:
    • Still requires more epochs until convergence.
  • Created simple clothing recognition API with aforementioned models. Currently returns top 10 most likely bounding boxes and labels.

For Next Week:

  • Finish training models and perform fine-tuning.
  • Start training models for more fine-grained classification like shape and material.
  • Implement color classification.
  • Right now detector could predict differently from classifier. I’m not sure what to do when this happens, but I should figure it out.

I am slightly ahead of schedule.

Sung Hyun’s Status report for 3/13/2021

This week I worked on:

– watching other people’s presentation and their projects and gave peer reviews

– Wrote a driver for a small servo on Arduino Uno that continues to rotate from an angle from 0 degrees to 180 degrees

– Wrote a python program (pyserial) that can communicate with the Arduino the degree of angle we want to rotate

– Started working on the UI/UX  of the clothes selection

 

Next week I will work on:

– writing driver code for the servo that we will actually be using for our project.

– Make sure the robot API can successfully communicate with the Servo

– develop more on the UI/UX

Team Status Report for 3/13/2021

This week we gave our design proposal and got good feedback about our design. Going into next week we need to work on the written part of the proposal. We changed our design to incorporate gears with our servo to turn our rack.

One of the biggest risks we see moving forward is attaching the gears to the rack and the servo. In order to find good solutions for this we want to have a working prototype done by the end of this week. The solution we are currently looking at is a metal epoxy but this may change going into the future.

On the software side things are looking good and our programs are beginning to take shape. We just have to make sure we stay on schedule and give ourselves enough time to account for bugs.

This is the new schedule we made to reflect the changes in our hardware design.

Henry’s Status Report for 3/13/21

This week I worked on:

  • Presented the design review presentation. We got a lot of good feedback, especially for our hardware design and our ML algorithm.
  • Worked with Fred on details of hardware design. Came up with a design that uses gears so the servo doesn’t need to be in the middle of the axis. This ensures there’s no weight on the servo and it also allows us to potentially add additional servos if we need more torque.
  • Wrote code that can train any prebuilt models on pytorch. Uses fastai wrappers to make the job easier.
  •  
  • Created a resnet34 classification model with 66% top-1 test accuracy. Not a metric worth noting as I still need to have better data augmentation and hyperparameter tuning. We also need validation testing from internet sources and we’re looking at top-3 accuracy, but it’s a start.

For next week:

  • Finish the visualizer section of the design report.
  • Bootstrap training data with additional data from the web.
  • Create validation set by manually labeling web-scraped images.
  • If I have the time, try training an object detection model that can find top and bottom.

I am on schedule.

Fred’s Status Report for 3/13/2021

This Week I worked on:

  • Made some final changes to our hardware design where we decided to use gears to spin the rack. I also learned how to use auto cad to create a model for our project
  • Updated our gantt chart to reflect the changes in our design
  • Worked on web scraping program and it is able to download images from Pinteres

For Next week

  • Finish developing the web scraping program so it works on more sites
  • Work on the written design review proposal
  • Order all our parts and begin assembling the parts

Sung Hyun’s Status report for 3/6/21

This week I worked on:

  • Created the hardware design and a block diagram:

 

  • As a group decided on the specific hardware parts that we need
  • Worked on the design review slides:
    https://docs.google.com/presentation/d/1kY1kIH_YxvDuDWgsggm8xlKYttMxBnfFL2lo6iBvHSg/edit?usp=sharing
  • Specifically, I have worked on user interface slide, robot API slide, and the hardware block diagram slide
  • Research controllers / drivers and how to manipulate servo using Arduino

For Next Week:

  • Work on the design review report. The high level ideas are on the slide and for next week, I need to expand
  • Start writing driver/controller code
  • Help Henry practice for the presentation

Team Status Report for 3/6/2021

This week we finalized our design and worked on creating our design review presentation. In creating the design presentation we finalized our system specification for the hardware and software sides of our presentation. We also specified how we were going to implement our design.

One of the risks we see on the software side is achieving the required accuracy levels. In order to do this we will preemptively begin working on our the training and allocating more time to it in order to achieve the accuracy we need.

On the hardware side the main risk we currently see is building a strong enough support base to hold up all our clothes. In order to mitigate this risk we have been looking into materials to build our base with and have been carefully planning the structure we are planning to use to ensure it can hold the weight.

Overall we are still on pace and are looking to present a good design review and get good feedback about our design.