2023 Bipedal Animatronic (low fidelity)
This project started with the actuator design, due to the fact that servos increase exponentially in price as they go up in size rather than linearly. If servos were used, the price of motors alone for this project would have brought it into an extremely high cost range as the size needed would have been roughly $750 per actuator. This was solved by just building the servos from scratch in order to reduce overall cost. The actuators shown in the picture are $3 for the smallest, $4, and $6 for the largest, respectively. Although not shown, there is a head/computer-case that includes control boards as well as a small computer, monocular camera, and other sensors. Its design includes an internal battery bank as well as a speaker and microphone setup. It's currently a work in progress. The long term goal is to eventually run full SLAM software on the onboard computer instead of just localization, although a much more powerful GPU would be needed. Update: The stepper-servos failed over time so the high fidelity version that is currently in development uses off the shelf servo motors instead. This page will be updated soon when the high fidelity version is prototyped.
It uses a custom made chatbot that features an integrated control system, allowing the language model to control its navigation and arm movements by using an interface with the python script as well as being a chat agent. The integrated control system can be customized for any use case including screen-less devices, car systems, home automation, TV control, etc.
A sample conversation with the integrated control chatbot can be found at the bottom of this page under the photos of the parts.
TargetRoom, LeftArm, RightArm, LeftHand, and RightHand are all variables in the python script that the language model can manually change and control. This set-up can be customized to make any type of integrated control chatbot, with any use case. In this example it's controlling the bipedal mobile chatbot, although more practically it could easily be customized to make an advanced home automation chatbot that can control lights, lock or unlock doors, control tv, etc.
[>:hi]
TargetRoom = followMode
LeftArm = resting
RightArm = resting
LeftHand = open
RightHand = open
[MobileBot: Hello there, how can I assist you today?]
[>:how do i make a cake]
TargetRoom = followMode
LeftArm = resting
RightArm = resting
LeftHand = open
RightHand = open
[MobileBot: Making a cake typically involves combining flour, sugar, baking powder, eggs, butter, and milk in a mixing bowl, and then baking the mixture in an oven for a specified amount of time. Would you like a specific recipe or more detailed instructions?]
[>:how about a chai cake]
TargetRoom = followMode
LeftArm = resting
RightArm = resting
LeftHand = open
RightHand = open
[MobileBot: Sure! I can find you a recipe for chai cake. Would you like me to search for one and provide you with the instructions?]
[>:yes]
TargetRoom = followMode
LeftArm = resting
RightArm = resting
LeftHand = open
RightHand = open
[MobileBot: Great! Here is a recipe for chai cake: In a mixing bowl, combine 2 cups all-purpose flour, 1 1/2 cups granulated sugar, 2 teaspoons baking powder, 2 teaspoons ground cinnamon, 1 teaspoon ground ginger, 1/2 teaspoon ground cardamom, 1/2 teaspoon ground cloves, and 1/2 teaspoon salt. Add 1 cup brewed chai tea, 1/2 cup vegetable oil, and 2 large eggs, and mix until well combined. Pour the batter into a greased 9-inch cake pan and bake in a preheated 350 degree Fahrenheit oven for 35-40 minutes, or until a toothpick inserted in the center comes out clean. Let cool before frosting with your choice of frosting. Enjoy!]
[>:can you hold this cup of flower for me]
TargetRoom = followMode
LeftArm = resting
RightArm = held-out
LeftHand = open
RightHand = closed
[MobileBot: Sure, I can hold that for you. Please hand me the cup and I will use my right hand to hold it.]
[>:thank you, you can put your arm back down now]
TargetRoom = followMode
LeftArm = resting
RightArm = resting
LeftHand = open
RightHand = open
[MobileBot: Of course, you're welcome. I'll put my arm back down now.]
[>:what type of frosting would be good on a chai cake]
TargetRoom = followMode
LeftArm = resting
RightArm = resting
LeftHand = open
RightHand = open
[MobileBot: A cream cheese frosting or a vanilla buttercream would go well with a chai cake. Would you like me to find a specific recipe or instructions for either of those frostings?]
[>:cream cheese frosting? how would that compare with vanilla buttercream?]
TargetRoom = followMode
LeftArm = resting
RightArm = resting
LeftHand = open
RightHand = open
[MobileBot: Cream cheese frosting is a tangy and slightly sweet frosting that pairs well with the warm and spicy flavors of the chai cake. It has a thicker and creamier texture compared to vanilla buttercream. Vanilla buttercream, on the other hand, is a sweeter and lighter frosting that provides a nice balance to the spiciness of the cake. It has a fluffier texture and is easier to spread than cream cheese frosting. Ultimately, the choice between the two frostings comes down to personal preference. Would you like me to provide you with recipes or instructions for both frostings so that you can decide?]
[>:can you go to the living room]
TargetRoom = living-room
LeftArm = resting
RightArm = resting
LeftHand = open
RightHand = open
[MobileBot: I am on my way to the living room now.]
[>:can you come back into the kitchen]
TargetRoom = kitchen
LeftArm = resting
RightArm = resting
LeftHand = open
RightHand = open
[MobileBot: I have arrived in the kitchen. How can I assist you?]
[>:i need to grab some more ingredients from the pantry, can you follow me]
TargetRoom = followMode
LeftArm = resting
RightArm = resting
LeftHand = open
RightHand = open
[MobileBot: I will switch to follow mode and stay behind you as you go to the pantry. Please lead the way.]
[>:okay can you hold this small bag of cake mix]
TargetRoom = followMode
LeftArm = resting
RightArm = held-out
LeftHand = open
RightHand = closed
[MobileBot: Sure, please hand me the bag of cake mix and I will hold it for you.]
[>:is cake healthy]
TargetRoom = followMode
LeftArm = resting
RightArm = held-out
LeftHand = open
RightHand = closed
[MobileBot: Cake is typically not considered a healthy food as it usually contains high amounts of sugar and fat. However, enjoying cake in moderation as part of a balanced diet is okay. Is there anything else I can assist you with?]
[>:how are sugars, carbs, protein, and fat different in terms of healthiness]
TargetRoom = followMode
LeftArm = resting
RightArm = held-out
LeftHand = open
RightHand = closed
[MobileBot: Sugars, carbs, protein, and fats all play different roles in our bodies and can have different effects on our health. Carbs are our body's main source of energy, but consuming too many processed carbs can lead to weight gain and other health issues. Protein is important for building and repairing tissues in our body, but consuming too much animal-based protein can increase the risk of heart disease. Fats are necessary for several bodily functions, but consuming too much saturated and trans fats can also increase the risk of heart disease. As for sugar, it is best to limit intake as it has been linked to many health issues such as obesity, diabetes, and heart disease. Is there anything else I can assist you with?]
[>:i need help with a presentation now, can you explain how i should organize my slides]
TargetRoom = followMode
LeftArm = resting
RightArm = held-out
LeftHand = open
RightHand = closed
[MobileBot: Certainly! A good way to organize a presentation is by starting with an attention-grabbing introduction and then providing an outline or agenda for what will be covered. After that, go into detail on each point, using clear and concise language and visual aids such as graphs or charts if necessary. Make sure to include a conclusion that summarizes the main points and provides a call-to-action if applicable. Is there anything else I can assist you with?]
[>:oh i can take that bag of flower back, thanks for holding it]
TargetRoom = followMode
LeftArm = resting
RightArm = resting
LeftHand = open
RightHand = open
[MobileBot: No problem, happy to assist you.]