Tiny Guide on Tele-Presence, Vibrations and Monitoring
by Dave_Z in Circuits > Robots
860 Views, 5 Favorites, 0 Comments
Tiny Guide on Tele-Presence, Vibrations and Monitoring
There are numerous applications towards vibrations monitoring, but several handy examples would be: knowing if someone is at home or not, is the motor going to fail soon, or if there are earthquakes and what's their magnitude, to name a few. Data acquired from vibration measurements is used for raising awareness and can help to design smart anti-theft systems, or predict malfunctioning before it happens and a lot more. Also it can help you to learn more practical stuff and use it, rather a pure theory as in school or university classes.
We will measure vibrations that are traveling from excitation source, which is a running brushed DC-motor. That will give a background to explore further and expand on other sources.
To accomplish our goal, there are several methods. One would be: to get a 3-axis accelerator IC, and develop a PCB which then will measure the g-forces across three axes, and notify to micro-controller via SPI, or I2C. There are very sensitive ICs which are capable of measuring with up to 24-Bit resolution and require a lot of infrastructure and development to function properly, normally these would be suitable more for industrial or scientific usage. The scope of this Intractable is to work with more affordable and easy to use technology, which also can be installed onboard on robot and carried around and applied upon need.
Therefore we will skip the above method one, and use the tele-presence and a conductive vibration scanning probe from “Physalis Labs”. Mostly all the types of sensors and probes and in general most of the IC's as well as sensors are made on basis of piezoelectric effect discovered by Pierre and Marie Curie.
The probes that utilize Kenji-X1 are easy to use, and even if they brake, you can replace them with minor effort. There are several types of probes available, and the difference is basically the probe geometry, which is then applied to the surface and is designed in a way that it creates a good contact with the surface and that way the waves are traveling with less effort through one body (surface) to the another (probe) and causing a micro-scale displacements. The displacement then cause micro-deformation inside a crystal lattice, and that’s the brief idea of the probe.
Supplies
1. Laptop with terminal programs (Putty and TeraTerm) (any Linux, MacOS or Windows Machine).
2. Kenji-X1 open-source tele-robotics platform http://physalislabs.org/projects/kenjix1/ , vibration measurement probe (flat surface geometry) from http://physalislabs.org/projects/kenjix1/
3. OriginLab-Pro Software for data evaluation from https://www.originlab.com/
4. Adjustable laboratory power supply or just batteries to power the brushed DC-motor.
5. The brushed DC-motor itself.
Short Description of Each Step
- Install a terminal software https://ttssh2.osdn.jp/index.html.en (TeraTerm, Putty, for windows, and Xterm or similar for Linux). Here I will be using TeraTerm because I am working on Windows machine at the moment. But you can just pick your favorite terminal software for your suitable machine.
- Kenji-X1 platform, conductive-probe (flat surface) courtesy of “Physalis Labs”. You can purchase them or submit your request for trying them out through the website: http://physalislabs.org/projects/kenjix1/
- Go to OriginLab website and download the installer, and then install the “OriginLab” software from https://www.originlab.com/ . Normally it’s paid, but you can use the trial for a month. Later you can decide to keep it, to or remove it. This software is more related to Windows machines, but they have a guide how to run it on Macs here: https://www.originlab.com/
- Regular laboratory power supply which will be capable of powering any of the above mentioned motors will be fine, or just use batteries, please make sure you use the correct voltage for the motor.
- Brushed DC-Motor scavenged from broken electronics or other similar devices would be an option too. Make sure that the voltage of the motor and the voltage of the power-supply/batteries match, otherwise it will not run, or if does, will be very slow, in case of voltage being below the spec, or will run super-fast and might break if being too high above the spec.
That’s if for the materials and tools….Now we can finally nosedive into our study of acquiring vibration profile of running "Brushed DC-motor".
Vibrations Nosedive
Vibrations are everywhere, they occur around us and in nature heavily. Therefore it is crucial to understand their source and reasons for them to occur. An ongoing monitoring of vibrations keeps awareness on possible earthquakes and other natural disasters occurrences.
On the other hand, monitoring of various vibrations and their magnitude aka amplitude can help prevent failures and down-times of machinery and complex systems which are constantly online and working around us. In power-plants, factories, production lines ongoing verification of the vibrations noise floor is needed. For all hardware, mechatronic and mechanic systems which are running, to keep the awareness on their wear and tear. Not only can it help save maintenance costs, but also painful down-times which can occur due to unexpected breakdown of such complex hardware systems and causing further issues, down the line.
Normally this topic has a huge support in physics, and other natural science disciplines, and heavy math (°_°). Here, I we will skip that and get more physical on real world applications.
Normally vibrations are measured in two domains, time and frequency.
As represented in (Fig.3.) the excitation source can generate waves which can be in form of sinusoids, with higher or lower frequencies, just or sharp peaks which occur instantaneously. We can measure the waves incoming in two domains: time, which means the effect/wave is being observed as the time changes (Fig.3.b.), and the frequency, which means that we observe the effect/wave’s generated power along the frequency bandwidth (Fig.3.c.). You would need to apply a Fourier transform to move from (Fig.3.b.) to (Fig.3.c.).
I have created an illustration how waves from excitation source (human typing on keyboard, hammer, DC-motor etc.…) are traveling through a matter (solid, liquid, gas) getting from one solid object (wall, table, metal and stairs) to another solid object, which happens to be in contact with our conductive-probe. Flat surface of the probe creates a contact with the medium where the waves are the most intense and, enables the waves to trigger intensive micro-displacements aka acceleration (g-forces), which is a prerequisite for good signal strength.
Further the conductive-probe directs the signal to the KenjiX1 platform where it gets registered by the onboard CPU, or shuttled further for processing.
For measuring the vibrations remotely, I am using the KenjiX1 robot platform from Physalis Labs. It is an open-source development platform which overlaps the gap between the industrial robotics far-cry and the maker/tinkerer level smallish ones. More information on KenjiX1 can be found here http://physalislabs.org/projects/kenji/. and in References section at the end.
Starting Up Kenji-X1...
So far we’ve got through the introduction and the uses of vibration waves, then we went briefly over the tools and materials to complete the task, and lastly some theory and information which will help us understand what exactly is happening behind the curtains.
Now we start with the actual experimental stuff ahead. Start your laptop/PC and connect to the WLAN which is available to you and to Kenji-X1.
Power-up the Kenji-X1 with a green illuminated switch (Fig.6.b.), located on the right side of the robot. Please note, the green LED indicator should be illuminated, to be able to power–up the robot. Otherwise check if the rechargeable battery is installed. After booting is finished, and the robot is on working duty, you can find the name on your network list. Use the provided password and IP-address to connect to it.
As soon as it’s powered you will hear a booting sound, and you will be asked to “update kinetic parameters” on the LCD display (Fig.6.a). You should then on your laptop open the terminal program and start a SSH session with the provided IP-address (Fig. 7.a).
Connecting Remotely
Type in the “name” and “password” (Fig.7.b) and afterwards a successful connection with the Kenji-X1’s onboard SBC aka (Raspberry-Pi) will be established (Fig.8.b). Entering the username and password, will boot to Linux console (Fig.8.). From now on, you can do pretty much anything via onboard SBC of Kenji-X1.
We should establish one last communication node on Kenji-X1 to make interacting with the robot fully functional. In console (Fig.8.) type-in the command “sudo minicom” and hit enter. You will hear several high pitch sounds coming out from the Kenji-X1 and text appearing inside the shell. Congratulations (^_^) … now you gained access to roboDrive Engine. From this point and onward there will be active connection to all network nodes, unless you as a user decide to break them.
Let’s make ourselves familiar with some of the roboDrive Engine’s instructions set. To view the “help/readme” info in (Fig.9.) type-in capital letter “H”. In “Run Control” we can configure the platform kinetic parameters: ground speed, tower rotation speed and so on.
Let’s type-in capital letter “O” to enter the menu. The first thing you’re being asked to “enter the vehicle ground speed”,” enter tower rotation angular velocity”
and so on (Fig.10.) below.
Let’s enter all the needed kinetic parameters to the system as shown in (Fig.10): they take values in range (0 - 255). Here 0 represents the fastest and 255 is the slowest, we move across with 8-Bit range.
- Enter vehicle ground speed = 50
- Enter tower rotation angular velocity = 5
- Enter tower vertical speed = 25
- Enter mecha-arms movement speed = 30
- Enter mecha-arms turning speed(L/R) = 30
- Enter grippers clamp speed = 20
- Enter grippers rotation angular velocity = 10
Done!
Driving and Steering Maneuverability
Okay, let’s start driving forward with a minimal speed (50) and make ourselves familiar with control:
As illustrated in (Fig.11.), with the keys on the left (W, A, S, D, X) you can control the robot. It’s similar to PC-Gaming style, where you use your left hand to move around, and right hand for the mouse, which does the viewing around. Here is almost the same, you apply the left keys for moving around, and right keys, on the NumPad to look around up/down and so on.
Measuring Brushed DC-Motor’s Vibration Profile
Let’s start with measuring the vibration profile of the running DC-motor. I have prepared a test setup (Fig.12.), where the motor is powered over the Voltcraft laboratory power supply at about 10 Volts.
As for now, the motor is running constantly and the shaft is spinning. Let’s consider that as an engineer we’ve got a technical task to measure the vibration profile of the brushed DC-motor remotely.
In order to accomplish that task: we shall connect to robot over the network, then we need to get robot driving close to the study object, engage onboard manipulator with the conductive-probe and position it on the brushed DC-motor’s frame, this is somehow similar to when pilots in space shuttle used to apply the manipulator to catch lost or malfunctioning satellites back then, and the last step get the data and evaluate it. This seems to be a lot … but we will manage it together (°_*).
Let’s start by driving Kenji-X1 close to the area, where the test setup is located. In my case it is located at about 10 meters away, in facility so it will not take too long for me to get there. But it could be also that you control Kenji-X1 somewhere on Solomon Islands. I am using the movement keys (Fig.11.) to drive and to navigate in space and approach the DC-motor slowly and stop somewhere at about 30-40 cm away from it (Fig. 13.).
Manipulator Control and Steering
It’s time to deploy the conductive-probe and connect to the DC-motor’s metallic frame. Therefore, I am sending command “V” from my remote PC to un-park Mecha-arms. It takes second or two, and now both mecha-arms are in un-parked position (state-2), which would fit the best for this task. Normally there are several states (1-4) available to the user on Kenji-X1, of course you can also code new ones as well.
Only un-parking and engaging manipulators don’t make a suitable contact with the DC-motor’s frame. I will switch from driving to manipulator steering control and try to steer around left/right up/down to make it work (Fig.14.). After several attempts, I managed to touch the frame of the DC-motor with the flat surface of the conductive-probes disc.
At this moment I have managed to get a contact with the
DC-motor. Now, I just apply minor corrections and fine-tune the probe position by slightly moving left to right. The mecha-arm is pushing already the conductive-probe against the DC-motor’s frame, so there is a proper connection made.
So far the surface to surface contact has been successfully
established. Now It’s time to request data from the conductive-probe and save it inside our onboard SBC’s memory card.
There are two options here: you can either run the SBC with graphical user interface (Fig. 16.a) via “VNC Viewer” software or in console over “TeraTerm” software (Fig. 16.b), which I prefer more, but it’s just a matter of personal preference and you can do the same in both ways.
Connecting to RoboDrive Engine Console
By typing-in “sudo minicom –C userdata_file” command in shell, I ask the system to run a session via minicom and to log all the data in a “userdata_file.txt” file. Here we just told the system to save our data points (which will be coming soon) to the generic text file called “userdata_file.txt”. Minicom splash screen on (Fig.17.b).
The housekeeping stuff is done by now, and we can request 10K data-points from conductive-probe which currently is measuring the vibrations generated by the running DC-motor.
Requesting 10k Data-Points
Start data stream by typing in “V” to run “scanner setup” (Fig. 17.a).
It will appear in shell (Fig.18.b) type “y” for confirmation, and then the desired amount of cycles: “10000” and hit “enter”. As soon as you hit enter, you will see the data stream burst directly inside the shell. That is the real-time data being dispatched to us and also saved onboard. Three types of data points are being registered over the time. The actual amplitude, lowest amplitude (threshold) and highest amplitude (threshold). We measure in time domain, and thus we see a “time [ms]” value on far right column.
Nice!....
As mentioned above the conductive-probe is sending the requested amount of measurement cycles to us. As for now, we can relax and have a cup of coffee. Depending how many measurement cycles you request the time can be longer or shorter, so after minute has passed, and the streaming is over with a message “Scan Complete”.
But all this raw numbers and cryptic look is not exactly what we were hoping for. I guess it will be much better to have something which we can view graphically, and maybe share with others or embed in a report.
Okay, if you remember, before starting the data streaming we asked the system to capture and log our interaction with Kenji-X1 and save it in our file named “userdata_file.txt” which is now sitting inside the Kenji-X1’s onboard SBC’s memory card.
Setting Up Data-Dispatch
Let’s get that datafile transferred to our PC, where currently me, or you “Kenji-X1’s operator” residing now. On my PC, I can achieve that by typing a command inside windows PowerShell
“pscp user@192.168.8.134 : home/pi/userdata_file userdata_file.txt”
Please note you should enter the provided password for the Kenji-X1’s onboard SBC. The file will be copied to the “D:\Users\Arhitect” folder in my example, and on your PC, depending where your path is. In PowerShell, check it via “pwd” command where your path is.
Please install “putty” software for using “pscp” aka “putty secure copy” command and much more in PowerShell. https://documentation.help/PuTTY/pscp-usage.html
The file has been copied remotely to my PC and is located in directory “D:\Users\Arhitect”. Because we changed the working environment from Linux to Windows, if you open this text file, it will look “fuzzy” (^_^) (Fig.21.a.).
EOL Termination
We should make an “EOL” correction for Windows machines.
In context-menu, click on “edit with Notepad++”, if you don’t have Notepad++, just get it from here https://notepad-plus-plus.org/downloads/ .
Changing the EOL conversion to Windows(CR LF).
Click to edit the file in Notepad++ and when its opened up, inside the program, go to “menu” then “edit” then “EOL Conversion” and hit “Windows(CR LF)” and save the file via “CTRL-S” and close the Notepad++. That way, we changed the “end of line” termination to the windows style. If we open the file now, it will look similar to (Fig.19.) data stream.
Visualizing Measured Data
There is handful of ways to visualize measurement data, and they all are good in their own way of doing it. At the end of the day it’s up to you how you are visualizing your data. I have chosen OriginLab Pro. It is really great software which has been around since ages. Especially if you’ve worked with scientists, you might already come across, because it’s really popular in those circles.
We will start by running the software on PC and normally it will open up a new and empty book by default.
I will import the “userdata_file.txt” which we copied to my PC. OriginLab has an import wizard under the section “menu” then “File”. Start by clicking once on an empty data-book and make it active, then go to import and import the file as “single ASCII” or you can also try “import wizard” if you have issues importing data through “single ASCII”.
The “import wizard” gives you more options to manipulate and you can change things like the “delimiter” names, and more. You can try various scenarios to find the best options which will satisfy you the most. Eventually after successful import you can nearly see some tiny thumbnails at the top of each column we've imported.
Each column has its dedicated name in OriginLab-Pro software, so as seen in screenshots above the columns C(Y), F(Y), I(Y), M(X) are the 3 x amplitudes from our conductive-probe, and as you might still remember we are working in time domain and therefore the last one is the time.
You should explicitly tell the program which axes should be plotted as X-Axes and which ones as Y-Axes. I will tell the program to plot the dependency:
f([C(Y) F(Y) I(Y)],M(x))
Which means that “M(X)”dataset, which has all the time values inside will be plotted as X-Axes and all others “C(Y), F(Y), I(Y)” which are holding the vibration waves amplitudes as Y-Axes. For better overview I will divide down the M(X) dataset by 1000 to get time in seconds. Otherwise the values of the X-Axes are too high. In total we plot 4 x datasets in one graph.
Visualised Vibration Profile of the Running Brushed DC-motor
Finally, we have it … in (Fig.25.) we visualized the measurement data and created a beautiful and informative graph from it, which you can include in your semester work, or classwork. But along the way, we also learned a lot more, and now you can navigate ourselves with confidence in such complex interconnected systems and in between communicating nodes.
But wait! … (°_°)…
This is not yet the end, this is just the beginning, and now with all this knowledge in your pocket you can apply the stuff you learned here to study other interesting things, excitation sources, get creative.
References:
https://physalislabs.org/projects/kenjix1/
https://www.youtube.com/channel/UCGsRPWuYgJAJlM_4Q...
https://www.electronics-lab.com/open-source-tele-r...
https://www.amazon.com/AVR-Programming-Learning-So...