Smoothtrack

06 Sep 2020 10:14 #48077 by Avionyx
www.reddit.com/r/flightsim/comments/in5a...app&utm_source=share

This guy has made a tracking app designed to integrate into any game supporting head tracking but only requires a iOS or Android phone/Tablet

I've downloaded it but not able to give it a go yet. If it works for FG it could be a game changer
The following user(s) said Thank You: enrogue

Please Log in or Create an account to join the conversation.

06 Sep 2020 10:18 #48078 by StuartC
I will await your test results.

Please Log in or Create an account to join the conversation.

06 Sep 2020 10:46 #48079 by enrogue
Wow looks great - connects to opentrack by the looks, which has flightgear connection

Please Log in or Create an account to join the conversation.

06 Sep 2020 11:07 #48080 by enrogue
OK, quick test (it's £9.99 on app store, so I figure what the hell)

Never used opentrack, installed snap on Ubuntu, setup to receive UDP

Configured Smoothtrack to connect to it (iPhone 7+, sitting just below my monitor on its side)

Seems to receive data - next step to work out how to configure flightgear for it - seems I won't have to buy any ir tracking kit after all

Please Log in or Create an account to join the conversation.

06 Sep 2020 13:17 #48081 by enrogue
So opentracks flightgear output is just generic udp protocol which with a data xml can just be used to write to the property tree, for the main view system or fgcamera

I have basic (view) pitch,roll, yaw axes working but not head position (xyz view offset) working yet - probably not writing the to correct props

Please Log in or Create an account to join the conversation.

07 Sep 2020 09:15 #48086 by oly2b
Tried to download the app after going round the houses finally to be told by Google Play Store that my Android phone was not compatible!!!

Please Log in or Create an account to join the conversation.

07 Sep 2020 09:25 #48088 by StuartC
I dont have an android phone to test it, or any kind of smart phone.

Please Log in or Create an account to join the conversation.

07 Sep 2020 09:32 - 07 Sep 2020 09:40 #48090 by timi
I bet I could get it to work with FGCamera but don't feel like
putting in the 10 EUR since I don't need it.

Please Log in or Create an account to join the conversation.

07 Sep 2020 10:31 #48092 by enrogue
I think it should be pretty easy to do - it's just 6 properties to write to.

The hardest part is actually the curve adjustments for movement - you don't want to leave it linear or you'll only get the movement of your head

It's going to take quite a bit of experiment to make it work - I'll probably compile myself instead of using the snap as well.

I'm very sensitive to motion/vision issues, so I have to be very careful with the settings or I feel sick - there is a bit of lag with smoothtrack that may be due to it using wifi/network to communicate to opentrack

Please Log in or Create an account to join the conversation.

07 Sep 2020 10:43 #48093 by Warty
Personally, the further I move my head from side-to-side or up-and-down, the harder I find it to see the screen. Maybe it's an age thing.

Mac 10.14.1 Mojave, FG 2018.3.5

Please Log in or Create an account to join the conversation.

07 Sep 2020 14:24 #48099 by J Maverick 16
Looking for it in Play Store I also found this one: play.google.com/store/apps/details?id=com.suzzwke.game
Apparently it connects directly to Open Track and sends data through network. I don't have Open Track so dunno if it works.
Mav

Breakin' the sound barrier every day!
Oh God, that's EGOD!

FG 2020.3.1 - iMac 27" (Mid 2010) w/ macOS 10.12.6 - Thrustmaster FCS Flight Pack + MFD Cougar

Please Log in or Create an account to join the conversation.

08 Sep 2020 08:46 #48104 by Avionyx
Not sure why you guys are seeing it at so much? It was £3 when I bought it on Saturday. Haven't managed to get it connected to FG yet but it's talking to opentrack ok

Please Log in or Create an account to join the conversation.

09 Sep 2020 12:37 #48111 by enrogue
Here is the opentrack.xml I'm using so far (put in FGDATA/Protocols)
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
   <comment>
<![CDATA[
  Usage:

  fgfs --generic=socket,in,52,,5542,udp,opentrack
]]>
   </comment>
   <generic>
      <input>
         <binary_mode>true</binary_mode>
         <byte_order>host</byte_order>
         <chunk>
            <type>double</type>
            <node>/sim/current-view/tx</node>
         </chunk>
         <chunk>
            <type>double</type>
            <node>/sim/current-view/ty</node>
         </chunk>
         <chunk>
            <type>double</type>
            <node>/sim/current-view/tz</node>
         </chunk>
         <chunk>
            <type>double</type>
            <node>/sim/current-view/heading-offset-deg</node>
         </chunk>
         <chunk>
            <type>double</type>
            <node>/sim/current-view/pitch-offset-deg</node>
         </chunk>
         <chunk>
            <type>double</type>
            <node>/sim/current-view/roll-offset-deg</node>
         </chunk>
         <chunk>
            <type>int</type>
            <node>/sim/current-view/status</node>
         </chunk>
      </input>
   </generic>
</PropertyList>

Not all are working at the moment - FG doesn't use tz/tx/tz in the default viewer & haven't bothered working out which props map to view position offset just yet

Please Log in or Create an account to join the conversation.

09 Sep 2020 15:11 #48112 by timi
I have a this sort of FreePIE virtual joystick device
which is controlled by opentrack. And FGCamera
works with those /sim/TrackIR properties.
<?xml version="1.0"?>

<PropertyList>
  <name type="string">vJoy Device</name>
  <axis n="0">
    <desc type="string">6DOFYaw</desc>
    <tolerance type="string">0.00001</tolerance>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/sim/TrackIR/heading-deg</property>
      <factor type="double">-135</factor>
      <setting type="double">0.008072022349</setting>
    </binding>
  </axis>
  <axis n="1">
    <desc type="string">6DOFPitch</desc>
    <tolerance type="string">0.00001</tolerance>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/sim/TrackIR/pitch-deg</property>
      <factor type="double">110</factor>
      <setting type="double">0.0686808601</setting>
    </binding>
  </axis>
  <axis n="2">
    <desc type="string">6DOFRoll</desc>
    <tolerance type="string">0.00001</tolerance>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/sim/TrackIR/roll-deg</property>
      <factor type="double">45</factor>
      <setting type="double">-0.009719996713</setting>
    </binding>
  </axis>
  <axis n="3">
    <desc type="string">6DOFZ</desc>
    <tolerance type="string">0.00001</tolerance>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/sim/TrackIR/z-m</property>
      <factor type="double">0.3</factor>
      <setting type="double">-0.5928282738</setting>
    </binding>
  </axis>
  <axis n="4">
    <desc type="string">6DOFY</desc>
    <tolerance type="string">0.00001</tolerance>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/sim/TrackIR/y-m</property>
      <factor type="double">0.3</factor>
      <setting type="double">-1</setting>
    </binding>
  </axis>
  <axis n="5">
    <desc type="string">6DOFX</desc>
    <tolerance type="string">0.00001</tolerance>
    <binding>
      <command type="string">property-scale</command>
      <property type="string">/sim/TrackIR/x-m</property>
      <factor type="double">0.3</factor>
      <setting type="double">-0.1374074966</setting>
    </binding>
  </axis>
</PropertyList>

This is the piece of code running under FreePIE.
import sys

def toIntSafe(value):
    if value > sys.maxint: return sys.maxint
    if value < -sys.maxint: return -sys.maxint
    return value

def update():
   yaw = filters.mapRange(trackIR.yaw, -120, 120, -vJoy[0].axisMax, vJoy[0].axisMax)
   pitch = filters.mapRange(trackIR.pitch, -120, 120, -vJoy[0].axisMax, vJoy[0].axisMax)
   roll = filters.mapRange(trackIR.roll, -120, 120, -vJoy[0].axisMax, vJoy[0].axisMax)
   side = filters.mapRange(trackIR.x, -120, 120, -vJoy[0].axisMax, vJoy[0].axisMax)
   zoom = filters.mapRange(trackIR.z, -120, 120, -vJoy[0].axisMax, vJoy[0].axisMax)
   updown = filters.mapRange(trackIR.y, -120, 120, -vJoy[0].axisMax, vJoy[0].axisMax)

   vJoy[0].x = toIntSafe(yaw)
   vJoy[0].y = toIntSafe(pitch)
   vJoy[0].z = toIntSafe(roll)
   vJoy[0].rx = toIntSafe(side)
   vJoy[0].rz = toIntSafe(zoom)
   vJoy[0].slider = toIntSafe(updown)

if starting:
    trackIR.update += update

Please Log in or Create an account to join the conversation.

Time to create page: 0.313 seconds
Powered by Kunena Forum

Latest Forum Posts

PM Notifications

You are not logged in.

PM Mailbox

You are not logged in.

Latest updated downloads