instagram

Saturday, January 24, 2015

EKF: Enhancements and Unit Tests

We have a very nice EKF that was written by Dale Schinstock from Kansas University that is used for navigation in our code. Generally it works quite well, although it is fairly sensitive to tuning parameters. I've discussed this somewhat in this post about the magnetometer and this about vertical control.

One thing that I haven't liked (and has slown me down for rolling out updates to the EKF) is that we don't really have any test coverage of it - especially for various initial conditions and systematic biases that might exist.

Unit tests

Recently I wrote a python wrapper that calls into the EKF. I've had something similar for Matlab in the past, but of course the problem with that is it requires a matlab license and cannot be easily integrated into a test environment. With this wrapper in hand, I wrote a series of uni tests (using the Python unittest platform). With this I can systematically test things like how rapidly it converges from various initial conditions given a set of inputs and measurements (with the option to visualize the results, but of course having this disabled when systematically testing things).

For example, I can simulate bias gyro inputs and verify that it tracks that bias correctly

test_gyro_bias

Or initialized at the totally wrong attitude, the EKF will converge to the correct one. Here, it takes longer than I would like and optimizing convergence times (through the EKF tuning) is on my list of things to do and then add worst case values to the test assertions.

test_init_bad_q_bias

When given a position different than the initial location, it quickly snaps to that location at the first update (because the initial position variance is quite high)

test_pos_offset
It is also possible to inject noise and verify that the system remains stable in this case

test_stable

Problematic cases

It can also expose certain problems with the current EKF. For example, if the mag isn't perfect (for example I shrink the z-axis measurement) that results in a biased attitude and the subsequently coupling bias into the velocity and position. In this case, the quad is meant to be sitting still at the origin (except for the mag). It also learns a bias (that isn't there) to explain why the attitude isn't making sense.

test_mag_offset

In a related problem, when simulating starting facing north and presenting mags consistent with facing East, it does reasonably but ends up picking up some roll/pitch errors that influence position:

test_face_west
Another issue is that a fairly small (e.g. 0.2 m/s^2) bias in the accelerometers can really bias the vertical velocity and altitude

test_accel_bias

Fourteen state EKF with mag-attitude decoupling

To address these shortcomings, I made two major changes to the EKF. The first, is to track the bias of accelerometer in the z-axis direction. The complementary filter used for altitude hold mode has such a feature and it proves quite useful for getting robust performance. We previously had a 16-state variant with biases on all three axes, but in my hands that is overkill and actually can be overparameterized - so there can be incorrect solutions to a given set of measurements that are not a good state.

The second was a bit trickier - to make the magnetometer values only influence the heading (in earth frame) without influencing roll and pitch. The solution to this is to pre-transform the measurement measurements by backing out the current estimate of roll and pitch. Then the predicted measurement is based only on the heading term. It ends up being quite a bit of math so I used matlab to rework all the equations and come up with an efficient covariance prediction matrix.

This combination ended up fixing those issues. For example, having a badly scaled (but facing the correct way) magnetometer reading ends up producing positively boring results, with no bias of the attitude:

test_mag_offset

Starting facing the wrong way just nicely rotates around to the correct heading without any errors in the attitude (and thus no position errors)

test_face_west

And having a biased accelerometer is nicely tracked and corrected for

test_accel_bias

At the same time, it still correctly identifies when there is a bias in the gyros and learns this without having a problem identifying zero accel bias. Note that the position and velocity drift while it learns the gyro bias and gets the attitude correct


[Note to self. 49549c3b9c682641d2461a90e176a2f3db7dc1b8 passes all these tests]

Tuning and optimizing convergence

Armed with a filter that can at least deal with some of the systematic errors we anticipate seeing on a multirotor (e.g. distorted mag fields, imperfect accel bias), the next step is to tune it to behave well in real life. There are a few sets of major parameters that define the EKF performance:
  • gyro noise - Q[0..2], this is the amount of error expected between the gyro inputs and the change in state. increasing this variance will make the system trust the gyros less (and thus make things like the mags relatively more influential)
  • accel noise - Q[3..5], this is the amount of error expected between the accel inputs and the change in velocity. Increasing this variance will make the velocity estimation trust the GPS and baro relatively more. It will also alter how the roll and pitch are estimated - basically tuning between trusting the gyros versus accels)
  • bias walk - Q[6..9], how much the bias is expected to change during flight. Making this value smaller means the system will take longer to convergence when estimating the bias terms, but will be less likely to get random bias values when there is noise
  • gps position noise - R[0..2], how much noise is expected from the GPS position measurements. setting this lower will trust the GPS more and setting it higher will trust the integrated velocity estimate more
  • gps velocity noise - R[3..5], how much noise is expected from the GPS velocity measurements, setting this lower will trust the GPS more and setting it higher will trust the accel (and position) more
  • mag noise - R[6..8], how much noise is expected from the mag. trusting this more will get a more accurate heading but be more susceptible to anything that distorts the mags
There is also a component of redundancy amongst these term, in that the covariances can all be scaled by a constant without changing the behavior of the state estimate. However, it is convenient to try and preserve the real units (position in m, velocity in m/s, etc) so the variance has meaningful units (true m^2 variance).

Bias convergence rates

One important parameter to converge quickly enough are the gyro bias terms. We try and initialize these at startup but still tracking changes in error is important and a critical function of the EKF. To test this I see how quickly the EKF learns the gyro bias (within 10%) after initialization. This takes multiple minutes to converge which is slower than we want in practice. Using this code we can increase the bias walk parameters for both the XY gyro, the Z gyro (which is affected differently since it gets corrections from mags instead of accels) and the Z accelerometer. The goal I wanted was for the gyros to converge within 10% of the correct value (when initialized at 10 deg/s off) within 30 seconds. For the accel bias I initialized with 1 m/s^2. After tweaking the variances this was achievable (without making it too fast -- thus tracking noise -- or failing any of the previous tests).

test_gyro_bias

Checking that it did fail any of the previous tests (including those with simulated noise) is critical because if the bias drifts around it can create very bad estimates.

Changing biases

An initial mismatch in the biases is also different than a change during flight. The initial covariance parameters also play into the former. The later is important to be fairly stable although should still track slower changes. This can be simulated by letting the filter run for 30 seconds and then introduce the bias.
changing test_gyro_bias

You can see changing the gyro bias causes the accel bias to briefly change. This is because the biased attitude makes the velocity and position have error, but it self corrects. These influences are unavoidable in a coupled filter like the EKF. Similarly, we can change the accelerometer bias which takes a bit longer to correct.

changing test_accel_bias

Replaying simulated flights

I also wrote a very simple simulator which mimics taking off and flying in circles (with a net drift) and passes that data plus noise to the real implementation of the EKF to make sure that it behaves correctly. Again, this can also be done with an initial bias added or incorrect state to verify that the system ends up at the correct state.

First for a simple flight without anything mismatched (except for sensor noise) the state estimates all do the correct things.

test_circle

Then we can test that it converges when initialized with the wrong attitude (the dotted line shows the real data):

test_bad_init_q

Or with either biased gyros or accels and check that it converges to the correct flight plan and bias values:

test_gyro_bias_circle

test_accel_bias_circle
This test is a really good one. Simulate the quad rocking pitch up and down while yawing. This is a good robust test on the mag attitude compensation. In fact I noticed at one point while doing this that I had an issue and the accel bias could wander a bit much. This led to me finding a bug in how the compensation was applied and fixing it. You can see below that the biases stay stable.

rock_and_turn

Replaying real flights

I've written about using python to analyze logs we collect here and here, With this code it is also possible to replay log data  a real flight. This is important because there are numerous places where the real world violations of the model might cause issues.

Here is a replay of a position hold flight comparing to the real data (or online estimates). You can see the heading well tracked the previous estimate. The position tracked the real data. And finally, the biases were fairly stable through the flight, although perhaps with a bit more oscillation in the gyro bias than I would like.



Flight tests

Of course all this simulation is all well and good, but what really matters is how well it performs. In practice the heading was nice and locked in and the annoying twitch in altitude that I had observed in the past when engaging position hold was gone.


Here is another flight. This was flying Seeing Spark with Sparky2 running this new INS and logging to the android app via a TauLink. I used the log files to generate a video overlay to better see the performance in time with the video. I was mostly flying in position hold mode and using the loiter feature.


The estimates for position look really good and track well with what the video shows the quad doing. Some of the time it drifted laterally but it pretty much always indicated that on the map, so this means it is most likely an issue of tuning rather than a problem with the filter. For vertical velocity it seemed to be generally in agreement with what the video showed. In forward flight, though, the altitude estimate did not seem to track as well - often indicating it was climbing while it was dropping. At the end of the maneuver the altitude estimate would drop rapidly to catch up. Interestingly, in a number of these occurrences it was my impression the climbrate plot was doing the correct thing (and contradicting the altitude estimate).

This disagreement where the velocity looks correct and the altitude goes the opposite way suggests that the accels are producing fairly good data but the baro is not. It's possible the airframe shape of seeing spark with the board on the inside of a cavity creates negative pressure when flying forward. This could cause it to think it is climbing while it is not. I need to try repeating this with another open frame.

Baro glitch

Here was another interesting moment. I was testing with Freedom on a QAV500 frame. I noticed in the logs some times when the baro put out REALLY weird values. Like shooting up 50m in a very short time. When analyzing the logs with video, something became really clear:


So the bottom right has this silly spiky pattern on altitude that is not real. Interestingly, they happen once every cycle while I'm spinning level. I realized, this is when the sun is hitting the baro. Definitely time to cover it.

84 comments:

  1. Replies
    1. Great Article Cyber Security Projects projects for cse Networking Security Projects JavaScript Training in Chennai JavaScript Training in Chennai The Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training

      Delete
  2. Thank you for all this meticulous testing and awesome tool! This will help the Taulabs code produce even more stable and reliable flights and speeds up future enhansments significantly.

    ReplyDelete
  3. I have been looking for such a post for a long time. Thanks again.Online journalism programs

    ReplyDelete
  4. Not only in Solidworks, but also in other software related assignments, our experts can be extremely helpful. Our experts specialize in 3D mechanical design applications of Solidworks . When it comes to doing an assignment and you get stuck, don’t hesitate to get in touch with Online Assignment Expert for assignment help. If you are a university student and looking for assignment writing help then Online Assignment Expert is one stop solution. Our assignment writing experts in Australia serve the best assignment help Australia to students in order to solve their queries.

    ReplyDelete
  5. We focus on meeting all the needs of our clients by offering them with a reliable Nursing paper writing services and essay writing service USA delivering it on time.

    ReplyDelete
  6. We are the best writing company providing Pre Written Research Papers to students across the globe.We are a UK based company and have been operational since 2005 where we have assisted thousands of students in attaining high marks in Buy Pre Written Research Papers services.

    ReplyDelete
  7. While I was going through this blog, I realised about the lives of students is really tough,however, with our Nursing assignment help services, you can turn a lot of toughassignments on your side. The academic experts at My Assignment Services always ensure you beat out the odds by providing assistance through their nursing essay writing help services. We provide 100% original quality assignments which surpasses the highest of thequality. Our nursing leadership essay help services are distributed across the world including Australia, South Africa, New Zealand, USA, UK, Canada, Malaysia, and many other countries. The assignments written by our nursing assignment help experts passes through a rigorous quality check which follow every university guidelines. Students are free to contact our assignment experts by visiting our website at My Assignment Services Experience the best academic help that you have ever got with My Assignment Services.

    ReplyDelete
  8. We are the best writing company providing write my Cheap Dissertation Writing Services for all subject areas and education level. Our writers work under strict guidelines in day and night shifts to ensure that every Essay Writing Service is completed and submitted before the provided deadline.

    ReplyDelete
  9. Our Professional Coursework Writing Services takes care of all assignment nitty-gritty and guarantees that all papers are free from intentional plagiarism. We use different software to check for plagiarism thereby ensuring Professional Coursework Writing Writers complete an excellent paper.

    ReplyDelete
  10. Acquiring Thesis Writing Services doesn’t have to drain your finances. Custom College Papers Services charges are modest to ensure clients receive Article Review Paper Writing Services which are original and well written.

    ReplyDelete
  11. Microsoft's Office suite of enterprise-grade productivity applications. click office setup here so.... Office 365 is delivered to users through the cloud and includes Exchange Online for email, SharePoint Online for collaboration, Lync Online for unified communications, and a suite of Office Web Apps, Web-based versions of the traditional Microsoft Office suite of applications.

    ReplyDelete

  12. Real-time problems and outages for Office 365. Is the service down? Can't login or connect? Here you see what is going on. visit www.office.com/setup today.

    ReplyDelete

  13. Full-scale antivirus security at an affordable price. ... PC / Mac. ... Webroot offers complete protection from viruses and identity theft for all your devices, without slowing you down. click www.webroot.com/safe now.

    ReplyDelete

  14. Click on webroot safe to download your Webroot antivirus product and also get Webroot Installation. webroot antivirus offer complete protection of sensitive files across all your devices that include all kinds of IOS devices, OS devices as well as Android devices.

    ReplyDelete

  15. www.mcafee.com/activate - Shielding the computing devices against dangerous online threats, malware, phishing scams, Trojan horses and other infections.

    ReplyDelete

  16. mcafee activate has recognized to be an effective way of keeping up your devices and your data safe from getting infected by any hackers and virus attackers.

    ReplyDelete

  17. If you are getting trouble in your hulu activation code Then you are at the best we will give you a complete guide of setup ing your Hulu Device instantly with out any trouble. click www.hulu.com/activate here.

    ReplyDelete

  18. We provide help for issues like Hulu Plus not working, Hulu activation code & account settings. for more about how to sign in to www Hulu com & manage devices click hulu activate here.

    ReplyDelete

  19. Get the comprehensive internet security on your device with mcafee.com/activate . Get your McAfee installed and activated with easy steps.

    ReplyDelete

  20. McAfee products protect your small business's computers against viruses and other malicious programs. visit mcafee activate today.

    ReplyDelete

  21. We provide help & support for Roku setup & account login, when Roku not connecting & Remote not working. click www.roku.com/link now.

    ReplyDelete

  22. Activate roku on your device with www.roku.com/link , Chromecast, Apple TV, Playstation, or Xbox device and start watching free movies and TV shows.

    ReplyDelete

  23. Visit www.mcafee.com/activate to download, install and Setup McAfee Activate for your PC or laptop and defend yourself from all kinds of cyber threats.

    ReplyDelete

  24. mcafee 25 digit activation code may be used in order to Activate McAfee Security. You may easily use the McAfee by going to the link and enter the 25 digit product key.

    ReplyDelete

  25. Norton Security has been giving the best on-line security answers for ensuring the clients' contraptions other than as information against the web threats. to get more about norton click norton setup now.

    ReplyDelete

  26. www.norton.com/setup antivirus is internet security software which protects your digital world. Norton Antivirus provides protection in all the devices.

    ReplyDelete

  27. Mcafee offers you the www.Mcafee.com/activate option to give best Home network protection, Multi-device protection, Web Protection, and Identity Theft.

    ReplyDelete

  28. Webroot SecureAnywhere is a fast and efficient antivirus solution that ... malware on your machine, but Webroot shows the approach is safe. for more details visit www.webroot.com/safe now.

    ReplyDelete

  29. Protect your device from Virus & install mcafee activate with mcafee product key on your system.

    ReplyDelete

  30. Mcafee Activate has recognized to be an effective way of keeping up your devices and your data safe from getting infected by any hackers and virus attackers. For more details visit mcafee.com/activate today.

    ReplyDelete
  31. Create Mcafee account and start downloading, installing and, activating Mcafee through mcafee activate 25 digit code Enter 25-digit Mcafee Activation code to activate Mcafee.

    ReplyDelete
  32. Download and Install Mcafee throughmcafee activate 25 digit code. Sign in to your Mcafee account, activate Mcafee and enter Mcafee 25 digit activation code. create your Mcafee account to manage your Mcafee
    subscriptions.

    ReplyDelete
  33. How to login to office.com/setup ? if you want to proper information about office.com/setup .Here is our website for your help so visit our site; office setup and enter product key you will find a right way to operate MS office.

    ReplyDelete
  34. norton help to ensure your gadgets against antiviruses and offer security to client and giving personality and contraption affirmation to your related life.visit; norton com setup with product key here.

    ReplyDelete
  35. Present norton antivirus with the best help gathering and keep your PC contamination free. Download norton norton com setup with product key antivirus with the best help gathering and avoid disease attacks

    ReplyDelete
  36. Roku provides the simplest way to stream entertainment to your TV. With thousands of available channels twitch activation code netflix activation code download and install avg ultimate visit here for more details.

    ReplyDelete
  37. Before you can install office setup or Office 2019 you need to associate it with a Microsoft account, or work or school account. visit; office setup with product key here.

    ReplyDelete
  38. Roku gives the least complex approach to stream excitement to your TV. With a large number of accessible channels twitch activation code netflix activation code download and install avg ultimate visit here for more subtleties

    ReplyDelete
  39. The webroot safe antivirus is a very renowned security tool that protect the computer software and malware & firewall, visit our website; webroot activation key here.

    ReplyDelete
  40. Download roku link activate roku tv gives the least difficult approach to stream excitement to your TV. On your terms. With a large number of accessible channels to look over.

    ReplyDelete
  41. Create your Hulu account to setup & Activate Hulu from hulu/activate. user needs to enter Hulu activation for completing the activation process.

    ReplyDelete
  42. To install the MS office setup and enter product key , make sure that user have a good internet connection. Now to install office on the device, open the folder where you have downloaded the file

    ReplyDelete
  43. Thank you for sharing this fantastic blog, really very informative. Your writing ability is very good, you should continue to write this type of blog. We also create many blogs about Shein online shopping website, If anyone have an issues about Shein, you can contact shein customer service. For more details Click On Below Links:

    shein refund method wallet
    Shein Refund Policy
    shein customer service number
    shein customer service phone number

    ReplyDelete
  44. Microsoft Office, or simply Office, is a family of client software, server software, and services developed by Microsoft.Microsoft Office is a collection of office-related applications.visit office.com/setup for more information.

    ReplyDelete
  45. Download and install norton setup from norton.com/setup . log in and enter norton product key code to activate your norton antivirus .

    ReplyDelete
  46. Mcafee is a standout amongst the best antivirus to ensure your computer,laptop and otherdevices fromvirus attacks.Mcafee program shield your PC from infection. in the event that you need to introduce mcafee in your pc, visit: mcafee.com/activate for complete establishment and initiation.

    ReplyDelete
  47. Through Webroot Secure Anywhere, You can protect your computer, pc, and other devices from malware, virus, spyware, etc. With webroot.com/safe , you can download, install webroot with key code. After it, you have to follow the process of webroot key code activation.

    ReplyDelete
  48. Avg is a well- known name in the field of virus protection. The reason for which this name is common among all end users is its free antivirus and malware protection.It not only sounds avg.com/retail free but it provides a lot more with no money. It scans for virus and malware.

    ReplyDelete
  49. Hulu is a standout amongst other gushing administrations that simplicity access to content on various sorts of gadgets. from hulu.com/activate You can stream crosswise over PCs, cell phones and gaming supports. In any case, before getting a charge out of this administration you should buy in to the administration and actuate your Hulu account

    ReplyDelete
  50. It is a family of client software, server software and services through this you can create professsional looking documents , charts , calculations, reports, and presentation in high speed and accuracy.if you want to install it then visit: office.com/setup today.

    ReplyDelete
  51. norton web security is generally utilized antivirus gives the least demanding to utilize and most intutive assurance for your PC and your mobiles .introduce it and disregard viruses,spyware,root-units, hackers.for more subtleties visit: norton.com/setup today.

    ReplyDelete
  52. McAfee antivirus works as a shield of device. It protect against virus, malware, online threats etc. You can easily download, install and activate McAfee products through mcafee.com/activate . When you will go with this link, you can follow the process of downloading, installing and activating McAfee with activation code

    ReplyDelete
  53. Visit avg.com/retail and enter avg retail activation code to install and activate your avg antivirus software instantly.

    ReplyDelete
  54. Hulu is one of the best streaming services that ease access to content on different hulu.com/activate types of devices. You can stream across computers, mobile devices and gaming consoles. However, before enjoying this service you will need to subscribe to the service and activate your Hulu account.

    ReplyDelete
  55. office.com/setup will help you to deploy the office setup successfully on your device. Here are easy steps to download, install and activate office.com/setup . Visit office setup now.

    ReplyDelete
  56. office.com/setup will help you to deploy the office setup successfully on your device. Here are easy steps to download, install and activate office.com/setup . Visit office setup now.

    ReplyDelete
  57. Introduce norton antivirus with the best help and keep your PC contamination free. Download Norton Antivirus with the best help of norton.com/setup and avoid disease attacks.

    ReplyDelete

  58. Introduce mcafee antivirus in your PC with high class experts and best tech group. Simply ring us and we are prepared to help you till the last moment of establishment - mcafee.com/activate visit today.

    ReplyDelete
  59. Nice Post, I really loved this Blog.

    If you are looking for a kind of streaming device that can offer you to watch a large number of TV Programs or movies for the sake of entertainment.

    Roku Activation Link
    Setup Roku Stick On TV
    Activate hulu On Roku Device
    how to connect roku to wireless network
    roku tv activation link

    ReplyDelete
  60. I know the value of Garmin Express and keep reading good content about the same. I found this blog very informative and it increased my understanding about garmin update to a great extent. You can use Garmin Map to get Garmin lifetime maps update or call +1-888-309-0939 for instant help from Garmin GPS experts.

    ReplyDelete
  61. I did not know the entire benefits of Garmin Nuvi Gps. But since I have read this blog on map update, I have installed all available updates for my garmin device. I must say that this piece of blog has helped me improve navigation experience. I am not suggesting all my friends to read this blog and get Garmin map update with this team. For detailed information, you can contact us at toll-free number +1 888-309-0939 or write at info@garmingpsmapupdate.com. Our Garmin GPS professionals will provide instant help.

    ReplyDelete
  62. Read about best smartphone news reviews, price and specifications and much more features
    Done
    Done
    Done
    Done

    ReplyDelete
  63. Here are Government Jobs Latest Update and news; this is the website to come. A lot of articles are available for free reading. Government Jobs in India - Employment News of Central and State Governments, Govt Undertaking, Public Sector, Railway and Bank Jobs in India.

    Railway Jobs in India
    Jobs in Mumbai
    Jobs in India
    Madhya Pradesh
    Govt Jobs in Odisha

    ReplyDelete
  64. As we all know that LG is among the leading brands of home appliance available in the market. We provide the professional LG AC Service Center in Greater Noida. Our Service Center is one of the best LG AC Service Center in Greater Noida.

    ReplyDelete
  65. McAfee antivirus causes you to protect the framework information from burglaries, and it filters the entirety of the envelopes on the framework to recognize malware from them. In the event that you are stressed over the framework security, at that point experience the means recorded beneath for downloading ( from mcafee.com/activate or CD)
    mcafee login | install mcafee with activation code

    ReplyDelete
  66. mcafee.com/activate as antivirus of virus furnishes you with the security shields to prevent malicious documents from entering in the Desktop, PC/cell phone by means of malware, spyware, rootkit, and Trojan ponies.
    mcafee.com/activate | www.mcafee.com/activate | mcafee download | mcafee activate

    ReplyDelete
  67. There is one thing is common in all Roku devices, however; they enhance your Satellite and Cable TV viewing experience. It provides a huge on-demand content and is regarded as a major content supplier. Roku, a digital media player, not only frees the user from monthly cable bills but also work as a video game console.
    roku.com/link | roku activation code | roku link

    ReplyDelete
  68. Almost every person who is working on a computer must have used Microsoft office. Sometimes while installing the Microsoft Office package it might get stuck at last moment, if you are having the same problem then you must visit our blog at Fix Microsoft Office install stuck on running package scripts.

    ReplyDelete
  69. As the schools, colleges, and offices are closed, and people are unable to go outside due to lockdown the trend of online gaming is at its peak but most of the game comes with a hefty price tag. This is why people are looking for free online games. If you are the same then visit our blog about Top 10 Free online games.

    ReplyDelete
  70. The most common people might face while working on Hp Printer is the HP printer won't print error. If you have come across the type of error then feel free to visit us at the HP printer won't print error.

    ReplyDelete
  71. Most of us knew HP printers for its working and amazing services but sometimes users might get some errors like Fix hp connection manager fatal error. If you have come across the same issue feel free to visit us at Fix hp connection manager fatal error.

    ReplyDelete
  72. If you are searching for Custom Research Writing Services then you can opt for our Custom Essay Writing Services because we provide students across the globe with Custom Dissertation Writing Services At affordable cost.

    ReplyDelete
  73. I am so impress from this blog. I read this post which you share about the history of reflexology an i get very interesting knowledge from this. Others posts are also very well. Thanks for sharing! Know about Garmin Express Update.

    ReplyDelete
  74. I really thank you for the valuable info on this great subject and look forward to more great posts. Thanks a lot for enjoying this beauty blog with me. I am appreciating it very much! Looking forward to another great blog. Know about Garmin Express Update.

    ReplyDelete
  75. Hello Sir, thanks for giving that type of information. Really enjoyed this blog post. Really looking forward to reading more. Much obliged. You can connect with our professionals to ask any possible doubt about fubo.tv/activate.

    ReplyDelete

  76. Law Assignment Writing Help

    Get the professions writing Assignment papers from the Best Assignment Experts. We provide top-quality Law Assignment Writing Help Online. If you looking best assignment experts for your assignment help? We provide high-quality and free plagiarism assignment services.

    Contact Us: +65-91753078.

    ReplyDelete
  77. I love it here. Reading your blogs is therapeutic. Keep sharing. I love them Are you also searching for do assignment for me? we are the best solution for you. We are best known for delivering cheap assignments to students without having to break the bank

    ReplyDelete
  78. It is soo informative. This is such an amazing post.Are you also searching for assignment writing help we are the best solution for you. We are best known for delivering the best services to students without having to break the bank

    ReplyDelete
  79. Know your nutrition, and diet plans to helpful for your health. At Health Diarys, You will find latest nutrition plan, health tips, diet plan and many more information about your health.

    ReplyDelete