Inspiration

basic robotics manipulation is still challenging to setup, and we experienced a lot of hiccups with basic calibration and manipulation of joints/links at the lower level (even after we got the phospho api to connect, which called the functions to move the robot). efficient, basic robotic controllers can also cost hundreds of dollars, and require hefty setup time.

to solve this, we wanted to see if we could use our basic iPhones to abstract away the setup of controlling an so-100 , but still able to dynamically represent changes to the robotic arm in real time. it works as a simple iPhone app, so any engineer, regardless of robotics experience, can easily set up and manipulate their SO-100 within seconds. it also works as dev tool for data collection as you can teleoperate your arm remotely to collect key features of your scene. even though the controller is represented as a iPhone, you can still manipulate individual joints positions and orientations.

wrote a lot of custom functions for this: custom calibrated the robot's movements, put together a websocket to connect a swift app to make web socket requests to the python backend server, and custom functions for the motors.

What it does

implements forward and inverse kinematics for smooth movements. previously, we had very abrupt, overly responsive link movements (for example if we moved the iPhone 1 cm, it would substantially move the robot arm). the current version is slightly more abrupt than our intermediary versions, but it is more responsive with a websocket.

Challenges we ran into

  • unifying the coordinate axes with the iPhone axes as they were conflicting. once the coordinate axes were aligned, most of the jittery/abrupt movements were solved.
  • abrupt movements

Next steps

  • adding the camera module to the top of the gripper for granular data collection (points of interest)
  • the y-axis is very sensitive, so trial and error with normalization.

Built With

Share this project:

Updates