1. I have a robot and several boundary devices. The robot is about 12 width x 14 length inches. You can assume 4 or 5 boundary devices for now. Later on, I will increase the number of boundary devices.
2. I will place the boundary devices along the border of a working area. The shape of working area could be irregular and I do not know its dimensions, and when I place the boundary devices along the border of the working area, I do not know the coordinates of the boundary devices.
3. Then I will place the robot somewhere in the middle of the area, and I also do not know the position or coordinate of the robot.
4. Thus for now, we do not know the positions of the boundary devices and we also do not know the position of the robot.
5. The good thing is that the robot is able to measure its distances to boundary devices. Let me assume, for example, robot at first position P1, it measures its distance to 5 boundary devices, and the first set of distance data are D1, D2, D3, D4, and D5.
6. Now we can command robot to move or rotate. Let me assume robot move straight forward a distance L1 and now robot is at position P2, and robot will measure its distances to boundary devices again, and let me assume the 2nd set of distance data are D1’, D2’, D3’, D4’, D5’.
7. If we repeat 5 and 6, then even though we do not know the coordinates of boundary devices, however, because we know the changes of distance data (or angles …) , then robot shall be able to determine its relative positions to the boundary devices. Basically robot determines all the relative positions by its own moving and rotation.
8. Please note, robot can turn left an angle, turn right an angle, move forward or backward a distance. So feel free to ask robot to move and to rotate at every step.
9. Please assume the boundary devices will enclose a working area, and I need robot to travel to cover entire working area. You can assume robot is a vacuum and I need the robot to vacuum entire working area, without missing spots. In other words, I need you to come out a moving route.
10. Let me assume that you will ask robot to move or rotate 1 or 2 or 3 times, then you will be able to determine all the relative positions then you will come out a moving route. This seems straightforward and easy. Wait! let me explain more. In real world, when robot moves, it does not move perfectly, for example, you ask robot to move 10 inches, it may move only 9 inches, you ask robot to rotate 45 degrees, it may rotate only 40 degrees. In this regard, if you ask robot to move or to rotate only 1 or 2 or 3 times, and expect the route to be perfect, it just does not work. To solve the issue, you have to ask robot to keep collecting the distance data interactively, and based on the collected data to adjust its moving route. In other word, I believe robot need to keep analyzing the distance data and make necessary analyses to determine the moving route.
11. I have all the hardware, including robot and boundary devices, and I am able to command robot to rotate, to move, and to keep collecting the distance data.
12. Please see attached sample code and the distance data. For the case, the robot is not moving at all. It only keeps collecting the data.
13. Required Skills – Python and Math
7 freelancers are bidding on average $14351 for this job
Hello, dear sir. I am expert in matlab, math, physics. I have a lot of experiences in many projects. I will do your projects well. Please contact me. Thanks.