Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
tutorials:demo:fetch_and_place_edited [2020/06/19 11:20] – [Launching the simulator] vanessa | tutorials:demo:fetch_and_place_edited [2020/06/19 11:49] – [Visualizing Coordinates] vanessa | ||
---|---|---|---|
Line 230: | Line 230: | ||
FIXME //**Ending: Setup World**// | FIXME //**Ending: Setup World**// | ||
==== Moving Around ==== | ==== Moving Around ==== | ||
+ | |||
+ | FIXME //**Begin: Moving Around**// Next task. You can also add small exercise e.g. change the cordinates for the robot, such that he is in front of the kitchen island (people will gain more experience about the map and cordiantes through this) here or and instruction video. | ||
First, let's try moving our PR2 robot around the kitchen. Before that let's try to create a pose, which can be given as the target destination for the robot. Execute the following function in the Lisp command line: | First, let's try moving our PR2 robot around the kitchen. Before that let's try to create a pose, which can be given as the target destination for the robot. Execute the following function in the Lisp command line: | ||
Line 296: | Line 298: | ||
To clean all the input that is currently sitting in the prompt, instead of pressing " | To clean all the input that is currently sitting in the prompt, instead of pressing " | ||
+ | |||
+ | FIXME //**Ending: Moving Around**// | ||
==== Spawning Objects ==== | ==== Spawning Objects ==== | ||
+ | |||
+ | FIXME //**Begin: Spawning Objects**// Next task and add exercise here with spawning your own object at different coordinates. Add a list of possible objects. | ||
+ | |||
Now let's try to spawn a new object into the world: | Now let's try to spawn a new object into the world: | ||
Line 324: | Line 331: | ||
{{ : | {{ : | ||
+ | FIXME //**Ending: Spawning Objects**// | ||
==== Perceiving Objects ==== | ==== Perceiving Objects ==== | ||
+ | |||
+ | FIXME //**Begin: Perceiving Objects**// Next Task. Perceive the object that you spawned in the task before (you also have to move the robot for that). | ||
The objective of this tutorial would be to enable you to write methods to pick an object (for us, the bottle) from one place and transport and place it somewhere else. But before the robot can pick up anything, it has to know where the object is, which is enabled by the cameras placed on the robot. We have to explicitly command the robot to perceive a bottle to find it. | The objective of this tutorial would be to enable you to write methods to pick an object (for us, the bottle) from one place and transport and place it somewhere else. But before the robot can pick up anything, it has to know where the object is, which is enabled by the cameras placed on the robot. We have to explicitly command the robot to perceive a bottle to find it. | ||
Line 421: | Line 431: | ||
'' | '' | ||
+ | FIXME //**Ending: Perceiving Objects**// | ||
==== Picking up Objects ==== | ==== Picking up Objects ==== | ||
+ | |||
+ | FIXME //**Begin: Picking up and Placing Objects**// Next task. Picking and Placing chapter is one Tutorial itself. Don't seperate those two, since they work only together. Add more explanation to the describing text for this chapter. Exercise: Pick up your spawned object and try it with the other hand as well. If Placing does not work, provide a way to release the object from the gripper and maybe also despawning the object. Exercise: Pick up your spawned object and try it with the other hand as well. | ||
+ | |||
Once the object has been found, picking up is very straightforward: | Once the object has been found, picking up is very straightforward: | ||
<code lisp> | <code lisp> | ||
Line 442: | Line 456: | ||
==== Placing the object ==== | ==== Placing the object ==== | ||
+ | |||
Now that the robot has the object in its gripper, the next task is to place the object in the destination. Let us use the dining area counter on the left side as our destination. So, to place the bottle the robot has to do two things - drive with the base to a location from where it can place the bottle on the dining table, and move the arm to place the object down. | Now that the robot has the object in its gripper, the next task is to place the object in the destination. Let us use the dining area counter on the left side as our destination. So, to place the bottle the robot has to do two things - drive with the base to a location from where it can place the bottle on the dining table, and move the arm to place the object down. | ||
Line 478: | Line 493: | ||
The robot has finally placed the object in the destination. | The robot has finally placed the object in the destination. | ||
{{ : | {{ : | ||
+ | FIXME //**Ending: Picking and Placing the object**// | ||
==== Simple Plan ==== | ==== Simple Plan ==== | ||
+ | FIXME //** Begin: Simple Plan**// | ||
+ | Now for the Chapter ' | ||
+ | |||
- | Even though we have achieved the goal we had set, the entire process would have felt a little tedious, especially if you want to perform it multiple times, when you have made a mistake, etc. So let's bundle what we have done so far into a single method called, '' | + | Even though we have achieved the goal we had set, the entire process would have felt a little tedious, especially if you want to perform it multiple times, when you have made a mistake, etc. So let's bundle what we have done so far into a single method called, '' |
First let's open the file which we will write into. Press '' | First let's open the file which we will write into. Press '' | ||
Line 577: | Line 595: | ||
Congratulations! You have just written your first rudimentary plan to pick and place a bottle. | Congratulations! You have just written your first rudimentary plan to pick and place a bottle. | ||
+ | |||
+ | FIXME //** Ending: Simple Plan**// | ||
===== Recovering from Failures ===== | ===== Recovering from Failures ===== | ||
+ | FIXME //** Begin: Recovering from Failures**// | ||
+ | |||
The previous example worked perfectly because we knew and provided the exact coordinates to look for the bottle. This is hardly true for the real-life scenario, especially since we are dealing with a kitchen environment, | The previous example worked perfectly because we knew and provided the exact coordinates to look for the bottle. This is hardly true for the real-life scenario, especially since we are dealing with a kitchen environment, | ||
Line 746: | Line 768: | ||
{{: | {{: | ||
+ | |||
+ | FIXME //**Ending: Recovering from Failures**// | ||
==== Handling More Failures ==== | ==== Handling More Failures ==== | ||
+ | |||
+ | FIXME //** Begin: Handling More Failures**// | ||
Everything is good so far, even though by design, let's call this a lucky coincidence. For the robot, knowing which arm to use to pick up the bottle is not always enough. There are many positions with which we can grasp objects - from the object' | Everything is good so far, even though by design, let's call this a lucky coincidence. For the robot, knowing which arm to use to pick up the bottle is not always enough. There are many positions with which we can grasp objects - from the object' | ||
Line 941: | Line 967: | ||
+ | FIXME //** Ending: Handling More Failures**// | ||
===== Visualizing Coordinates ===== | ===== Visualizing Coordinates ===== | ||
+ | FIXME //** Begin: Visualizing Coordinates**// | ||
If you want to know if a coordinate you defined is correct, you can visualize the axis of the coordinate frame in the Bullet World and see for yourself. | If you want to know if a coordinate you defined is correct, you can visualize the axis of the coordinate frame in the Bullet World and see for yourself. | ||
Line 991: | Line 1018: | ||
+ | FIXME //** Ending: Visualizing Coordinates**// | ||