What it does
Identify "clutter" (an orange ping pong ball) and command Romo to push the clutter to a predetermined goal. The environment is very constrained and impractical--an upside down cardboard box with a webcam looking down from above.
- Object Tracking Using HSV's
- First Successful Run
- Declutter Without Clutter Disturbance Avoidance
- Declutter With Clutter Disturbance Avoidance
Current Planning Algorithm
- Find the line that passes through the ping pong ball and goal
- Get Romo's center on that line found in step 1
- Move Romo towards the goal
- If the ball or Romo are no longer on the same line, go back to step 1
Works with python 2.7
Stuff you need to pip install:
Place the clutter in environment.
Dock the iDevice and start up the iOS app, RomoComm, and place Romo in the environment.
Start the client-side script.
$ python client/declutter.py
- declutter.py: Main script. Finds the clutter and commands Romo to push it toward the goal.
- rmsocket.py: Means of communication with Romo. Use websockets to communicate with Romo.
- video.py: Interfaces with the webcam and provides OpenCV functionality. I did not write this, it is an opencv sample.
- common.py: video.py depends on this. I did not write this, it is an opencv sample.
- ios: App for Romo to receive commands from client.
Box: The round hole is for the light source. The square hole is for reaching into and manipulating the environment.
Light source: By closing the box off from all other light sources and providing the same light source every time, the HSV's are consistent at all times of day.
Romo: The bright yellow index card on the back provides a unique color whose HSV is easy to find. The cardboard wedge attached to the front makes pushing the clutter easier.