Dance Cam is a smart robotic dance videographer that uses computer vision to track the dancer's body to always keep them centered in frame. Dance Cam combines an iOS app with an omni-directional vehicle to create a seamless experience for dancers to record semi-professional, dynamic, and cool dance videos. Dance Cam supports any number of dancers; allows custom song selection; moves front, back, left, right, and diagonally; and saves recorded videos directly to the user's camera roll.
Project Manager: Irith Katiyar
Team Members: Abby Farhat, Kenny Nguyen, Austin Tsai, Hannah Lee, Joel Etchri, Ruth Thomson
- Turn on iPhone's hotspot.
- Power the motors and Raspberry Pi.
- To power the motors, turn on the top power bank. If successful, both motor drivers should have a red light turn on. This power bank is battery-powered via 8 AA batteries.
- To power the Raspberry Pi, turn on the bottom power bank. If successful, the Raspberry Pi should light up. This power bank is rechargeable.
- Run our Flask server on Raspberry Pi.
- Connect any computer to the hotspot.
- Open a terminal and type the following commands.
ssh dance@pi.local(password:irith)cd Desktoppython motor-server.py
- Run our iOS app on iPhone. If the app is already built on the phone, skip these steps.
- If not already built on phone, open DanceCam-iOS Xcode Workspace (not Xcode Project) on Xcode on a MacBook computer.
- Plug the phone to the MacBook computer. On the phone, click trust this computer.
- Make sure that Developer Mode is enabled on the phone.
- Download the pose landmarker model files by running
./download_models.shfrom the DanceCam-iOS folder. - Install all dependencies by running
pod install(may also need to locally install CocoaPods). - Build the project on the phone. It should fail because the developer is untrusted. Go to Settings > General > VPN & Device Management and click Allow on the app.
- Build the project on the phone. It should now build and run successfully. Click Allow on all of the alerts (e.g., access to camera, access to microphone, access to photo library) that pop up on the app when first opened.
- Unplug the phone.
- Carefully place chassis topper on top of chassis plate. Note that the topper only fits onto the plate in one orienation (match the side with the shorter chassis support to the side with the Raspberry Pi micro-USB port). Ensure that all wires, notably the wire powering the Raspberry Pi, are out of the way of the chassis supports.
- Place the phone in the phone holder and orient the vehicle so the phone screen faces the user.
- The phone's front (selfie) camera should be used, so users can see themselves when facing the phone screen.
- Click the signal button in the iOS app to connect the app to the Raspberry Pi so the vehicle can move based on your body.
- Developer Mode is not enabled on iPhone:
- Go to Settings > Privacy & Security > Developer Mode.
- Once toggled, phone must be restarted.
- Untrusted developer error:
- Go to Settings > General > VPN & Device Management.
- Click the app and click Allow.
- CocoaPods
FrozenErroronpod install:- Right click on the DanceCam-iOS Xcode Project (not the Xcode Workspace)
- Click Show Package Contents.
- Open project.pbxproj in a text editor.
- Change
objectVersion = 70toobjectVersion = 77to be compatible with the Xcode version. (Note that these numbers may change, but this should be the general fix for this error.)
- Failed to create provisioning profile, or app ID cannot be registered (on build of iOS app):
- Change bundle identifier so it is a unique string, e.g., add a number after the string.
- Phone no longer lets you open developer app that you previously built:
- The phone needs to be reconnected to a MacBook and the app needs to be rebuilt from Xcode, then it works again.