Difference between revisions of "Getting Started with Humanoid Robots"
(→Series Elastic and Quasi-Direct Drive Actuators) |
m (→Add wikilink to MuJoCo (MJX)) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
== Building Your Humanoid Robot == | == Building Your Humanoid Robot == | ||
− | In humanoid robotics, choosing the right components, for example, actuators and gearboxes is crucial. Folks can use planetary and cycloidal gear actuators for their precision and strength, along with Series Elastic and Quasi-Direct Drive actuators for smoother, more natural movements. Advanced designs like the MIT Cheetah actuator push the boundaries with fast, agile movements. Projects like the SPIN initiative are also key, as they make high-quality actuator technology more accessible, helping the field evolve and improve. | + | In humanoid robotics, choosing the right components, for example, actuators and gearboxes is crucial. Folks can use planetary and cycloidal gear actuators for their precision and strength, along with Series Elastic and Quasi-Direct Drive actuators for smoother, more natural movements. Advanced designs like the [https://humanoids.wiki/w/MIT_Cheetah MIT Cheetah] actuator push the boundaries with fast, agile movements. Projects like the SPIN initiative are also key, as they make high-quality actuator technology more accessible, helping the field evolve and improve. |
== Actuators and Gearboxes == | == Actuators and Gearboxes == | ||
Line 32: | Line 32: | ||
Some things to consider: | Some things to consider: | ||
− | The springs in SEAs are where the magic happens. Choosing the right stiffness is a balancing act between getting precise torque control and avoiding sluggish responses. | + | The springs in SEAs are where the magic happens. Choosing the right stiffness is a balancing act between getting precise torque control and avoiding sluggish responses. Since the spring is constantly flexing, you need sensors tuned to give accurate torque measurements. Do it regularly, and you'll keep those movements smooth and predictable. You want finely-tuned control loops to make SEAs shine. A high-frequency loop can make your robot more agile in handling external forces. PID controllers are a solid starting point, or you can try out some advanced strategies. |
− | + | Friction can really impact your torque control, especially in gearboxes and linkages. Using low-friction components and proper lubrication will help keep everything moving smoothly. Make sure your spring is positioned directly between the actuator and the joint. If not, your robot won’t get the full benefit of force sensing, and that precision will be lost.If your robot is doing a lot of high-impact activities, the springs can wear out. Keep an eye on them to avoid breakdowns when you least expect them. SEAs thrive on real-time feedback. Ensure your software can handle data quickly, maybe using a real-time operating system or optimized signal processing. | |
− | |||
− | |||
− | |||
− | Friction can really impact your torque control, especially in gearboxes and linkages. Using low-friction components and proper lubrication will help keep everything moving smoothly. | ||
− | |||
− | Make sure your spring is positioned directly between the actuator and the joint. If not, your robot won’t get the full benefit of force sensing, and that precision will be lost | ||
− | |||
− | |||
− | |||
− | SEAs thrive on real-time feedback. Ensure your software can handle data quickly, maybe using a real-time operating system or optimized signal processing. | ||
==== MIT Cheetah Actuator ==== | ==== MIT Cheetah Actuator ==== | ||
Line 97: | Line 87: | ||
====== Isaac Gym ====== | ====== Isaac Gym ====== | ||
− | Reinforcement Learning Training: Enables parallel environments for fast policy training. | + | [[Reinforcement Learning]] Training: Enables parallel environments for fast policy training. |
PHC Approach: Integrates AMP for real-time pose control, making it easier to teach new skills. | PHC Approach: Integrates AMP for real-time pose control, making it easier to teach new skills. | ||
Line 123: | Line 113: | ||
====== MuJoCo (MJX)====== | ====== MuJoCo (MJX)====== | ||
− | Offers a lightweight open-source alternative, supporting maximal coordinate constraints and easier to work with. The MuJoCo_MPC repository, created by Google DeepMind, is a toolset that combines Model Predictive Control (MPC) with the MuJoCo physics engine to create real-time behavior synthesis. With the advanced MJX extension, which uses GPU acceleration, it can simulate multiple environments in parallel. One approach is to try to replicate the techniques detailed in the AMP (Adversarial Motion Priors) paper to achieve agile humanoid behavior. For example, implementing a humanoid get-up sequence, which matches what was described in the AMP research. | + | Offers a lightweight open-source alternative, supporting maximal coordinate constraints and easier to work with. The MuJoCo_MPC repository, created by Google DeepMind, is a toolset that combines Model Predictive Control (MPC) with the [[MuJoCo]] physics engine to create real-time behavior synthesis. With the advanced MJX extension, which uses GPU acceleration, it can simulate multiple environments in parallel. One approach is to try to replicate the techniques detailed in the AMP (Adversarial Motion Priors) paper to achieve agile humanoid behavior. For example, implementing a humanoid get-up sequence, which matches what was described in the AMP research. |
There’s been collaboration between different projects, like Stompy, to get humanoid simulations up and running. You could try converting Gymnasium to handle the URDF (Universal Robot Description Format) file format. Although converting to MJCF (MuJoCo's XML-based format) may present some challenges, we can still get it to work and refine the motor and actuator setup. | There’s been collaboration between different projects, like Stompy, to get humanoid simulations up and running. You could try converting Gymnasium to handle the URDF (Universal Robot Description Format) file format. Although converting to MJCF (MuJoCo's XML-based format) may present some challenges, we can still get it to work and refine the motor and actuator setup. | ||
− | Although MuJoCo can be slower in single-environment simulations, the MJX extension and its parallel processing potential make it a solid competitor. Compared to enviroments, like NVIDIA's Isaac Gym, MuJoCo might stand out for its extensibility and rapid development. One goal could be to try recreate the walking, running, and getting-up behaviors described in the AMP paper and use them as a foundation for training robust humanoid movements in simulation. | + | Although [[MuJoCo]] can be slower in single-environment simulations, the MJX extension and its parallel processing potential make it a solid competitor. Compared to enviroments, like NVIDIA's Isaac Gym, MuJoCo might stand out for its extensibility and rapid development. One goal could be to try recreate the walking, running, and getting-up behaviors described in the AMP paper and use them as a foundation for training robust humanoid movements in simulation. |
====== VSim ====== | ====== VSim ====== | ||
Line 149: | Line 139: | ||
By understanding the nuances and strengths of each simulator, developers can refine their humanoid robots effectively. Using Isaac Sim, Isaac Gym, and complementary tools, a robust simulation approach ensures smooth virtual-to-physical transferability while reducing development time and costs. | By understanding the nuances and strengths of each simulator, developers can refine their humanoid robots effectively. Using Isaac Sim, Isaac Gym, and complementary tools, a robust simulation approach ensures smooth virtual-to-physical transferability while reducing development time and costs. | ||
+ | |||
+ | More resources are available at [https://humanoids.wiki/w/Learning_algorithms Learning Algorithms] | ||
== Real-World Testing == | == Real-World Testing == | ||
Line 159: | Line 151: | ||
== Advanced Customization and Community Engagement == | == Advanced Customization and Community Engagement == | ||
=== Open Source Projects === | === Open Source Projects === | ||
− | Contribute to | + | Contribute to an open-source project. For instance, platforms like GitHub host numerous projects where you can collaborate with others such as K-Scale https://github.com/kscalelabs. Check out [https://humanoids.wiki/w/Stompy Stompy!] |
+ | |||
=== Modular Design === | === Modular Design === | ||
Engage in modular robot design to easily swap components or aesthetics. This approach allows for extensive customization and upgrades over time. | Engage in modular robot design to easily swap components or aesthetics. This approach allows for extensive customization and upgrades over time. |
Latest revision as of 20:23, 16 May 2024
This is a build guide for getting started experimenting with your own humanoid robot.
This is incomplete and a work in progress; you can help by expanding it!
Contents
- 1 Building Your Humanoid Robot
- 2 Actuators and Gearboxes
- 3 Assembly Tips
- 4 Experimenting with Your Humanoid Robot
- 5 Real-World Testing
- 6 Advanced Customization and Community Engagement
- 7 Safety and Continuous Learning
Building Your Humanoid Robot[edit]
In humanoid robotics, choosing the right components, for example, actuators and gearboxes is crucial. Folks can use planetary and cycloidal gear actuators for their precision and strength, along with Series Elastic and Quasi-Direct Drive actuators for smoother, more natural movements. Advanced designs like the MIT Cheetah actuator push the boundaries with fast, agile movements. Projects like the SPIN initiative are also key, as they make high-quality actuator technology more accessible, helping the field evolve and improve.
Actuators and Gearboxes[edit]
Actuator Types and Design Inspirations[edit]
Planetary and Cycloidal Gear Actuators[edit]
These actuators remain popular in the robotics community due to their high torque output and compact form factors. Planetary gears are favored for their efficiency and ability to handle high power densities, crucial for humanoid robotics. Cycloidal gears offer superior load-bearing capabilities and minimal backlash, ideal for precise motion control.
MyActuator (just one option) offers a variety of planetary actuators. These actuators, while still relatively pricey, offer robust performance and are integral to the efficient functioning of the builds. Some models are:
RMD X4: A lightweight and compact actuator that provides precise control and high efficiency.
RMD X6: Offers a good balance of torque and speed, suitable for medium-sized applications.
RMD X8: Features a more powerful motor and higher torque capacity, making it ideal for more demanding tasks.
RMD X10: The most powerful actuator used, designed for high torque applications with excellent control features.
Series Elastic and Quasi-Direct Drive Actuators[edit]
Series Elastic Actuators (SEAs) are used in applications requiring safe and compliant human-robot interaction. They incorporate elastic elements, allowing for energy absorption and safer interactions. Quasi-Direct Drive Actuators provide a balance between the control fidelity of direct drives and the mechanical simplicity of geared systems, promoting natural and responsive movements.
Some things to consider:
The springs in SEAs are where the magic happens. Choosing the right stiffness is a balancing act between getting precise torque control and avoiding sluggish responses. Since the spring is constantly flexing, you need sensors tuned to give accurate torque measurements. Do it regularly, and you'll keep those movements smooth and predictable. You want finely-tuned control loops to make SEAs shine. A high-frequency loop can make your robot more agile in handling external forces. PID controllers are a solid starting point, or you can try out some advanced strategies.
Friction can really impact your torque control, especially in gearboxes and linkages. Using low-friction components and proper lubrication will help keep everything moving smoothly. Make sure your spring is positioned directly between the actuator and the joint. If not, your robot won’t get the full benefit of force sensing, and that precision will be lost.If your robot is doing a lot of high-impact activities, the springs can wear out. Keep an eye on them to avoid breakdowns when you least expect them. SEAs thrive on real-time feedback. Ensure your software can handle data quickly, maybe using a real-time operating system or optimized signal processing.
MIT Cheetah Actuator[edit]
The MIT Cheetah actuator design is a notable example that several community members are considering emulating. Its design optimizes for rapid, dynamic movements and could potentially set a standard for agile robotic locomotion. Its designed to pack a lot of power into a lightweight, compact system. It offers excellent torque and control without being bulky, making it perfect for mobile robots that need to be quick on their feet. Also, it's energy-efficient and provides a high torque-to-weight ratio, so robots can move fast and precisely, which is essential for those tricky, agile movements.
One of the coolest things about this actuator is how it manages to minimize backlash, giving you smooth, accurate control over the robot's motion. Its integrated design also means the motor and controller work together seamlessly, which keeps the system streamlined. Plus, the advanced control algorithms make it easy for the actuator to handle dynamic motions, whether it's fast acceleration or sharp turns. If you're building a robot that needs to move like a sprinter while staying super nimble, the MIT Cheetah actuator is an awesome choice.
Here is the MIT research paper if you are interested in a deeper dive.
Open-Source Development and Collaboration[edit]
SPIN: A Revolutionary Servo Project[edit]
The SPIN Project by Atopile is developing an open-source hardware project aimed at making it easier and more cost-effective to use BLDC servo motors. This project is particularly notable for its potential to democratize high-quality actuator technology, making it accessible for a broader range of developers and hobbyists.
Community Insights and Future Directions[edit]
Comprehensive Actuator Comparisons[edit]
The humanoid robotics community actively discusses the need for a universal platform to compare and contrast the cost and performance of commercially available actuators. This could involve developing a comprehensive database or chart detailing each actuator's cost per Newton-meter, control schemes, and RPM, providing a valuable resource for both newcomers and experienced developers.
Here is a scatter plot of actuators hosted at MIT
Custom Actuator Developments[edit]
Iris Dynamics electric linear actuators suggest they can match the capabilities of human muscles, making them particularly interesting for humanoid applications.
Assembly Tips[edit]
Community Forums[edit]
Leverage discussions from platforms like RobotForum to avoid common pitfalls. Whether it's selecting the right planetary gearbox or figuring out the optimal motor for each joint, community insights can be invaluable.
Programming and Control[edit]
ROS (Robot Operating System)[edit]
Start with ROS for an extensive suite of tools for programming and control, suitable for managing complex robotic functions. ROS serves as a valuable abstraction for comprehending the diverse components within a robotics system. However, its substantial nature may occasionally present challenges for modification for some users. The learning curve could be steep, and due to its emphasis on leveraging third-party packages, addressing issues can require additional effort and expertise.
Custom Software Solutions[edit]
Explore custom algorithms for adaptive control or reactive behaviors. Integrate advanced sensor feedback loops for real-time adjustments.
Experimenting with Your Humanoid Robot[edit]
Testing and Iteration[edit]
Virtual Testing Before Physical Implementation in Humanoid Robotics[edit]
NVIDIA's Isaac Sim and Isaac Gym, alongside other simulators, form a crucial foundation for designing and testing humanoid robots virtually. Insights and suggestions from experts working with these tools are captured below.
Isaac-Based Simulators and Frameworks[edit]
Isaac Sim[edit]
IDE Experience: Provides a comprehensive, if complex, simulation environment.
PhysX Engine: Utilizes the PhysX engine to handle both contact and joint constraints, though Isaac Sim currently does not fully expose closed-loop constraint capabilities.
Joint Constraints: Supports maximal coordinate systems, which include joint constraints that are common in articulated robots.
Virtual Sensors: Allows the simulation of perception with virtual cameras and LiDARs, providing policy training inputs rendered with NVIDIA RTX.
Isaac Gym[edit]
Reinforcement Learning Training: Enables parallel environments for fast policy training.
PHC Approach: Integrates AMP for real-time pose control, making it easier to teach new skills.
Gait Optimization Issues: While 17-DOF walking tasks work well, gait reward optimization needs refinement for more complex tasks.
Closed-Loop Articulation: Belt-driven mechanisms provide a viable alternative for certain closed-loop designs.
Orbit Framework[edit]
Unified Training Framework: Integrates Isaac Sim and Isaac Gym for modular and consistent policy validation.
OmniIsaacGymEnvs: Offers predefined tasks like walking and standing.
Omniverse Isaac Gym[edit]
Shift in Development: NVIDIA is consolidating Isaac Gym into Isaac Sim through Omniverse, providing the best of both worlds.
Challenges: Demands powerful NVIDIA GPUs, potentially limiting some development workflows.
External Tools and Comparative Platforms[edit]
Legged Gym[edit]
A repository showcasing the state-of-the-art in legged robot training.
MuJoCo (MJX)[edit]
Offers a lightweight open-source alternative, supporting maximal coordinate constraints and easier to work with. The MuJoCo_MPC repository, created by Google DeepMind, is a toolset that combines Model Predictive Control (MPC) with the MuJoCo physics engine to create real-time behavior synthesis. With the advanced MJX extension, which uses GPU acceleration, it can simulate multiple environments in parallel. One approach is to try to replicate the techniques detailed in the AMP (Adversarial Motion Priors) paper to achieve agile humanoid behavior. For example, implementing a humanoid get-up sequence, which matches what was described in the AMP research.
There’s been collaboration between different projects, like Stompy, to get humanoid simulations up and running. You could try converting Gymnasium to handle the URDF (Universal Robot Description Format) file format. Although converting to MJCF (MuJoCo's XML-based format) may present some challenges, we can still get it to work and refine the motor and actuator setup.
Although MuJoCo can be slower in single-environment simulations, the MJX extension and its parallel processing potential make it a solid competitor. Compared to enviroments, like NVIDIA's Isaac Gym, MuJoCo might stand out for its extensibility and rapid development. One goal could be to try recreate the walking, running, and getting-up behaviors described in the AMP paper and use them as a foundation for training robust humanoid movements in simulation.
VSim[edit]
Claims to be 10x faster than other simulators.
ManiSkill/Sapien[edit]
Provides tactile simulation and visual-based policy training that is up to 100x faster than Isaac Sim.
Best Practices for Virtual Testing[edit]
- Incremental Complexity: Start simple and build up to more complex environments and tasks.
- Cross-Simulator Validation: Validate robot models across simulators (e.g., Isaac and MuJoCo) to ensure robustness.
- Incorporate Real-World Fidelity: Include sensor noise and imperfections for better policy generalization.
- Optimize Resources:
Use Azure's A100 GPUs for Isaac training.
Capture real-world data to refine virtual training.
By understanding the nuances and strengths of each simulator, developers can refine their humanoid robots effectively. Using Isaac Sim, Isaac Gym, and complementary tools, a robust simulation approach ensures smooth virtual-to-physical transferability while reducing development time and costs.
More resources are available at Learning Algorithms
Real-World Testing[edit]
Gradually transition to physical testing, beginning with simple tasks and moving to more complex interactions.
Data Collection and Analysis[edit]
Camera Systems[edit]
Consider integrating advanced camera systems like those from e-con Systems or Arducam for visual feedback and navigation. Discuss camera choices, considering factors like latency, resolution, and integration ease with your main control system.
Advanced Customization and Community Engagement[edit]
Open Source Projects[edit]
Contribute to an open-source project. For instance, platforms like GitHub host numerous projects where you can collaborate with others such as K-Scale https://github.com/kscalelabs. Check out Stompy!
Modular Design[edit]
Engage in modular robot design to easily swap components or aesthetics. This approach allows for extensive customization and upgrades over time.
Safety and Continuous Learning[edit]
Safety Protocols[edit]
Always implement robust safety measures when testing and demonstrating your robot.