I am building a robot that needs to accomplish the following tasks:
Keep track of 4 quadrotor encoders, each 979.62 CPR @ ~ 500RPM, so ~ 8163.5 counts per second
Read from an RPlidar A1M8, giving out 8000 samples per second (each sample containing distance, heading, a quality rating of the reading, and a boolean that is true if the device is starting a new revolution).
Simon Levy's "Breezy SLAM" algorithm
Read from a PixyCam's object recognition outputs @ 50Hz
Read from gyro, 60Hz
Read from 4 color sensors, 4 ultrasonic sensors, and a TOF sensor, each at around 10Hz
Fusing above data to get accurate 2D position information, as well as positions of obstacles, within a room of known dimensions (some of the sensors are for other desired pieces of information that I won't go into). (I'm thinking of going with a Kalman filter - any thoughts on this?)
Running a task-accomplishing algorithm (possibly a premade Q-learning model)-- for instance, drive towards the nearest obstacle (though my end goal is much more sophisticated than this).
I am wondering if a Raspberry Pi 3B+ could handle all this? If not what are my options? Do I need a more powerful computer? I am thinking I could probably offload the encoder counting to a separate board, and am wondering if there are dedicated ICs for this.