Skip to content

UCLy/INIT2

Repository files navigation

The PetitCat Project

The PetitCat Project uses open source software combined with open source hardware to enable the Python code of an AI project to interface on a real-time basis via Wi-Fi with lower-level C/C++ compiled code of a robotic embodiment. It implements the low-level layers of a Brain-Inspired Cognitive Architecture (BICA) to generate autonomous behaviors.

The project has lower cost software and hardware requirements than robotic projects utilizing more formal frameworks such as ROS2. Of more importance, the PetitCat Project readily allows the researcher to customize the project to her/his research requirements, and involves a modest learning curve. While the PetitCat Project was initially created to allow symbol grounding, enaction, active inference, predictive coding, and developmental and constructivist learning, it is suitable for a wide range of people, from the student to the serious AI/AGI/BICA researcher.

petitcat logo

Repository architecture

.
├── autocat          # The python application
├── docs             # Documentation
├── petitcat_arduino # The arduino application
├── tests            # Test scripts
├── LICENSE          # License terms
├── main.py          # Run this program on your PC            
└── README.md        # This file. Read it all!

Getting started

  • Clone the projet to your local machine.
  • Move file arduino_secrets.h into folder peticat_arduino/src/wifi and specify your wifi parameters in it.
  • Set default value #define ROBOT_ID 0 or configure your robot's specifics in Robot_define.h.
  • Download file petitcat_arduino.ino to the robot using the arduino IDE.
  • Read the robot's IP address in the arduino IDE terminal.
  • Connect your PC to the same wifi as the robot
  • Run test_remote_control_robot.ipynb or test_remote_control_robot.py on your PC to test remote controlling the robot.
  • Configure your arena and the IP address of your robots in RobotDefine.py
  • Run the main.py python application on your PC with the name of your arena and of your robots as arguments. For example: python -m main chezOlivier 1

Documentation

Test documentation

  • test_remote_control_robot.md Helps you test the communication between your PC and your robot.
  • Other Python programs in this repository allow interfacing your Python AI/AGI/BICA project with the PetitCat project
  • Other Python programs in this repository allow interfacing an LLM to the PetitCat project

Full project documentation in English:

  • The project's wiki Helps you assemble your robot, calibrate it, and run the project.
  • Howard Schneider's full tutorial Step by step explanations for beginners and researchers alike. The documentation is intended to give any user a pleasant experience with the project regardless of how seriously they intend to make use of the project. An issue for many researchers in using GitHub software is that it more often fails to work (or work properly) mainly because the thousands of litte things in the heads of the developers are not made clear to the non-involved user. Here we have gone to the other extreme, to make sure that the hardware and software will work for any user, although the more advanced topics are geared towards researchers rather than students. We have paid much attention to the main causes of poor GitHub and other open source software usability: incomplete documentation, dependency issues, environment configuration, version mismatches, non-graceful error handling, permissions and access, network/connectivity issues, stability, indadequate testing, user prerequisite knowledge. Easy-to-read, guaranteed-to-work and inexpensive may surprise you in producing an example of a superhuman AGI with robotic embodiment.
  • Youtube playlist Demonstrations of behaviors.

Publications

French additional information:

Related projects

References

Georgeon, O. L., Lurie, D., Robertson, P. (2024). Artificial enactive inference in three-dimensional world. Cognitive Systems Research, 101234. doi:10.1016/j.cogsys.2024.101234. (PDF).

License

Copyright 2024 AFPICL, CNRS, and DOLL Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

This project provides open-source software designed for seamless integration with open-source hardware platforms such as Arduino, Raspberry Pi, and BeagleBone.

open source hardware