Vision · University · about 40 min
Range and bearing to a landmark you know the position of, which is a position fix.
[1 mark]Tag 20 is at (40, 160). Facing heading 0, the robot sees it at a bearing of -20 degrees and a range of 50 cm. What does this print?
import math Tx, Ty = 40.0, 160.0 h, b, d = 0.0, -20.0, 50.0 x = Tx - d * math.sin(math.radians(h + b)) y = Ty - d * math.cos(math.radians(h + b)) print(round(x, 1), round(y, 1))
[1 mark]A one tag fix is taken at a range of 100 cm with a heading that is 1 degree wrong. How far sideways does the fix move, in cm to 2 decimal places?
[1 mark]Why do two tags make the heading observable when one tag does not?
[1 mark]Put the parts of an AprilTag pose estimate in order from most to least reliable.
Number the lines 1 to 3 to put them in the right order.
Range, from apparent sizeOut-of-plane rotation, from the corner geometryBearing, from the centroid[1 mark]A robot steering on a tag's reported yaw sees the estimate jump by 15 degrees between frames while nothing moves. What is the best explanation?
[1 mark]Why is a tag fix not a substitute for a filter?
Tag 20 is at (40, 160) on the mat and tag 21 at (150, 140). Work out where the robot is, print it as my x: and my y:, and then drive to (130, 100) on the mat and stop there, refixing as you go. Neither position() nor heading() is allowed: both are the lab's truth, and the point is that two tags are enough.
from bugbot import *
import math
connect()
F = 92.4
TAGS = {20: (40.0, 160.0), 21: (150.0, 140.0)}
TX, TY = 130.0, 100.0
set_cv("apriltag")
wait(0.3)Plan your program here, then type it in and press Run.
x, y and h suffers most, and does that match what the lesson said about where the strength lies?