-
Overview of Passive VR Shoes
03/23/2022 at 23:51 • 0 commentsThe passive VR shoes are overshoes that have wheels that are meant to be used in combination with one of my VR support rigs (celling mounted or free standing) to keep the user in place while walking in VR. You can find some videos of me using them here.
Here are some aspects of the VR shoes.
- Has low friction by using wheels with 3mm bearings. Walking with these is much less tiring than my experience walking on a Virtuix Omni.
- Has a heel flap that allows the user to lift his heels, so he doesn't need to walk flat footed.
- Simple design that doesn't use motors to reduce cost and weight.
- Made out of TPU (flexible filament) and metal rods to be durable. I've jumped on them and thrown them on the ground, used them for several months, and they are completely fine.
- Weigh about 800 grams each. I haven't found this to be too much. I can easily walk with them for over an hour and not feel very tired.
- Stoppers on front and back of the shoe. These stoppers go into the ground when the user lifts his heel or toes, which happens at the end of each stride in a natural walk.
- Removable stopper that fits on the underside of the shoe, in the middle. This stopper allows the user to walk around outside of the VR support rig with the VR shoes one. The stopper should be removed before using the VR shoes in a game.
- Adjustable length. The middle part of the shoe can be removed and the metal rods can be replaced with shorter ones. The minimum length is 8in.
If you're interested in building these shoes, you should first read my log going into why you should or should not build them.
Improvements
Future improvements to these VR shoes I may make are as follows.
- Redesign them so that a regular shoe doesn't need to be worn with the VR shoes. This will reduce the size and weight more, but I don't want to sacrifice comfort.
- Possibly experiment with splitting the shoe in the middle so more bending of the foot is possible.
- Replace the TPU wheels with neoprene rollers to reduce noise.
- Add a wheel encoder and IMU for feet tracking.
- Introduce motors again.
- Introduce omni-directional wheels.
-
Should You Build These VR Shoes and Support Rig?
03/22/2022 at 22:19 • 0 commentsThis log will be about if you should build my passive VR shoes and one of my support rigs (either the ceiling mounted one or the free standing one). Over the past several months I have had lots of fun using these passive VR shoes to walk around in VR games. However, I don't think everyone would enjoy it. They are not perfect and not completely natural. They work better in some VR games than others.
Feet Tracking
First, I do not have feet trackers made yet. I have just been using the joystick on the regular controller. This has worked fine for me because I do not have to think about using the joystick while I'm playing games. It doesn't bother me, but I'm sure this limitation would bother many others.
I plan on making custom trackers for these shoes, but if you want trackers now you will need to use a 3rd party tracking solution. Natural Locomotion or Kat Loco are a few options you have. I tried using Natural Locomotion with Nintendo joycons, but found that the joycons constantly disconnected on me.
Watch My Demos
Watch some of my demos here (the demos of the passive VR shoes, not motorized ones) to see what the device looks like when being used. Also listen to the noise the device makes and decide if that noise level is fine for you.
Try a Slidemill
Before building my device(s), I encourage you to find somewhere you can try a slidemill (like the Virtuix Omni or Kat Walk C). You can find a list of locations where you can try the Virtuix Omni here. Please note that I have only tried the Virtuix Omni, not the Kat Walk C or any other slidemill.
Slidemills have a similar sensation to my passive VR shoes, but these are the key differences I noticed between my device and the Virtuix Omni. So I encourage you to try a slidemill while keeping the following differences in mind.
Effort to Move
Walking with my VR shoes was much less tiring than walking on the Virtuix Omni. After 10 minutes of using the Virtuix Omni I was tired and winded because of the extra friction. I normally use my VR shoes for at least 45 minutes, sometimes double that, without feeling very tired. However, if you're not used to walking for long periods of time like that, you may still end up being tired after using my VR shoes, but a lot less tired than if you used the Virtuix Omni.
When using the Virtuix Omni, I felt like I had to run most of the time, since I needed more force in my legs to overcome the friction. My VR shoes using wheels with 3mm bearings, so they have very low friction (the friction is so low in fact, one of the purposes of the carpet on the platform is to increase friction a little bit).
Turning and Walking Simultaneously
My support rigs allow the user to turn while walking. Being able to do this ended up being one of the most important features for me. For me it's a must have over running, sitting, and crouching. With the Virtuix Omni I had to stop pushing against the waist ring if I wanted to turn. Trying to turn while pushing against the ring resulted in too much friction. The Kat Walk C appears to not have this issue, because I've seen some videos of people walking while turning.
Crouching, Leaning, Sitting
My support rigs allow for crouching, leaning, sitting. The Virtuix Omni supports neither. The Kat Walk C has some crouching and leaning support.
None of these devices (mine included) support laying down.
Jumping is supported on my device, but keep in mind you'd be jumping on shoes with wheels so it may feel unstable. I never need to jump in VR.
For sitting, keep in mind that it's possible because the user is strapped into a climbing harness that has straps that go around the waist and legs. Sitting while being held up by the climbing harness is not nearly as comfortable as sitting on a chair, but it's fine for sitting through a loading screen or taking breaks.
Running
Running felt more stable and better on the Virtuix Omni, but again, it is exhausting. My devices do support running, but I don't enjoy it very much and I need to exercise more control to stay stable, otherwise I may fall forward.
Since the Virtuix Omni has a big ring around you it feels more stable. Also, since the Virtuix Omni has more friction, the extra friction will increase stability. For the Kat Walk C, I've seen videos of others falling forward while running on it, but I've also seen a few videos where the user ran on the device and it looked more controlled.
Also, with both the Virtuix Omni and my device, running for more than several minutes makes my ankles sore. Walking on my device for extended periods of time does not make my ankles sore.
I will discuss running a little more below, but I have found that I do not need to run at all in the games I've tried.
Noise
Walking on my device was quieter than with the Virtuix Omni. Running on my device is loud, just like other slidemills. Since I walk 99% of the time on it, and use headphones while playing VR 99% of the time, this doesn't bother me. With headphones the noise while walking doesn't bother me at all.
In the future I'm going to try replacing the carpet on the platform and wheels on the shoes with different materials so see if noise is reduced further.
Not Completely Natural
If you are looking for a completely natural walking experience, this is not it. You push against the harness to pull your feet back. It takes some practice to use and a little bit of time to get used to. I and my wife were able to walk on my VR shoes in 20 minutes or less. It might take longer for you. Walking backwards, walking while turning, and running took me more time to get right.
Walking forwards, while turning or not, feels the most natural. To me after some practice it feels great and almost like regular walking. Walking backwards and running still feel awkward to me. Rather than running I like to do more of a duck-walk if I want to go faster.
Slopes and Stairs
As far as slopes or stairs, I have no trouble with them. I may raise my feet and stomp more when going up and down slopes or stairs, but that's it. This video, while in-depth and informative, seems to indicate that slopes and stairs are a huge impediment for VR locomotion devices, but I strongly disagree. This video dismisses devices as dead-ends if they don't simulate slopes or stairs, which I again strongly disagree with. If you think slopes/stair simulation is important then that's fine, I don't think you're wrong, but to dismiss a solution as a dead-end because it doesn't simulate that is too harsh.
Omni-Directional Movement
My passive VR shoes are uni-directional, meaning they go forward or backward. They do not use omni-wheels. So strafing is not supported. You can pseudo-strafe by turning at the hips. A pseudo-strafe may be fine for many games, but it might not be good enough for some. For example, if you play a boxing or fencing game where you are strafing and circling around your opponent constantly, these VR shoes will probably not work very well.
Restricted Movement
You'll be strapped into a VR support rig to keep you in the same spot as you walk and for safety. The rigs offer a wide range of movement (turning, crouching, leaning, sitting), but of course it will always feel more restrictive than if you were not strapped into a rig at all.
Since the restrictive feeling is a constant sensation, I've found by body tunes it out very quickly (since I'm used to the device now, it's tuned out almost instantly).
Motion Sickness
I don't know how much this device reduces motion sickness. I've never experienced motion sickness while using my passive VR shoes.
To give you an idea how strong my VR legs are, without a locomotion device, just standing in place, I feel sick after playing Doom VFX for more than 10 minutes, but I feel fine playing Half Life Alyx, Until You Fall, or Cosmodread. For No Man's Sky I'll feel slightly queasy if I don't walk in place.
When you walk normally, your inner ear feels acceleration as you speed up. With a locomotion device, since you are standing in place, your inner ear will never feel that acceleration. So a locomotion device will never perfectly simulate walking to your inner ear. However, actually moving your legs probably helps (how much it helps, I don't know).
Priorities Change
You may have some must-haves and top priorities that a VR locomotion device must fulfill if you are to build or buy one. Things like running, jumping, or laying down.
When I started using my device, I thought running would be more important than it turned out to be. I'd rather walk in VR for an hour and not be tired than sprint for 20 minutes and need to stop. If I want to go faster, I find a crouched/duck walk works well. I've found that walking in real-life while my character runs works perfectly fine. I remember someone writing me that you can't simply walk through Doom 3. Well, I did, easily. I walked why my character moved at normal game speed.
I've never jumped in VR or wanted to. You could try a pseudo-jump where you lift your heels up really fast to simulate a jump.
I've never wanted to lay down in VR.
Some think slopes and stairs are incredibly important to get right, but I've found they are not at all important.
After using my device, what turned out to be the most important to me was walking forward feeling great, walking while turning, and crouching. My point is you should think about what you think is important to you now and think about if it's actually important. You may think that running is very important, but are you going to end up not using the device because it's too tiring? Would you rather just walk 90% of the time? How often do you jump or lay down in VR now?
I'm saying that these movements are not important to me, and I imagine might end up not being important to many people, but if you still find these movements important, then that's completely fine! I don't think you're wrong. We're different people with different preferences. I just want you to think deeply about what is important to you and what isn't before you spend the time building this device.
Best Games
I think this device is best for games that are slow to medium pace. I've used it in these games without any issues.
- No Man's Sky
- Half Life Alyx
- Doom 3
- Ancient Dungeon
- Resident Evil 4
Is VR Locomotion Your Thing?
When I started looking into VR, not being able to walk was my focus. VR locomotion became the thing about VR most important to me. Some people find full-body tracking, haptic vests, gloves, or aspects about the headsets themselves to be what's most important to them. For me, it's VR locomotion.
I'm willing to use solutions that aren't perfect, but still fun. I'm willing to spend time building a device, tweaking it, and troubleshooting. If that sounds like you, you might like this device a lot.
Conclusion
I hope all this information helps you decide if this device is something worth building for yourself.
-
My Thoughts on my Passive Setup
11/13/2021 at 19:12 • 0 commentsI've been using my passive setup for at least 3 months now. My current setup consists of my passive VR shoes and ceiling mounted support rig.
In this log I'm going to go over my thoughts about this setup. Please keep in mind that these are my personal opinions on how the setup feels. It's going to feel different to everyone. Also keep in mind that I have been using the joystick on the controller to move in-game, I don't have feet tracking set up yet for this setup like I did with my motorized VR shoes. I've been gaming my whole life so using the joystick is 2nd nature and I do not have to think about it. So using the joystick has not been a big deal to me. I plan on adding feet tracking to this setup later.
It's fun!
First, I find this setup a lot of fun to use. I've made several demo videos, but I've used this setup a lot more than I show in those videos. I have used it for many hours at this point. I went through the entire Half Life Alyx campaign with it.
It's not a completely natural walking feeling. These are passive VR shoes, no motors, so you push against the support rig to bring your feet back, similar to a slidemill. That being said, it feels good to use after a little bit of practice. I now have learned how to walk with this setup and it feels good to use.
I don't notice the harness keeping me in the center. I do not feel constantly restricted. After a few minutes in the device my body tunes it out.
You can hear how loud this setup is in my demo videos. It's not very loud except while running. Regardless, I always wear headphones when I play VR so I hardly hear the VR shoes. The noise the shoes make is another thing I don't notice after a few minutes.
Putting the VR shoes on, strapping into the rig, and putting the headset and controllers on takes around 4-5 minutes. If the rig is stored along the ceiling it will take a little longer to set it up. I realize for some people they don't like the idea of it taking several minutes to get setup. I find it completely acceptable, especially since I can then use it for an hour or more once I'm strapped in, without feeling very fatigued while using it.
In general, I've seen people make the argument that if the VR locomotion system isn't near perfect, your brain will notice the difference and it will not feel natural and be a bad experience as a result. Maybe this is the case for some people but it is certainly not the case for me. With some practice I found it easy to use this setup. Constant sensations are tuned out quickly. The feeling of this device doesn't fall into the uncanny valley, at least for me.
So I find this device a ton of fun to use. If you're a person who is okay with practicing, learning how to walk with this device, and just in general have an open mind about it, then it may be great for you.
It takes some practice
As I said above it take some practice to use this setup. These are the things that I did and had my wife do when she tried it out. I'm going to make a training video going over this in the future. The steps here can probably apply to slidemills as well.
- Take small steps at first.
- Learn how the stoppers on the front and back of the shoes work. When you lift your heel or toes, the stoppers will go into the ground, stopping the shoe.
- Push against the harness to bring your feet back instead of leaning forward. If you find yourself leaning way forward, you will fall over. Push at your hips instead.
- I found that if I keep my knees very slightly bent that I could take longer steps easily.
Movement
Walking forward and turning feel great. Turning while walking took a little bit of practice while playing games but I can do it very easily now.
Crouching works great without the upper harness. It doesn't work well with the upper harness attached because I can't lean forward, which I go over in this video. I normally don't use the upper harness so this hasn't really been a problem for me.
I can duck walk pretty easily. It doesn't feel as nice as just regular walking but it feels good enough to where I used it a lot in Half Life Alyx during gun fights. Duck walking also takes a little bit of practice.
Sitting works just fine. It's about as comfy as you'd expect from a safety harness. Not terrible, but not as good as a regular chair.
Walking backwards took a lot of practice and I can do it pretty well now. It's very nice to be able to do when an enemy is chasing you and you can shoot it. However it still feels awkward and I am not yet good at turning while walking backwards.
I can run with this rig, but I hardly ever do. I find walking and duck walking to be good 95% of the time. I don't really like running with this rig because it's louder and I feel less stable when I do, so I need to concentrate while running. If I use the upper part of the harness running is easier. In my next support rig running might be easier.
Slopes and stairs
I've seen a few videos where the author says that the device not simulating slopes or stairs will limit its use, even saying they could only be used in flat, arena style games. Or saying that these devices are dead end solutions because they don't simulate slopes or surfaces.
I have no issue going up and down slopes and stairs and don't believe it is a limiting factor. I have experimented a little with a suggestion from this video where you do more of a stomping motion for slopes, but I have found it to be unnecessary. My brain does not immediately ring alarm bells when walking on slopes, I hardly notice it. Perhaps, like I've mentioned several times, it just takes some practice. Or perhaps I'm an oddball, but VR users that just use artificial locomotion can also handle slopes. Unlike others who seem to see slopes/stairs as an extremely limiting factor with some device, I find them to hardly be an issue at all.
Differing speeds in real life vs. in VR (speed multiplier)
In some games you will be moving faster in the game than your walking speed in real life. Half Life Alyx was perfect in that Alyx walks through the whole game, so I felt very much that my in-game speed matched my real life speed pretty well. In No Man's Sky I move faster in-game, but did not find it to be an issue. In-game it was still slow enough to where it didn't bother me one bit.
Resident Evil 4 was different. You can either move very slowly in that game, too slow, or way too fast. It's just the two options. I was still able to get used to the speed difference after a little while but I would prefer it if the speed could be more adjustable. I imagine a game like Doom VFX would be even worse.
So I think this rig is better in games that are slower paced, but it's completely useable in faster paced games. Very fast paced games may take some getting used to.
Motion sickness
I don't really suffer from bad motion sickness. Resident Evil 4 and Ancient Dungeon can make me feel dizzy after a while. I did notice that when playing Ancient Dungeon and Resident Evil 4, I got less dizzy when I was using the rig vs. just using the joystick. I didn't notice any difference in the way I felt when playing Half Life Alyx or No Man's Sky in the rig or not.
With any VR locomotion device, you're not actually accelerating so your inner ear isn't getting the same stimulus as it would with actual walking. But with this device, you actually use your legs so that may help a little. Using a device like this could help a bit with motion sickness, but it won't be a cure and I don't believe it will be enough help for those who really suffer from motion sickness. This is just based on my personal experience and I hope to be able to a lot more people try the device to get more data.
Fatigue
I believe one of the biggest advantages my setup has over slidemills is that it is not tiring to use. When I used the virtuix omni I was getting tired after just 10 minutes. It's harder to slide my feet, even with the bowl shaped surface, than sliding my feet with my VR shoes. With the virtuix omni, I ran most of the time because running created more force to bring my feet back, but running also made me tired much quicker.
The first day I got my setup working, I used it 3 separate times in one day, 1 hour each. I also walked my dog for an hour that day. Since then I have used my setup for 1-1.5 hour sessions. I'm normally playing a game where I walk a lot of the time, but I'm also stopping a lot to search the environment or wait for dialogue and in-game events. With those games, I do not feel tired or sweaty at the end of the session. If I'm playing a game where I am constantly walking without breaks I'll be more sweaty and a little fatigued after 1.5 hours, but could easily still keep going. In general I just don't play VR for longer than 1.5 hours.
Again, I hardly ever run with my setup. It's pretty much all walking, turning, crouching, and sitting. Your experience will differ based on how you use the device and your fitness level.
I still use the joystick
Sometimes it's just easier to use the joystick and not move my feet. If I'm in a very tight space in the game or have to move a tiny bit I may just use the joystick. If I'm in combat and something happens where I need to react very quickly, I may just use the joystick. If I'm on a ledge in the game and one small error will cause me to fall to my character's death, I may just use the joystick. I find it nice to have that option for making small, precise movements.
The best games for this setup
As you may be able to guess by now, slower paced games are better with this setup. Exploration games will be great. Games like Half Life Alyx and No Man's Sky work great, even in combat. Resident Evil 4 worked fine too once I got used to the speed.
Very fast paced games like Doom VFX or maybe multiplayer games may be harder to use this device with. In multiplayer, you will be at a disadvantage to those who are just using the joystick. But this device is meant to increase immersion, not make you better at PVP.
Games where you circle enemies are not ideal. This setup can work for those, but I myself am still learning how I can circle enemies comfortably. I have not tried my setup in a boxing game, but imagine it may not work too well. I want to try my setup in Skyrim and I imagine you may want to circle enemies there so we'll see how it goes. Blades and Sorcery may be another one that tests how comfortable this setup can be. In Ancient Dungeon I find myself wanting to circle enemies, but often times just end up backing up, turning around, running further away, then turning back around to face the enemy.
Strafing
These VR shoes are uni-directional, so they do not support strafing. The user needs to turn at the hips while facing forward. I can turn my hips about 45 degrees and walk just fine, but a full 90 degree turn is awkward and still not easy to do. I have not focused very much on practicing this movement though.
I'm not sure how nice strafing will feel with a passive VR locomotion setup. I haven't seen any videos of people using slidemills where they are strafing without turning their hips. I wonder if it's just awkward because if you try to strafe, or circle around a point, the support rig will just turn on you if you don't keep your core tensed.
Major limitations with this setup
With this support rig, the major limitations are it needs a low ceiling and you need to bolt to the ceiling. I am currently working on a new support rig that eliminates these limitations.
Priorities
Lots of people have opinions on what is important for VR locomotion. Some think walking is just fine, others want full-out sprinting. Some want to be able to lay down. Some think simulating slopes and stairs are crucial.
Now that I have used my device for a while, here are my opinions on what is important and what isn't.
The must-haves for any VR locomotion
- Safety from falling.
- Enjoyable experience after practice, and a training guide.
Top priorities
- Walking forward.
- Smooth, quick turning. Including turning while walking forward.
- Crouching.
- Walking backwards.
Nice to haves
- Omni-directional movement (for circling enemies).
- Running/jogging
- Sitting
Not important
- Jumping
- Laying down
- Kicking
- Slopes/stair simulation
Conclusion
So there are all my thoughts after a few months of using my setup. I need to try it out with more games to see if there are more limitations I am not aware of. I want to practice turning at the hips and walking more. If I learn more as I continue using this setup I will write another log about it.
-
My Passive VR Shoes and Support Rig Setup
10/17/2021 at 15:41 • 0 commentsI haven't posted an update here in a while, but I have still been busy with this project. I've been posting regular updates on YouTube. Here is my latest demo.
I mentioned in my last build log that I wanted to try a passive system with a rigid support rig. This is what I came up with for my first version and I'm very happy with it.
I've gone into more details in my build logs on YouTube, but to summarize the VR shoes I'm wearing in this video are made mostly out of TPU and metal rods, so they are very durable. How durable? I through them on my cement floor here. I've tossed them on the floor, jumped on them, and have been using them regularly for a few months now and they are fine.
These passive shoes have wheels that spin freely and stoppers on the front and back. If you think about a typical walking motion, when you are walking and you bring your foot back behind you, you lift your heel up, then lift your foot off the ground. The stoppers take advantage of this. When you lift your heel up the stopper gets pushed into the ground, stopping the shoe right where you want it to stop so you can lift it up without slipping. Walking backwards is a similar situation where you instead lift your toes up first, and this drives the back stopper into the ground. With these simple stoppers you're not just walking around on essentially roller skates. If that was the case it would be very easy to slide and slip. Using the shoes still takes some practice but the stoppers make it much easier.
Additionally I am walking on a platform that has some thin carpet stapled to it. It is just a 4ft square piece of wood, 3/4in thick, with thin carpet stapled to it. This carpet has a few functions. It provides a little bit of resistance so the VR shoes don't roll around quite as easily as they would otherwise. A little bit of resistance is good and the thin carpet strikes a good balance between easily rolling the shoes and stability. The other function of the carpet is that it reduces noise from the wheels by quite a bit.
You'll see that I'm also wearing a rigid support rig. It is bolted to two beams in my ceiling and consists mostly of pipes, pipe fittings, square tubes, and a safety harness around my waist. This support rig is what you push against to bring your feet back. It supports crouching and sitting.
For this setup, I don't have foot trackers yet. I tried Natural Locomotion but was having trouble getting the joycons I was using to stay connected to my computer. For now I'm just pushing on the joystick on the controller whenever I walk. I've been gaming my whole life so using the joystick is 2nd nature to me and I do not have to think about it, so this method is completely acceptable to me for now. Later I will try to make my own feet trackers.
I am going to soon make a video about what I think about this setup after using it for a couple of months. But to summarize my thoughts so far -
- It takes some practice to get used to the device. It's not completely natural walking obviously. But it's still a ton of fun and very immersive. For me it feels close enough to walking and I'm used to it by now. I'm sure this device isn't for everyone. Some people just seem to not like any devices to don't simulate natural walking either perfectly or close. Some people don't like the idea of a little bit of practice being required. Some people think the support rig will feel too restrictive. Some people just like the joystick. But if you're willing to practice for 30 minutes to a few hours with this device and are okay with learning how to walk a bit differently then you may like this device.
- I picked up walking with this device within a few minutes. My wife was able to walk forward with it after 20 minutes of practice. Being able to walk and turn at the same time took me a few days to be able to do and over a week to be able to feel comfortable doing. Walking backwards took a few days to do but is still awkward.
- It's not noisy with headphones and walking. The carpet really helps with noise reduction. I always where headphones while playing VR for better sound quality and while walking I can hear my footsteps but it's a soft muffled sound. If you don't play with headphones it will be louder, but I don't think it's too bad, especially compared to slidemills. The exception is it's very noisy while running because you are slamming the shoes against the platform much harder and much faster.
- I walk 95% of the time and am good with that. I've used a slidemill in the past (a virtuix omni) and found I ran most of the time with it because it had a lot more resistance. I needed the extra force from running to use the slidemill well. Walking was just too hard and the result was I got tired pretty quickly. With my VR shoes I can easily walk and really don't run with them much at all. Running is a bit hard with these VR shoes and I hope to improve that in the future, but even so I just find walking to be much more pleasant and it works fine. I'm able to walk around for an hour with these VR shoes and not feel very tired. I've used them in Half-Life Alyx and No Man's Sky mostly. These games are super heavy on fast paced combat so keep that in mind. I don't really play multiplayer games and could maybe see myself running in those games or just see myself using a speed multiple to transfer walking in real life to running in game. Going forward, making walking feel really good will be my main focus, with some focus on being able to do a "duck walk" where you squat down a bit and move pretty quickly. Think of how soldiers run while pointing their gun forward, or how the characters in Gears of War ran. I think supporting a duck walk will be fine for faster situations in games, it's a more stable way to run, and is less intense on the VR shoes. Full on sprints are not really going to be a priority for me anytime soon.
- The support rig allows me to turn and walk at the same time and turn quickly while feeling stable, which is now very important to me. When I used the virtuix omni I found it very hard to be able to turn and walk. You push the harness you are strapped into, around your waist, against the ring around your waist. The harness and ring is just plastic rubbing against plastic, so there is a lot of friction. This resulted in me having to turn separately from running while using the slidemill which I did not like. I now consider smooth and quick simultaneous turning to be one of my top priorities going forward.
- I have a very easy time going up and down slopes and stairs while using the VR shoes. I've heard some people say that the inability to simulate stairs and slopes will limit certain VR locomotion devices to games that are completely flat. I have to say I completely disagree. It's not a big deal, a minor limitation at best. Simulating slopes and stairs doesn't seem that important to me, and is a low priority going forward, especially if doing so will add significant complexity and cost to the device.
Here are my pros and cons of this setup.
Pros
- With a bit of practice, it's very immerse and fun to use.
- Walking is easy and not tiring. I normally use it for 1 hour at a time and I am not tired at the end of it, but I may be a little sweaty.
- It's good exercise. The day I got it working I used it for 3 times that day, 1 hour each, so I got 3 hours of walking in (plus another hour of walking that day at the dog park).
- The support rig has crouching (you can adjust the distance), sitting, and really helps with feeling stable and balanced. It also supports turning quickly and at the same time as you are walking.
- It's not noisy, especially with headphones.
- Since it uses a wood platform, it can be used in any room regardless of the flooring material.
- It looks like it doesn't take a lot of practice to use it. I got it in a few minutes, my wife in 20 minutes. I need to test it out with more people and put together a guide.
Cons
- Running feels less stable and balanced than running on the virtuix omni. I just prefer walking most of the time, but if someone wants to run most of the time this is an issue.
- The support rig is slightly restrictive. For me I don't notice it while playing games. It's a constant sensation so my body just tunes it out.
- It requires some practice and isn't completely natural. This will not be good enough for some people that want a more perfect solution.
- The support rig requires bolting to the ceiling and a low ceiling.
- It would be nice to not need a platform, but this setup has it.
- Walking backwards is awkward.
- I don't have my own feet tracking solution yet. Natural Locomotion might work fine if the devices stay connected.
So my next steps are to make these videos -
- Detailed build tutorials for the support rig and VR shoes for anyone that wants to build them.
- A video where I describe my thoughts of this setup after using it for a couple months and what kind of person would like it.
- A comparison between the virtuix omni and this setup and my overall thoughts of the virtuix omni.
- More build logs.
- More gameplay videos.
- A getting started guide that goes into how to practice using the device.
I'm also working on another support rig that doesn't require any bolting to the ceiling or walls. I will eventually try to add motors back into the VR shoes.
-
Results from Lots of Testing and the Plan Going Forward
02/15/2021 at 04:36 • 0 commentsI've tested and used the shoes a lot in the past 2 weeks. I was able to smooth out the motion of the shoes so that it feels really good to walk with them. I describe some of the algorithm changes I made to smooth out the motion here. I was able to walk around in a couple of games. However, there are some issues with the shoes and it looks like I'll need to make a new version.
Wear and Tear
The biggest issue is wear and tear. In the last week I've had to make several repairs, or just take a portion of the shoe apart to re-align a gear. All the gears are showing wear and I've had to replace 1 of them yesterday because a tooth chipped. I broke part of the platform a couple days ago because I pushed on the metal rods too hard. One of the buttons on the platform also broke today and had to be replaced.
I want a new more durable design with less parts to resolve some of these issues and to replace the buttons on the platform with capacitive sensors.
Turning
As you may have noticed in the video, I struggled a bit with turning. I believe adding an IMU will help resolve some of the issues and will later write a project log that goes into the algorithm changes I'm going to make once I add an IMU. But there are other issues with turning an IMU will not solve.
I'm going to use X, Y, and Z axes to describe the issues and a few more later in the article. The X axis is forward, Y is sideways, and Z is up.
When I turn my foot about the Z axis quickly, I have a tendency to also tilt my foot about the X axis a bit. This causes the whole shoe to tilt about the X axis and cases the electronic box on the side to hit the ground.
When turning, the point I need to turn around is behind me. Notice how the tethers connecting my safety harness to the ceiling hook go up behind my head. If I back up too much, the tethers hit me in the back of the head. So I need to stand ahead of the tethers and of the ceiling hook. The ceiling hook is my pivot point when turning, so I have to turn around a point that is behind me, making turning more difficult. Naturally, the ideal scenario is to have the pivot point directly above my head.
Lastly, when I turn my foot, the wheels skid on the ground. The shoe is only capable of going forward and backward, so during turning the wheels are not helping and create resistance. I knew this would be an issue when I designed this version, and it's not that big of a deal for the walking I do in my videos. However, if I want to turn rapidly, like do 180 degree turns rapidly (imagine playing a fast paced shooter), the resistance becomes an issue. I bet that it will also be more of an issue if I use the shoes on carpet or a neoprene mat.
Speed
I attempted to increase the speed of the shoes past the walking I was doing in the video. Like when turning my foot rapidly, I seem to have a tendency to tilt my foot about the X axis the faster I try to walk with the VR shoes, causing the shoes to tilting and, again, the electronic box hits the ground.
Solutions to Wear and Tear
The biggest problem is wear and tear. I can't have the shoes breaking down after only a few weeks of use, especially if I ever want to sell them or recommend others build the VR shoes. I have several ideas for reducing wear and tear.
First, I need eliminate the gears as much as possible. I currently have 12 or 13 gears per shoe. A gear train runs along the whole shoe. I need to replace these with a power transfer mechanism that reduces the part count and/or uses stronger materials. I could use a belt with pulleys or chain with sprockets. Both will require a tensioning mechanism. I could also try a coupling rod, like what trains use.
I will update as many parts as I can to use flexible material, like TPU, instead of rigid material, like PETG. PETG can easily break if pulled too hard. A part made of TPU will just bend under strain, not snap. If I drop a PETG piece on the cement floor, it could break. I could chuck a TPU part against the floor as hard as I can and it wouldn't break. However, you may be thinking that TPU will flex too much under the strain the VR shoes are under. That's why I plan on embedding and reinforcing the TPU parts with metal rods and flats. The metal will make sure the parts maintain their shape.
Solutions to Turning and Speed
Turning and speed both suffer from the shoe tilting about the X axis when I tilt my foot about the X axis. To fix this I'm going to update the binding (the part that couples to my foot with straps) so that I can rotate my foot about the X axis, but the shoe will not rotate.
To help with turning, one thing I could try is something I've done before. When the user lifts his foot, the whole platform can be pushed up by spring loaded casters, as I show here. The casters will lift the shoe so that the wheels do not touch the ground, then I can rotate my foot with little resistance. The spring loaded casters I used before can be seen here. I'm going to make them smaller.
If the wheels are not touching the ground as the user moves his foot forward, then I need some other way to measure speed. Previously, I would use a tachometer on the wheels to tell how fast the shoe was moving. With the wheels no longer moving, I will need to use an optical flow sensor, a smaller wheel that always maintains contact with the ground, or possibly an IMU to track speed.
The 2 vertical rods being on the side as they are now contributes the the X axis tilting problem. I believe that if I moved the vertical rods such that one is on both sides of the foot, it would help resolve the issue and make turning more stable.
Lastly, there is the issue with my harness setup causing my pivot point for turning to be behind me. For that, I am going to use a different harness setup that I will describe later in this log.
Other Observations
Here are some other observations I made during my testing, some of which will be important to understanding my plan going forward.
Recharging the Battery
I expected the battery to recharge a good amount while using the shoes. Every time I take a step forward and turn the wheels with my own force, it back drives the motor and the motor becomes a generator, recharging the battery. In actuality, it appears that almost no recharging occurs. I am not sure why.
Simulating a Rigid Harness
The harness setup I have now is loose. I uses loose tethers and I can drift away from the center as a result. A rigid harness would, among other things, keep me in the same spot, eliminating drift.
I tried to simulate what a rigid harness would feel like by simply reaching up and holding the beam above my head. I tensed my arm to hold myself in place. I also tested using the shoes in a doorway where I could easily grab the edge of the doorway to simulate a more rigid support rig.
I noticed that I felt much more stable and balanced with my simulated setup, which might seem obvious. So, I want to create a more rigid support rig. It may feel more restrictive, but the benefits to stability are immense. I think it will be much easier to play games that require rapid movements using a rigid harness. Plus, as long as the restrictive feeling is constant and consistent, it will not be noticeable after a little while.
Kat Walk C Reviews
Many people have received the Kat Walk C, the first slidemill available to consumers. More people have been able to use a slidemill for an extended period of time. And from what I've seen, the reviews seem to be positive.
Previously it seemed that a lot of people who got the chance to use a slidemill described the experience like sliding on ice, not natural, and overall uncomfortable. I've wondered if that is because the concept itself is just flawed, or because the users didn't get a chance to use the slidemill for an extended period of time and get used to the new way of walking. From what I've seen, those who have received their Kat Walk Cs say that it takes some getting used to, but after that it's a good experience.
Simulating a Completely Passive VR Shoe
After seeing how many people liked their Kat Walk Cs, it made me think more about some passive VR shoe concepts I've brought up before. Slidemills seem to be a good design, but they're bulky and heavy. Could a slidemill experience be achieved with VR shoes, a much more portable and probably cheaper solution, instead?
Again, I stood in a doorway and this time just didn't turn the shoes on and started walking. It wasn't bad, especially considering that the shoes have some resistance since I'm back driving the motor. It didn't feel as good as when the shoes are powered up, but I think with some modifications I think it could be a good experience.
The Plan Going Forward
I need a new design and have several ideas to try out. I want to try a rigid support rig and see how much it helps with stability. So what I'm going to do first is design and create a rigid support rig. Then, I have a plan to work my way from a passive VR shoe design to a motorized one again.
After the support rig is created, I'll work on a very, very simple passive VR shoe design. The first one will basically be roller skates, but with the ability to adjust friction for turning the wheels. I'll be able to make it harder or easier for the wheels to turn. This will simulate how a slidemill is slippery enough to allow you to slide, but has enough friction so you can stand. Similarly, The wheels will have enough resistance so you can stand, but not too much so you can still bring your feet back.
With this first design, I'll make most of the parts out of flexible TPU, with rods embedded to maintain their shape. It will probably be strong enough to hold up to very rough treatment. The shoe will still just go forward/back to keep it simple. I should be able to design, create, and test these VR shoes very quickly, then move onto another design.
For the next design, I'll incorporate the rack and pinion mechanism I described here. Now, I was hoping I could use that mechanism to turn a little bit of vertical movement (the rack being pushed down) into a full length stride. After crunching the numbers, I believe it's impractical. The amount of gearing you'd need is huge. However, I can use the mechanism to just get the shoes started. In other words, give them a little bit of momentum.
The rack and pinion mechanism will give the same benefit that the bowl design on slidemills has. Slidemills have a bowl design so that gravity can help bring the user's foot back, using the curve of the bowl. Similarly, the rack and pinion mechanism will get your foot started in the right direction, give it a little bit of momentum, to bring the user's foot back.
Since the rack and pinion have teeth, they could wear out quickly. First, I'll print them out of polycarbonate instead of PETG. If that doesn't work, I'll look into getting a metal rack and pinion. With my current design, I had 12 or 13 gears, so replacing all of them with metal gears would be expensive. But if I only need to be 1 pinion and rack, that probably wouldn't be expensive.
In addition to the rack and pinion mechanism giving the shoe a little momentum, it also has another benefit. During my testing I noticed that the motor would draw on average 10-20 amps, but the max current draw was 40 amps. The 40 amp draw comes from the motor having to get the shoes going from a dead stop. It takes a lot of power to start up from a dead stop, and a lot less power to keep going once no more acceleration is needed. The rack and pinion mechanism can be used to get the shoes going, then a smaller motor can help keep the momentum going after that. It can be smaller because the hard part, staring from stop, has already been done.
After adding a smaller motor back into the design, well, I'm back at a motorized VR shoe design. But now the motor will be smaller, the shoes will be tougher, and the shoes will probably be lighter and cheaper too. I think it will be much easier to incorporate all the changes I want to make, step by step in these multiple different designs, instead of trying to incorporate them all into a design right away.
In summary, the plan is to
- Design and build a rigid support rig.
- Design, build, and test a simple passive VR shoe. Make the parts out of TPU with embedded metal rods. Make it so the resistance can be added for turning the wheels.
- Improve the passive VR shoe design by adding the rack and pinion mechanism. Work out the kinks.
- Add a smaller motor to the shoe that keeps momentum going after the rack and pinion mechanism does its job.
During steps 2, 3, or 4 I may try incorporating omni-wheels. If the shoes get too heavy I'll add the binding back in and the spring-loaded casters. If the experience is great without the motor (steps 2 or 3), I'll consider not even doing step 4.
If you read this far, you're awesome.
-
Short Update on Smoothing Motion
02/11/2021 at 02:17 • 0 commentsI'm working on smoothing the motion. See my previous project log if you want to know the details.
Walking is now pretty smooth and feels pretty good. Turning needs some work and I have some ideas to make it better, and I still need to add an IMU to each shoe.
-
Smoother Motion
02/01/2021 at 00:21 • 0 commentsThis log will go over the ideas I am going to implement to make the motion for my VR shoes as smooth as possible. If you haven't already seen it, check out my walk in No Man's Sky with my VR shoes. The motion I have now is already pretty good, but as you'll read, it can get even better.
Note that I will not be going over the return to center algorithm in this article. If you're wonder how the shoes know when to move, you can read about the algorithm here. Essentially, the shoe going forward tells the other shoe to go backwards at the same speed. This article will be going over the additional actions I'll take to smooth the motion. In an ideal world the return to center algorithm on its own would be perfect, but latency for communication between the shoes and start-up time for the motors means that additional actions need to be taken.
The first action I have already taken is to update that algorithm so that a single stride can only have one speed. Previously, as I would bring my foot forward, the speed at which I did so would vary a bit. This caused the other shoe to try to move backwards and vary it's speed similarly. The variable speed made the motion feel choppy and hard to balance. So, I updated the code so that once the shoe starts moving backwards, it stays at one speed to create a smooth motion. Drift can be compensated by the next stride. In the future I may update the code so that a single stride as one speed or can only accelerate or deaccelerate from there, but I'm not going to do that for now.
That is the action I have already taken. The rest of the things are actions I plan on implementing.
Part of the motion algorithm can be described using a state machine diagram.
The shoes can be in the following states.
* Stopped - The shoes are not moving.
* First Step - The user has started to move. The first step is being taken.
* Walking - The user is beyond the first step and is walking.I will have different code for going from stopped to the first step, and from going to the first step to walking. Stopped to the first step will prioritize a smooth, slower startup. The shoes will more gradually gain speed in the first step to make going from stopped to walking feel smoother. Starting up the motors too fast when starting from 0 RPM will feel like a jolt of speed and may through the user's balance off.
Going from the first step to walking will prioritize maintaining speed and eliminating drift. During walking, the shoes will start up faster. Since the user is already moving the jolts of speed that the motors provide will be less jarring.
In addition to the state machine I've already shown, the shoes will be in different additional states depending on where they are in the stride. This state machine will apply when the shoes are in the walking state.
The shoe will be in the following states.
* Front of stride - The shoe is in front of the user and the user has just put is foot down.
* Middle of stride - The shoe has been moved (by the motors) to the middle of the stride. The shoe is directly under the user or close to it.
* Back of stride - The shoe is behind the user and the user is lifting his foot again to start another stride.These additional states will be used to increase the responsiveness of the shoes. As the user walks, the user is constantly alternating his legs back and forth. When the legs change direction there is a moment when the speed of the shoe will decelerate, be zero, then accelerate again. During this moment, according to my return to center algorithm, the shoe in front of the user is waiting until the other foot lifts up off the platform and starts to move forward. Once the other shoe has done that, it sends a message to the front shoe that it's good to start actuating the motor and moving backwards. All of this creates a delay.
How can we get rid of the delay, or minimize it as much as possible? One option is for the front shoe to not wait for a signal from the back shoe. The front shoe will start moving backwards because it thinks that the user wants to continue walking. But what if the user doesn't want to continue walking?
I have found for myself that as I walk, when I eventually stop walking I almost always end my walk where both my feet are below me. I don't end my walk with my feet positioned behind and in front of me. I believe that is the case for most people. So for the shoes, the plan is once the shoes get to the walking state, when the user brings his foot down in front of him it is a safe assumption that he is planning to continue walking. With that being the case, the moment the user brings his foot down in front of him, the shoe can start going backwards without waiting for the back shoe's message. In most cases this will be fine, but for the case where the user actually wanted to stop, the front shoe will only go backwards for a set amount of time before receiving the signal from the other shoe. If it doesn't receive the signal within the time limit, it will stop moving. So in this case the user will experience a small amount of motion but it will stop quickly and in most cases the shoes will be more responsive.
It's a safe assuming that if the shoe is at the front of the stride, the user wants to keep walking. It's also a safe assumption that if the shoe is in the middle of the stride and the user brings his foot down, he wants to stop walking. Then the third assumption is if the shoe is at the back of the stride and the user lifts his foot, he wants to take another step.
When the shoe gets to the back of the stride and the user lifts his foot, a momentary break will be applied to stop the momentum the shoe has accumulated.
Turning
When the user lifts his foot, he either wants to start walking or rotate his foot. How can we tell which one he intends to do? The current program has a check in the code that says the shoe cannot start actuating until the other shoe has moved forward a certain distance. For example, if I raise my right foot, I must move my right foot a certain distance forward before the left shoe will start actuating the motor. This means that I can raise my right foot and rotate it, as long as during the rotation I don't turn the wheels on the shoe too much. This simple solution was adequate for the No Man's Sky demo I did, but more can be done.
The addition of an IMU can improve turning. I mentioned that with the simple code I have now that rotating is fine as long as I don't turn the wheels during my rotation. Well, it's easy to turn the wheels during the rotation. Using an IMU, I will add two additional conditions. The first will be that the rate of change of degrees needs to be smaller than a configurable amount. Again, if I raise my right foot and start to rotate it, imagine I turn the wheels a bit, but I'm turning my foot at a sufficient speed (say, 10 degrees/second), so the left shoe knows not to actuate the motor. The second condition will be if the angles of each shoe differ by a configurable amount. Again, if I raise my right foot and turn it 90 degrees, the left shoe shouldn't actuate the motor because the user intends to walk right, but the left shoe is not pointed in the correct direction to negate that motion. It's also possible the shoes will collide if the left foot actuates under those conditions.
Tuning Parameters
I have a set of tuning parameters in the code now that work well for one speed. I plan on adding additional tuning parameters for different speeds.
In-Game Optimizations
If you watched my No Mans Sky walk, you may have noticed that the motion was very stop and go. I would take a step, stop, take my next step, stop, and so on. The pause in-between each step should be reduced as much as possible. I was informed by a user on my discord that other VR locomotion solutions, such as Natural Locomotion, don't bring the user to a stop the moment the user stops, but instead the user is decelerated in the game. I'm going to take the same approach where my character in the game will decelerate by a configurable amount between each step instead of just stopping. I could configure the amount so that basically no deceleration happens if I want.
One other in game optimization I plan on making is making it easy to re-calibrate the shoe's absolute orientation. Like I mentioned before, I'm going to add IMUs to each shoe. I will use these to track the shoe's orientation relative to the headset. Over time the IMUs will accumulate error. The user can occasionally re-calibrate the orientation by having his feet face the same direction he is facing and pressing a button or combination of buttons on the controllers, such as both home buttons at once. This will tell the shoes that the user's feet are facing the same direction as the headset and they can calibrate accordingly.
-
The Return to Center Algorithm
01/31/2021 at 23:52 • 0 commentsIn this log I'll explain the algorithm I use to the control my VR shoes. Please refer to the following image.
When the rectangle is solid, that means that the user’s foot is on the motorized shoe. When a rectangle is dotted, that signifies that the user’s foot is in the air and the user is bringing the shoe forward (or to the side) along with their foot.
Step 1 is the starting position of the user, where they are standing still, shoulder-width apart. In step 2, the user starts taking a step forward. The right foot is in the air, and the motorized shoe is being brought forward along with the user’s foot. The sensor in the right shoe will detect an acceleration in the positive Y direction. The acceleration in the positive Y direction in the right shoe will trigger the left shoe’s main motor to turn on. The left shoe will be start moving backwards at the same speed the right shoe is moving forwards. The speed to use can be calculated by using the accelerometer data (integrating to get the velocity) or by using motor encoders. So put in other words, When the user takes a step forward with his right foot, the left foot is moved at the same speed in the opposite direction.
In step 3, the user has put their right foot down on the motorized shoe again. In step 4, the user lifts their left foot and begins moving it forward. Just like in step 2, when motion is detected in the left foot, the right foot’s shoe will start bring the right foot back at equal speed in the opposite direction.
In step 5, the user has brought their left foot down. Now the user decides to take one last shorter step, and then to stop. The shorter step is shown in step 6. In step 7, when the user brings their right foot down, she does not start to move their left foot. Since she doesn’t move their left foot, no motion in the left foot is detected, so the motors in the right foot’s shoe do not start up.
Let’s now imagine that in step 5, instead of the user taking another step forward, she decides to take a step to the side, as shown in below.
Shown in step 6, the user will lift their right foot and start moving it in the positive X direction. In step 7, the user has put their right foot down. In step 8, she continues their strafing to the right. She brings their left foot up and starts moving it I the positive X direction. Since motion in the left shoe is detected, the right shoe will start moving sideways in the opposite direction. In step 9, the user brings their left foot down.
An additional thing to consider with strafing and that I think I’ll need to incorporate into the algorithm is that, with strafing, the user’s feet should not crisscross. If the user lifts his right foot and moves it X distance to the right, the right foot’s shoe should not move back a distance greater than X.
Braking must also be considered in this algorithm. When the user is standing still, the motors should lock the wheels in place so that the user feels like he has stable footing. When the user is walking, for example, straight forward, the motor in charge of moving side to side will hold its position so that the shoe does not move to either side when it’s supposed to only move straight backwards. To detect the user lifting his feet, buttons will be on the top of the platform. When the buttons are compressed, the user’s foot is on the platform.
The algorithm, step by step, is as follows.
- When the user is standing still with both feet on the platforms, the motors should resist any motion.
- When the user lifts one of his feet to start walking, his foot will come off the platform. That will be detected by the buttons on the platform. This will cause that shoe’s motors to stop holding their position.
- A 2D vector will be constructed that indicates the direction and speed the user is moving his foot and the shoe in.
- The other shoe, where motion is not detected and the user has not lifted his foot, will have its motors activated so that the motorized shoe starts to move. It will move at the same speed as the other shoe, but in the opposite direction.
- When the user brings his foot that was in the air down, the buttons will be compressed. The distance the shoe moved will be stored.
- When the user starts to lift his other foot, the same process will occur. The shoe for the foot that is still on the ground will move in the opposite direction with the same speed. If the user is strafing, the shoe will not move more than the stored distance.
- When the user stops moving his foot that is in the air, or bring his foot down and does not continue to move it, the motors in both shoes will be stopped and they will hold their position again.
Correcting Drift
What I have just described is what I call the return to center algorithm. In reality, there will be some error in the process and the user could end up drifting away from his origin. To combat this I plan on retrieving the position of the headset in my code and using that position and the headset's original position to track where the user is and correct accordingly.
With VR shoes that can only go forward and backward, some sideways drift may happen and can't be corrected for. Unfortunately the user may need to correct his position from time to time. If the shoes have the ability to turn then a possible solution is to have the shoes turn a small amount with each step to move the user back to the center.
-
Introduction - The Problem and my Solution
01/31/2021 at 22:57 • 0 commentsA problem with current virtual reality set ups is that you have to stand in one spot. If you walk forward, you will run into whatever is in front of you (a wall or physical object). To make the virtual reality experience more immersive, it would be ideal to be able to walk infinitely in the virtual world, in any direction, but stay in the same spot in the real world.
Solutions for this problem already exist; they are called omni-treadmills. Below are examples of omni-treadmills.
You can see that the first two consist of a platform that is slippery so that the user can slide her feet. The Infinadeck relies on conveyors. All of the treadmills are bulky and heavy. I also wonder how natural it feels to walk on a slippery surface and slide your feet back.
My Solution
At a high level, my idea is a motorized shoe that allows a person to walk while staying in the same physical location. Using this device and other VR equipment, a user can walk infinitely in a video game while staying in the same physical location in the real world.
Omni-treadmills are large and heavy contraptions, making them hard to move and store. My motorized shoes are lightweight and can easily be stored in a closet. My design will also have of a safety harness connected to a support structure or a hook in the ceiling to make sure the user does not fall over.
My Design
I have gone through many designs at this point. My current design is explained in this video.
My current design can go forward and backward, but doesn't have sideways motion. It utilizes one motor, speed control, and an ESP32 as the microcontroller. It communicates over bluetooth.
The most notable difference with my VR shoes when comparing them with others is the flexible binding. A common issue with VR shoes is weight. All the components to make a motorized shoe, especially one that can go fast and can handle heavier people, adds weight to the shoe and makes it heavy to lift and use. My design gets around that problem by making it so the user never actually lifts the shoe off of the ground. Instead, the user's foot is strapped to the flexible binding and the binding can move up and down the 2 guide rods, but is still coupled to the shoe. The user can still lift his foot like he normally would when walking and the shoe gets moved by the user. The shoe is on wheels, so the resistance is negligible. Having to lift a 10 pound shoe would feel very heavy. Rolling a 10 pound shoe on wheels is easy.
Safety Rig
In addition to the shoes, a safety rig is required. The rig is there in case the user falls. Even if I could make the shoes so perfect so that the user doesn't fall 99% of the time, there is still the 1% chance that they will. Edge cases like that include if the shoes break, run out of power, or the user falls over for some reason unrelated to the VR shoes (don't drink and use VR shoes without a harness). Given that a user will likely use the shoes for many hours, hopefully over many years, the 1% event will happen. Think of it like a seat belt. I personally have technically never needed one, but it's still smart to wear one.
My current safety rig consists of a hook in the ceiling, a safety harness, and a tether connecting the two. This was the simplest setup to get going, as all I had to do was buy off the shelf parts. It's also very easy to store when I'm not using the VR shoes. Right now I'm also using a couple of bungee cords to help me balance while using the shoes. I'm hoping I can eventually get rid of them. Additionally I have two additional hooks within reach that I hang the headset and controllers on.
My current setup makes it so that it only takes a few minutes (or less) to strap in and start playing.
- Put the harness on. You can do this where ever.
- Strap the shoes on.
- Hook the tether to the ceiling hook.
- Grab the controllers and headset.
Of course, there are many safety rigs that would also work. You could build an adult sized baby bouncer like what the virtuix omni used. You could use a power rack or portable pull-up bar. Or you could replicate safety structures from existing omni-directional treadmills. Each has it's own advantages and disadvantages. Some people would prefer to have a safety rig where they don't need to drill into the ceiling or wall, but those are bulkier. Some want a smaller, easier to store system.
The Return to Center Algorithm
You may be wondering what algorithm I'm using to control the shoes. How do the shoes know when to move? I will go over that in my next post.
Interface with a Video Game
When the motorized shoes move, the microprocessor can send the speed and direction to a driver on the user’s computer. This driver acts as a typical video game controller driver. The direction and speed that the user is moving in the real world will be communicated to a video game using the driver, so that the user’s avatar in the video game moves in the same direction and at a configured speed. The configured speed in game could, for example, be twice as fast as the user actually moves in the real world.
Right now I'm using an OpenVR controller to send commands to Steam. I go over exactly how to do it in this video.
In the future I would also like to support the Oculus Quest natively.
Crouching
Crouching is already partially supported with the current safety rig setup I'm using. The tether coupling the harness and the hook is loose enough to allow for some crouching but not so loose that it won't prevent me from a fall.
I ideally want to get rid of the tether and use a mechanism very similar to how seatbelts work. With a seatbelt, you can keep pulling on the seatbelt as long as you do not pull to fast. I want to implement a similar system where you can crouch as low as you want as long as you do not drop down too fast. A fall will be prevented by locking the tether if the tether is pulled out too fast.
Jumping Support
I don't think the shoes will handle a jump. I do however think that I can implement a pseudo-jump where the user rapidly lifts his heels up while keeping his toes on the shoe.
Running
I'm hoping I can improve the shoes up to the point where a slow jog is possible.
Demo