A ROS2 Self Balancing Robot
ฝัง
- เผยแพร่เมื่อ 15 เม.ย. 2024
- In our first-year engineering module, we proudly present BiStable, a two-wheel inverted pendulum robot that can steer as-well as balance. Equipped with the ROS2 framework, BiStable can be controlled wirelessly via a gamepad or through hand tracking using an external camera.
Operating on a Raspberry Pi 4 8GB, BiStable communicates data to the ESP32 via microROS. Its two NEMA 17 stepper motors, driven by A4988 stepper drivers, allow for precise PID tuning in real-time via the gamepad interface. Additionally, an equilibrium offset feature accommodates off-center payloads, enabling non-zero balancing angles.
To streamline usability, PID constants are stored in EEPROM, eliminating the need for recalibration at startup. While successful, our project could benefit from enhancements such as a more accurate gyroscope to reduce drift, implementing a Kalman filter for improved performance, and upgrading to brushless stepper motors for smoother operation.
For further details and project documentation, visit our GitHub repository at github.com/TheHassanShahzad/BiStable_scripts. BiStable comprises three additional repositories for various functionalities and enhancements - วิทยาศาสตร์และเทคโนโลยี
Creative video, thank you :)
Glad you liked it!
How did you connect ROS2 and Pybullet ? and ROS2 and Joystick ? Any packages?
The work in pybullet was separate to ROS2 however in another project I did connect them th-cam.com/users/shorts7H_1pL-8Ow8?feature=shared . The joystick was easy using a python library called approx eng input. I can share the code for the YT short demo if you’d like
@@hassanportal5865 I wounder PyBullet not support ROS2 directly like gazebo. Gazebo communicate with topic and services. I think PyBullet connect with ROS2 with directly Python Pybullet library. Right? I found approx eng input library. Thank you.
Just curious about the battery and boards positioning. I think they should be as low as possible, maybe keep the boards if worried about EMI, but battery probably can moved down and split on both sides
Hi it is actually the opposite. Moving the centre of mass of an inverted pendulum robot helps with balancing instead of making it harder. For example try balancing a broomstick on your hand with the brush at the top and then with the brush closer to you. Splitting the battery is also not necessarily but if you want another battery then I guess that is a solution
which software do you use for simulation?
Hi I used PyBullet which you can import as a library into a python script
@@hassanportal5865 thx!
I’m inspired ❤ I would love it so much if you would accept to be my teacher
I’m requesting and soo much appreciated if you would accept 😭🙏
Reinforcement learning can be perform better than PID
It's probably not as fast or efficient though.
Sure but why??
Generally true, and especially so for multi-DOF, but in this case, it's just a single screw axis, right? It's just easier to change by hand here
@@f4rtboss862false, pid performs better here. Even Boston dynamics has a model based approach. Only idiots rely fully on a RF black box.