async getStreamForId(id) {
        if (this.robot.config.get("embedded") !== true) {
            Logger.warn("Can't provide obstacle image since we're not embedded");

            return null;
        }

        // Even if files exist, the user will expect them to not be accessible when disabled
        // The downside is that each image fetch will contact the firmware and ask if the feature is enabled,
        // adding delay and overhead
        const isEnabled = await this.isEnabled();
        if (!isEnabled) {
            return null;
        }

        let map = this.robot.state.map;
        let obstacleEntity = map.entities.find(e => {
            return (
                e.type === PointMapEntity.TYPE.OBSTACLE &&
                e.metaData.id === id &&
                e.metaData.image !== undefined
            );
        });

        if (!obstacleEntity) {
            return null;
        }

        return this.getStreamForImage(obstacleEntity.metaData.image);
    }
@param {string} id
@returns {Promise<import('stream').Readable>}