建立机器人控制结构的更常见方法是什么?

What is the more common way to build up a robot control structure?

我是一名大学生,我想和我的团队一起建造一个水下机器人。

我们打算用stm32和树莓派。我们将把我们的控制器放在 stm32 上,将高级算法(如路径规划、目标检测……)放在 Rpi 上。我们这样设计的原因是控制器需要快速计算,高级算法需要更多开销。

后来发现ROS上有很多支持IMU等姿态传感器的包。因此,我假设很多人可能会在可以 运行 ROS(例如 RPi)的电路板上构建他们的控制器。

据我所知,RPi 比 stm32 慢并且连接传感器和电机的端口较少,这让我认为 Rpi 不是 运行 控制器的理想位置。

所以我想知道我是不是设计错了?

机器人的应用千差万别,适合的结构应该根据用例而定,所以很难有一个标准答案,我只是分享一下我的想法,供大家参考。

总的来说,我认为 Linux SBC(例如 RPi)+ MCU Controller(例如 stm32/esp32)对于许多用例来说是一个很好的解决方案。我个人用 RPi + ESP32 设计了一些机器人,原因是,

  1. Linux不是一个很好的实时OS,MCU擅长处理时间紧迫的任务,比如电机控制,IMU滤波;
  2. 即使在中央“大脑”挂起或整个系统 运行 进入低电压时,某些保护机制也需要可靠;
  3. MCU更便宜,体积更小,可以灵活分配到机器人内部的任何部件,也有助于我们模块化的设计思路;
  4. 许多新的 MCU 实际上足够强大,可以处理复杂的任务,并且可以从中央卸载很多 CPU;