- Work this week:
- rethinked the approach for the gripper. Originally, I was going for a spring mechanism: the motor winds up the spring after making contact with the object, and force is controled by how much the spring is wound. The issue is that it is mechanically complex. I was not able to come up with a good implementation of this concept.
- If I can control the amount of torque at the motor directly, I don’t need a spring mechanism.
- Currently, I am looking into smart servos that can do force control, such as the Dynamixel series: https://www.robotis.us/dynamixel/?srsltid=AfmBOoqgSxak-qbqm3m2aevmbsqF1EVobBmwjjBQxEVpmByu927cBMaB
- I am also looking into using stepper motors and BLDC motors: https://docs.simplefoc.com/torque_control
- I also added a design requirement for gripper force:
- 300g payload * 10m/s^2 = 3N gravity force. Typical static friction coefficient value for glass on metal contact is 0.5. We will have a higher coefficient of friction because we plan on using rubber for the gripper. However, I will use 0.5 to be safe. This means we need 3N/.5 = 6N normal force at the gripper.
- The gripper design we chose (https://www.thingiverse.com/thing:2661755) uses a rack-and-pinion setup. The pitch diameter is approximately 1.2cm. This means the torque required at the motor will be 6N * (1.2cm/2) = 3.6 Ncm
- for example, typical servo motors such as https://tinyurl.com/yc4nuvbe has 12kgcm of torque, or about 120Ncm. Therefore, there will be more than enough torque.
- Conclusion: I can use a regular servo motor, or a DC motor. Originally I thought torque requirements meant I could only use a DC motor.
- designed and printed motor brackets for the gantry:
- Modified an existing design for the gripper, built and assembled. This gripper only supports position control, not forrce control. For the MVP this might be sufficient. I tested this on some common household objects and even without a rubber sleeve, the gripper will be able to hold on to most objects with a flat side. (round objects are more difficult, but adding a rubber sleeve should alleviate that)
- Finished design of X and Y axis 3D print parts. I have attached a particular difficult part, as well as the overall assembly below. Pulleys and belts are not shown because I don’t know how to model belts in SolidWorks.
- Currently, I am working on designing the wrist and Z-axis mechanism for the gantry.
- My goal for the next week:
- finish building the XY parts of the gantry and attaching the gripper to it.
- design and print wrist roll joint mechanism.
- write firmware to control gripper motor
- have a working gantry system consisting of X, Y, wrist and an open/close gripper. This will be our MVP configuration. For the final product, I will need to add Z axis and force controllable grippers
- the MVP gantry will be able to communicate to the central PC via serial. It will be able to execute move and grip commands.
Jack’s status report 10/26/24
This week, all the parts for the gantry, except the linear slides, arrived. I am still working on designing 3D-printed brackets for the gantry mechanism. However, I wired up the electronics and deployed my exisiting software work.
I was able to set up force-sensing resistors and read values from them on an ESP32. Characterizing relationship between voltage and force might require some data collection, since the vendor documentation is somewhat lacking. This took longer than expected because of difficulties in finding the right toolchain for flashing my code to the ESP32. I ended up using Arduino IDE, but I would like to set up the ESP-IDF library and toolchain at some point.
I also completed the software for sending position commands to the stepper motors and wired up the stepper motors and demo these commands. The choice to use 3D printer driver boards really sped up the whole process compared to using individual motor drivers: all I needed to do was plug in the motors and send Gcode commands over serial .The power supply arrived, but the casing was damaged so I was not sure if it was safe to use since the casing is metal. However, I was able to overcome this by susbstituting the power supply module with a laptop charger.
My goal next week would be to finish building the XY axes of the gantry, including 3D printed parts. I am also aiming to build a prototype gripper mechanism.
See the stepper motor setup here:
https://drive.google.com/file/d/1oAM67E24leO2Pc1g6S6h67MTfPZt7vkb/view?usp=sharing
ESP32 setup:
Jack’s Status Report 10/20/2024
I was able to finalize the BOM for the robotic arm and order parts. Currently waiting for parts to arrive. In the process of finalizing the BOM, I made a decision to use a single 3D printer driver board instead of 4 stepper motor driver boards separately. This choice enables us to zero the stepper motors using built in current sensing. Furthermore, it will simplify the robotic arm software because I can send Gcode commands in the form of XYZ coordinates over UART to move the motors. This way, I no longer have to do PWM in software simulaneously over 4 channels and also keep track of the motor position myself.
I also got some software work done: I wrote some skeleton code for sending Gcode commads over UART to the robot arm. As soon as I get back to campus from fall break, I can start assembling the robot and start trying to deploy the exisitng parts of the software stack.
Jack’s status report 10/5/2024
I have been working on designing the robot arm system in detail this week. I learned to use a new CAD program, Onshape, and it required a lot of effort. At the end, I was able to produce CAD drawing for multiple custom parts, and made good progress towards finishing the CAD assembly for the entire robot hand system. I also created the skeleton embedded code for controlling the robot arm. I wrote the code for sending PWM signal to interface with the motor drivers, as well as code to read measurements off force sensing resistors.
Progress Evaluation:
I am slightly behind schedule in terms of the mechanical components, as I should have already finalized the design at this point. However, I did get some software work done, which is what I was supposed to do this week.
Next Week Deliverables:
Complete CAD design for the robot. If the the parts arrive, also some parts assembly and wiring.
Onshape Assembly:
Jack’s Status Report for 9/28/2024
This week, I worked on selecting the electrical components for the teleoperated gripper system. I focused on all the subsystems besides the gripper, since the team is still working on how best to measure force at the grippers and produce intuitive force-feedback. However, I have managed to lock down the BOM for all the electrical components for arm movement, including XYZ axis motors and wrist tile motors. These selections are based on quantitative use case requirements such as payload, precision and speed. I have also selected mechanical hardware such as aluminum extrusions, brackets, linear slides, and lead screws.
See my component selection notes
Jack’s Status Report for 9/21/2024
This week, I conducted some research into how best to implement the gripping mechanism, as well as the robot arm upon which the gripper is mounted.
I spent a lot of time trying to design a simple enough mechanism that could control force at the grippers effectively. What I wanted to avoid was to simply attach a motor’s output shaft rigidly to the grippers. This is because it will be very difficult to control force precisely when the gripper makes contact with a solid object. This was solved by attaching a torsional spring mechanism to the output shaft, so that the force output is a linear function of the motor’s position.
I also spent time to size the motors needed to actuate various parts of the robot arm. I came to a decision by researching similar mechisms in 3D printers and laser cutters. For systems that are close in size, the most common option is a NEMA 23 stepper, so I decided to go with those.
Another challenge was to find a low-cost solution for precise linear movements. We needed linear movement over an area the size of a lab workbench, and many linear rails at that size were too pricey. I ended up finding a solution based on attaching wheelcarts to standard aluminimum extrusions, with an overall cost below $50.
After some discussion with my teammates, I drew up a preliminary mechanical design for the system based on the above considerations. Overall, I think I am on schedule, as I have another week to design the arm. I have a clear idea of what the robot arm hardware will look like, and have also started the detailed hardware design using OnShape, a CAD tool. It took some time to learn it, so I have not had the chance to complete the detailed design yet. While I have managed to identify the type and size of components needed, I will also need to shop for the best option on the market and submit them using the purchase form.