Go Back  R/C Tech Forums > General Forums > RC Flight
MonoBot: Aerial Robotics Project >

MonoBot: Aerial Robotics Project

Community
Wiki Posts
Search

MonoBot: Aerial Robotics Project

Thread Tools
 
Search this Thread
 
Old 10-30-2016, 03:22 PM
  #16  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

The first test of the IR sensors on the actual unit. I didn’t apply my jitter eliminating code yet (I am hoping that I can) so the servos are a little jittery. The jittering will cause the most problem in throttle control. I have sensors at the top and the bottom, too, which will adjust the throttle. When I tested the throttle, the servo signal anomaly that cause the servo jittering caused the RPM swing in a range. The fan still reacted to the sensors and adjusted the throttle but not in a smooth way…

The first test was pretty good though. The video shows the nozzles react to the IR sensors’ input:

https://www.youtube.com/watch?v=tr-sHlNnzA0

+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
VAALLEON is offline  
Old 11-15-2016, 04:59 PM
  #17  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

I tweaked the code to overcome the PWM anomaly that caused the servo jitter. The anomaly was causing the throttle to really bounce around and I wasn’t going to be able to fly it that way.

In the current state, the code is performing two separate reads on each channel and comparing those two readings to each other. If one reading is more than X different than the previous reading, then it is allowing it to move up or down only as much as X. And it is performing the reading Y times a second.

X and Y are the variables. In the current state of the variables, the response to stick input has slowed down significantly but I believe I will be able to fix that with playing with the values of X and Y.

This video is the first attempt to see the throttle response to the new code and the sensors. It was encouraging. You can see throttle adjust with input from top and bottom sensors.

https://www.youtube.com/watch?v=CPxF...c&spfreload=10

+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
VAALLEON is offline  
Old 11-19-2016, 06:05 PM
  #18  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

I made all my preparations to maiden the MonoBot today. Did a short tethered indoors test to see it even hovers. It did, but wasn’t balanced right, so kinda hit the bed and had minor damages. Fixed it and went outside. The first test is the time that you will definitely know if your design is right or wrong. BECAUSE, I made a deal with the universe: When the design is not right, it lets me know by slamming my unit to the ground And that happened MANY times. So, the plan was:

1-Test the flight capabilities with the new electronics with IR NOT activated

2-Activate IR in the air and see how it responds

This is the part that hobbyists with IR sensor experience will laugh their butts off: The IR system didn’t respond the same way outside, the way it used to inside. Came in, checked the serial monitor, it works fine. Went outside again, the same problem repeated. Then I guessed that the sunlight is interfering and googled it: bingo. I felt really dumb, dealing with with IR sensors for months now, building them and not knowing this fact!

So, after finding about this, I still decided to test it without activating the IR sensors at all, to see if it flies. I was out at dusk and I realized that the sensors actually started working. But still didn’t activate them during the flight just in case. Below is the video of the first flight. I definitely felt the slow response time, resulting from the signal filtering code. However, considering that I am getting a PWM signal, passing it through Arduino, converting it to PPM and filtering it before feeding it to the flight controller, It was pretty good. However, I still couldn’t eliminate a rough landing due to not being used to these new control characteristics and damaged a servo and some body parts. Took me about 30 min to fix. The irony is that if I activated the IR sensors, considering that they started working at dusk, I would never have the rough landing as the unit would adjust the throttle.

Anyway, now will find a way to filter the sunlight so that the sensors work in daylight. Will probably do a second test tomorrow at dusk with the sensors on…

https://www.youtube.com/watch?v=sBPW...ature=youtu.be

+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
VAALLEON is offline  
Old 12-09-2016, 10:55 PM
  #19  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

I tried for a while to make the IR sensor immune to daylight but it was way over me technically. I tried to send and receive the light in a certain frequency but that didn’t work…

It felt more my way, to teach the Arduino about the outside world instead of limiting it to a signal anyway. During my tests I saw that daylight, especially direct sunlight have very strong IR radiation. So, I started working on a code that will recognize the environment and command the unit accordingly.

The code is recognizing the environment by calculating the average value from all 6 sensors and initiating 2 different algorithms accordingly. It also has a control against the effect from the direct sunlight. Otherwise, the unit would give a very strong response to direct sunlight.

I also improved the hardware by covering the back of the sensors and placing them in tubes to minimize environmental effects.

It works fine indoors. I will see how it reacts outdoors tomorrow. When it is ready I will do the first flight test with the IR sensors, hopefully outdoors.
Attached Thumbnails MonoBot: Aerial Robotics Project-sense.jpg  
VAALLEON is offline  
Old 01-21-2017, 10:59 AM
  #20  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

Focusing on the indestructible Nano recently, I haven’t been able to work on the MonoBot. Having the nanoC resolved, I had a chance to revisit the bot.

Since the maiden flight and realizing that the regular IR sensors are useless in daylight, I worked on a solution which I hope would solve this problem. This solution utilizes the sensors almost like motion sensors and they react to changes in the environment, whether this is an obstacle or a change in the light source, etc… But I never had the chance to test this until a couple of days ago.

This time the problem wasn’t the IR sensors, in fact I could only test them in one occasion during 18 minutes of trying. The servo jitter that I kinda solved with the filtering code and the delay that the code causes were the major problems. So, I tried to control the unit most of the time and didn’t feel comfortable to activate the IR sensors except one occasion and that short video is attached. At 24 second mark you will notice the unit ascend and bounce back with the help of the bottom sensor. However, probably, because of the noise in the signal and the delay caused by the code, the second bounce didn’t happen and the throttle was all over the place during that time.

After experience, I tried hardware solutions one more time, pull down/up resistors, capacitors, different feed voltages, feeding the Arduino board from a separate source, etc… One more time, nothing worked… I believe this is an Arduino nano problem and there are lots of blogs but no real solutions. And I am pretty sure if I used a UNO board I wouldn’t have this problem but that is too large for the unit.

So, I camped in front of the computer for 2 nights to sort this problem with a new code. After many unsuccessful tries I believe I came up with a better solution, which eliminates the jitter COMPLETELY and improves the response time significantly. The second half of the video shows the results. The shaking of the nozzles for a second right after I boot up the unit is because of resonance and has nothing to do with the signal quality. After that one second you will see that the nozzles are as still as rocks, which makes me very happy.

Will adjust the response rate of the sensors and test it again once the weather conditions allow me…

https://www.youtube.com/watch?v=HJ5w...ature=youtu.be

+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
Attached Thumbnails MonoBot: Aerial Robotics Project-img_6057.jpg  
VAALLEON is offline  
Old 03-12-2017, 01:58 PM
  #21  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

I had to go back and do everything all over… I couldn’t, for the life of me, achieve a stable flight with the previous setup. Every time I thought I solved the problems, something new came up. The last problem was that the X/Y/Z values have been slightly changing independently based on the values of the other axis. When I was adjusting the yaw, it was impacting roll. So, I could never get the unit to a stable flight where I can test the sensor. I believe the problem was that the PPM signal that I fed into the flight controller was causing the problem and the FC was getting confused, maybe because the signal from the Arduino uno wasn’t all that high quality… And with this flight controller, I couldn’t feed in PWM….

So, the decision was made and I replaced the flight controller with the one that I used on the indestructible Nano. Re-wrote the code to replace PPM with PWM, and fed that into the FC. I took off all sensors, to install new ones in the next stage, if the unit flies well.

It worked. At last I passed the signal through the Arduino and achieved a stable flight. There is a slight headwind during this flight so I need to manipulate the unit to beat that. I am really happy with the result. I still have the jitter avoidance code working at the background and causing a little delay but, it didn’t impact the flight, except the landing, where the throttle cutoff was slow and caused the unit to flip, which is nothing new.

Now the signal is ready to be mixed with the IR sensor inputs. But this time I will be testing some obstacle avoidance sensors instead of my old home made distance sensors. The new sensors create a signal which is either 0 or 1 but the code is capable of softening this and adjusting the output based on the length of the signal. According to my tests, they are also immune to daylight, not 100% but maybe 90-95% (direct sunlight may cause issues). If the unit gets out of control I will disable the sensors with the 5th channel. First I will test only 1 or 2 sensors to see how the unit reacts.

https://www.youtube.com/watch?v=tSshTTb0cJI

+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
VAALLEON is offline  
Old 03-14-2017, 09:15 PM
  #22  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

AT LAST!!! The first time that I could really test the IR sensors during the flight. Currently have two sensors, one at the front and one at the back. I used my right hand as the obstacle to activate the sensors, whenever I felt comfortable enough to take my hand of the stick. The unit gently moved to opposite direction each time Really cool!

I will increase the impact of the sensors a little bit to make the unit react faster and will add 4 more sensors in all directions.

https://www.youtube.com/watch?v=CfyT2EHt3JM

+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
VAALLEON is offline  
Old 03-22-2017, 08:55 PM
  #23  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

I decided to go with the hard one again… Will use what I learned to try building a GPSless position hold system via a GY-521 sensor board + Arduino. This is a pretty cool little board which has accelerometers and gyros. Below data is from my serial monitor… Need to build a solid algorithm using the accelerometer data. Hmmm…

AcX = -2200 | AcY = -68 | AcZ = 17424 | Tmp = 31.82 | GyX = -501 | GyY = -38 | GyZ = 249
AcX = -2244 | AcY = -36 | AcZ = 17292 | Tmp = 31.97 | GyX = -444 | GyY = -22 | GyZ = 173
AcX = -2224 | AcY = -52 | AcZ = 17328 | Tmp = 31.87 | GyX = -450 | GyY = -64 | GyZ = 258
AcX = -2260 | AcY = -204 | AcZ = 17236 | Tmp = 31.92 | GyX = -432 | GyY = -59 | GyZ = 231
AcX = -2192 | AcY = -36 | AcZ = 17232 | Tmp = 31.92 | GyX = -436 | GyY = -51 | GyZ = 167
AcX = -2308 | AcY = -44 | AcZ = 17268 | Tmp = 32.01 | GyX = -513 | GyY = -15 | GyZ = 267
AcX = -2232 | AcY = -216 | AcZ = 17264 | Tmp = 31.97 | GyX = -472 | GyY = -2166 | GyZ = 252
AcX = -2108 | AcY = -2012 | AcZ = 15580 | Tmp = 31.82 | GyX = 96 | GyY = -935 | GyZ = 5553
AcX = -1040 | AcY = -2932 | AcZ = 18424 | Tmp = 31.87 | GyX = -2685 | GyY = 4202 | GyZ = 3258
AcX = -3316 | AcY = -284 | AcZ = 19688 | Tmp = 31.92 | GyX = 633 | GyY = -435 | GyZ = -1965
Attached Thumbnails MonoBot: Aerial Robotics Project-20170322_203220.jpg  
VAALLEON is offline  
Old 04-15-2017, 07:53 PM
  #24  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

Implementation of what I learned with this project to my indestructible Mono.

https://www.youtube.com/watch?v=Mg87r9ec-X4

+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
VAALLEON is offline  
Old 06-20-2017, 06:09 PM
  #25  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

The new indestructible MonoBot. No more replacing servos, fixing landing gears, etc…. This unit is extremely durable and light and will be the new base for my ongoing Arduino tests. Flies like a charm!

https://www.youtube.com/watch?v=JQ3f...ature=youtu.be


+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
VAALLEON is offline  
Old 07-02-2017, 10:15 PM
  #26  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

This is my new carbon fiber unit that I will use for testing and experimenting sensors and position hold systems, as a part of my ongoing arduino project. This is the maiden of this unit. After seeing that it flies in the first couple of seconds, I felt comfortable enough to immediately test the GPS. I tweaked the code earlier to make the GPS to refresh the position hold position as the point where the stick is released. In the old version, when the stick was released, the GPS would take the unit where the GPS hold was originally initiated. However, with the change, I could successfully re-assign the new position hold coordinates as the point where the stick is released. This will be very useful in many projects. I call it the crawl mode. thx

https://www.youtube.com/watch?v=-eK4TVLMINM

+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
VAALLEON is offline  
Old 07-08-2017, 08:46 PM
  #27  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

This will be my IR radar if I can successfully read the IR sensor at certain angles. I will be able to read theoretically infinite (in reality 8) angles with only 2 sensors. These are very good sensors with over 1 meter range and they are immune to daylight.

https://www.youtube.com/watch?v=uEnV...ature=youtu.be

+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
VAALLEON is offline  
Old 09-10-2017, 02:28 PM
  #28  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

A very ambitious project for an Arduino nano and me for sure… The code turned out to be quite hard to pull out for a rookie like myself. I am having to run the cycle size at 300, which means that the board loops 300 times at every full turn of the IR scanner. This is slowing things down a little bit, because I am limited with the speed of the servo. When, at last, I got the scanner to work, it took me a while to get the correct readings from the IR sensors at the correct angles. In the end I got it to work at a reasonable functionality level…

The good side if I can install a super fast servo, I can speed things up significantly and make the unit more responsive (if I can find one). Another hurdle is that I need to modify the servo to cover a 315 degree range, so I can get away with using only one IR sensor on the scanner instead of the two that I currently have.

In the video, you will see the nozzles react differently when I activate the sensors at different angles, showing that the scanner is working fine. The goal is to make the unit completely autonomous indoors. Takeoff, navigation and the landing will be handled automatically. After the first flight tests, if successful, I will install a GPS for outdoors tests.

https://www.youtube.com/watch?v=h64naSD9nBE

+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
VAALLEON is offline  
Old 09-17-2017, 07:26 PM
  #29  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

Trying to maiden the unit to test the sensors… Crap load of unforeseen problems. The pitch compensation being reverse for some weird reason caused the first crash… Then the ESC failed. At last I was able to test the throttle sensors. They worked good. Except the reaction was a little slow for one of the fast descends and the unit hit the ground before I could activate the IR scanner. Only lost the impeller and the ESC cable snapped. Easy fixes. I edited the crash out of the footage. The sensors work very well when you approach at a reasonable speed as seen in the video but are slow to respond when the descend speed is a little high.
Possible solutions: 1: sensor with a longer range which will react earlier. The problem with this solution is that the as range of the sensor extends, so does the blind zone for close by obstacles. I may consider a sonar instead of an IR sensor for throttle. 2: Implement a precision barometric sensor to regulate the approach speed. 3: Somehow find a solution in the code to speed up the response. The code solution is a tough one considering the scanner is limited to the speed of the servo.

https://www.youtube.com/watch?v=o9iwdocJl44

+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
VAALLEON is offline  
Old 09-24-2017, 02:52 PM
  #30  
Tech Regular
Thread Starter
 
VAALLEON's Avatar
 
Join Date: Aug 2014
Posts: 260
Default

Looks similar but completely different and better setup.

1- Modified the servo to be continuous rotation. I also did the necessary modification to be able to read the shaft position via potentiometer. I have a 180 degree sweep instead of the previous 120 degrees.
2- Revised the code to accommodate the new servo. In the new setup, I don’t need to write the servo value 300 times every cycle to drive the servo. All I am doing is reading the shaft position and reversing the direction whenever the shaft hits 800 value on the top and 200 on the bottom. I am reading the sensors at certain positions based on the potentiometer readings.
3- Added GPS.
These changes made the unit way more responsive as the code is not jammed like before.
With the new GPS, I will not have to intervene all the time. In the first flights, I will activate the GPS right after takeoff and test the sensors. I will look into getting a sonar for the altitude hold. The only problem is that I am using all digital ports in the current setup. So, I will need to find an analog sonar if it exists.

I also ordered a barometric sensor to modulate the approach speed and enable altitude hold for higher altitudes.

Hoping the test the current setup in flight soon.

https://www.youtube.com/watch?v=hWiKF15wPVY

+ YouTube Video
ERROR: If you can see this, then YouTube is down or you don't have Flash installed.
VAALLEON is offline  


Contact Us - Archive - Advertising - Cookie Policy - Privacy Statement - Terms of Service -

Copyright © 2024 MH Sub I, LLC dba Internet Brands. All rights reserved. Use of this site indicates your consent to the Terms of Use.