Nice to hear from you Karl! This was one of those projects where making the video and explaining it was 4x the work of actually building the thing, so it is great to see it appreciated!
An excellent design/build. Appreciate you taking time to explain your thought process and detail the build. Looking forward to seeing how it evolves as you learn and experiment. That hoverbot has a fun factor, I'd expect you probably already have ideas as to future mods.
Hi, I absolutely love our Videos and products! That’s also why your moteus starter kit is at the top of my birthday wish list! 😊 I am planning on powering it with a drill Battery and maybe adding some more motors in the future. That’s why I wanted to ask which exact Battery you are using (also in the robot dog) and if you think it could also handle some bigger or more motors. Thank you for reading!
The battery used in the hoverbot is a Bosch 18V drill battery. The size of motor that can be driven will be constrained by the motor phase current and electrical power. Each of the moteus controllers has different limits for these values, and different thermal properties regarding continuous operation, so there isn't one answer for "what size motor can it operate".
How did you drive the pid? I’m seeing so many different ways people have implemented pid and no consistent standard way. Where can I find a formal derivation that implements pid like you have? For example, why no integral term in inner loop? How did you know that won’t be needed?
Most uses of PID control have no formal derivation behind them and this project was no exception. In my experience, you want to avoid the I term always if possible.
Very stable control! You are using your pi3hat, which does not have a magnetometer, right? Is it sufficient for the yaw calculation to use the gyro value of the Z axis or have you also installed a magnetometer and fused the sensors?
Correct, there is no magnetometer. The yaw for the robot just uses gyros, which means it does drift a bit with time, but that is totally fine for a teleoperated platform.
Thanks for another interesting project! Question: can the pi3hat be used with a raspberry pi 5? Wouldn't think there would be a problem - but would like to check.
@@awesjosh I end up building something like that into almost every board I make, so it makes a lot of sense to have that as a stand-alone unit 🙂 Those who haven't struggled with power management might wonder why they'd need to spend money on a glorified power switch; I think it's up to us who have stubbed our toes to explain why ...
moteus uses a pll filter on the hall effect sensors for commutation purposes, and that is the reported velocity that was used for the outer velocity control loop. The bandwidth of that filter was somewhere between 50-100Hz, so it doesn't do much at low speed with the coarse resolution of the hall encoders.
Thank you! I do similar project and for now use the similar control approach but with some differences th-cam.com/video/LMvEsF9Y2AY/w-d-xo.htmlsi=PAa4gED8A2Uu-Ezu In the future I'm going to ustilize mpc for increasing the stability and the robot's speed
Cool! Thanks for sharing! As you can see from my video, you don't need to go to MPC to get significantly improved results. Probably the easiest ways to improve your system would be to see if the structure of your control laws can be improved (or perhaps copy the ones here), and the second would be to ensure your attitude and attitude rate solution are operating well and with a sufficiently high bandwidth. It could also be that your tuning is just sub-optimal. Are you using integrative terms anywhere (you probably shouldn't)?
Thank you for recommendations! Yes, I use integrative terms both in attitude loop and in velocity control loop. I have some suspicious about imu. It outputs data only with 100hz. Probably if I replace IMU to better one, the whole system will be more stable.
I'm not sure an integrative term for attitude is useful, certainly this robot does not use one. A feedforward term is probably a lot more valuable there if a plain PD is insufficient. While a 100Hz IMU update rate is borderline feasible, there are lots of things that could potentially make it problematic. That could be if you are just using pitch and not pitch rate, or if the IMU has a software configured low-pass filter, or if it is poorly mounted, or a host of other things. This robot uses a 400Hz update IMU for instance with a 200Hz onboard filter, uses the pitch rate in addition to the pitch, and is known to work well at up to that rate.
Super cool! Appreciate all of the details being included about the development process.
Nice to hear from you Karl! This was one of those projects where making the video and explaining it was 4x the work of actually building the thing, so it is great to see it appreciated!
Good to hear you're still doing awesome stuff. Keep it going, make more updates!
I'm working to keep them coming!
An excellent design/build. Appreciate you taking time to explain your thought process and detail the build. Looking forward to seeing how it evolves as you learn and experiment.
That hoverbot has a fun factor, I'd expect you probably already have ideas as to future mods.
Thanks for including the design, checking it out now, looks solid
Excellent! Nice work Bro!!
Thanks!
Hi, I absolutely love our Videos and products! That’s also why your moteus starter kit is at the top of my birthday wish list! 😊 I am planning on powering it with a drill Battery and maybe adding some more motors in the future. That’s why I wanted to ask which exact Battery you are using (also in the robot dog) and if you think it could also handle some bigger or more motors. Thank you for reading!
The battery used in the hoverbot is a Bosch 18V drill battery.
The size of motor that can be driven will be constrained by the motor phase current and electrical power. Each of the moteus controllers has different limits for these values, and different thermal properties regarding continuous operation, so there isn't one answer for "what size motor can it operate".
@@awesjoshThank you very much for your fast answer! 😊 It was very helpful
@@awesjoshWhich Battery did you use for the robot dog?
A Ryobi 18V 4Ah battery
@@awesjoshThank! :)
From watching your videos I have concluded your brain is on another level 🤔
How did you drive the pid? I’m seeing so many different ways people have implemented pid and no consistent standard way. Where can I find a formal derivation that implements pid like you have? For example, why no integral term in inner loop? How did you know that won’t be needed?
Most uses of PID control have no formal derivation behind them and this project was no exception. In my experience, you want to avoid the I term always if possible.
Hi man! I love what you build! I am waiting for more videos (maybe like the type of DevLogs, similar to the robot dog video.)
C'est juste splendide ❤
Very stable control!
You are using your pi3hat, which does not have a magnetometer, right?
Is it sufficient for the yaw calculation to use the gyro value of the Z axis or have you also installed a magnetometer and fused the sensors?
Correct, there is no magnetometer. The yaw for the robot just uses gyros, which means it does drift a bit with time, but that is totally fine for a teleoperated platform.
No ROS2? Was this pure C++? Amazing project!
Correct, this has no ROS2. You can see the code at: github.com/mjbots/hoverbot
Great video thank you for sharing
Thanks for another interesting project! Question: can the pi3hat be used with a raspberry pi 5? Wouldn't think there would be a problem - but would like to check.
Unfortunately no, it can't be used with a raspberry pi 5. It only works with a pi3 or pi4.
Opps checked the manual and it clearly states it isn't.
Looks like fun!
What's the power distribution (?) board beside the pi?
Thanks!
You called it, it really just does pre-charging and over-current faulting: mjbots.com/products/mjbots-power-dist-r4-5b
@@awesjosh I end up building something like that into almost every board I make, so it makes a lot of sense to have that as a stand-alone unit 🙂
Those who haven't struggled with power management might wonder why they'd need to spend money on a glorified power switch; I think it's up to us who have stubbed our toes to explain why ...
Hi! Thank you for sharing this video! Do you use any observers or filters to obtain wheel velocities?
moteus uses a pll filter on the hall effect sensors for commutation purposes, and that is the reported velocity that was used for the outer velocity control loop. The bandwidth of that filter was somewhere between 50-100Hz, so it doesn't do much at low speed with the coarse resolution of the hall encoders.
Thank you! I do similar project and for now use the similar control approach but with some differences th-cam.com/video/LMvEsF9Y2AY/w-d-xo.htmlsi=PAa4gED8A2Uu-Ezu
In the future I'm going to ustilize mpc for increasing the stability and the robot's speed
Cool! Thanks for sharing!
As you can see from my video, you don't need to go to MPC to get significantly improved results. Probably the easiest ways to improve your system would be to see if the structure of your control laws can be improved (or perhaps copy the ones here), and the second would be to ensure your attitude and attitude rate solution are operating well and with a sufficiently high bandwidth. It could also be that your tuning is just sub-optimal. Are you using integrative terms anywhere (you probably shouldn't)?
Thank you for recommendations!
Yes, I use integrative terms both in attitude loop and in velocity control loop.
I have some suspicious about imu. It outputs data only with 100hz. Probably if I replace IMU to better one, the whole system will be more stable.
I'm not sure an integrative term for attitude is useful, certainly this robot does not use one. A feedforward term is probably a lot more valuable there if a plain PD is insufficient.
While a 100Hz IMU update rate is borderline feasible, there are lots of things that could potentially make it problematic. That could be if you are just using pitch and not pitch rate, or if the IMU has a software configured low-pass filter, or if it is poorly mounted, or a host of other things. This robot uses a 400Hz update IMU for instance with a 200Hz onboard filter, uses the pitch rate in addition to the pitch, and is known to work well at up to that rate.
can I use it in electric skateboard?
While you could for a low power skateboard, something like a VESC would be a more appropriate option.
Those motors are an overkill
Yep, they just happened to be ones I had lying around. However, you can't likely get similarly sized ones any cheaper.
💙🤍❤ 🗼
put a claymore on it o_o