Project

# Title Team Members TA Documents Sponsor
8 Accurate Pick and Place Arm
Ian Chan
Michael Talapin
Nithin Durgam
# Accurate Pick And Place Robotic Arm

Team Members:
- ndurgam2 (Nithin Durgam)
- ianchan2 (Ian Chan)
- talapin2 (Michael Talapin)

# Problem

With the rapid growth of automation, robotic arms are becoming increasingly common in manufacturing facilities, research laboratories, and other environments that require precise and repeatable manipulation. Our goal is to design and build an accurate pick-and-place robotic arm and demonstrate its capabilities using a chessboard.

A chessboard provides a challenging and intuitive test of the system’s precision. To reliably pick up and place individual chess pieces without disturbing the surrounding pieces, the arm’s end-effector must achieve approximately 1 mm of positional accuracy. Reaching this level of precision requires every part of the system (mechanical design, electrical components, computer vision pipeline, kinematics, and control algorithms) to work together accurately and consistently. Our primary demonstration will allow a user to select any chess piece or position on the board and specify a destination. The robotic arm will then identify the requested location, pick up the piece, and place it at the desired position while avoiding interference with nearby pieces.

If time permits, we would like to extend the project by allowing the robotic arm to autonomously play a complete game of chess against a human opponent. This would add another layer of complexity by combining the arm’s existing perception and manipulation capabilities with board-state recognition, move planning, and a chess engine. Since accuracy is the goal and not speed, we will follow a 5+10 and 10 + 10 format.

# Solution

At a high level, our goal is to avoid the complexity and cost associated with traditional multi-joint robotic arms, where every additional degree of freedom requires another motor, sensor, and control system. Instead, we plan to use a simpler and more elegant mechanical architecture designed specifically around the requirements of the task.
The arm will consist of two links that provide planar motion across the x-y plane, while the end-effector moves vertically along the z-axis to pick up and place chess pieces. On the electrical side, custom PCBs will integrate sensors such as magnetic encoders and Hall-effect sensors to accurately determine joint position and provide reliable feedback for the control system.
The software stack will tie the entire system together. Closed-loop PID controllers will provide precise joint positioning, while a computer vision pipeline will identify chess pieces and determine their locations on the board. These positions will then be converted into robot coordinates and passed through the inverse kinematics system to determine the joint commands required to move the end-effector to the desired location.



# Solution Components

## Mechanical Design

The mechanical architecture of the robotic arm consists of three actuated joints: Joint 0, Joint 1, and the Z-axis joint. Joint 0 will use a NEMA 34 motor, Joint 1 will use a NEMA 23 motor, and the Z-axis joint will use a NEMA 14 motor. The overall goal of the mechanical subsystem is to provide a rigid, accurate, serviceable, and easily accessible structure while creating enough space for the electrical hardware, sensors, PCBs, and wiring required by the rest of the system. Because the electrical and software subsystems depend heavily on the physical geometry of the robot, mechanical accuracy and repeatability are critical.

Joint 0 is located at the base of the arm and provides the first rotational axis. Because this joint must move the combined mass of the remaining arm, end-effector, motors, and payload, it will experience the largest torque requirements and will therefore use a NEMA 34 motor. The base will also contain the primary power distribution hardware for the system. Adequate space should be provided for power distribution, the PCBs, terminal blocks, protection circuitry, connectors, and cable routing. Communication and programming interfaces should also be externally accessible so that a computer can connect to the robot without requiring the enclosure to be opened.

An overhead camera mount will extend from the rear of the base and position the camera above the chessboard. This structure must be rigid and accurately positioned because the computer vision system depends on a known transformation between the camera and robot coordinate frames. Movement or misalignment of the camera could introduce errors that propagate through the vision, inverse kinematics, and motion-control systems. The mount should therefore provide a repeatable camera position and allow for calibration when necessary.

Joint 1 provides the second rotational axis required for planar x-y motion. This joint will use a NEMA 23 motor and must maintain high structural stiffness while minimizing backlash and mechanical play. The surrounding arm structure must provide enough internal space for encoders, Hall-effect sensors, and wiring. Cable routing should prevent wires from being pinched, excessively bent, or interfering with joint movement.

Serviceability is also an important design requirement. Components located around Joint 0 and Joint 1 should be accessible through removable covers or panels so that faulty electronics or sensors can be replaced without significantly disassembling the arm or disturbing its alignment. Bearings should support the primary mechanical loads rather than relying entirely on the motor shafts.

The Z-axis joint provides vertical motion for the end-effector and will use a NEMA 14 motor. A lead screw, linear rail, or similar mechanism can be used to provide controlled vertical movement while minimizing lateral play. The required travel distance should allow the end-effector to clear the tallest chess piece and safely move across the populated board. The end-effector should also provide some mechanical tolerance for small positioning errors produced elsewhere in the system. A wider capture range, tapered gripping surfaces, or compliant features could help guide slightly misaligned pieces into the gripper.

Additional mechanical requirements that should be defined include joint ranges of motion, link lengths, payload capacity, allowable backlash, z-axis travel, mechanical end stops, cable strain relief, motor cooling, bearing selection, and clearly defined mechanical reference points. These specifications will directly affect motor sizing, forward and inverse kinematics, computer vision calibration, and the overall positioning accuracy of the robot.


## Electrical/PCB Design

The electrical and PCB subsystem acts as the bridge between the robot’s mechanical hardware and software. Its two primary responsibilities are motor/joint control and power distribution. The overall goal is to provide the software with reliable sensing and communication interfaces while safely distributing power throughout the arm.

For motor and joint control the current design will use NEMA 23 stepper motors paired with MKServo57D CAN motor drivers. CAN will serve as the primary communication bus across the robot, allowing the Jetson, custom PCBs, and motor drivers to communicate over a shared network. This reduces wiring complexity and provides a robust communication architecture that can be expanded as additional sensors or joints are added.

Each joint will also require accurate position feedback. Magnetic encoders will be incorporated to measure joint position with sufficient resolution for precise end-effector positioning. Hall-effect sensors or limit switches will also provide known mechanical reference positions during startup and calibration. These reference sensors remain useful even when absolute encoders are used because certain encoders, such as the AS5047P, may require a known physical position when establishing or verifying their zero offset.

The custom PCB in the arm will interface with these sensors, handle signal conditioning where necessary, and communicate sensor information to the Jetson over CAN. The electrical architecture should also include accessible debugging and programming interfaces to simplify testing and component replacement. The second major responsibility is power distribution. A central power-distribution system located within the base will take power from a single external source, a laboratory power supply, and distribute it to the different voltage domains required throughout the robot. The primary rails are expected to include 24 V for the stepper motors, **5 V for servos (if used) or sensors that require 5v, and 3.3 V for low-voltage sensors and PCB logic. The Jetson will utilize its own wall plug, since it will not be directly located in the arm and will just plug into the CAN interface.

A small OLED status display may also be incorporated into the base to display information such as joint states, CAN connectivity, faults, and power status. Alternatively, these diagnostics may be presented through a locally hosted software dashboard.

## Software Subsystem

The software subsystem is critical to the overall accuracy, reliability, and robustness of the robotic arm. It can be divided into three primary components: the state machine, the computer vision pipeline, and the joint control system. The goal of this subsystem is to coordinate the complete pick-and-place operation while minimizing positioning error and ensuring that the robot behaves predictably under different operating conditions.

The state machine manages the sequence of actions required to move a chess piece. A typical operation begins by identifying the requested piece, either from a user command or, as a stretch goal, from a chess engine. The vision system determines the piece's position, after which inverse kinematics calculates the required Joint 0 and Joint 1 positions. The arm then moves above the piece, lowers the Z-axis end-effector, secures the piece, raises it to a safe clearance height, moves to the destination, lowers and releases the piece, and finally returns to a home position where the camera has an unobstructed view of the board. Each state will contain specific completion conditions and fault checks before transitioning to the next state. This structure keeps the software organized while making debugging and error recovery significantly easier.

The computer vision pipeline is responsible for detecting and classifying chess pieces and determining their positions relative to the robot. An overhead camera will capture the chessboard, and a custom vision model will identify each piece and determine its location. Camera calibration and coordinate transformations will then convert image-space measurements into the robot's coordinate frame. If a stereo camera is used, depth information can provide additional distance measurements, although the known geometry of the chessboard may also be used to determine positions. These coordinates will then be passed through the inverse kinematics system to generate target joint positions. If the chess-playing stretch goal is implemented, the detected board state will also be provided to a chess engine, which will determine the desired move and detect game-ending conditions such as checkmate.

Finally, the joint control system ensures that each commanded joint reaches and maintains its desired position within an acceptable error tolerance. Closed-loop PID controllers will use encoder feedback to continuously compare commanded and measured joint positions and correct deviations. A startup homing and zeroing procedure using Hall-effect sensors, limit switches, or encoder reference positions will establish a consistent robot coordinate frame each time the system powers on.

Together, these components provide the perception, decision-making, and low-level control required for accurate and repeatable pick-and-place operation.


# Criterion For Success

* Achieve end-effector positioning accuracy within 1 millimeter.
* Successfully pick and place chess pieces without collisions.
* Correctly identify and localize all chessboard pieces.
* Repeat commanded motions consistently across extended operations.
* Establish accurate joint zero positions after every startup.
* Complete pick-and-place sequences without manual intervention.



Habit-Forming Toothbrush Stand

John Kim, Quinn Palanca, Rahul Vasanth

Habit-Forming Toothbrush Stand

Featured Project

I spoke with a TA that approved this idea during office hours today, and they said I should submit it as a project proposal.

# Habit-Forming Toothbrush Stand

Team Members:

- Rahul Vasanth (rvasant2)

- Quinn Andrew Palanca (qpalanc2)

- John Jung-Yoon Kim (johnjk5)

# Problem

There are few habits as impactful as good dental hygiene. Brushing teeth in the morning and night can significantly improve health outcomes. Many struggle with forming and maintaining this habit. Parents might have a difficult time getting children to brush in the morning and before sleep while homeless shelter staff, rehab facility staff, and really, anyone looking to develop and track this habit may want a non-intrusive, privacy-preserving method to develop and maintain the practice of brushing their teeth in the morning. Keeping track of this information and but not storing it permanently through a mobile application is something that does not exist on the market. A small nudge is needed to keep kids, teenagers, and adults of all ages aware and mindful about their brushing habits. Additionally, many tend to zone out while brushing their teeth because they are half asleep and have no idea how long they are brushing.

# Solution

Our solution is catered toward electric toothbrushes. Unlike specific toothbrush brands that come with mobile applications, our solution applies to all electric toothbrushes, preserves privacy, and reduces screen time. We will implement a habit-forming toothbrush stand with a microcontroller, sensors, and a simple LED display that houses the electric toothbrush. A band of sensors will be wrapped around the base of the toothbrush. Lifting the toothbrush from the stand, turning it on, and starting to brush displays a timer that counts seconds up to ten minutes. This solves the problem of brushing too quickly or losing track of time and brushing for too long. Additionally, the display will provide a scorecard for brushing, with 14 values coming from (morning, night) x (6daysago, 5daysago, . . . , today) for a "record" of one week and 14 possible instances of brushing. This will augment the user's awareness of any new trends, and potentially help parents, their children, and other use cases outlined above. We specifically store just one week of data as the goal is habit formation and not permanent storage of potentially sensitive health information in the cloud.

# Solution Components

## Subsystem 1 - Sensor Band

The sensor band will contain a Bluetooth/Wireless Accelerometer and Gyroscope, or Accelerometer, IR sensor (to determine height lifted above sink), Bluetooth/Wireless connection to the microcontroller. This will allow us to determine if the electric toothbrush has been turned on. We will experiment with the overall angle, but knowing whether the toothbrush is parallel to the ground, or is lifted at a certain height above the sink will provide additional validation. These outputs need to be communicated wirelessly to the habit-forming toothbrush stand.

Possibilities: https://www.amazon.com/Accelerometer-Acceleration-Gyroscope-Electronic-Magnetometer/dp/B07GBRTB5K/ref=sr_1_12?keywords=wireless+accelerometer&qid=1643675559&sr=8-12 and individual sensors which we are exploring on Digikey and PCB Piezotronics as well.

## Subsystem 2 - Toothbrush Base/Stand and Display

The toothbrush stand will have a pressure sensor to determine when the toothbrush is lifted from the stand (alternatively, we may also add on an IR sensor), a microcontroller with Bluetooth capability, and a control unit to process sensor outputs as well as an LED display which will be set based on the current state. Additionally, the stand will need an internal clock to distinguish between morning and evening and mark states accordingly. The majority of sensors are powered by 3.3V - 5V. If we use a battery, we may include an additional button to power on the display (or just have it turn on when the pressure sensor / IR sensor output confirms the toothbrush has been lifted, or have the device plug into an outlet.

# Criterion For Success

1. When the user lifts the toothbrush from the stan and it begins to vibrate (signaling the toothbrush is on), the brushing timer begins and is displayed.

2. After at least two minutes have passed and the toothbrush is set back on the stand, the display correctly marks the current day and period (morning or evening).

3. Track record over current and previous days and the overall weekly record is accurately maintained. At the start of a new day, the record is shifted appropriately.

Project Videos