I am currently working on a project that involves making a 6 DoF MRI compatible pneumatic Stewart platform, and I have been tasked to make a closed loop encoding system to track the position of custom 3D-printed pneumatic motors. I have done research into encoding methods and I have decided to explore fiber optics to build a fiber-optic rotary encoder. Micronor currently makes MRI-Safe linear/rotary encoders here however they charge up to $6000 per encoder which is simply not feasible for my project. I plan on using fiber optics and an arduino uno microcontroller, 3D print a custom housing and a code wheel to create a cheaper alternative for this project, which can be replicated for all 6 motors of the Stuart platform.
I have realised it is difficult finding examples of fiberoptics interfaced with arduino on the internet however I have found two blogposts using Avago HFBR-2412TZ (receiver) and Avago HFBR-1414TZ (transmitter) that were successfully interfaced with arduino boards. My question would be, how feasible is this as a cost effective and cheap method to achieve MR compatible closed loop optical encoding, and what would be the main considerations of building an arduino based transceiver for counting light pulses? Assume the following requirements.
Distance is up to 10 meters, while fiberoptics is typically used for long distance data transmission, I only require 10 meters of fiber (at most) to satisfy MR safe requirements
Precision and accuracy is not the main goal at the moment, but rather just to get a basis working for me to iterate upon moving forward. I do understand accuracy is tied to how fine the code wheel slots are and how many there are within 1 revolution of the code wheel.
Quadrature encoding is desirable, however for the sake of simplicity of starting out with these components, I would like to simply read the fiber optic receiver's signal and count light pulses.
Assume I will be using resistors, capacitors (noise filtering), the two parts mentioned above and an arduino uno with 2 fiber optic cables stripped and cleaved on one end.
Custom 3D printed housing to ensure precises alignment of fibers, with code wheel in between. How much light loss would occur when light passes through the code wheel?
And finally, what extra parts would be required and are the parts i listed above suitable? I want to be sure as the university is funding these parts and would like some certainty on the feasibility of this approach.
Without completely understanding your project, I see there’s no mention of light sources or sensors.
I’m guessing because of proximity to the radiation field, this will be a reflective sensor / apparatus, so a means of getting light into the sensor location will also be required.
That leads me to the next question of chat positional sampling frequency are you hoping for?
Maybe there’s a need for some diagrams of how the assembly will come together.
from my understanding the two parts (emitter and receiver) that i listed above are the light sources and sensors. The fiber optic emitter with generate a light source that will pass through the fiber and the receiver has a lens that will amplify any light passing into it.
With regards to positional sampling frequency, forgive me as I am still new to all the terminology around encoding but would that refer to pulses per revolution of the code wheel?
Here's a basic diagram of how i would like the final assembly to come together, Assume the code wheel is mechanically coupled to the linear actuator.
Ok, that makes sense.
I assume you’re not putting the opto-interrupter into the MRI field - would they stand up,to the magnetism… that would need some testing.
If only fibre going in (what I imagined initially), then you need to carry the light from a shared bright source throughput multiple fibre cores to the sensor, and back again after the slotted interrupter.
Do you mind expanding on the last part "carry the light from a shared bright source throughput multiple fiber cores to the sensor, and back again after the slotted interrupter" is this referring to the part of the assembly that couples the light leaving the fiber cores at one side of the code wheel to the other fiber cores that lead to the receiver module? If so, should I expect heavy light attenuation as the light travels to the 2nd fiber? or would it depend entirely on the strength of the emitter and how well the 2 fibers are aligned?
All I’m suggesting is that unless the light source is being modulated, it can come from one or many sources, as long as they get to the the interrupter wheel bright enough.
Those integrated onto-interrupters may be harder to physically interface,
Normal ‘end-on’ LED emitters and photodiodes can be attached to the end of a fibre with a bit of optically transparent glue, and a bit of heat shrink tubing. Just remember to match the wavelength (colour) !
So we are pretty much building a 6 legged platform to replicate tumour motion as a quality assurance method for MRI LINAC. The image below is a standard stewart platform that provides 6 degrees of freedom movement (x,y,z,Rz,Ry,Rz)
Our platform shares the same fundamentals as the platform above however we are building one using 3d printed pneumatic motor actuators instead of the conventional electric linear actuators. Because this system is going to be placed within the MRI bore to test a phantom using the MRI LINAC, we cannot have a platform built of metallic/eletrical components as it will disrupt the electromagnetic function of the MRI.
This leads me to my part of the project. While we have a method for controlling these pneumatic motors, we also need to close the loop and make sure that the input = output and Ive chosen to use the concept of optical encoding which can be explained here, however combine it with the fundamentals of fiber optics so we can track the position of each motor without the use of electronics near the MRI bore. This means we would need to have circuitry situated away from the MRI, ideally 10 meters (however for the sake of iteration and testing, I am testing with a smaller distance) and use fiber optics to send/reveive light into the code wheel (see the link above for optical encoding) which would be in the MRI.
Hopefully that provided some context for this post. With regards to coupling the linear movement to the rotational movement of the code wheel, I havent come up with a conclusive design however it is not relevant to the part im trying to solve now, which is interfacing fiber optics with arduino.
Thanks for your reply, I hope this helps.
The two parts i mentioned in the original posts are:
I plan on using cabled fiber which have been stripped and cleaved on one end and plugged into the transmitter/receiver modules into an arduino based circuit. So imagine I buy a meter of fiber optic cable (with the protective sheath) which is terminated on both ends like the image below
And now i plan on cutting the fiber on one end and stripping/cleaving it only to leave a single fiber core which will slot into the code wheel into the MRI. Hopefully this makes sense.
If it helps, i will link a blogpost where someone has done something similar (an mri compatible joystick)
Yes ive been doing more research into quadrature encoding and i would just need to position the 2 receiver fibers 90° out of phase in order to achieve this. From what is seems like from all the replies this seems feasible but would require more testing of course.
You mentioned there are cheaper transmitters/receivers, is thst compared to the two ive already listed?
If you use plastic fiber, you can find transmitters/receivers built in to couplers that are far less expensive than the ones for glass fiber. Plastic fiber is also much easier to work with and is fine at the speeds needed for an encoder.
There are also interface blocks that let you connect plastic fiber to off the shelf LEDs & photodiodes. I have some stuff in my parts bin that I can check part numbers on, but I know that all my fiber stuff is at least 25 years old, so a lot of components might not even be available any more.
This transmitter with integrated plastic fiber coupler is what I meant. Looks identical to some of the parts I had. Same manufacturer, but different part number. They are good for 500kbps @ 7 meters and they'd be trivial to interface with an arduino.
In fact, if I can find any parts downstairs, I think I know what my next project is