it depends on your perspective - brown...
TRANSCRIPT
![Page 1: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/1.jpg)
Topic 10
Coordinate Spaces and Transforms
It depends on your perspective
![Page 2: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/2.jpg)
Topic 10
Coordinate Spaces and Transforms
It depends on your perspectiveconsider “left eye coordinates”
![Page 3: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/3.jpg)
Path Planning
A: Start
B: Goal Find intermediate poses forming a path to the goal
Path on a graph:vertices - robot posesedges - traversable connection between poses
(note edges are directed)
1) How can we find such paths? 2) Define pose and controls?
![Page 4: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/4.jpg)
CS1480 – Assignment 3 Path Planning
• Potential fields (Choset Ch. 4) and Wavefront planning3
• Probablistic roadmaps [1] (Kavraki et al. 1996)
• RRT-Connect [2] (Ku!ner et al. 2000)
There is pseudocode available for Dijkstra’s and A* search on Wikipedia as well as many other sources.There are many verisons of Dijkstra’s and A* available on the internet, you are free to use these just be sureto cite anything that is not your own.
4 Physical Soccer Environment
Figure 1: Coarse dimensions of the “FC 148” field incentimeters.
Shown in Figure 2, the course sta! has set up the“FC 148” robot soccer field within the RoombaLab for this assignment’s games and individ-ual challenges. The dimensions of this field areroughly 3.8m in width and 2.6m in height, ascoarsely illustrated in Figure 1 4. The field’s ori-gin (0, 0) is in the corner opposite the desk withthe lab computers. The direction a robot is fac-ing (yaw, or !) is defined in radians and 0 if therobot is facing the wall opposite the desk with thelab computers. Turning to the right increases theangle of yaw until ", turning to the left decreasesthe angle of yaw until !". That is, as the robotturns to the right the angle of yaw increases to-wards " until the robot is facing the wall with thedesk. If the robot turns even more the angle willnot increase up to 2" but rather start decreasingfrom !". The collective field of view for these cameras is shown in Figure 2. Localization for these robotswithin the field of view is handled by a client-server based application written by the course sta!. How toincorporate such localization information in your client program is explained in the next section. The goalsare roughly 0.7m in width and slightly extend past the end boundary. A goal will consider being scored ifthe ball touches the goal material.
4.1 Localization Interface
4.1.1 Infrastructure
As mentioned above, a total of four cameras were installed on the ceiling. The cameras labeled 1 and 2 areconnected to the computer sandworm and the ones labeled 3 and 4 are connected to foxwood. The coursesta! wrote a program called tdlocc (Top-Down Localization Client) that connects to a specific camera andanalyzes the pictures taken by it. That is, it does two things: First, it uses the ARToolkitPlus library to findthe robots with the black and white pattern on top of it and estimate their location and bearing. Second, ituses the CMVision library to find the yellow ball and determine its position. It then constructs a data packetwhich contains pose estimates on all the objects it has spotted and sends it to the localization server overthe network using UDP. tdlocc repeats this process several times a second and thus delivers up-to-date poseinformation to the server. The localization server program, called tdlocs (Top-Down Localization Server),listens on network port 8855 for incoming pose estimates from localization clients and fuses those estimates
3http://playerstage.sourceforge.net/doc/Player-2.0.0/player/classPlayerCc 1 1PlannerProxy.html4The actual dimensions of the field vary slightly from these dimensions due to issues with ceiling mounting of the cameras.
2
robot_xrobot_a
robot_y
1) path planning: sequence of intermediate poses 2) Define pose and controls?
![Page 5: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/5.jpg)
CS1480 – Assignment 3 Path Planning
• Potential fields (Choset Ch. 4) and Wavefront planning3
• Probablistic roadmaps [1] (Kavraki et al. 1996)
• RRT-Connect [2] (Ku!ner et al. 2000)
There is pseudocode available for Dijkstra’s and A* search on Wikipedia as well as many other sources.There are many verisons of Dijkstra’s and A* available on the internet, you are free to use these just be sureto cite anything that is not your own.
4 Physical Soccer Environment
Figure 1: Coarse dimensions of the “FC 148” field incentimeters.
Shown in Figure 2, the course sta! has set up the“FC 148” robot soccer field within the RoombaLab for this assignment’s games and individ-ual challenges. The dimensions of this field areroughly 3.8m in width and 2.6m in height, ascoarsely illustrated in Figure 1 4. The field’s ori-gin (0, 0) is in the corner opposite the desk withthe lab computers. The direction a robot is fac-ing (yaw, or !) is defined in radians and 0 if therobot is facing the wall opposite the desk with thelab computers. Turning to the right increases theangle of yaw until ", turning to the left decreasesthe angle of yaw until !". That is, as the robotturns to the right the angle of yaw increases to-wards " until the robot is facing the wall with thedesk. If the robot turns even more the angle willnot increase up to 2" but rather start decreasingfrom !". The collective field of view for these cameras is shown in Figure 2. Localization for these robotswithin the field of view is handled by a client-server based application written by the course sta!. How toincorporate such localization information in your client program is explained in the next section. The goalsare roughly 0.7m in width and slightly extend past the end boundary. A goal will consider being scored ifthe ball touches the goal material.
4.1 Localization Interface
4.1.1 Infrastructure
As mentioned above, a total of four cameras were installed on the ceiling. The cameras labeled 1 and 2 areconnected to the computer sandworm and the ones labeled 3 and 4 are connected to foxwood. The coursesta! wrote a program called tdlocc (Top-Down Localization Client) that connects to a specific camera andanalyzes the pictures taken by it. That is, it does two things: First, it uses the ARToolkitPlus library to findthe robots with the black and white pattern on top of it and estimate their location and bearing. Second, ituses the CMVision library to find the yellow ball and determine its position. It then constructs a data packetwhich contains pose estimates on all the objects it has spotted and sends it to the localization server overthe network using UDP. tdlocc repeats this process several times a second and thus delivers up-to-date poseinformation to the server. The localization server program, called tdlocs (Top-Down Localization Server),listens on network port 8855 for incoming pose estimates from localization clients and fuses those estimates
3http://playerstage.sourceforge.net/doc/Player-2.0.0/player/classPlayerCc 1 1PlannerProxy.html4The actual dimensions of the field vary slightly from these dimensions due to issues with ceiling mounting of the cameras.
2
robot_xrobot_a
robot_y
world_x
world_a
world_y
1) path planning: sequence of intermediate poses 2) Define pose (3DOF position/orientation on field) and controls?
![Page 6: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/6.jpg)
CS1480 – Assignment 3 Path Planning
• Potential fields (Choset Ch. 4) and Wavefront planning3
• Probablistic roadmaps [1] (Kavraki et al. 1996)
• RRT-Connect [2] (Ku!ner et al. 2000)
There is pseudocode available for Dijkstra’s and A* search on Wikipedia as well as many other sources.There are many verisons of Dijkstra’s and A* available on the internet, you are free to use these just be sureto cite anything that is not your own.
4 Physical Soccer Environment
Figure 1: Coarse dimensions of the “FC 148” field incentimeters.
Shown in Figure 2, the course sta! has set up the“FC 148” robot soccer field within the RoombaLab for this assignment’s games and individ-ual challenges. The dimensions of this field areroughly 3.8m in width and 2.6m in height, ascoarsely illustrated in Figure 1 4. The field’s ori-gin (0, 0) is in the corner opposite the desk withthe lab computers. The direction a robot is fac-ing (yaw, or !) is defined in radians and 0 if therobot is facing the wall opposite the desk with thelab computers. Turning to the right increases theangle of yaw until ", turning to the left decreasesthe angle of yaw until !". That is, as the robotturns to the right the angle of yaw increases to-wards " until the robot is facing the wall with thedesk. If the robot turns even more the angle willnot increase up to 2" but rather start decreasingfrom !". The collective field of view for these cameras is shown in Figure 2. Localization for these robotswithin the field of view is handled by a client-server based application written by the course sta!. How toincorporate such localization information in your client program is explained in the next section. The goalsare roughly 0.7m in width and slightly extend past the end boundary. A goal will consider being scored ifthe ball touches the goal material.
4.1 Localization Interface
4.1.1 Infrastructure
As mentioned above, a total of four cameras were installed on the ceiling. The cameras labeled 1 and 2 areconnected to the computer sandworm and the ones labeled 3 and 4 are connected to foxwood. The coursesta! wrote a program called tdlocc (Top-Down Localization Client) that connects to a specific camera andanalyzes the pictures taken by it. That is, it does two things: First, it uses the ARToolkitPlus library to findthe robots with the black and white pattern on top of it and estimate their location and bearing. Second, ituses the CMVision library to find the yellow ball and determine its position. It then constructs a data packetwhich contains pose estimates on all the objects it has spotted and sends it to the localization server overthe network using UDP. tdlocc repeats this process several times a second and thus delivers up-to-date poseinformation to the server. The localization server program, called tdlocs (Top-Down Localization Server),listens on network port 8855 for incoming pose estimates from localization clients and fuses those estimates
3http://playerstage.sourceforge.net/doc/Player-2.0.0/player/classPlayerCc 1 1PlannerProxy.html4The actual dimensions of the field vary slightly from these dimensions due to issues with ceiling mounting of the cameras.
2
robot_xrobot_a
robot_y
world_x
world_a
world_y
Control specified in local coords:
position2d_set_cmd_vel(vx, vy, va)
playerv-style handles
1) path planning: sequence of intermediate poses 2) Define pose (3DOF position/orientation on field) and controls?
vx: forward speedva: turning speed
![Page 7: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/7.jpg)
CS1480 – Assignment 3 Path Planning
• Potential fields (Choset Ch. 4) and Wavefront planning3
• Probablistic roadmaps [1] (Kavraki et al. 1996)
• RRT-Connect [2] (Ku!ner et al. 2000)
There is pseudocode available for Dijkstra’s and A* search on Wikipedia as well as many other sources.There are many verisons of Dijkstra’s and A* available on the internet, you are free to use these just be sureto cite anything that is not your own.
4 Physical Soccer Environment
Figure 1: Coarse dimensions of the “FC 148” field incentimeters.
Shown in Figure 2, the course sta! has set up the“FC 148” robot soccer field within the RoombaLab for this assignment’s games and individ-ual challenges. The dimensions of this field areroughly 3.8m in width and 2.6m in height, ascoarsely illustrated in Figure 1 4. The field’s ori-gin (0, 0) is in the corner opposite the desk withthe lab computers. The direction a robot is fac-ing (yaw, or !) is defined in radians and 0 if therobot is facing the wall opposite the desk with thelab computers. Turning to the right increases theangle of yaw until ", turning to the left decreasesthe angle of yaw until !". That is, as the robotturns to the right the angle of yaw increases to-wards " until the robot is facing the wall with thedesk. If the robot turns even more the angle willnot increase up to 2" but rather start decreasingfrom !". The collective field of view for these cameras is shown in Figure 2. Localization for these robotswithin the field of view is handled by a client-server based application written by the course sta!. How toincorporate such localization information in your client program is explained in the next section. The goalsare roughly 0.7m in width and slightly extend past the end boundary. A goal will consider being scored ifthe ball touches the goal material.
4.1 Localization Interface
4.1.1 Infrastructure
As mentioned above, a total of four cameras were installed on the ceiling. The cameras labeled 1 and 2 areconnected to the computer sandworm and the ones labeled 3 and 4 are connected to foxwood. The coursesta! wrote a program called tdlocc (Top-Down Localization Client) that connects to a specific camera andanalyzes the pictures taken by it. That is, it does two things: First, it uses the ARToolkitPlus library to findthe robots with the black and white pattern on top of it and estimate their location and bearing. Second, ituses the CMVision library to find the yellow ball and determine its position. It then constructs a data packetwhich contains pose estimates on all the objects it has spotted and sends it to the localization server overthe network using UDP. tdlocc repeats this process several times a second and thus delivers up-to-date poseinformation to the server. The localization server program, called tdlocs (Top-Down Localization Server),listens on network port 8855 for incoming pose estimates from localization clients and fuses those estimates
3http://playerstage.sourceforge.net/doc/Player-2.0.0/player/classPlayerCc 1 1PlannerProxy.html4The actual dimensions of the field vary slightly from these dimensions due to issues with ceiling mounting of the cameras.
2
robot_xrobot_a
robot_y
world_x
world_a
world_y
Control specified in local coords:
position2d_set_cmd_vel(vx, vy, va)
playerv-style handles
1) path planning: sequence of intermediate poses 2) Define pose (3DOF position/orientation on field) and controls (transform global control into robot coordinates)?
robot’s local
coordinate system(moves with robot)
field/global
coordinate system(constant)
Path gives controls in world coords (w.r.t. field)
![Page 8: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/8.jpg)
CS1480 – Assignment 3 Path Planning
• Potential fields (Choset Ch. 4) and Wavefront planning3
• Probablistic roadmaps [1] (Kavraki et al. 1996)
• RRT-Connect [2] (Ku!ner et al. 2000)
There is pseudocode available for Dijkstra’s and A* search on Wikipedia as well as many other sources.There are many verisons of Dijkstra’s and A* available on the internet, you are free to use these just be sureto cite anything that is not your own.
4 Physical Soccer Environment
Figure 1: Coarse dimensions of the “FC 148” field incentimeters.
Shown in Figure 2, the course sta! has set up the“FC 148” robot soccer field within the RoombaLab for this assignment’s games and individ-ual challenges. The dimensions of this field areroughly 3.8m in width and 2.6m in height, ascoarsely illustrated in Figure 1 4. The field’s ori-gin (0, 0) is in the corner opposite the desk withthe lab computers. The direction a robot is fac-ing (yaw, or !) is defined in radians and 0 if therobot is facing the wall opposite the desk with thelab computers. Turning to the right increases theangle of yaw until ", turning to the left decreasesthe angle of yaw until !". That is, as the robotturns to the right the angle of yaw increases to-wards " until the robot is facing the wall with thedesk. If the robot turns even more the angle willnot increase up to 2" but rather start decreasingfrom !". The collective field of view for these cameras is shown in Figure 2. Localization for these robotswithin the field of view is handled by a client-server based application written by the course sta!. How toincorporate such localization information in your client program is explained in the next section. The goalsare roughly 0.7m in width and slightly extend past the end boundary. A goal will consider being scored ifthe ball touches the goal material.
4.1 Localization Interface
4.1.1 Infrastructure
As mentioned above, a total of four cameras were installed on the ceiling. The cameras labeled 1 and 2 areconnected to the computer sandworm and the ones labeled 3 and 4 are connected to foxwood. The coursesta! wrote a program called tdlocc (Top-Down Localization Client) that connects to a specific camera andanalyzes the pictures taken by it. That is, it does two things: First, it uses the ARToolkitPlus library to findthe robots with the black and white pattern on top of it and estimate their location and bearing. Second, ituses the CMVision library to find the yellow ball and determine its position. It then constructs a data packetwhich contains pose estimates on all the objects it has spotted and sends it to the localization server overthe network using UDP. tdlocc repeats this process several times a second and thus delivers up-to-date poseinformation to the server. The localization server program, called tdlocs (Top-Down Localization Server),listens on network port 8855 for incoming pose estimates from localization clients and fuses those estimates
3http://playerstage.sourceforge.net/doc/Player-2.0.0/player/classPlayerCc 1 1PlannerProxy.html4The actual dimensions of the field vary slightly from these dimensions due to issues with ceiling mounting of the cameras.
2
robot_xrobot_a
robot_y
world_x
world_a
world_y
position2D control: 2D vector
direction and magnitude for
movement
![Page 9: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/9.jpg)
CS1480 – Assignment 3 Path Planning
• Potential fields (Choset Ch. 4) and Wavefront planning3
• Probablistic roadmaps [1] (Kavraki et al. 1996)
• RRT-Connect [2] (Ku!ner et al. 2000)
There is pseudocode available for Dijkstra’s and A* search on Wikipedia as well as many other sources.There are many verisons of Dijkstra’s and A* available on the internet, you are free to use these just be sureto cite anything that is not your own.
4 Physical Soccer Environment
Figure 1: Coarse dimensions of the “FC 148” field incentimeters.
Shown in Figure 2, the course sta! has set up the“FC 148” robot soccer field within the RoombaLab for this assignment’s games and individ-ual challenges. The dimensions of this field areroughly 3.8m in width and 2.6m in height, ascoarsely illustrated in Figure 1 4. The field’s ori-gin (0, 0) is in the corner opposite the desk withthe lab computers. The direction a robot is fac-ing (yaw, or !) is defined in radians and 0 if therobot is facing the wall opposite the desk with thelab computers. Turning to the right increases theangle of yaw until ", turning to the left decreasesthe angle of yaw until !". That is, as the robotturns to the right the angle of yaw increases to-wards " until the robot is facing the wall with thedesk. If the robot turns even more the angle willnot increase up to 2" but rather start decreasingfrom !". The collective field of view for these cameras is shown in Figure 2. Localization for these robotswithin the field of view is handled by a client-server based application written by the course sta!. How toincorporate such localization information in your client program is explained in the next section. The goalsare roughly 0.7m in width and slightly extend past the end boundary. A goal will consider being scored ifthe ball touches the goal material.
4.1 Localization Interface
4.1.1 Infrastructure
As mentioned above, a total of four cameras were installed on the ceiling. The cameras labeled 1 and 2 areconnected to the computer sandworm and the ones labeled 3 and 4 are connected to foxwood. The coursesta! wrote a program called tdlocc (Top-Down Localization Client) that connects to a specific camera andanalyzes the pictures taken by it. That is, it does two things: First, it uses the ARToolkitPlus library to findthe robots with the black and white pattern on top of it and estimate their location and bearing. Second, ituses the CMVision library to find the yellow ball and determine its position. It then constructs a data packetwhich contains pose estimates on all the objects it has spotted and sends it to the localization server overthe network using UDP. tdlocc repeats this process several times a second and thus delivers up-to-date poseinformation to the server. The localization server program, called tdlocs (Top-Down Localization Server),listens on network port 8855 for incoming pose estimates from localization clients and fuses those estimates
3http://playerstage.sourceforge.net/doc/Player-2.0.0/player/classPlayerCc 1 1PlannerProxy.html4The actual dimensions of the field vary slightly from these dimensions due to issues with ceiling mounting of the cameras.
2
robot_xrobot_a
robot_y
world_x
world_a
world_y
position2D control: 2D vector
direction and magnitude for movement
![Page 10: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/10.jpg)
CS1480 – Assignment 3 Path Planning
• Potential fields (Choset Ch. 4) and Wavefront planning3
• Probablistic roadmaps [1] (Kavraki et al. 1996)
• RRT-Connect [2] (Ku!ner et al. 2000)
There is pseudocode available for Dijkstra’s and A* search on Wikipedia as well as many other sources.There are many verisons of Dijkstra’s and A* available on the internet, you are free to use these just be sureto cite anything that is not your own.
4 Physical Soccer Environment
Figure 1: Coarse dimensions of the “FC 148” field incentimeters.
Shown in Figure 2, the course sta! has set up the“FC 148” robot soccer field within the RoombaLab for this assignment’s games and individ-ual challenges. The dimensions of this field areroughly 3.8m in width and 2.6m in height, ascoarsely illustrated in Figure 1 4. The field’s ori-gin (0, 0) is in the corner opposite the desk withthe lab computers. The direction a robot is fac-ing (yaw, or !) is defined in radians and 0 if therobot is facing the wall opposite the desk with thelab computers. Turning to the right increases theangle of yaw until ", turning to the left decreasesthe angle of yaw until !". That is, as the robotturns to the right the angle of yaw increases to-wards " until the robot is facing the wall with thedesk. If the robot turns even more the angle willnot increase up to 2" but rather start decreasingfrom !". The collective field of view for these cameras is shown in Figure 2. Localization for these robotswithin the field of view is handled by a client-server based application written by the course sta!. How toincorporate such localization information in your client program is explained in the next section. The goalsare roughly 0.7m in width and slightly extend past the end boundary. A goal will consider being scored ifthe ball touches the goal material.
4.1 Localization Interface
4.1.1 Infrastructure
As mentioned above, a total of four cameras were installed on the ceiling. The cameras labeled 1 and 2 areconnected to the computer sandworm and the ones labeled 3 and 4 are connected to foxwood. The coursesta! wrote a program called tdlocc (Top-Down Localization Client) that connects to a specific camera andanalyzes the pictures taken by it. That is, it does two things: First, it uses the ARToolkitPlus library to findthe robots with the black and white pattern on top of it and estimate their location and bearing. Second, ituses the CMVision library to find the yellow ball and determine its position. It then constructs a data packetwhich contains pose estimates on all the objects it has spotted and sends it to the localization server overthe network using UDP. tdlocc repeats this process several times a second and thus delivers up-to-date poseinformation to the server. The localization server program, called tdlocs (Top-Down Localization Server),listens on network port 8855 for incoming pose estimates from localization clients and fuses those estimates
3http://playerstage.sourceforge.net/doc/Player-2.0.0/player/classPlayerCc 1 1PlannerProxy.html4The actual dimensions of the field vary slightly from these dimensions due to issues with ceiling mounting of the cameras.
2
robot_xrobot_a
robot_y
world_x
world_a
world_y
Express vector direction on
field in robot coordinates?
position2D control: 2D vector
direction and magnitude for movement
![Page 11: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/11.jpg)
position2d in playerv
robot_a
robot_x
va
vx
![Page 12: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/12.jpg)
position2d in playerv
robot_a
robot_x
va
vx
“turn left and go straight”
![Page 13: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/13.jpg)
position2d in playerv
robot_a
robot_x
va
vx
“drive forward”
![Page 14: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/14.jpg)
position2d in playerv
robot_a
robot_x
va
vx
“turn right and slightly backward”
Can we be more precise?
![Page 15: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/15.jpg)
position2d in playerv
robot_a
robot_x
va
vx
u = (ux,ua)
ux
ua u
Note: ua is dot product of u and va
![Page 16: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/16.jpg)
Dot Product
If one is a unit vector (length 1), the dot product is the projection onto this vector
Related to angle between vectors
![Page 17: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/17.jpg)
CS1480 – Assignment 3 Path Planning
• Potential fields (Choset Ch. 4) and Wavefront planning3
• Probablistic roadmaps [1] (Kavraki et al. 1996)
• RRT-Connect [2] (Ku!ner et al. 2000)
There is pseudocode available for Dijkstra’s and A* search on Wikipedia as well as many other sources.There are many verisons of Dijkstra’s and A* available on the internet, you are free to use these just be sureto cite anything that is not your own.
4 Physical Soccer Environment
Figure 1: Coarse dimensions of the “FC 148” field incentimeters.
Shown in Figure 2, the course sta! has set up the“FC 148” robot soccer field within the RoombaLab for this assignment’s games and individ-ual challenges. The dimensions of this field areroughly 3.8m in width and 2.6m in height, ascoarsely illustrated in Figure 1 4. The field’s ori-gin (0, 0) is in the corner opposite the desk withthe lab computers. The direction a robot is fac-ing (yaw, or !) is defined in radians and 0 if therobot is facing the wall opposite the desk with thelab computers. Turning to the right increases theangle of yaw until ", turning to the left decreasesthe angle of yaw until !". That is, as the robotturns to the right the angle of yaw increases to-wards " until the robot is facing the wall with thedesk. If the robot turns even more the angle willnot increase up to 2" but rather start decreasingfrom !". The collective field of view for these cameras is shown in Figure 2. Localization for these robotswithin the field of view is handled by a client-server based application written by the course sta!. How toincorporate such localization information in your client program is explained in the next section. The goalsare roughly 0.7m in width and slightly extend past the end boundary. A goal will consider being scored ifthe ball touches the goal material.
4.1 Localization Interface
4.1.1 Infrastructure
As mentioned above, a total of four cameras were installed on the ceiling. The cameras labeled 1 and 2 areconnected to the computer sandworm and the ones labeled 3 and 4 are connected to foxwood. The coursesta! wrote a program called tdlocc (Top-Down Localization Client) that connects to a specific camera andanalyzes the pictures taken by it. That is, it does two things: First, it uses the ARToolkitPlus library to findthe robots with the black and white pattern on top of it and estimate their location and bearing. Second, ituses the CMVision library to find the yellow ball and determine its position. It then constructs a data packetwhich contains pose estimates on all the objects it has spotted and sends it to the localization server overthe network using UDP. tdlocc repeats this process several times a second and thus delivers up-to-date poseinformation to the server. The localization server program, called tdlocs (Top-Down Localization Server),listens on network port 8855 for incoming pose estimates from localization clients and fuses those estimates
3http://playerstage.sourceforge.net/doc/Player-2.0.0/player/classPlayerCc 1 1PlannerProxy.html4The actual dimensions of the field vary slightly from these dimensions due to issues with ceiling mounting of the cameras.
2
robot_xrobot_a
robot_y
world_x
world_a
world_y
directly using world space
command produces wrong
command in robot coords
uwur
![Page 18: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/18.jpg)
position2d in playerv
va
vx
How can we transform control vector into robot coords?
![Page 19: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/19.jpg)
position2d in playerv
va
vx
angular orientation
in world posew_a
Difference in world-local orientation is angular displacement in world
![Page 20: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/20.jpg)
position2d in playerv
va
vx
rotate by -posew_a
Difference in world-local orientation is angular displacement in world
“Undo” world space orientation: rotate control by -posew_a
![Page 21: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/21.jpg)
Rotating a 2D vector(counterclockwise)
Matrix multiply vector by 2D rotation matrix
Matrix parameterized by rotation angle
Check matrix correctness yourself
(x’,y’)
(x,y)
!
![Page 22: It depends on your perspective - Brown Universitycs.brown.edu/courses/cs148/old/2009fall/pub/cs148_2009_slides_to… · 4 Physical Soccer Environment Figure 1: Coarse dimensions of](https://reader034.vdocuments.net/reader034/viewer/2022052003/6016be3bf4eba4031b4f857e/html5/thumbnails/22.jpg)
Matrix multiplication