Ractiv / touch_plus_source_code

Source code for Ractiv Touch+ Software
Other
36 stars 14 forks source link

Stuck at "pointing gesture" recognition #2

Open alexanderzeillinger opened 9 years ago

alexanderzeillinger commented 9 years ago

Does the pointing gesture calibration work?

sheley1998 commented 9 years ago

I've just managed to upload the finished gesture  code. Calibration process is a bit tedious, I'll try to upload my optimized training dataset in a few hours.

On Sun, Jul 19, 2015 at 4:22 AM, Alexander Zeillinger notifications@github.com wrote:

Does the pointing gesture calibration work?

Reply to this email directly or view it on GitHub: https://github.com/Ractiv/touch_plus_source_code/issues/2

alexanderzeillinger commented 9 years ago

Ok, I compiled the latest code and used the training data that was deleted 3 days ago and was able to finish calibration. Is there anything else I can do now, like actually use the device?

alexanderzeillinger commented 9 years ago

Ah, never mind. Looks like I've got a conflict with another program so it won't work, just need to find out which program it is.

alexanderzeillinger commented 9 years ago

Had no luck finding the problem. When I run the program in a virtual machine I have the Touch+ circle cursor afterwards but running on my normal installation it doesn't appear. I'm using Win 8.1 in both cases, any idea what could cause this?

sheley1998 commented 9 years ago

Yeah could you check if win_cursor_plus.exe is running in the task manager? If it is can ou terminate it manually and try again?

On Mon, Jul 20, 2015 at 12:47 PM, Alexander Zeillinger notifications@github.com wrote:

Had no luck finding the problem. When I run the program in a virtual machine I have the Touch+ circle cursor afterwards but running on my normal installation it doesn't appear. I'm using Win 8.1 in both cases, any idea what could cause this?

Reply to this email directly or view it on GitHub: https://github.com/Ractiv/touch_plus_source_code/issues/2#issuecomment-122760958

alexanderzeillinger commented 9 years ago

Yes it is running, when I terminate it it starts automatically again but still no circle cursor.

It definitely seems to receive and react to data that it receives, it's just that the cursor itself doesn't appear.

alexanderzeillinger commented 9 years ago

I added some console output to win_cursor_plus:

ipc.SetUDPCallback(delegate(string message) { Console.WriteLine("UDP message: " + message); if (message != "hide_cursor_index" || message != "hide_cursor_thumb") {

and

timer.Tick += delegate(object o, EventArgs e) { Console.WriteLine("cursorIndex: " + showCursorIndex + ", cursorThumb: " + showCursorThumb); ipc.Update();

Sometimes it would receive no UDP messages at all and even when it does both showCursorIndex and showCursorThumb are always false so the left and top position of the cursor would never be set.

I 'm using the training data that was removed in b0dab9ed3590020bd04d2267a67709409090e2f4, maybe that's just the reason?

sheley1998 commented 9 years ago

I'm uploading the latest training data, it's taking a while because there's so many of them. I've taken a different approach to training the hand pose estimator: instead of only saving a new training file when the system recognizes the wrong pose, I've set it to save a new pose every time the hand position is different from the closest one in the database by a certain threshold. It's working well for me, but everyone has different hands. Could you give it a try? Thanks!

On Mon, Jul 20, 2015 at 3:14 PM, Alexander Zeillinger notifications@github.com wrote:

I added some console output to win_cursor_plus: ipc.SetUDPCallback(delegate(string message) { Console.WriteLine("UDP message: " + message); if (message != "hide_cursor_index" || message != "hide_cursor_thumb") { and timer.Tick += delegate(object o, EventArgs e) { Console.WriteLine("cursorIndex: " + showCursorIndex + ", cursorThumb: " + showCursorThumb); ipc.Update(); Sometimes it would receive no UDP messages at all and even when it does both showCursorIndex and showCursorThumb are always false so the left and top position of the cursor would never be set.

I 'm using the training data that was removed in b0dab9ed3590020bd04d2267a67709409090e2f4, maybe that's just the reason?

Reply to this email directly or view it on GitHub: https://github.com/Ractiv/touch_plus_source_code/issues/2#issuecomment-122783493

alexanderzeillinger commented 9 years ago

Yes, I will try it, let me know when it's up.

sheley1998 commented 9 years ago

Okay it's up

On Mon, Jul 20, 2015 at 3:28 PM, Alexander Zeillinger notifications@github.com wrote:

Yes, I will try it, let me know when it's up.

Reply to this email directly or view it on GitHub: https://github.com/Ractiv/touch_plus_source_code/issues/2#issuecomment-122785463

sheley1998 commented 9 years ago

Oh yeah, if it doesn't run you can try to manually terminate daemon_plus.exe, track_plus.exe and win_cursor_plus.exe in that order. They should terminate properly if you right click on the tray icon and click exit.

On Mon, Jul 20, 2015 at 3:28 PM, Alexander Zeillinger notifications@github.com wrote:

Yes, I will try it, let me know when it's up.

Reply to this email directly or view it on GitHub: https://github.com/Ractiv/touch_plus_source_code/issues/2#issuecomment-122785463

alexanderzeillinger commented 9 years ago

Still only working in a VM but the precision is much better now. Pinch and zoom was also working now.

sheley1998 commented 9 years ago

Interesting. I'll push a few more improvements and then give you a heads up. Please feel free to push any changes where you see fit.

On Mon, Jul 20, 2015 at 3:59 PM, Alexander Zeillinger notifications@github.com wrote:

Still only working in a VM but the precision is much better now. Pinch and zoom was also working now.

Reply to this email directly or view it on GitHub: https://github.com/Ractiv/touch_plus_source_code/issues/2#issuecomment-122790590

sheley1998 commented 9 years ago

Oh could you explain the issue with the European keyboard layout?

On Mon, Jul 20, 2015 at 4:04 PM, Lai Xue sheley1998@gmail.com wrote:

Interesting. I'll push a few more improvements and then give you a heads up. Please feel free to push any changes where you see fit. On Mon, Jul 20, 2015 at 3:59 PM, Alexander Zeillinger notifications@github.com wrote:

Still only working in a VM but the precision is much better now. Pinch and zoom was also working now.

Reply to this email directly or view it on GitHub: https://github.com/Ractiv/touch_plus_source_code/issues/2#issuecomment-122790590

alexanderzeillinger commented 9 years ago

Found the problem with the missing circle.

So "win_cursor_plus" receives UDP messages and parses the x, y, z coordinates like below:

bool b0 = float.TryParse(xyStr[0], out x); bool b1 = float.TryParse(xyStr[1], out y); bool b2 = float.TryParse(xyStr[2], out z); bool b3 = int.TryParse(xyStr[3], out down);

if (b0 && b1 && b2)

Unfortunately this will fail for systems using a decimal mark other than a point. In Austria we have a comma as decimal mark so the parsing will fail and b0, b1, b2 will always be false and the circle never shows up.

Please use TryParse(string s, NumberStyles style, IFormatProvider provider, out float result) to fix this.

alexanderzeillinger commented 9 years ago

Another issue - I do have the circles now with the solution above but "cursorIndexDown" doesn't work using the TUIO class. I have set "useTUIO" to false to use the other path where it works.

sheley1998 commented 9 years ago

"useTUIO" was swtiched on to test the cursor without actually sending touch events into the OS. In order to make the cursor work over the Modern Start Screen, you need to set "UIAccess "to "true" inside of the "app.manifest" of the c# project, code-sign the compiled "win_cursor_plus.exe", then place the entire "build" folder in "c:/program files" or c:/program files (x86)" and run "daemon_plus.exe" from there. Here's a link to the "win_cursor_plus.exe" code signed with a certificate I bought from Microsoft, could you check if it works? Thanks!

https://www.dropbox.com/s/9yejuxr3if8bccl/win_cursor_plus.exe?dl=0

On Wednesday, July 22, 2015, Alexander Zeillinger notifications@github.com wrote:

Another issue - I do have the circles now with the solution above but the "cursorIndexDown" doesn't work using the TUIO class. I have set "useTUIO" to false to use the other path where it works.

— Reply to this email directly or view it on GitHub https://github.com/Ractiv/touch_plus_source_code/issues/2#issuecomment-123471150 .

sheley1998 commented 9 years ago

Oh and please terminate daemon_plus.exe, win_cursor_plus.exe, and track_plus.exe if any of them are still running before you proceed

On Wednesday, July 22, 2015, Lai Xue sheley1998@gmail.com wrote:

"useTUIO" was swtiched on to test the cursor without actually sending touch events into the OS. In order to make the cursor work over the Modern Start Screen, you need to set "UIAccess "to "true" inside of the "app.manifest" of the c# project, code-sign the compiled "win_cursor_plus.exe", then place the entire "build" folder in "c:/program files" or c:/program files (x86)" and run "daemon_plus.exe" from there. Here's a link to the "win_cursor_plus.exe" code signed with a certificate I bought from Microsoft, could you check if it works? Thanks!

https://www.dropbox.com/s/9yejuxr3if8bccl/win_cursor_plus.exe?dl=0

On Wednesday, July 22, 2015, Alexander Zeillinger < notifications@github.com javascript:_e(%7B%7D,'cvml','notifications@github.com');> wrote:

Another issue - I do have the circles now with the solution above but the "cursorIndexDown" doesn't work using the TUIO class. I have set "useTUIO" to false to use the other path where it works.

— Reply to this email directly or view it on GitHub https://github.com/Ractiv/touch_plus_source_code/issues/2#issuecomment-123471150 .

alexanderzeillinger commented 9 years ago

Yes it worked!