Route post processing. As my robot executes its commands, the
Linux computer poles the PIC for status. Within the status return
is the following information:
if cmd == "s" then
-- send state info
send_word (distance)
send_word (heading)
send_word (ave_heading_error)
send_word (ave_x)
send_word (ave_y)
send_word (ave_rot)
send_word (dist_left)
send_word (dist_right)
Serial_HW_Write (pwr)
Serial_HW_Write (RPM)
Serial_HW_Write (mode)
end if
Where distance is the number of encoder ticks, heading is the current
heading as read by the digital compass, ave_heading_error is the
average of the difference between the target_heading and each of the
last 4 compass samplings. ave_x, ave_y, ave_rot, are the average
of the last 2 readings from the IMU, dist_left/dis_right are the CM
distances reported by the ultrasonic range finders. pwr is what
the MD03 is getting driven at, RPM is the number of tics/20ms, and mode
is the operating state of the PIC control loop.
I'm still annalizing the data but I have some pretty graphs :)
see markiii_jalv2/magellan_py/analyse.py file if you are interested in
how I created these plots. These plots are of a single the
track_heading command.
Running the robot on the grass shows me
that I need to be sure to have good batteries.
Putting a magnet in the path
of the robot shows the following. Zoomed in.
Hitting a pot-hole (divot) in
my yard:
Running on the street with magnet in
path of robot, and zoom in on the
magnet effects
I'm hoping that by analyzing the results I can understand what happened
and why as the robot does stuff. And then use the data to fine
tune the execution of the robot.