Ideas
- 3D priter with additional degrees of freedom for non-planar printing
- Modular robotic system that can snap together, one style of joint
- Telemanipulated robotic arm
I'm not really sure what exactly I want to do for my final project yet, I do think I want it to be some form of robot or tool that is designed with a specific purpose in mind. I don't want to make something just to make something.
10/15/25
I think I have decided that I want to move forward with the idea of making a modular robotics system as my final project. There would be a few main components that I would need to design including a control hub, a drive component, interchangeable gear boxes, and different linkages. The PCB that I made during EDA Development week will be super useful for prototyping for this final project. I do have to revamp it though as I am not sure that the stepper drivers actually work. I plan on redesigning the PCB based off of the model on the class website.
Week 8
It has been a while since I updated my final project page but I have been thinking about it a lot and am ready to make some more concrete goals and
decisions of what to pursue.
I want to start by trying to outline the fundamental goals of my final project so I know just what it is that I am aiming for.
Goals:
I want to design a modular robotic system with two different kinds of actuators. One linear and one rotational actuator. For each actuator,
I want to be able to measure its absolute position using external sensors improving the overall control system and accuracy of the system as a
whole. Additionally, I want each component to be standalone, as in no external wires. I want all of the communication to take place wirlessly and
have power transfer through the joints of the system. As for the controls of the system, I want to be able to control the exact location of the actuators
and if in a system, know the aboslute position of the system. Through software I want to account for potential errors in displacement using the poisition
sensors in the actuators. For example, if a stepper misses a step, I want to be able to detect that and then add an additional step to its rotation to
account for that.
Parts of the project
- Linear and rotational actuators
- Ligaments between the actuators
- Control of individual actuators
- Control of actuator systems
- Communication between actuators
Linear actuator
- Use a ball screw to transmit rotation motion into linear motion
- Use linear rails to support the linear motion from the ball screw
- A platform that enables the connection between additional actuators or ligaments
- Some form of range detection to determine the location of the platform along the linear rails
- Wireless communication
Rotational Actuator
- Use a stepper motor with a cycloidal drive for increased torque
- Magnetic encoder for position detection
- Wireless communication
Ligaments
- Design some kind of universal connection system to be able to connect to actuators
- Right angle ligament
- Straight ligaments
Wireless control of individual actuators
- Reliably send and recieve data between actuator and computer
- Real time position correction. Ie. if a stepper motor is moved or out of position from the last defined position, it moves itself
- Speed control
- Artificial angle limits
Wireless control of mulitple actuators
- Forwards and reverse kinematics of the system for control
- Synchronus motion between multiple actuators at once
- Control from my laptop
There is clearly a lot to acomplish with not much time. I want to start by getting simple versions of the actuators working, without position detection. I think my focus of output devices week will be developing initial versions of both the linear and rotational actuators. This means that I will need to drive a stepper motor, I could continue pursuing the DRV8428 which I will likely do, however, I will simultaneously work with a broken out stepper driver that I have gotten to work before on a bread board enabling me to move forward with design and testing. This will also require me to develop initial 3D models of both the linear actuator and my cycloidal drive. This week I started work on the design of the drive and have used ChatGPT to write a python script to export a DXF of the unique shapes of a cycloidal drive(ADD PYTHON SCRIPT).
Action Items for Week 8:
- 3D model of basic linear actuator
- 3D model of cycloidal drive
- 3D model of rotational actuator
- Drive a stepper motor
- Drive initial versions of the actuators
- Design and make PCB to work with DRV8428
- Drive a stepper motor using DRV8428
Would be nice:
- Do some basic form of position detection on the linear actuator
- Do some basic from of position detection on the rotational actuator
- Communicate something over MQTT
- Drive a stepper motor over MQTT
I would say I was pretty successful this week, I have modeled and tested intial prototypes of both actuators! I have yet to drive a stepper motor with the DRV8428 but I have the completed PCB and it is just waiting to be tested. I want to move forward and improve the designs for both. For the linear actuator, I want to add caps to the plates so that they are sapced a fixed distance apart. I also want to build a housing for the motor so it doesn't extend out the back. For the rotational actuator, I want to try and shrink the size of the cycloidal drive and add bearings so that it is a much smoother motion. I would also like to try and begin experimenting with sensor feedback for each of the actuators
Week 9
This week is about molding and casting. I am planning on going away Saturday through Monday morning, so I will have to prep the design that I want to mold while I'm away
so I am able to cast it once I am back. The maker space on campus that I am a mentor in has a whole casting setup so I plan on doing all of the molding and casting there. I'm not
quite sure what it is that I want to cast though, perhpas it should be the cycloids for the cycloidal drive as they would likley have better structural/mechanical characteristics then
a 3D printed counter part.
Regarding forward progress on the final. I need to get a DRV8428 working this week and driving a stepper motor. I also wnat to get sensor feedback from both the magnetic encoders
and LiDAR. I also want to add a limit switch to the linear actuator to serve as a zero point. I can then use the lidar to measure the offset from taht limit switch and then define a modifier
and adjust all of the measurements with said modifier.
For the rotational actuator, I want to design a new version of the cycloidal drive that is smaller and uses bearings to reduce the friciton between the printed components.
Action Items for Week 9:
- Design a model use to create a mold
- Cast using the mold that I created
- Add caps and a motor housing to the linear actuator
- Add a limit switch and LiDAR ranging for linear actuator position detection
- Design a new Cycloidal Drive that is much smaller and uses bearings
- Experiment with the magnetic encoder
- Try to mount a magnet to the back of the stepper motor
Week 10
Unfortunatley, I hardly got anything done this week because I went away for the weekend and was not as productive as I should have been when I was here. With that being said, that means that
a lot of the things that I wanted to do last week carry into this week. I am interested though in exploring what it would take to fully cast all the parts for my cycloidal drive. One I think
that would be incredibly satisfying and I also think that it would improve its reliability and resilience long term.
Action Items for Week 10:
- Design a model use to create a mold
- Cast using the mold that I created
- Add caps and a motor housing to the linear actuator
- Add a limit switch and LiDAR ranging for linear actuator position detection
- Design a new Cycloidal Drive that is much smaller and uses bearings
- Experiment with the magnetic encoder
- Try to mount a magnet to the back of the stepper motor
Midterm Review
I finished the design and assembly of a refined cycloidal drive. I have yet to power it on, but it seems to run smoothly when I was putting it together and spun the axle myself. I was also surprised that I was able to backdrive it. I don't think I could last time as it was all 3D printed and thus there was a lot of friction between the parts. Now, however, there are steel rollers, and bearings which contact all the 3D printed components instead which I'm sure reduces a ton of the friction.
To Do- Design the connection system
- Modify the linear actuator so that it is more robust
- Add the ranging to the linear actuator
- Add limit switch to linear actuator to enable homing
- Design desired control system for the linear actuator
- Add a magnetic encoder to the back of the cycloidal drive
- Add a limit switch system to the cycloidal drive (potentailly instead of encoder)
- Design desired control system for the rotational actuator
- Figure out wiring between the systems
- Design PCB for each actuator
- Figure out MQTT protocol/commmunication between MCU
- Build base that actuators connect to
- Communicate desired position of actuators from computer
- Design and example bot with inverse kinematics
Schedule
Week 11 (11/19-11/25): Networking and Communication
I think this would be a perfect opportunity to try and figure out the MQTT communication protocol which I want to use to communicated between the individual actuators. In order to do that, I would like
to have functioning, if not finalized actuators to communicate to. The rotational actuator is close, I think I will only need one more rendition of it where I will add the limit switch for homing. For the
linear actuator, I think I am slightly farther away, I need to make the design more robust, add homing and poisition detection.
Goals for the week
- Design the PCB for both actuators
- Finalize the design for individual actuators (don't need to worry about connection yet)
- Test actuators and make sure that they have enough torque to do what is desired
- Be able to communicate between the actuators and my computer
I think this week can be used to work on a more generalized communication for the actuators and how the user can control multiple simultaneously. Also great to determin what controls the user will have over the system.
Part of this, I think will need the actuators to begin being connected. As I'm writing, this, I am remembering that this is the week of Thanksgiving where I am going to be out of town. With that being said, I think it
is the perfect opportunity to design the connection system and control interface with the actuators. Also, if the communication wasn't finalized last week, polish that up this week as well.
Goals for the week
- Design the control interface for the actuators
- Finalize the design for the connection interface and wiring system
This is wildcard week, I'm not sure I can think of anything in particular that I would need to learn. I think that the control system will likely become the hardest part of the project and so if I need more time for that,
I'll have some here. Also this would be a good time to make a few more of the rotational actuators or connection units.
Goals for the week
- Have all of the actuators that I am going to need for my presentation
- Integrate the communication system and the actuators IRL
- If extra time, perhpas design and make an end effector
I think this can serve as a catch all week for when the project inevitably doesn't go to plan or something takes more time than neccesary. This will also serve as a good time to refine my website and prepare my final presentation. Goals for the week
- Polish up any lacking areas of the project
- Prepare my final presentation
- Build demo and make sure that it works
System Diagram
This only shows one of each kind of actuator, but there may be multiple rotational actuators in one of the actual examples.
Week 11 Progress
There were a bunch of different asspects of the project that I wanted to work on this week. After my conversation with Anthony, I felt comfortable jumping
into making the schematic for the PCB
What is nice about this design is that it will work for every actuator in the system, linear or rotational so my plan is to make a prototype and once
that is working, send it out to a board house to make higher quality versions. Unfortunatley, I didn't get a chance to mill the PCB before I left
and so I am starting to get pretty stressed about whether or not I'll be able to get everything done and working in time but I still have some time.
I finally got the opportunity to test the cycloidal drive that I designed and assembled last week, I don't think I included the documentation for it there
so I will include some here. The goal was to make a far more robust drive with less friction by including proper hardware so steel pins or bearings.
To start, I again used the python cycloid generator that chat made to generate a new cycloid DXF to design around. I will include a link so that you can
download the generator yourself. Here was the command that I used.
INSERT PICTURE OF COMMAND FOR THE CYCLOID
INSERT PICTURE OF GENERATOR OUTPUT
I then spent sometime on amazon trying to find the different components that I would need for the design and I ended up deciding on these different parts.
I was super excited to see it working, I was a little nervous that it started stalling but I think I just need to play with the current limiting and do some more robust tests to just make sure that it has more than enough torque to do what I want. In theory it has 11 Nm which is plenty but I don't want to just bank on that.
The next part of the project that I wanted to work on was improving the linear actuator model. For this I just hopped in Fusion and based on the dimensions
of the last version designed a new one that would be more robust. There was nothing special during the modeling process, I used processes or tools that I've
documented before. It is still not the finalized model as I have to finish the PCB so I know the size and constraints so I can design a mounting system but
all of the components should be there. I'm again designing around the components that I salvaged from an old 3D printer I had.
Part of the project will be controlling the system so I made my first pass at an IK solver using the FABRIK algorithm. I coded the solver myself but then
used Gemini to create the visualizer and answer questions.
Future Ideas
- Mold and cast all parts of rotational actuator
- Create a FOC for a DC motor
- Design a closed loop stepper system with FOC
- Claw module