- 78
- 956 597
Harrison Low
Australia
Приєднався 14 лип 2013
I've enjoyed making things for as long as I can remember, and juggling for almost as long. On this channel I combine these two passions by building the world's first juggling robot!
Some other projects that I'm hoping to tackle at some point are:
- Add-on for my microscope so that I can control it with a console controller
- Automated mushroom fruiting chamber that automates the entire process of mushroom growing
- AI controlled laser pointer to entertain my cats so that they leave me alone when I'm trying to work
If you'd like to support this Channel and help to bring Jugglebot (and my other projects) to life, you can find my Patreon page below. If you'd like to be a little more direct (and discreet), you can send me BTC here:
BTC: bc1qwwzz4thfv732trjvpge0xh599l3m3f7w775mkz
Thankyou to Zulip for the free org account!!!
Some other projects that I'm hoping to tackle at some point are:
- Add-on for my microscope so that I can control it with a console controller
- Automated mushroom fruiting chamber that automates the entire process of mushroom growing
- AI controlled laser pointer to entertain my cats so that they leave me alone when I'm trying to work
If you'd like to support this Channel and help to bring Jugglebot (and my other projects) to life, you can find my Patreon page below. If you'd like to be a little more direct (and discreet), you can send me BTC here:
BTC: bc1qwwzz4thfv732trjvpge0xh599l3m3f7w775mkz
Thankyou to Zulip for the free org account!!!
My juggling robot can finally juggle! 🤹♀️ | PDJ #22
JLC3DP 3D Printing Starts at $0.3, Up to $60 New User Coupons: jlc3dp.com/?from=HarrisonLow
-------------------------------------------------------------------------
Phew! It was quite a push to get this video finished before leaving for holidays, but I'm so glad I did it; I think the result is great, and I hope you do too!
Very keen to see what you all think.
-------------------------------------------------------------------------
There are a ton of links mentioned in this video, so I've tried to group them together:
🔗🔗 Miscellaneous 🔗🔗
💰 My Patreon:
www.patreon.com/HarrisonLow
⚡PDJ Zulip site:
pdj.zulipchat.com/
👩💻 PDJ Github repo (note that all recent work is in /ros_ws):
github.com/Project-DeepBlue-Juggling/Jugglebot/tree/develop
💻 Jugglebot Onshape model:
cad.onshape.com/documents/4d6545620c55797d3bb36f68/w/01230a9885db97bc19cc596d/e/bf84687f92e1fd7b5e47b388
📜 Paper on Stewart Platform Geometry Errors:
www.researchgate.net/publication/342499104_An_Error_Identification_and_Compensation_Method_of_a_6-DoF_Parallel_Kinematic_Machine
🔗🔗 My videos 🔗🔗
▶ Last video on the linear actuators:
ua-cam.com/video/bQl6gj_6oa8/v-deo.html
▶ PDJ 5 (Options for Jugglebot's Eyes):
ua-cam.com/video/ONTt7Dlseno/v-deo.html
▶ PDJ 9 (Base-mounted hand motor):
ua-cam.com/video/g5o_dwZuLNE/v-deo.html
▶ PDJ 12 (No hand motor):
ua-cam.com/video/h-th1lcGFq0/v-deo.html
▶ PDJ 15 (Where I moved to magnetic platform joints):
ua-cam.com/video/ACidat_EQ3Q/v-deo.html
▶ Livestream update 12 (Collapses due to magnetic joints):
ua-cam.com/users/livejic-ykPe_44
▶ Livestream update 18 (Capstan hand design):
ua-cam.com/users/live4U79_uN36yY
▶ Livestream update 23 (Simulation improvements):
ua-cam.com/users/livezBH5Tuxx4QE
🔗🔗 Other videos 🔗🔗
▶ Alex Barron 14 Ball Flash (World Record):
ua-cam.com/video/WK6AlhTjUbY/v-deo.html
▶ Stuff Made Here "Moving hoop won't let you miss"
ua-cam.com/video/myO8fxhDRW0/v-deo.html
▶ "CableEndy Juggler":
ua-cam.com/video/7HNAL8ZKdyM/v-deo.html
-------------------------------------------------------------------------
00:00 - Intro
00:14 - What can Jugglebot do?
01:00 - Robot overview
01:18 - The arm
03:32 - The hand
06:03 - The brain
08:48 - The eyes?
09:19 - Jugglebot's Problems
13:18 - I didn't do this alone
13:44 - What's to come?
-------------------------------------------------------------------------
Phew! It was quite a push to get this video finished before leaving for holidays, but I'm so glad I did it; I think the result is great, and I hope you do too!
Very keen to see what you all think.
-------------------------------------------------------------------------
There are a ton of links mentioned in this video, so I've tried to group them together:
🔗🔗 Miscellaneous 🔗🔗
💰 My Patreon:
www.patreon.com/HarrisonLow
⚡PDJ Zulip site:
pdj.zulipchat.com/
👩💻 PDJ Github repo (note that all recent work is in /ros_ws):
github.com/Project-DeepBlue-Juggling/Jugglebot/tree/develop
💻 Jugglebot Onshape model:
cad.onshape.com/documents/4d6545620c55797d3bb36f68/w/01230a9885db97bc19cc596d/e/bf84687f92e1fd7b5e47b388
📜 Paper on Stewart Platform Geometry Errors:
www.researchgate.net/publication/342499104_An_Error_Identification_and_Compensation_Method_of_a_6-DoF_Parallel_Kinematic_Machine
🔗🔗 My videos 🔗🔗
▶ Last video on the linear actuators:
ua-cam.com/video/bQl6gj_6oa8/v-deo.html
▶ PDJ 5 (Options for Jugglebot's Eyes):
ua-cam.com/video/ONTt7Dlseno/v-deo.html
▶ PDJ 9 (Base-mounted hand motor):
ua-cam.com/video/g5o_dwZuLNE/v-deo.html
▶ PDJ 12 (No hand motor):
ua-cam.com/video/h-th1lcGFq0/v-deo.html
▶ PDJ 15 (Where I moved to magnetic platform joints):
ua-cam.com/video/ACidat_EQ3Q/v-deo.html
▶ Livestream update 12 (Collapses due to magnetic joints):
ua-cam.com/users/livejic-ykPe_44
▶ Livestream update 18 (Capstan hand design):
ua-cam.com/users/live4U79_uN36yY
▶ Livestream update 23 (Simulation improvements):
ua-cam.com/users/livezBH5Tuxx4QE
🔗🔗 Other videos 🔗🔗
▶ Alex Barron 14 Ball Flash (World Record):
ua-cam.com/video/WK6AlhTjUbY/v-deo.html
▶ Stuff Made Here "Moving hoop won't let you miss"
ua-cam.com/video/myO8fxhDRW0/v-deo.html
▶ "CableEndy Juggler":
ua-cam.com/video/7HNAL8ZKdyM/v-deo.html
-------------------------------------------------------------------------
00:00 - Intro
00:14 - What can Jugglebot do?
01:00 - Robot overview
01:18 - The arm
03:32 - The hand
06:03 - The brain
08:48 - The eyes?
09:19 - Jugglebot's Problems
13:18 - I didn't do this alone
13:44 - What's to come?
Переглядів: 57 526
Відео
Join Me Live Every Friday! - Weekly Jugglebot Updates
Переглядів 3,4 тис.Рік тому
Join Me Live Every Friday! - Weekly Jugglebot Updates
My New Linear Actuators are SO MUCH BETTER! | PDJ #21
Переглядів 296 тис.Рік тому
My New Linear Actuators are SO MUCH BETTER! | PDJ #21
From Idea to Prototype: The Jugglebot Journey (so far)
Переглядів 7 тис.Рік тому
From Idea to Prototype: The Jugglebot Journey (so far)
Catch My Jugglebot Talk and Help Solve a Tech Puzzle (CAN Bus) | PDJ #20
Переглядів 2,5 тис.Рік тому
Catch My Jugglebot Talk and Help Solve a Tech Puzzle (CAN Bus) | PDJ #20
A Robot That Juggles? Why Did I Even Start This?? | Channel Intro
Переглядів 11 тис.Рік тому
A Robot That Juggles? Why Did I Even Start This?? | Channel Intro
Designing High-Performance Linear Actuators: Speed & Stiffness for my Juggling Robot | PDJ#19
Переглядів 477 тис.Рік тому
Designing High-Performance Linear Actuators: Speed & Stiffness for my Juggling Robot | PDJ#19
Jugglebot Prepares to See: Installing My Juggling Robot's Depth Camera! | PDJ #18
Переглядів 5 тис.Рік тому
Jugglebot Prepares to See: Installing My Juggling Robot's Depth Camera! | PDJ #18
Colour Conundrum: Help Jugglebot Find Its New Look! | PDJ #17
Переглядів 961Рік тому
Colour Conundrum: Help Jugglebot Find Its New Look! | PDJ #17
Knot Anymore! Jugglebot's (Practically) Knot-Free Design! - PDJ #16
Переглядів 2,8 тис.Рік тому
Knot Anymore! Jugglebot's (Practically) Knot-Free Design! - PDJ #16
Jugglebot's Joints: Universal No More! - PDJ #15
Переглядів 10 тис.Рік тому
Jugglebot's Joints: Universal No More! - PDJ #15
New Jugglebot Design and Channel Updates - PDJ #14
Переглядів 1,1 тис.Рік тому
New Jugglebot Design and Channel Updates - PDJ #14
Building a Better Juggling Robot with ChatGPT
Переглядів 1,1 тис.Рік тому
Building a Better Juggling Robot with ChatGPT
Jugglebot is SO MUCH FASTER! - PDJ #12
Переглядів 7 тис.2 роки тому
Jugglebot is SO MUCH FASTER! - PDJ #12
PDJ #10 - Starting on Jugglebot's Brain
Переглядів 3862 роки тому
PDJ #10 - Starting on Jugglebot's Brain
PDJ #8 - Finally a Hand That Can Throw!
Переглядів 9102 роки тому
PDJ #8 - Finally a Hand That Can Throw!
Project: DeepBlue Juggling #7 - Project Update
Переглядів 7382 роки тому
Project: DeepBlue Juggling #7 - Project Update
Project: DeepBlue Juggling #6.3 - How I designed an Electronics Box for Jugglebot
Переглядів 2872 роки тому
Project: DeepBlue Juggling #6.3 - How I designed an Electronics Box for Jugglebot
Project: DeepBlue Juggling #6.2 - PCB Design
Переглядів 2782 роки тому
Project: DeepBlue Juggling #6.2 - PCB Design
Project: DeepBlue Juggling #6.1 - The Hand V3 - Now with Added Compliance!
Переглядів 2762 роки тому
Project: DeepBlue Juggling #6.1 - The Hand V3 - Now with Added Compliance!
Project: DeepBlue Juggling #6 - Project Update
Переглядів 2972 роки тому
Project: DeepBlue Juggling #6 - Project Update
Project: DeepBlue Juggling #5 - Ideas for Jugglebot's Eyes
Переглядів 5432 роки тому
Project: DeepBlue Juggling #5 - Ideas for Jugglebot's Eyes
How to Design a Linear Actuator - Project: DeepBlue Juggling #4.2
Переглядів 14 тис.2 роки тому
How to Design a Linear Actuator - Project: DeepBlue Juggling #4.2
Project: DeepBlue Juggling #4.1 - The Hand V2
Переглядів 4082 роки тому
Project: DeepBlue Juggling #4.1 - The Hand V2
Project: DeepBlue Juggling #4 - Jugglebot's New Design
Переглядів 5612 роки тому
Project: DeepBlue Juggling #4 - Jugglebot's New Design
Project: DeepBlue Juggling #3 - The Hand V1
Переглядів 7022 роки тому
Project: DeepBlue Juggling #3 - The Hand V1
Project: DeepBlue Juggling #2 - Jugglebot's Arm V1
Переглядів 1,3 тис.2 роки тому
Project: DeepBlue Juggling #2 - Jugglebot's Arm V1
What kind of backlash do you get?
Very little. I haven't actually measured this but when the strings are tensioned correctly, I can't move either the motor or the push-rod without seeing the other move
Maybe you could crimp some ring style connectors on the end of the sychromesh.
Could this design concept work for an affordable, household motion sim?
I've thought about this quite a lot and I think it could work! You'd need to use beefier materials and motors, and you'd likely want to modify the design a bit to make things a little more solid, but with a bit of TLC I think it could work 😊
Ok I've got to ask for someone for intelligent than myself to ask. When i first started following this thread i really didn't expect this. I love it but maybe I'm too sci-fi at heart. I was honestly, seeing the size of your actuators, thinking you would make two to four specialised "HarrisonLow-Stuart" platforms. I imagined the base plate to be utilised, installed as the start point to legs or arms. Figuring the self leveling aspect was being utilised instead as an ankle to keep the body balanced through a step motion. Honestly, i clicked this wasn't the original goal. But to my question to the intellectuals here. It seems theoretically do able, maybe the Stuart platform would need outer plating like in the images just to keep the joints from flexing to far. Idk😂 But it made me think
Главное вовремя отбежать, когда они падают и начинают хаотично тыкать в разные стороны. :)
*PDJ Weekly Livestream #41 - Motion Capture Update: Refining Ball Tracking for Jugglebot* * *0:45** Calibration Tools:* Calibration tools are now stored near the door, minimizing interference with the motion capture cameras. * *1:52** Qualisys Site Visit:* A Qualisys representative visited to help optimize the motion capture setup. Key takeaways: dirty markers are not a major issue, "active filtering" can mitigate sunlight interference, and camera masking can prevent camera cross-interference. The L-frame for calibration can be positioned freely, not necessarily on the ground. * *10:42** Improved Ball Tracking:* Ball tracking now handles multiple balls and minor occlusions with accurate landing predictions. Playback data shows landing predictions vary slightly even with identical throw repetitions, highlighting the inherent variability in robotic control. * *18:20** Kalman Filter Timing Issues:* A timing discrepancy between the motion capture data stream (300 fps), the robot's processing rate (200 fps), and the Kalman filter's assumed rate was causing fluctuating prediction accuracy. Correcting this significantly improved prediction consistency. * *21:39** Alternative Tracking Methods:* Discussion of using velocities and accelerations for motion classification instead of quadratic regression. Noise amplification from derivatives poses a challenge. * *34:14** Computer Vision for Tracking:* Normal cameras with depth estimation are a possibility but unlikely to match the sub-millimeter accuracy of the motion capture system. Depth camera data was previously found to be too noisy (around 10cm). * *40:04** Call for ROS2 Developers:* Request for assistance with ROS2 performance characterization and analysis to identify potential bottlenecks. * *43:37** Last Stream of the Year:* Holiday greetings and announcement of a break until January. * *46:37** Tracking Data on Github:* Motion capture data (three-ball and five-ball juggling) will be uploaded to Github for community access and experimentation. File formats under consideration: TSV, FBX, and JSON. * *48:19** Alternative Reflective Material:* Testing reflective string as a potential alternative to retroreflective tape for covering the juggling balls, with plans to crochet a sleeve. * *50:28** Ball Characteristics and Tracking:* Speculation about whether the sand-filled juggling balls' unusual flight characteristics contribute to tracking challenges. I used gemini-exp-1121 on rocketrecap dot com to summarize the transcript. Input tokens: 28415 Output tokens: 502
could you order some aluminum spheres anodized or powder coated w/ a tough retroreflective surface?
That's an interesting idea! Sounds expensive though 🤔 Have you seen similar spheres before or know whether such a coating/post-processing procedure exists to make aluminium retroreflective?
I think you can reduce the complexity of determining whether a ball is on a parabolic path by ignoring any tracked object below the top possible height of the robot hand. Nothing above that point will be anything other than a thrown ball, and nothing below that point needs tracking because by then it will either be caught or not. This is how is human jugglers track the balls when we look up at the pattern. We don’t pay any attention to the balls in our hands.
I like this idea of a fairly straightforward filter! I think this will be particularly useful when Jugglebot is juggling with itself, though for now (when in 'partner juggling mode') I want it to be constantly on the lookout for potential balls. I quite like the simplicity that this offers and I'll keep it in mind as a way to filter for possible balls! Cheers 😊
I missed the start of the stream and was only able to join the Live for a few minutes, so imagine my surprise when I came back later and was able to watch it properly from the beginning :)
chosing a website that u can check without needing to make an account is such a based thing, it makes all that informations accessible from internet without any walls hiding things away
That's the hope! I really value keeping everything as accessible as possible 😁
Position one of the cameras directly above the jugglebot looking straight down to eliminate high-throw dead spots?
This is an interesting idea! I worry that only having one camera looking down from above won't fully resolve the problem because we need (at least) two cameras to get 3D position data of the markers. That begs the question: why not have two cameras looking down from above? I think that this would work well and would potentially let us track the entire way up to the ceiling, though I also want to track other spaces in the room so that I can toss a ball to Jugglebot and have that ball be tracked for as long as possible. With only four cameras, this becomes tricky... At the end of the day I think the best solution is just "more cameras", but we'll have to wait a while before that happens 😅 Cheers for the suggestion! I'm still keeping this in mind and will reconsider this if the current camera positions becomes an issue
16:42 I did come back to watch the video! I used to do some work with four-point tracking for drones and small autonomous machines/devices in an enclosed volume (gymnasium) so getting to watch you calibrate your volume in near-realtime was fantastic! Gonna watch the rest of the video now :)
That's awesome! I'm glad you enjoyed watching the process ☺️ In hindsight I could've improved the precision of the tracking around the base if I'd waved the wand around there a little more, but it did the job for our demo 😁
Congratulations on your engagement!
Cheers! ☺️
To detect projectile motion its sounds like you might be doing something more complex than needed. Just use the velocities (vectors) of the ball over time (could be from the your kalman filter), and use their differences between them to compute the acceleration vectors. Average over your time window, then subtract gravity from that and look at the length of the resulting vector. If its large, its not projectile motion.
Hmm yeah you could be on to something here. I'll give this a go! Cheers for the suggestion ☺️
One note on the hand competition is that I'd probably have the submission period open for around 2 months or so. Do you think you'd be likely to make a submission?
Why dont you use 65lbs fishing line, with dyneema? Same size line as you have, much higher break strength
I understand that your thread is keflar. Dyneema is a lot stronger and lighter. I don't know about bend (around a pulley) fatigue compared to kevlar.
How hard would it be to scale this down to neck or wrist size?
I wouldn't want to do it! 😂 Head size: maybe. Wrist size would be very tricky. You could, however, make a very small 3 or 6 DoF parallel mechanism without linear actuators like mine if you use push/pull rods (or just strings if you only need 3 DoF). Check out Stuff Made Here's auto-aiming pool cue to see how that might work
The motion control stuff feels like something from a stuff made here video, but I'm not sure which one. He has had a bunch of hit a target type projects.
Yeah he's definitely done similar things with his basketball, bow and arrow aimbot, and the auto-aiming pool cue, but he never goes into enough detail to know exactly what he's doing! Maybe it's time to rewatch some of his stuff... for research purposes... 😁
As for breaking strength of the line, if it broke at your knot, then it pretty much always does and if it's just a bowline or similar, you lose about 40-60% right there as far as I recall. Then again, still far from the state strength. Splicing it, if possible, will pretty much get you to the regular line's own strength. Meaning, it wouldn't break at the splice. But splicing really thin line is tricky/sometimes near impossible. I guess you have already looked into various fishing knots? They tend to be the strongest around.
I may be wrong but couldn't you lose one pull on the bottom..? In the instance of the blue bottom, stand the single pulley up along the CF tube so it's only job is to turn the string 90d from the motor pulley to the axis of the tube. Basically, keep the one under the CF tube, but turn it so it aims towards the pulley.
*PDJ Weekly Livestream #39: Jugglebot Motion Control Update and More* * *1:06** ROS2 Remains:* Despite limitations, ROS2 will continue to be used for the project for now, allowing for a deeper understanding of its capabilities and potential challenges. * *3:09** Hardware Upgrades Reduce Wobble:* Newly installed carbon fiber nylon parts significantly reduce platform wobble during high-speed movements, as demonstrated through slow-motion footage. * *11:27** High-Speed Camera and Lights:* The livestreamer uses a Freefly Wave camera with an IRIX 150T 3.0 macro lens and Amaran 300C RGB lights for slow-motion capture. * *15:10** New CAN Connector Mount:* The CAN connector mount has been redesigned for stability and features a red color for easy visibility and safety. * *18:09** E-Stop Functionality Restored:* The emergency stop (E-Stop) system is working as intended, enabling safe and efficient recovery from errors during various stages of robot operation. * *22:45** Careful State Transitions:* Transitioning between different robot control modes (e.g., space mouse, shell, juggling) requires careful management to prevent abrupt movements and potential damage. * *24:49** State Machine Improvements:* A new state machine with standby idle and standby active states, along with a generic control mode state, facilitates smoother transitions and future expansion with new control modes. * *37:03** Motion Control Insights:* A paper on quadcopter trajectory generation provides inspiration for a new approach to Jugglebot's motion control, potentially replacing the previous "catch plane" concept with a more flexible, path-based system. * *39:41** Ball Trajectory Simulation:* A new simulation tool helps visualize ball trajectories and their intersection with Jugglebot's workspace, aiding in the development of path planning algorithms. * *46:39** Path Optimization Considerations:* Potential path optimization criteria include minimizing leg velocities/accelerations, minimizing distance traveled, and maintaining platform stability. * *49:44** Open-Loop vs. Closed-Loop Control:* The impact of open-loop control (relying on throw accuracy) and closed-loop control (using motion capture for ball tracking) on path planning will be explored. * *56:02** Upcoming Stream Break:* There will be no livestreams for the next two weeks due to a planned trip. I used gemini-1.5-pro-exp-0827 on rocketrecap dot com to summarize the transcript. Cost (if I didn't use the free tier): $0.04 Input tokens: 28466 Output tokens: 523
It seems to me like having completely computed paths every catch is quite extreme. Especially once you have a network of these things and a decision on one affects all the others. Couldn’t you pre program the whole sequence and then just do slight deviations to manage real life variation? Seems like that is what a person does too, muscle memory plus a little bit of correction.
I agree that this feels quite over the top, but I also have to constantly remind myself that computers don't work the same way as our brains (not to mention muscle memory), so what feels excessive for us might not be so extreme for the computer... Without reading the paper and seeing how many paths they were able to compute (per second), I wouldn't have thought that this would be feasible, but now I think it actually might be... IMO it's certainly worth a try, since this feels like an extremely robust way to handle catches
If you need to get stiffer and stronger, check out this new material. 3D printing nerd just did an interview with the creator. Amazing stuff but expensive at 275 USD for 500gms TULLOMER-500G Replacement for aluminum, steel, magnesium, PEEK, PEKK, PAEK, ULTEM, Nylon CF. Key Features: Ultra lightweight High stiffness and strength Superior dimensional stability No need for annealing
Whew, this stuff looks nuts! That price is pretty crazy though - I think I'd be saving money by having parts CNC'd out of metal (even without a sponsorship!). I'll keep an eye out for if the price drops. Cheers for letting me know about this!
Hey, Cool project, just discovered your channel. Couple of thoughts, the line you use is quite rough which could potentially contribute to the precision issues you're facing. There's a product using a dimensionally controlled kevlar cable, it's a bit thick for your application perhaps (2mm), but a lot more round. For the TPU and bearing sleeves, UHMWPE could also be an option, also thin silicone sleeves with a high shore value could. Last thing regarding the precision, I haven't seen any tensioners for the strings and how do you control the stack up of the string in the spool ?
About the hand, you are mentioning possibly using a cone. How much does the weight of the hand affect the speed of the system ? I guess thats one more answer you would get with a testing rig! Just putting it out there : an alternative to a cone that would be lighter would be where the side of the cone is open ? I am not sure what is the name of the shape, but check pictures of sputnik, remove the ball at the bottom, put your current hand instead and maybe add more rods ?
I don't think hand weight will affect throwing/catching performance very much; the current printed hand only weighs 26.5g and the new balls are less than half the weight of the old balls (70g new vs 150g old) so we've got plenty of 'room to grow' That hand idea is interesting! I've got plenty of carbon fiber tubes lying around so I could make a test dummy without _too_ much effort. That would solve the 'rolling around the hand' problem and probably cut down on weight and air resistance! The more I think about it, the more I like this idea! Cheers for the suggestions 😊
RE: ROS, I'm with you on that. My humble opinion is that you should probably not think about it until you REALLLLYYY have performance issues. In which case you should measure first and then optimise IF needed. For sure there would be a cost in switching to a different option, should you do it later as opposed to now, but is ROS really the biggest problem today ?
Very good points! ROS definitely isn't the biggest problem right now and I'm leaning heavily towards doing as you suggest and leaving any 'optimizations' for later if/when issues actually arise. Cheers for the advice 😊
im sorry i dont have time for the whole video; does your linear actuator have capability to "relax" when unpowered and shrink when to much opposing force is on it?
Yep! These actuators are super back-driveable 😁
Have you looked into road marking compound? It survives cars and trucks driving over it, so it´s durable. The white compound might be translucent in thin layers as well.
Good thinking! I can't seem to find any that's not either ludicrously expensive and/or in massive quantities 🤔
Hi Harrison, the async benchmark is more like 49 times faster than ROS Python not 200 times 😜 In any case, I don't think performance is as much a ROS issue as a language issue. ROS C++ would give you much better performance overall, not just in messaging. YMMV depending on what else your code is doing but a 10 to 100 X increase is possible. Obviously your appetite for coding in C++ would be a big factor. Python is much better for rapid prototyping. I don't know what is involved but maybe porting from ROS Py to ROS C++ if and when performance becomes an issue could be considered.
Haha yeah, I realised when watching the recording back that my math was a little off there 😅 I like this option! I'm strongly leaning towards not 'solving' the performance problem until it becomes an actual, real, problem, and porting over to C++ seems like a good first approach for if/when performance does become an issue. Cheers for the suggestion!
Maybe you could use a tube to throw the ball in the hand? You could make different holders for the tube and simply throw the ball in on one side of the tube. This would be repeatable and also the velocity of the ball would always be the same.
Sad I missed the Live, but definitely wanted to chime in with regards to ditching ROS. I was working on my first-ever inverse kinematics project that involved computer vision, trying to do it all with libraries, cores, and all kinds of hodgepodged things talking to each other, brute-forcing as much of my own code to get it to work as possible. Unfortunately, it was a chaotic mess, and some people pushed me toward ROS. This was about 15 years ago, when things were very different, and when I was very different, so I can't speak for modern iterations and such, but: it was helpful in an organizational sense but limiting in a functionality sense. I could use ROS to achieve most of what I needed, with generous help and assistance from ROS's community, but when ROS began to hold me back, I was also held back by the community. After years of struggle and making the decision to finally ditch it, I can definitely say, ROS is a great way for beginners or people who are relatively new, to get an understanding of structure and good technique, but beyond that, it feels like trying to build a microscopic precision sculpture out of Duplo blocks. Yes, it's easier to have your hand held, but it just doesn't work out in the long run.
Use a modified cable wedge clamp design with a set screw to lock cables.
Very cool! Really fun to see you work the logic of the state machine... Do you mindmap your thinking in an app? I use obsidan canvas as it is so easy.... aka the issue of refactoring the drive data to its own topic? Thanks and keep at it!!!!
Cheers! I don't use any apps right now for this sort of brainstorming as I don't have the best setup for that right now. Just good ol' pen and paper for me 😊
Does the ODrive have any latching user-settable unassigned flags? The teensy could write to the flag when homed.
I wish it did, but as far as I can tell, there aren't any. This would very neatly solve this problem if only it were possible! Cheers for the suggestion 😊
Another thought on making the balls retroreflective (discussed around 1:14:00) that I should've mentioned is to spray the balls with some sort of glue/resin and coat them in tiny glass spheres (since these spheres are what usually makes retroreflectivity work). I'm interested in this idea, though I have a few concerns: 1 - This will be messy (and possible hazardous if the balls are small enough) 2 - The balls will likely wear off over time, affecting both tracking ability and the messiness noted above. 3 - From what I've read, the balls need to be 'submerged' in the glue/resin just the right amount for retroreflectivity to work. IIRC around 45-55% submerged is the ideal amount, and I'm not sure if they're even retroreflective at all if they're fully encased. I'd definitely want to do some testing on this before coating an entire ball, though I'm unsure if it's even worth going down that route at all... 🤔
There are some spray on reflective paints that work on a similar principle. Look up Rust-Oleum 214944 or Albedo 100 Reflective Spray. They are semi-transparent. Some reviews on these products are not good but it appears that it is important to keep the nozzle clear and only apply light coats. It is worth keeping in mind that you are looking for IR reflectivity at whatever wavelength the camera lighting is. Reflectivity at this wavelength may be better or worse than what you see in the visible spectrum. Mica is a very good reflector of IR light. Pearlescent paints contain mica. Maybe a pearlescent paint or lacquer would work. Maybe some clear pearlescent nail varnish 😛 Another idea,... Safety clothing and camping gear sometimes has reflective fabric sewn in. This stuff is flexible and durable. It may be a good alternative for covering a ball or even making a hacky sack ball with it. It may be what Kai's ball is wrapped in.🤔
3M have a reflective fabric. Look up 3M Scotchlite Reflective Material.
@@hooks2998 Very interesting! I heard back from Kai and it turns out he used different tape than I did... Very cool to know that there's fabric out there as well. Might pick some up next time I put in a 'reflective stuff' order! Cheers for the suggestion 😊
Very impressive project! 👍
I'm not into programming/coding, but, to me, this episode was way less interesting than the preceding ones.
Haha that's fair enough! I also tend to enjoy hardware design more than software, but with a project like this, we can't escape needing to do *some* software work. Hopefully everything goes smoothly and I won't be stuck on software development for too long 😊
I have no experience with it but retro reflective spray seems better to me since you don`t change the the tactile feel like you would with tape. Or because I expect the wraping of square tape around a sphere something realy difficult and not worth investing time in. You propably spend more time thinking about it so I'll just shut up. Greetings From the Central European Time zone :) PS: or any kind of paint.
Interesting thoughts! I want to do a bit more reading into the spray/add-on retroreflective beads - specifically regarding the size at which they become harmful... Some of the products I've found go down to single-digit microns, and I can't imagine that's nice to breathe in... As for the tape, you're right that it'll probably be a little tricky to apply it, but thankfully there are certain (almost elliptical) shapes that *do* wrap a sphere nicely. It'll "just" be a matter of cutting those shapes accurately... Also, while I'm almost certainly thinking about these things more than anyone else, that certainly doesn't mean that I consider all options or am aware of all possible issues. (Almost) all suggestions that I've been given are helpful in some way 😊 Cheers!
yo, imma need those design files. my girl saw some of the clips of the actuator moving and had some ideas, so now i need to build this... its an emergency... =)
I'm probably missing something as this is the first video I have watched on this project. But the three pulley system you use from the motor to get the right orientation. You are using it to translate the liner motion 90 degrees to the motor. Why can't you just mount the motor 90 degrees instead. I mean it looks slick all inline.
You could terminate the cables using eyelets. That would also make them very easy to swap out.
Logs slow things down, sometimes that fixes bugs when things are being done too fast / close together.
Very interesting! I'll keep this in mind as I continue with my troubleshooting
brake resistors are really job specific. Got to do the calculation for the brake power. This is the weight of the load, time to stop and a few other things. I have always went with what the manufacturer recommends. Industrial Allen Bradley (Rockwell) will have a chart/calculator to tell you what size drive and brake you need. This also keeps the parameter settings straight forward by using all the same system. Also, if you start getting into higher end drive systems some of them are modular. Allowing them to be all hooked together and then controlled through tcp or other standard protocol.
To elaborate on what I talked about at 9:33 and 13:30 regarding MonitorStates missing messages due to being overloaded(?), I'm still very unsure of why this happens, and would appreciate any thoughts on why this might be happening! 🤔
I don't know the tools you are working with but standard ways to deal with this are 1: make processing of the heartbeats super fast, maybe by throwing them on some kind of queue. In traditional embedded you'd do this by having a fast interrupt handler that just sets some flags for the main code to collect. 2: Introduce some spread to the heartbeats, either delays before they start (random would work) or different delays between subsequent heartbeats (again random would work).
I'm fairly sure 1. is how ROS is supposed to process the messages, especially with the QoS profile I showed in the stream, and it's how it works with 'normal' subscriptions (ie. with my current solution). I'm just unsure why these State classes don't behave the same way 🤔 I think 2. would also work, though I'm not sure I like the idea of artificially adding in *any* delay to any messages... Just feels wrong...
Can you disconnect the +5V wire on the USB to the teensy, so that it will only get power from the 12V supply?
Does that... work? I quite like this idea!
@@harrisonlow It should work. I just double-checked with ChatGPT: "Yes, you can disconnect the power line from the supply side as long as the device on the other end of the USB cable has its own power source. The USB communication relies on the data lines (D+ and D-) rather than the power lines (VCC and GND). However, ensure that both devices share a common ground to maintain proper communication. If the grounds are not connected, you may encounter communication issues."
I've done some reading into this and I actually think this is what you're supposed to do when powering from a PSU/battery 😅 It says on the 'welcome card' to "cut [a trace] to separate VIN from VUSB, if using battery or external power". I did think it was odd that the ODrives were sort of lighting up when CAN was disconnected but the Teensy USB was connected... I definitely didn't intend on power ever running in that direction... The bad news is that the trace-to-be-cut is underneath the board... The board which is now soldered to a piece of veroboard... Thankfully the trace is right by the edge though, and I was able to _just_ sever the trace with a scalpel. Now, the Teensy only responds if the CAN bus is connected 😁 (also, recovering from disruptions due to lost power during firmware upload should allegedly be fine thanks to the on-board 'boot' button) Cheers, as always, for your suggestions! 😊
One general best practice in software is to make invalid states unrepresentable. For example in your case you have a few flags you set to indicate progressing through the various phases of initialization. If you never want to have to think about the case where the later ones got set without the earlier ones, you can replace the all the flags with a single enum with values something like uninitialized, homed, and leveled). This, similar to your state machine's state, ensures the system is reporting exactly one coherent state (what ever the enum says), and can't even express invalid combinations of them (like leveled but not homed)
Very cool! Thanks for suggesting this. I'll do some reading/thinking about this. At a glance, it does seem like a more robust way to track these phases 🤔 Cheers 😊
Go online and find a game dev and Ai programmer. Make a physics game to simulate the juggling bot and the controls with the same camera input. And let it learn how in parallel processes
This is absolutely in Jugglebot's future! Building a simulation environment that replicates the robot would go a long way towards opening this project up and making it easier for others to contribute. It's just one more thing that takes time and effort... Hopefully we get there soon! 😁🤞
@harrisonlow mount an accelerometer on the tossing hand and record the data for me doing the same programed motions then power it down and walk it through it full range of motion and i can build something in unity.. I will treat the outputs as A. B. C. Z. And give you a setting menu to set the limits for acceleration and speed for each axis. This is the best I can do. You will need someone better versed in AI to handle the "game bot" I can setup the kinematics in the sim and maybe improve the prediction tables a bit but I'm on the edge of my knowledge. If it was a true cartesian table with an ABZ head it be a lot simpler to path prediction. Without falling into squares and confusion, slowing the reactions in a decay
@@ZoeyR86 Very cool! I appreciate your keenness to help out 😍 Because this sim environment will undoubtedly end up being a fairly substantial project in and of itself, I want to take some time to figure out the right software/structure to use for it. Eg. I haven't spent much time looking into unity but I've never heard of it being used for actual physics simulations; these are usually done in something like NVIDIA Issac Sim, Webots, Mujuco etc. For example, one of the things that needs to be working for this simulation to be operable by other people is for my OS to be reproducible on other machines. This is something that Joe is helping me with: to construct a Docker container that'll allow anyone to run my code in an identical environment as what I've got. Without this in the background, a shared sim environment would be extremely difficult to synchronise with my code and get working on different machines
@harrisonlow this is true, but the same nvidia Cuda physics engine runs in unreal and unity. Unreal is the more customizable of the two, but unity is very quick to get up and running also your 100x more likely to get others to work with it. Half the software you just listed cost 20k plus for a license seat I was trying to stick with something a large number of people know. Either way, the offer stands. the project has been a joy ride. I have actually been looking at other methods to make fast stable actuators for other things.
Use nylon for the bearing sleeves, and make them concave to suit tube. Clamp the chain.
very cool, but one thing I didn't think was cool is that the actuator has a slightly large area in terms of its total diameter, and it seems like it would be complicated to adapt it for other activities... how would I fix the actuator for different activities... anyway, it's very interesting, mainly because it uses all carbon fiber, which I think is a sensational material.