> 3) I am hoping to use 2 to 4 webcams to increase the FOV that the
> controllers are tracked in, is this supported in PSMoveAPI, or does each
> camera need to be switched to manually for processing?
IIRC there was some talk about multi-camera support in PS Move
Service, although I don't know if this works on a RPi:
https://github.com/cboulay/PSMoveService
> 5) I am looking at this link as to how to do the communication between the
> iOS app and the RPi using Bluetooth LE, but some other sources, RetroPie,
> suggest that there would be issues trying to connect different device types
> to the RPi via Bluetooth LE. Do you have any information on whether this
> would or wouldn't be an issue, or (not right group, I know) other suggested
> sites for the connecting the RPi to iOS (and eventually Android)?
Possibly WIFI.
B) the exposure on the PSEye camera is really high to the point that it has difficulty seeing the controller in a semi lit room, and thus cannot track it. When I run "./build/test_tracker" I get a lot of "Calibrating controller 0... ERROR - retrying" and the ball blinks about 10 times, then just stops. When the camera view comes up, I can see the environment pretty clearly and there is a large circle in the upper left hand corner. In comparison, if I run the same program on my Mac with either the iSight camera or the PSEye, the ball blinks only once or twice and I rarely get the error, and when the camera view comes up it is mostly black with only the ball showing, and is being tracked properly.
Additionally the rotation drifts a lot.
D) I used a combination of the tracker examples and the move-daemon to make my own UDP server, with the Unity client either running on my Mac or iPhone. When the server is running on my Mac, data to the Mac client is excellent (because it's all local), and to the iOS client is pretty good, and I have rumble feedback working pretty well too. When the server is running on the RPi, the controller will randomly rumble and within a few seconds the ball turns off and the rumbling feedback stops entirely, but the button data is still getting sent to the client. I don't think the random rumbles are due to old packets as I have a basic level sequence checking to ignore old packets, but if the server is really lagging, then it might be possible.
while ((cvWaitKey(1) & 0xFF) != 27) {
...
for (i=0; i<count; i++) {
unsigned char trig = 0;
while (psmove_poll(controllers[i])) { trig = psmove_get_trigger(controllers[i]); psmove_set_rumble(controllers[i], trig); }
float x, y, r; psmove_tracker_get_position(tracker, controllers[i], &x, &y, &r); printf("x: %10.2f, y: %10.2f, r: %10.2f, t: %i\n", x, y, r, trig);
}
}