10
$\begingroup$

I would like to build a robot which follows a virtual path (Not a visible path like a 'black line on a white surface', etc).

I'm just enthusiastic by seeing some sci-fi videos which show robots carry goods and materials in a crowded place. And they really don't follow a physical line. They sense obstacles, depth, etc.

I would like to build one such robot which follows a specific (virtual) path from point A to B.

I have tried a couple of things:

  1. Using a magnetic "Hall effect" sensor on the robot and wire carrying current (beneath the table). The problem here was that the vicinity of the hall effect sensor is so small (< 2cms) that it is very difficult to judge whether robot is on the line or off the line. Even using series of magnets couldn't solve this issue, as my table is 1 inch thick. So this idea flopped :P

  2. Using an ultraviolet paint (on a line) and using UV leds on the robot as sensors. This will give more Zig-Zag motion for the robot. And due to potential threats of using UV light source, even this idea flopped :P

I finally thought of having a camera on top and using image processing algorithms to see whether robot is on the line or diverging.

Is there any better solution than this? Really looking for some creative and simple solutions. :)

$\endgroup$
  • $\begingroup$ Are you familiar with sonar sensors and SLAM and related subjects? Often robots don't follow a predefined path and they "sense" the obstacles by sensors such as sonar, build a map and then use path planning algorithms to find their way. $\endgroup$ – Shahbaz Mar 7 '13 at 16:12
  • $\begingroup$ Thanks for the reply :) Yes, i am familiar with ultrasonic and sonar sensors... actually i want a robot my robot to move from point A to point B on a specific path, and that too on a table (3 feet above the ground level)... And building a map in this environment is really a complicated thing... So any suggestions ?? $\endgroup$ – Nitin Mar 7 '13 at 16:43
  • 4
    $\begingroup$ I was in the middle of answering this question, but I noticed that you are asking 2 contradictory things. By "invisible line", do you mean "a line that is not visible to the naked eye e.g. a line defined by magnetic or UV signals", or do you mean "a line that exists virtually -- within the robot -- based on where it wants to go and the obstacles it senses on the way there"? To say it another way, do you draw the line for the robot to follow, or does the robot draw it? $\endgroup$ – Ian Mar 7 '13 at 17:03
  • $\begingroup$ Hi lan, I want a autonomous robot which should navigate on its own from one point to another. To do that it needs a reference line or path. A line follower robot is the simplest solution but i am looking for advanced and robust solution. And that could be anything like a line that is not visible to the naked eye or a virtual line created by the robot. The robot doesn't draw the line, it just follows. to say it another way, the line (virtual) is defined by me. At the least "Image processing" could be a solution if anything else doesn't work. But i am looking for some simple solutions :) $\endgroup$ – Nitin Mar 8 '13 at 3:59
  • $\begingroup$ @nitin, perhaps you should avoid using terms such as "navigate on its own", because that automatically means that path is undefined and is left to the robot to find it. What you want seems to be a robot that follows the line and lacks the ability to finds its own way if not given directions. $\endgroup$ – Shahbaz Mar 8 '13 at 10:05
3
$\begingroup$

There are many possible ways to approach this problem, and they all depend on the material available and the expertise of the robot builder.

In short, the criteria is that:

  1. The robot must get from point A to B following a pre-defined path.
  2. The path taken must not follow a line visible to the human eye.

Depending on the length of the path, using encoders could be sufficient. However, it should be noted that due to physical inaccuracy, drift makes odometry (what we call using encoders to measure distance) impractical for long distances. However, this is easy for short distances, and should be at least considered.

If the distance is too far for only odometry, one should consider using some sensor to measure turns (for instance, a gyroscope or compass). Turns tend to introduce the most error in odometry (measuring along a straight line doesn't have too much error), so using a sensor for turns can sometimes make odometry a viable solution.

If odometry or odometry + sensed turning doesn't work, then we get to be creative. If you want the robot to follow a path composed of mostly straight segments, you could place IR LEDs at given "waypoints" on the table, and have the robot sense those LEDs and drive towards each waypoint in series.

However, that still leaves some visual marking on the table (although it could be disguised to some extent), and it would be great to be able to do without that. Another approach would be to use laser pointers shining parallel to the surface of the table, but a few inches above the table. The robot could use a photoresistor to detect when it crosses a laser, and this could let it know when to turn.

All-in-all, I think that the odometry augmented with an angle sensor is probably the best bet for your robot, at least with the way you have described it. I may be able to think of more options, but that's all I see right now.

Just curious--why do you want the line to be invisible? Knowing why could open up some more possibilities.

$\endgroup$
  • $\begingroup$ Thanks a lot @anorton :) :) "Odometry" + "sensors like gyroscope or compass" :- Bulls-eye ;) I am sure, this will definitely workout. And compared to image processing techniques, this seems pretty easy. Yup, i have got the solution, Thanks :) Will update you with the progess of the project and other challenges faced. $\endgroup$ – Nitin Mar 9 '13 at 10:04
  • $\begingroup$ By the way, the whole point of making line invisible was - "A black line on the surface and a robot following the line" its now just a basic robotics teaching level stuff. And i found that in industrial level, it is not appreciated. People need a highly sophisticated and intelligent robot to do their work. So i was working on this project to build a robot with higher stability and robustness. A robot which is not easily hack-able. To say it another way, a common person should not know the technology behind the robot :) $\endgroup$ – Nitin Mar 9 '13 at 10:05
2
$\begingroup$

Anki uses optical sensors in their toy cars to implement line followers. The optical sensors are sensitive in the IR range. The fact that the lines cannot be seen is easily explained: The lines are coated with black color which is transparent in the IR range. Paliogen black L 86 or Paliogen black S 84 by BASF are such colors. If you place barcodes along the lines you can even get absolute positioning informations from the optical sensors.

$\endgroup$
0
$\begingroup$

I have a short answer for your question. This is for a ROS enabled robot only. There are many ways to do this, but this is how I have done it. I used ROS and Kuka Youbot. It could be any robot using ROS. It is very helpful to know ROS if you plan to be in robotics.

Use ROS Then use GMapping to map your environment. Example room or hallway and save the map. Then using RVIZ, give the goal position in the map.

$\endgroup$
0
$\begingroup$

Well you don't need any line for that matter. The one thing you would probably need are global coordinates. if you can place your robot in a field defined by global coordinates and apply simple rules of Newtonian physics, the robot can go from one point to the other. Based on it's present location, it will find out the present steering angle, desired steering angle and the goal coordinates (also known as "pose"). Once you provide the robot with a speed, it will start moving towards the goal coordinates. In every iteration, it will recalculate its pose and make adjustments when necessary.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.