{"id":14962025,"url":"https://github.com/petoicamp/opencat","last_synced_at":"2025-05-13T21:08:52.724Z","repository":{"id":38394687,"uuid":"326441188","full_name":"PetoiCamp/OpenCat","owner":"PetoiCamp","description":"An open source quadruped robot pet framework for developing Boston Dynamics-style four-legged robots that are perfect for STEM, coding \u0026 robotics education, IoT robotics applications, AI-enhanced robotics application services, research, and DIY robotics kit development. ","archived":false,"fork":false,"pushed_at":"2025-04-08T07:28:27.000Z","size":59532,"stargazers_count":3953,"open_issues_count":7,"forks_count":477,"subscribers_count":85,"default_branch":"main","last_synced_at":"2025-04-28T14:57:08.027Z","etag":null,"topics":["ai","arduino","block-coding","education","iot","legged-robot","quadruped","quadruped-robot-gaits","raspberry-pi","robot-cat","robot-dog","robot-kit","robot-pet","robotics","robotics-education","simulation","stem","visual-programming","walking"],"latest_commit_sha":null,"homepage":"https://www.petoi.com","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PetoiCamp.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-03T15:42:00.000Z","updated_at":"2025-04-28T04:29:02.000Z","dependencies_parsed_at":"2024-01-12T17:27:36.181Z","dependency_job_id":"8623e4c7-ad8d-4db0-8b65-8654892f797a","html_url":"https://github.com/PetoiCamp/OpenCat","commit_stats":{"total_commits":770,"total_committers":14,"mean_commits":55.0,"dds":"0.16753246753246753","last_synced_commit":"902c3192224833202c429f59df9678b60d838989"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PetoiCamp%2FOpenCat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PetoiCamp%2FOpenCat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PetoiCamp%2FOpenCat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PetoiCamp%2FOpenCat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PetoiCamp","download_url":"https://codeload.github.com/PetoiCamp/OpenCat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254028991,"owners_count":22002283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","arduino","block-coding","education","iot","legged-robot","quadruped","quadruped-robot-gaits","raspberry-pi","robot-cat","robot-dog","robot-kit","robot-pet","robotics","robotics-education","simulation","stem","visual-programming","walking"],"created_at":"2024-09-24T13:28:47.064Z","updated_at":"2025-05-13T21:08:47.713Z","avatar_url":"https://github.com/PetoiCamp.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenCat\n\nOpenCat is the open-source Arduino and Raspberry Pi-based quadruped robotic pet framework developed by Petoi, the maker of futuristic programmable robotic pets.\n\n![](https://github.com/PetoiCamp/NonCodeFiles/blob/master/gif/walk.gif?raw=true)\n\n![](https://github.com/PetoiCamp/NonCodeFiles/blob/master/gif/run.gif?raw=true)\n\nInspired by Boston Dynamics' Big Dog and Spot Mini, Dr. Rongzhong Li started the project in his dorm at Wake Forest University in 2016. After one year of R\u0026D, he founded Petoi LLC and devoted all his resources to developing open source robots. \n\nThe goal is to foster collaboration in quadruped(four-legged) robotic research, education, and engineering development of agile and affordable quadruped robot pets, bring STEM concepts to the mass, and inspire newcomers (including many kids and adults) to join the robotic AI revolution to create more applications.\n\n![](https://github.com/PetoiCamp/NonCodeFiles/blob/master/gif/slope.gif?raw=true)\n\nThe project is [a complex quadruped robot system](https://www.petoi.com/pages/petoi-programmable-quadruped-robot-system) for anyone exploring quadruped robotics. We want to share our design and work with the community and bring down the hardware and software costs with mass production. OpenCat has been deployed on all Petoi's bionic palm-sized, realistic lifelike [cute robot cat Nybble](https://www.petoi.com/collections/robots/products/petoi-nybble-robot-cat?utm_source=github\u0026utm_medium=code\u0026utm_campaign=nybble) and\n[high-performance robot dog Bittle](https://www.petoi.com/collections/robots/products/petoi-bittle-robot-dog?utm_source=github\u0026utm_medium=code\u0026utm_campaign=bittle). We now have established a production line and can ship these [affordable robotic kits and accessories](https://www.petoi.com/store?utm_source=github\u0026utm_medium=code\u0026utm_campaign=store) worldwide.\n\nThis project provides a base open source platform to create amazing programmable gaits, locomotion, and deployment of inverse kinematics quadruped robots and bring simulations to the real world via block-based coding/C/C++/Python programming languages.  \n\nOur users have deployed many robotics/AI/IoT applications:\n- [robot dog with autonomous movement \u0026 object detection](https://www.petoi.com/blogs/blog/reid-graves-robotics-ai-applications-with-bittle-robot-dog-raspberry-pi)\n- [Raspberry Pi robotics projects](https://www.petoi.com/blogs/blog/raspberry-pi-robotics-projects-with-petoi-open-source-quadruped-robots)\n- [NVIDIA Issac simulations and reinforcement learning on our robots](https://www.youtube.com/playlist?list=PLHMFXft_rV6MWNGyofDzRhpatxZuUZMdg)\n- [developed visual and lidar-based SLAM with ROS using Bittle and Raspberry Pi](https://www.youtube.com/watch?v=uXpQUIF_Jyk\u0026list=PLHMFXft_rV6MWNGyofDzRhpatxZuUZMdg\u0026index=6)\n- [imitation learning using Tiny Machine Learning Models with Petoi Bittle and Raspberry Pi](https://www.learnwitharobot.com/p/imitation-learning-with-petoi-bittle)\n- [IoT automation of a robot fleet with AWS to improve worker safety](https://www.petoi.com/blogs/blog/aws-iot-robot-fleet-demo-with-petoi-bittle)\n- [3D-Printed Accessories](https://www.petoi.com/blogs/blog/petoi-bittle-bittle-x-robots-3d-printed-robot-accessories)\n- build their own [DIY 3D-print robot pets](https://www.petoi.com/pages/3d-printed-robot-dog-robot-cat) powered by OpenCat\n\n![](https://github.com/PetoiCamp/NonCodeFiles/blob/master/gif/stand.gif?raw=true)\n\n![](https://github.com/PetoiCamp/NonCodeFiles/blob/master/gif/NybbleBalance.gif?raw=true)\n\nWe've successfully crowdfunded these two mini robot kits and shipped thousands of units worldwide. \n\nWith our [customized Arduino-Uno board](https://www.petoi.com/products/nyboard-customized-arduino-board) and [high-performance servos](https://www.petoi.com/products/quadruped-robot-dog-bittle-servo-set) coordinating all instinctive and sophisticated movements(walking, running, jumping, backflipping), one can clip on [various sensors](https://www.petoi.com/products/petoi-sensor-pack) and [camera](https://www.petoi.com/products/intelligent-camera-module) to bring in perception and inject artificial intelligence capabilities by mounting a Raspberry Pi or other AI chips(such as Nvidia Jetson Nano) through wired/wireless connections. \n \nPlease see [Petoi FAQs](https://www.petoi.com/pages/faq?utm_source=github\u0026utm_medium=code\u0026utm_campaign=faq) for more info.\n\nAlso, Check out [all of the OpenCat and Petoi robot user showcases](https://www.petoi.camp/forum/showcase).\n\n![](https://github.com/PetoiCamp/NonCodeFiles/blob/master/gif/ball.gif?raw=true)\n\n## Setup  Process:\n\nOpenCat software works on both Nybble and Bittle, controlled by NyBoard based on ATmega328P. More detailed documentation can be found at the [Petoi Doc Center](https://docs.petoi.com).\n\nTo configure the board:\n\n1. Download the repo and unfold. Remove the **-main** (or any branch name) suffix of the folder.\n\n2. Open the file OpenCat.ino, select your robot and board version.\n```cpp\n#define BITTLE    //Petoi 9 DOF robot dog: 1x on head + 8x on leg\n//#define NYBBLE  //Petoi 11 DOF robot cat: 2x on head + 1x on tail + 8x on leg\n\n//#define NyBoard_V0_1\n//#define NyBoard_V0_2\n#define NyBoard_V1_0\n//#define NyBoard_V1_1\n```\n\n3. Comment out ```#define MAIN_SKETCH``` so that it will turn the code to the board configuration mode. Upload and follow the serial prompts to proceed.\n```cpp\n// #define MAIN_SKETCH\n```\n\n4. If you activate ```#define AUTO_INIT```, the program will automatically set up without prompts. It will not reset joint offsets but calibrate the IMU. It's just a convenient option for our production line.\n\n5. Plug the USB uploader to the NyBoard and install the driver if no USB port is found under Arduino -\u003e Tools -\u003e Port.\n\n6. Press the upload button (-\u003e) at the top-left corner in Arduino IDE.\n\n7. Open the serial monitor of Arduino IDE. You can find the button either under Tools, or at the top-right corner of the IDE.\n\nSet the serial monitor as **no line ending** and **115200** baud rate.\nThe serial prompts:\n```\nReset joint offsets? (Y/n)\nY\n```\n\nInput ‘Y’ and hit enter, if you want to reset all the joint offsets to 0.\n\nThe program will do the reset, then update the constants and instinctive skills in the static memory.\n\n8. IMU (Inertial Measurement Unit) calibration.\n\nThe serial prompts:\n```\nCalibrate the IMU? (Y/n):\nY\n```\nInput ‘Y’ and hit enter, if you have never calibrated the IMU or want to redo calibration.\n\nPut the robot flat on the table and don't touch it. The robot will long beep six times to give you enough time. Then it will read hundreds of sensor data and save the offsets. It will beep when the calibration finishes.\n\nWhen the serial monitor prints \"Ready!\", you can close the serial monitor to do the next step.\n\n9. Uncomment ```#define MAIN_SKETCH``` to make it active. This time the code becomes the normal program for the major functionalities. Upload the code.\n```cpp\n#define MAIN_SKETCH\n```\nWhen the serial monitor prints \"Ready!\", the robot is ready to take your next instructions.\n\n10. If you have never calibrated the joints’ offsets or reset the offsets in Step2, you need to calibrate them. If you boot up the robot with one side up, it will enter the calibration state automatically for you to install the legs. Otherwise, it will enter the normal rest state\n\n11. You can use the serial monitor to calibrate it directly. Or you may plug in the Bluetooth dongle, and use the Petoi app (on Android/iOS) for a more user-friendly interface. The mobile app is available on:\n\n* IOS: [App Store](https://apps.apple.com/us/app/petoi/id1581548095)\n* Android: [Google Play](https://play.google.com/store/apps/details?id=com.petoi.petoiapp)\n\nYou can refer to the calibration section in the user manual (https://bittle.petoi.com/6-calibration) and Guide for the Petoi App(https://docs.petoi.com/app-guide).\n\n12. you can use the infrared remote or other applications (such as the Petoi App, Python, serial monitor ... etc.) to play with the robot (https://bittle.petoi.com/7-play-with-bittle).\n\nFor updates:\n* star this repository to receive timely notifications on changes.\n* visit www.petoi.com and [subscribe to our official newsletters](https://www.petoi.com/pages/subscribe-petoi-newsletter) for project announcements. We also host a forum at [petoi.camp](https://www.petoi.com/forum).\n* follow us on [Twitter](https://twitter.com/petoicamp), [Instagram](https://www.instagram.com/petoicamp/), [Facebook](https://www.facebook.com/PetoiCamp/), [Linkedin](https://www.linkedin.com/company/33449768/admin/dashboard/), and [YouTube channel](https://www.youtube.com/c/rongzhongli) for fun videos and community activities.\n\n![](https://github.com/PetoiCamp/NonCodeFiles/blob/master/gif/backflip.gif?raw=true)\n\n## Resources:\n* [Advanced tutorials made by users](https://www.youtube.com/playlist?list=PLHMFXft_rV6MWNGyofDzRhpatxZuUZMdg)\n* [Review, open-box, and demos by users](https://www.youtube.com/playlist?list=PLHMFXft_rV6PSS3Qu5yQ-0iPW-ohu1sM3)\n* [OpenCat robot showcase by users](https://www.petoi.com/pages/petoi-open-source-extensions-user-demos-and-hacks)\n* [OpenCat robot gallery](https://www.petoi.com/pages/robot-pet-gallery)\n\nOpenCat robots have been used in robotics education for K12 schools and colleges to teach students about STEM, coding, and robotics:\n- [robotics education showcases](https://www.petoi.com/blogs/blog/tagged/showcase+education)\n- [STEM \u0026 Robotics Curriculum \u0026 Resources for Teaching Coding \u0026 Robotics](https://www.petoi.com/pages/resources-curriculum-stem-coding-robot)\n- [Robotics competitions](https://www.petoi.com/blogs/blog/robot-competitions-with-petoi)\n- [Petoi robotics contest](https://www.petoi.com/blogs/blog/petoi-spring-2024-robotics-contest-winners)\n\nThe [old repository for OpenCat](https://github.com/PetoiCamp/OpenCat-Old) is too redundant with large image logs and is obsolete with no further updates.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetoicamp%2Fopencat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetoicamp%2Fopencat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetoicamp%2Fopencat/lists"}