i m AFONRINWO ADEBAYO post graduate student of Obafemi Awolowo university ile-ife,Osun state,Nigeria,presently my thesis : is guidiance system for lawn mower controller, i m really having issue with journals,i can till also narrow it to Routing algorithm for lawn mower,please i rilly need to rub mind with great researches on the topic
Welcome Afonrinwo, for help with your problem you need to ask your question in the apprpriate forum for whatever language you are using.
please were is the appropriate forum,can you link me to that,thanks
What programming language are you using?
If you need help with the algorithm and your not really using a programming language, Computer Science in Software Development is a good place to start.
i m just to simulate using matlab application
hi, veedeoo you are right,matlab can interface c and java,but i m till working on the literature review but i have not have access to the right materials
Since robotic motion planning is, generally-speaking, the topic of my PhD thesis, I can tell you quite a bit about this, probably far more than you really want to hear. I'll just try to give you a quick overview, with some key terms and places to start looking. If you really want precise information and recommendations, you are going to have to explain in more details what your problem is really about (objectives, constraints, environment features, etc..).
If you want to do motion planning for a lawn mower around obstacles, then there are a ton of options, which mainly depend on what kind of sensors you have (or expect to have). If you don't have any real capabilities to do mapping of the environment and doing localization of the robot, then there isn't much you can do except what the rumba-like robots do, which is to go in a straight line, bump in an obstacle, turn around to some random direction, and repeat, it's just the random nature of that algorithm that guarantees full coverage of the space with high probability after some time.
If you have local information on obstacles, such as lidar scans or some vision system, then you can consider local planning strategies, such as potential fields (see here).
To fulfill your objectives (mow the lawn, with some pattern), you might want to use something like a moving target chasing method, for example, many people use missile guidance algorithms for this kind of stuff. These are generally referred to as "geometric guidance-control systems" or some variation thereof (like nonlinear geometric controller), which is due to the fact that these methods formulate the control problem in terms of the geometric features of the line-of-sight between the chaser and the target (or trajectory point to chase). And also, these methods are very easy to combine with potential fields.
If you have a much more global mapping and localization capability (e.g., with a SLAM system), then you might plan for a complete "optimal" route around and over that environment. If things are relatively simple and you are dealing with essentially a 2D environment, you should look into Voronoi diagrams, which are a classic way to partition your environment in a way that casts it into a graph, and then, you can use some standard graph manipulation or searching algorithms to create an optimal plan through that environment. You will quickly realize that most motion planning algorithm end up casting the problem as a graph search or graph manipulation problem (minimum spanning tree, planar graphs, etc.), so make sure to brush up on that if you are going that direction (and also, Matlab is really bad for graph stuff, better use C++ or Java, which have much better graph libraries, like Boost.Graph).
If you need to go even further in complexity, e.g., complex obstacles, non-convex and winding paths, uncertainty on sensor data, motion and/or environment, or kinematic and/or dynamic constraints (1), then the main option, I would say, is to use sampling-based motion planners. For that, the main publication you should start with is "Sampling-based algorithms for optimal motion planning" by Karaman and Frazzoli (2011). There is a ton of variations of this approach, but the main algorithms are PRM, RRT*, and few others (I could say "Sampling-based A* with Simulated Annealing" is one of them too, but that might be a bit too obviously self-serving... well, you can check it out). The point is that these methods are much more versatile and can accommodate almost any complex problem with complex constraints, but they can also easily be overkill for simple problems. Oh, and again, these methods reduce problems to graph optimization problems, so, again, make sure you're ready for that.
(1) When systems have either kinematic or dynamic constraints, or both, they are often referred to, in literature, as "kinodynamic" constraints. I absolutely hate that term, because, as a mechanical engineer, combining "kinematics" and "dynamics" as if they were the same just makes me cringe. I hate the term, but if you are looking for methods that deal with such constraints, that's the term you need to look for.
matlab can interface c and java,
Yes, it can, but it's a real pain in the neck. I usually prefer streaming data between matlab and my C++ programs via a local UDP stream instead, it's just simpler that way than having to deal with Matlab's horrible external code capabilities.