feature post image

OpenCat 2.0 Released for Petoi Robot Dog and Robot Cat

Petoi's popular open source quadruped robotic pet framework OpenCat has been upgraded to 2.0 as the main branch with major updates to the Arduino codes in the GitHub repository.  You will notice major performance and stability improvement running OpenCat 2.0 on your Petoi four-legged robot dog Bittle and robot cat Nybble.

Open source robot dog Bittle running on OpenCat 2.0

We redesigned the code structure to make the workflow easier to understand and modify:

  • Improved the smoothness of motion and the speed of balance adaption.
  • Fixed many bugs in the original workflow. For example, the robot no longer skips commands randomly.
  • Combine WriteInstinct.ino and OpenCat.ino into a single OpenCat.ino. Use the #define MAIN_SKETCH macro to switch between the two modes.
  • Python API Updates and Demos
  • Token commands
    • Designed a new token "K" to send a whole skill array from the Python serial master through the serial port in real-time, then the skill array will be run it locally on the robot.
    • A new token "T" to call the last stored "K" skill.
    • Optimized the token command workflow: confirm the command is run successfully by printing the token as the response
    • Add random actions mode for the robot to make it more life-like. Use the token ‘z’ to toggle the feature. 
  • Others
    • Accelerate the IMU calibration and balancing by using a new MPU6050 function to avoid using the interrupt pin.
    • Allow entering the joint calibration state by placing the robot with one side up.
    • Developed a formalized servo class inherited from the AdafruitPWM servo library. Make it easier to change the parameters of 3rd party servos.
    • Use the built-in tone function to generate clean beeps and melody.
    • Add angle limits to avoid most cases of self-collision.
    • Put the skill-related functions into the Skill Class. Combine reused code blocks into single functions.
    • Make more use of the EEPROM and PRGMEM memory to save resources for flash and SRAM.
    • Mirror rightward gaits from the leftward gaits, to save static memory.
    • Allow both “newline” and “no-line ending” for the serial monitor.
    • Add a mode for the LD3320 voice recognition module (the current code works for Chinese).


    Back to blog

    Leave a comment

    Please note, comments need to be approved before they are published.