Mobile Robot Control 2023 Group 9: Difference between revisions
Line 48: | Line 48: | ||
'''Part 2:''' The next step taken in this assignment is to compare the performance of the robot's odometry data. This is done by running a simple simulation in an empty hallway. The robot is driven forward and rotated using mrc-teleop, and the resulting odometry data is observed. This 'test' is ran two times, once with setting the uncertain_odom option to false, and once with true. When this setting was set to false, the robot was positioned in an upright position, meaning that driving forward would only impose changes to the x-data. The readings that were output were more or less accurate. Moreover, when the uncertain_odom was set to true, the robot did not start in an upright position, so driving forward would also impose a change in the x and y-data. This is due to the robot's coordinate frame is now askew when compared to the map's coordinates. However, the achieved data is still accurate. | '''Part 2:''' The next step taken in this assignment is to compare the performance of the robot's odometry data. This is done by running a simple simulation in an empty hallway. The robot is driven forward and rotated using mrc-teleop, and the resulting odometry data is observed. This 'test' is ran two times, once with setting the uncertain_odom option to false, and once with true. When this setting was set to false, the robot was positioned in an upright position, meaning that driving forward would only impose changes to the x-data. The readings that were output were more or less accurate. Moreover, when the uncertain_odom was set to true, the robot did not start in an upright position, so driving forward would also impose a change in the x and y-data. This is due to the robot's coordinate frame is now askew when compared to the map's coordinates. However, the achieved data is still accurate. | ||
'''Part 3:''' The same procedure was ran on the actual robot and its behavior was observed. | '''Part 3:''' The same procedure was ran on the actual robot and its behavior was observed. For the simulation and the actual experiment with the robot, we decided to save the odom data to a csv file. We ran two tests, one with just simply driving the robot forward, and the other with rotating the robot in one direction continuously using teleop. The collected data was then processed and graphed so we could compare this data visually. By simply inspecting the graphs visually, one can see that the slope for both, the x data and the angle data, were different for the simulation and the actual experiment. The slope for the actual tests was steeper, which confirms the fact that there is slippage affecting the robot. This can be seen in these two graphs. | ||
'''Straight line experiment graph:''' | |||
'''Angular rotation experiment graph:''' |
Revision as of 23:02, 24 May 2023
Group 9:
Name | student ID |
---|---|
Ismail Elmasry | 1430807 |
Carolina Vissers | 1415557 |
John Assad | 1415654 |
Exercise 1:
dont_crash design: The idea was to move forward until an object is reached (0.5m within +/-45 deg) and then stop. If this object is removed, the robot should continue moving forward until it reaches another.
- Noise: it is there, and is slightly jittery. All objects at the height of the laser scanner are seen if they are not too far away (resulting in an inf range). If you walk near the robot, the legs look like lines that are oriented perpendicular to the robot.
- done
- yes, it works the same as in the simulation as long as the speed is low enough and the distance is high enough. ie, the robot cannot move extremely fast (ie 0.7m/s) or stop too close to an object (ie 0.3m) with the real robot.
- https://photos.app.goo.gl/qFkDADTsP4tE5w4A8 (see video here)
Assignment 1:
The nodes can be placed more efficiently by only placing nodes at places where there is a choice in directions. Numerous nodes placed one after another in a straight line require computation, but do not offer any added value to the system, since the only choice is to continue forward. In the Figure, red nodes are the start and end nodes, while dark blue nodes are the internal nodes. The light blue lines are all possible connections to follow.
Assignment 2:
We implemented an open space approach. This approach seemed best to us, as the majority of the other approaches required setting a goal, which seemed counter-intuitive due to the uncertain odometry of the robot. Using a look-ahead distance, and a looking angle, we searched for the longest range of angles that the robot could see uninterrupted further than or equal to the look ahead distance. Then we rotated the robot to move in that direction.
Simulations:
Easy map: https://photos.app.goo.gl/CprLeQJM3VMo75UE6
Harder map: https://photos.app.goo.gl/hmdwc545hH43QAhB9
Real Robot:
Result: https://photos.app.goo.gl/8w9H96boxiLcTq5cA
Assignment 3: Localization 1:
Part 1: The odometry data was successfully read by the script that was created. The current values for the x,y, and a data is printed, and the difference between the previous readings and the current readings are also displayed.
Part 2: The next step taken in this assignment is to compare the performance of the robot's odometry data. This is done by running a simple simulation in an empty hallway. The robot is driven forward and rotated using mrc-teleop, and the resulting odometry data is observed. This 'test' is ran two times, once with setting the uncertain_odom option to false, and once with true. When this setting was set to false, the robot was positioned in an upright position, meaning that driving forward would only impose changes to the x-data. The readings that were output were more or less accurate. Moreover, when the uncertain_odom was set to true, the robot did not start in an upright position, so driving forward would also impose a change in the x and y-data. This is due to the robot's coordinate frame is now askew when compared to the map's coordinates. However, the achieved data is still accurate.
Part 3: The same procedure was ran on the actual robot and its behavior was observed. For the simulation and the actual experiment with the robot, we decided to save the odom data to a csv file. We ran two tests, one with just simply driving the robot forward, and the other with rotating the robot in one direction continuously using teleop. The collected data was then processed and graphed so we could compare this data visually. By simply inspecting the graphs visually, one can see that the slope for both, the x data and the angle data, were different for the simulation and the actual experiment. The slope for the actual tests was steeper, which confirms the fact that there is slippage affecting the robot. This can be seen in these two graphs.
Straight line experiment graph:
Angular rotation experiment graph: