-
Second Stage Joints
08/31/2024 at 05:13 • 0 commentsThe current Joints have a diameter of 140mm. My plan is to have 2 sets of Joints where the first 3 Joints are 140mm 120:1. Then I will make the last 3 Joints 110mm 75:1. This will give a balance to the look of the arm, This is also good for conserving weight. If all of the Joints were the same strength It would simply be a waste of materials as the arm is only as strong as the first Joint. This will be a very difficult design challenge as my Strain wave gear cup encoder design is not as easy to scale down as it is to scale up. Ideally the design for these Joint will only take a few weeks as I have an idea of what I'm doing already.
-
Moteus r4 with output encoders
08/29/2024 at 22:59 • 0 commentsI have just found out that the Moteus r4 has a connector for an additional encoder. If this works, I will not need to run the a cable for each encoder down the arm. This would also simplify the coding required.
I will be testing this later today once the adapter arrives.
The photo below is the current design for the first two joints that I'm currently building.
-
Demo of the Base Joint with Encoder
08/28/2024 at 20:04 • 0 comments -
Arm Design Progress
08/27/2024 at 03:38 • 0 commentsI have designed the first Joint and a half of the arm. I am already in the prosses of build these Joints. I like the look so far.
-
Moteus R4 Test
08/26/2024 at 20:21 • 0 comments -
Moteus with ROS2
08/26/2024 at 01:01 • 0 comments- Setup my ROS2 package to work with the ROS2 Moteus node
This has taken some time as the design of this system is based both on my Ubuntu WSL and my Pi 5. I have another motor arriving soon and I will start building out the arm.
-
Software Update
08/19/2024 at 01:29 • 0 commentsConnected the raspberry pi 5 to my existing ROS2 package. I can now communicate over ROS2 topics between the two. In order to do this with Ubuntu-24.04 on WSL (on my separate PC) I needed to create a virtual switch on Hyper-v to get the correct IP to communicate to each other.
The plan is to have the WSL do the simulation and compute the Inverse Kinematics, then publish the Joint angles. The pi will subscribe to the joint angles, run the joints to the correct positions the finally publish the actual joint angles back to the WSL. This way I can always see where the arm needs to be and where the arm currently is. Both of these positions will be visualized with RVIZ running on the WSL
I have also ordered one more 90kv motor and 2 moteus r4 motor drivers.
-
Joint Encoder Test
08/17/2024 at 02:20 • 0 commentsTest of the Joint with the encoder Installed.
(It sound much better in person, but I will be working to make it silent)
-
Encoder working well
08/14/2024 at 21:55 • 0 commentsI have finished coding the encoder, it works extremely well. I have also made it so no calibration is ever required. Once assembled, the joint will always know its exact position.
This Joint is extremely accurate because it has encoders on both the input motor and the output shaft. This means that it will not drift at any point. I can run the motor 360 degrees (120 input rotations) and after doing this the motor reads the same position to the last decimal point.
with the amount of accuracy this joint already has, there is a good chance i will be upgrading the output encoder to one of a higher accuracy as the encoder currently does not have enough values per revolution that I would like.
-
Encoder Mounted
08/14/2024 at 07:13 • 0 comments- Mounted the encoder
- Added more threaded inserts
I have mounted the encoder and confirmed that it works. Now i need to write some calibration code for the encoder to account for error (offset of encoder internally) to give a more accurate and clean reading. This calibration sequence should only need to be done after the joint is reassembled as the calibration values can be saved and reused on startup. Its important that these values can be saved because gathering these values for the calibrations would required the output to do at least one full rotation, which would suck if it needed to be done each startup. Once the encoders are calibrated, no homing sequence will need to be completed, the joint should always know its position even after reboot.
Side note, I believe there is a way to daisy chain these encoders. That would make life a lot easier because the motor drivers I plan to use are also able to be daisy chained. The less wires to get in the way, the better. My joint designs currently do not have a way to wire from itself to the next joint. I will be working on that soon.
Ideally all of the coding of the encoders will be done tomorrow and I will move onto the next thing.