portlandrobotics / common_platform

Other
7 stars 1 forks source link

Scope and Requirements for a Common Robotics Platform Library #17

Closed jhiggason closed 9 months ago

jhiggason commented 9 months ago

1. Define the Scope and Requirements

A. Functionalities and Features

  1. Sensor Integration

    • List all types of sensors you plan to use (IMUs, Ultra-Sonic, lidar, depth camera, magnetometer, barometer/temp, RGB Cameras, GPS)
    • Define the data format and frequency of readings.
  2. Actuator Control

    • Detail the types of actuators (e.g., motors, servos) and their control requirements.
    • Specify control mechanisms (e.g., PWM, digital signals).
  3. Communication Protocols

    • Identify the communication protocols required (I2C, SPI, UART, etc.).
    • Outline the data transfer rates and protocol-specific features needed.
  4. Power Management

    • Define how the Teensy will manage power for sensors and actuators.
    • Include any necessary power regulation or distribution features.
  5. Error Handling and Diagnostics

    • Plan for error detection and handling mechanisms.
    • Plan for a display of some sort
    • Consider diagnostic tools or functions for troubleshooting.

B. Hardware Interface

  1. Pinout Configuration

    • Map out the Teensy pins to be used for different functions.
  2. Physical Integration

    • Outline how the Teensy physically connects to the main board.
    • Plan for any necessary connectors or wiring schemes.

C. Compatibility and Scalability

  1. microROS Integration

    • Define how the library will support microROS.
    • Plan for compatibility with ROS 2 on the Raspberry Pi or other SBC.
  2. Scalability

    • Ensure the library can be easily expanded for additional sensors, actuators, or features.
    • Consider modular design to facilitate future enhancements.

D. Performance Requirements

  1. Processing Speed and Efficiency

    • Specify the required response times and processing speeds.
    • Consider the computational load and memory usage.
  2. Reliability and Robustness

    • Define reliability requirements, especially for critical functions.
    • Plan for robust operation under various conditions.

E. Future-Proofing

  1. Updates and Maintenance

    • Outline a strategy for updating and maintaining the library.
    • Consider backward compatibility with future Teensy versions.
  2. Adaptability to New Technologies

    • Keep provisions for integrating new sensors or communication protocols that may emerge.

F. Documentation and User Support

  1. Documentation Standards

    • Plan for comprehensive documentation of the library.
    • Include code comments, API documentation, and user guides.
  2. User Support

    • Consider how users will get support, possibly through forums, FAQs, or direct contact.
jhiggason commented 9 months ago

For A.1. We need to decide which sensors the platform will officially support. MPU-9250, encoders, and Ultra-sonic sensors seem like a no brainer.

Sensor Categories for Flying and Ground Robots

1. Navigation Sensors

2. Environmental Sensors

3. Proximity and Distance Sensors

4. Vision and Imaging Sensors

5. Motion and Speed Sensors

6. Tactile Sensors

7. Acoustic Sensors

8. Wireless Communication Sensors

9. Specialized Sensors

10. Power and Battery Sensors

jhiggason commented 9 months ago

I'm going to close this for the time being until I have time to back over this stuff and decide what really important.