Mapping, and autonomous drones - artificial-intelligence

What is a good software to be able to navigate a drone in an augmented reality, is there anything that exists for individual and educational use in this area?

I'm not sure this is the platform to ask this question, but here is an answer. There were a few companies that tackled this issue in the past, dARwing was doing exactly that and edgybees did something similar. Both companies are no longer in this field.

Related

Genetic Algorithm vs Expert System

I'm having some doubts about which system should I use for a new software.
No code has been written yet, I'm just breaking apart all the needs and only then start coding.
This will be implemented in a computer company that provides services for other companies, onsite and remotely.
These are my variables:
Number of technicians
Location of customer
Type of problem
Services already scheduled for the technician
Expertise of the technician about the situation
Customer priority
Maybe some are missing, but these are the most important ones.
This job is being done manually, and has humans, we fail to see the best route to be taken sometimes.
Let's say that a customer calls with a printer problem.
First, check which tech knows about printers.
Then, is the tech available? far from the customer? can it be done remotely (software issues)?
Can it be done by another tech who is closer from the customer location?
Does this customer have more priority than the other where the same tech should be going?
Is the technician schedule full? If yes, pass to another printer/hardware tech.
I know my english is not perfect (not my natural language), but I'll try to provide more details or correct the text as needed.
So, my question is this, what kind of approach would you take? Genetic algorithm seems nice for this kind of job, and I also have some experience with GAF and WatchMaker (Java GA Framework). However, when reading the text above, an expert system seems also appropriate.
Have someone done something like this?!I had search for this kind of software and couldn't find anything alike.
Would another approach be better than the two asked?!
Also, I'm building up a table with all the techs capabilities and expertise, with simple rules like, 1 to 5 about each expertise. This is also a decision factor.
Thanks.
Why not do both? Use an expert system (a rule engine) to define your constraints and use a metaheuristic (such as Local Search or Genetic Algorithms) to solve it. The planning engine OptaPlanner (java, open source) does exactly that (by using the rule engine Drools). The architecture look likes this:
Here's a video demonstrating the constraint flexibility on the vehicle routing problem (VRP). Your problem seems to be an advanced variant on VRP (which is a variant on TSP).
Maybe you can start off with TSP,
here http://en.m.wikipedia.org/wiki/Travelling_salesman_problem
I guess it only deals with the distance.

How to identify ideas and concepts in a given text

I'm working on a project at the moment where it would be really useful to be able to detect when a certain topic/idea is mentioned in a body of text. For instance, if the text contained:
Maybe if you tell me a little more about who Mr Jones is, that would help. It would also be useful if I could have a description of his appearance, or even better a photograph?
It'd be great to be able to detect that the person has asked for a photograph of Mr Jones. I could take a really naïve approach and just look for the word "photo" or "photograph", but this would obviously be no good if they wrote something like:
Please, never send me a photo of Mr Jones.
Does anyone know where to start with this? Is it even possible?
I've looked into things like nltk, but I've yet to find an example of someone doing something similar and am still not entirely sure what this kind of analysis is called. Any help that can get me off the ground would be great.
Thanks!
The best thing out there that might be useful to you is automatic sentiment analysis. This is used, for example, to judge whether, say, a customer review is positive or negative. I cannot give you direct pointers to available tools, but this is what you are looking for.
I must say, though, that this is a current hot topic in natural language processing and I’ve seen a number of papers at conferences. It’s definitely quite a complex matter and if you’re starting from scratch, it might take quite some time before you get the results that you want.
NLTK is not a bad framework for parsing natural language but beware that this is not a simple matter. Doing stuff like this is really research level programming.
A good thing that makes it much easier is if you have a very limited domain - say your application focuses on information about famous writers, then you can avoid some complexities of natural language like certain types of ambiguities.
Where to start? Good question. I don't know of any tutorials on the topic (and I presume you tried the Google option) but I'd imagine that iTunes U would have a course on the topic. If not I can post a link to a course I've done that mentions the subject and wasn't completely horrible: http://www.inf.ed.ac.uk/teaching/courses/inf2a/lecturematerials/index.html#lecture01
The problem that u tackle is very challenging.
I would start by first identifying the entities in the text (problem referred as Named Entity Recognition, google it), and then a I would try to identify concepts.
If want to roughly identify what is the text about, I suggest that you start by using WordNet and according to the words and their places in the hierarchy to identify the concepts involved.
If you want to produce a system which show real intelligence than you should start researching about resources such as CYC (OpenCYC) which will allow you to convert the sentences into FOL sentences.
This hardcore AI, approach to solving your problem. For simple chat bot, it would be easier to rely on simple statistical methods.
good luck

How to show Adsense ads into your wpf application

I want to show ads on my Free WPF Application? Could you tell me how to do that? I just want to show ads and want to change ads after say 5minutes.
You need to use the Adsense api sample code is here go for xml
I believe Jojo is correct but I would like to further ad that even if you could I would think twice about this. There are much better ways for you to bootstrap cash injectors to your application. Applications that are ad injected tend not to preform as well as ones that are not.
Any application which you consider to be worth more than free but are afraid may cause less downloads if not paid for should at the very least have an easy way to donate. People often overlook this fact and yet many people I know, if given an application that solves there problem will donate 5 or so dollars. This may not sound like a lot but it is essentially money for nothing given that there is no reason NOT to implement this.
Another option is to see if you can bootstrap a similar application with yours. If this is done in a professional manner with the ability for the user not to install the second app then it can be a good source of income and no nasty adverts for the user to contend with.
The last option is to ask yourself if you would pay for it? Many people give away applications that people would happily pay a few dollars for. Consider a marketing campaign that says great software at a great price. Many people (Myself again) have paid for software that works nicely. Sure you can probably find a free cracked version but a lot of folks respect the fact that people should be paid.
Some examples of paid for software that is doing well is pinnicale profiler, ultramon and regex buddy. All of which I have paid for and would happily pay for a second time round.
As far as I know you are not allowed to put Adsense in any kind of application other than website.

How can spammers manage to circumvent captcha?

I have put captcha on my blog, I still get spammers, is there a script somewhere which allows them to do this or do they do this by hand ?
It depends on what type of CAPTCHA you're using. Some methods for generating CAPTCHA challenges are easily circumvented with optical character recognition. Some methods have inherent flaws that let spammers through without ever passing the challenge.
"Secure" or "good" CAPTCHA schemes that haven't yet been beaten by automated means can still be beaten by humans. One popular technique is to let the spamming software retrieve the challenge and then display it on a different website where unsuspecting humans solve it in order to gain access to some other resource.
Finally, some spammers just enter solutions by hand, because they're just that determined to annoy you.
Wikipedia has a good article on CAPTCHAs including their circumvention.
Depends which captcha and which spammers.
some captchas are weak and easy to break, or there are a limited number of them and libraries exist. Otherwise somebody is just doing it manually, either because they really want to spam you, or they are being paid in some cheap sweatshop.
recaptcha seems to be one of the more resistant ones as used here.
Best answer I ever heard was that a spammer company hired out people in India to type in the answers. It was cheaper and more accurate than writing software.
Some people hire people from third world countries like India to break the CAPTCHAs. They just hire them thru Mechanical Turk or oDesk. Technically, there's a way to stop this as well. Just use a geo IP service to track the location of visitors. If you get a sudden influx of visitors from a country you normally don't get visitors from, and they have an abnormal browsing pattern (like typing a CAPTCHA every 20 seconds), then it's safe to assume the visitor is someone hired to break your CAPTCHA. Sure, people can circumvent this by hiring ppl in the US or whatever, but I dunno many Americans willing to work for pennies to do such menial tasks.
It depends on the captcha, of course, but most likely it's being done by hand. If your blog is popular enough, it might be worth someone's time to go through and do it themselves, in which case...you'll just have to pay attention and delete as necessary.
Most of the spammers use OCR to circumvent captcha. I have launched recaptcha on my blog and have not seen not one spam message since. The down side to recaptcha is that the images are really hard to make out, I guess its hard for the spammers too.

How do you encourage end users to fill out trouble tickets?

So, I work in a fairly small IT section. We have a trouble ticketing system that about half of our end users use. Some of my coworkers don't really do much to encourage our end users to use the system we have in place. The end result? Constant interruptions because end users will get us by IM or come to our offices directly for trivial things. This can obviously make it difficult to do a good job of writing code.
Now, I suppose I could just say "hey, would you mind filling out a trouble ticket next time?", but then I'd come off as the bad guy because others won't do that. I also don't want end users to feel that I'm unapproachable. I just want them to understand that there's a proper way to ask for help.
So what's the best thing for me to do in a situation like this?
Make it appealing to do so.
Mention to the user that issues with trouble tickets are viewed by the entire development team and have been found to get fixed significantly faster. Say that anything without a ticket has the potential to get lost in the shuffle. Provide them outward facing links so they can view the progress and developer/support comments on their ticket. Provide email alerts so they feel like they are part of the process and have instant information about their issue.
Make it as frictionless as possible.
Make the user entry part of the system as easy to use and as intuitive as possible. No one likes filling out tickets and I'm certainly not going to jump through any hoops to do so. No logins, no sign-ins, just type out my issue and contact information and go.
Talk with your team.
Ultimately, no amount of hard work on the above systems is going to matter unless your team and you are on the same page. Call for a team meeting and talk with them about the issue. With your boss present, try and put it in terms he can understand. Mention valuable time lost, issues tracking customer problems which aren't in the system, etc, etc.
Sounds like your manager is letting you down by not forcing users to submit a ticket before getting help. The problem starts there and only continues to your co-workers allowing such behavior. We use redmine at work for application support and have made good progress in telling users "submit a ticket and we will look in to it" but it has to be a consistent voice from all people involved.
Use a little psychology on them. For people that don't send in trouble tickets, remind them that 80% of the people in their department use the ticketing system. Even if it is a lie, it will encourage good behavior because of the bandwagon effect. Remember that the more similar the person is to demographic statistic, the more likely it is to influence their behavior. So "your immediate coworkers" will work better than "people in this entire company."
The people that use the ticketing system should get a gold star, no, seriously.
There was a very brief article in February's Harvard Business Review on using social pressure to influence behavior. It discussed some new research but the article didn't include references.
You don't. Users hate that stuff even I do. Instead your policy should be "don't make me think". You have to collect all you need yourself and automatically handle this in an invisible way to your users. After they opt in at install.
You probably won't make much headway unless you convince your coworkers to use the system first. After you've all agreed on the process you want, then you can talk to your users. If everyone on your team is playing by the same rules, you can probably force your users to use the system by having slow turn-around times for issues not entered into the system, or maybe even forget them altogether.
However, even IF you can convince both your coworkers and your users to enter tickets, you'll probably still find the tickets are incomplete/not informative. We've all seen plenty of tickets like "Feature X is broken, fix it plz" and offer no other information. Depending on the number of tickets you get per day, I would probably just bite the bullet and walk over the user and see what their problem is first hand.
We often log a ticket on the user's behalf in this sort of case.
At my old workplace, I was told that nothing could be done without a trouble ticket. When I asked why, I was told that the support team's productivity was measured by using trouble tickets. This had the effect of forcing me to use trouble tickets (since they were required), and giving me the motivation to do so (I didn't want my coworkers to look bad).
At my new workplace, all technical support is subcontracted out. I literally have to call tech support, and they create a ticket on my behalf.
Also - stop encouraging the behavior. Use your IM filtering options to only appear online to the dev team. Don't check your email - or setup filters that filter the high priority stuff (your boss, your dev team) to your inbox, and everything else to a folder you check once a day or once every other day.
Simucal's advice is good. You -will- have to tell them to "file a ticket" instead, at some point. If you ask them after the fact, they aren't going to care because they got what they needed.
A great way to handle this is to have a dedicated person for support. My team did this, and it helped our productivity immensely and eliminated at least 90% of our interruptions.
Barring that (or lieu of), you can each rotate daily as to who gets to handle user requests. This has the upshot of making a trouble ticket more-or-less required; its needed to keep track of what happened in the request when someone else starts working on it. Over time, this also brings more cohesion to your processes: people create small scripts to do common tasks, work that is done is moved into revision control, etc.

Resources