RobotStudyCompanion / CodeStation

Firmware and software files
1 stars 0 forks source link

frameworks? #6

Open mbz4 opened 1 month ago

mbz4 commented 1 month ago

chat w/gpt: tried to think of how to integrate existing codebases with the rsc (complicated but perhaps a good idea?) alternative is we run our own codebase and only rely on external frameworks for non-core functionality (perhaps flutter or react for their mobile & web support)...

should succeed https://github.com/RobotStudyCompanion/CodeStation/issues/2


I understand that you are looking for a scalable and flexible solution for your Robot Study Companion (RSC) and want to consider different technologies (ROS 2, ROS Micro, ESP32, Raspberry Pi Zero, mobile apps, Flutter, etc.) in various scenarios. Below is a comprehensive table that outlines the different technologies and the scenarios they support, comparing their flexibility, scalability, and ease of use for both developers and end-users.

Table of Technologies and Scenarios

Technology Scenario Supported Devices Real-time Control Flexibility Scalability Ease of Use Key Strengths Potential Drawbacks
ROS 2 on Raspberry Pi 3/4 Full ROS 2 stack for robotics and control Raspberry Pi 3, Raspberry Pi 4 Yes High High Moderate Full ROS ecosystem, supports distributed nodes, real-time support, ideal for scalable systems Requires setup and technical knowledge
ROS Micro on ESP32/Pi Zero Lightweight ROS system for embedded devices ESP32, Raspberry Pi Zero Limited Medium Low to Medium High Lightweight for low-resource devices, integrates with ROS 2 Limited to basic tasks, no full ROS 2 capabilities
Full ROS 2 on Laptop + ROS Micro on ESP32/Pi Zero Distributed system with central processing on laptop ESP32, Pi Zero (ROS Micro), Laptop (ROS 2) Yes (on ROS 2 node) High High Low for layman Combines ROS 2 and ROS Micro for embedded + powerful processing on laptop Requires ROS 2 setup on laptop, not easy for layman users
Flutter App for Mobile + ROS Micro on ESP32/Pi Zero Use mobile app to interact with ROS Micro devices Mobile devices, ESP32, Pi Zero Limited High (for mobile UI) Medium High User-friendly mobile app interface, accessible via mobile devices, easy to deploy Need to bridge between mobile and embedded systems
Flutter App for Mobile + Full ROS 2 on Raspberry Pi 3/4 Full system running on Pi with mobile interface Mobile devices, Raspberry Pi 3/4 Yes High High High Full ROS 2 system with mobile app control, real-time interaction More complex to develop for both ROS and mobile
Custom Embedded Stack on ESP32/Pi Zero + Flutter Custom firmware for embedded control with mobile app ESP32, Raspberry Pi Zero, Mobile devices Limited High (for custom logic) Medium High Customization for very specific hardware needs, accessible mobile interface Requires custom embedded development, less flexibility compared to ROS
Custom Embedded Stack on Raspberry Pi 3/4 + Web App (Locally Hosted) Full control stack running on Pi with locally hosted web interface Raspberry Pi 3/4, Mobile devices Yes Medium Medium Moderate No need for external setup, self-contained system on Pi with local web control Limited to Pi’s resources, not easily scalable beyond local network
ROS Micro + Web App (Locally Hosted on ESP32) Lightweight web control for low-resource device ESP32, Mobile devices Limited Low to Medium Low High Simple web interface on low-resource device, minimal setup Very limited in processing power, not for complex robotics
ROS 2 on Raspberry Pi 3/4 + Web App (Locally Hosted on Pi) Full system hosted on Pi, accessible locally via web Raspberry Pi 3/4, Mobile devices Yes Medium to High Medium Moderate Scalable control system via local network, easy for users to access Limited by Pi's computing resources

Analysis of Technologies:

1. ROS 2 on Raspberry Pi 3/4:

2. ROS Micro on ESP32/Pi Zero:

3. Full ROS 2 on Laptop + ROS Micro on ESP32/Pi Zero:

4. Flutter App for Mobile + ROS Micro on ESP32/Pi Zero:

5. Flutter App for Mobile + Full ROS 2 on Raspberry Pi 3/4:

6. Custom Embedded Stack on ESP32/Pi Zero + Flutter:

7. Custom Embedded Stack on Raspberry Pi 3/4 + Web App (Locally Hosted):

8. ROS Micro + Web App (Locally Hosted on ESP32):

9. ROS 2 on Raspberry Pi 3/4 + Web App (Locally Hosted on Pi):


Conclusion:

mbz4 commented 1 month ago

tried to think with gpt on possible ways of approaching developing the rsc and assure high flexibility and scalability... ie, iotempower relies on multiple stacks incl node.js in our case we have the agenda of having multiplatform crossoperations (I guess local area network only) and limited dev time and resources but need neat and tidy, scalable solutions

example: maintain separate codebase for the esp32, pi zero, pi 3/4/5, mobile app counterexample: maintain 1 codebase for the esp32, pi zero, pi 3/4/5, mobile app

then suppose you want to run ROS(2) on the RSC/laptop ==> now we have a laptop in the mix, too

so the conclusion venn diagram suggests flutter (has mobile and web support, works on arm and x86) together with ROS (1/2 and Micro if not going for bespoke embedded stack (iotempower?)) of course the core features of the rsc would have to be built first for a proof of concept, ready for evaluation... since this kit doesn't touch on ollama or similar frameworks that would also have to be embedded or LAN reachable...

mbz4 commented 1 month ago

noticed gpt omitted react, vue, nuxt/next.js

but that's not so important: more crucially - need to push core functionality out soon and regroup on what we learned and how to support adding new features with no overhead