Mobile Robot Control 2024 The Iron Giant

From Control Systems Technology Group
Jump to navigation Jump to search

Group members:

Caption
Name student ID
Marten de Klein 1415425
Ruben van de Guchte 1504584
Vincent Hoffmann 1897721
Adis Husanović 1461915
Lysander Herrewijn 1352261
Timo van der Stokker 1228489

Week 2 exercises

{Setup} Exercise 1, [NAME]:

[link to Gitlab code with comments (We should discuss how we want to format the exercises branch of git.)]

[Design choices, what distance to stop, how does your code retrieve the distance, did you find any limitations?]

[Screen capture of simulation driving and stopping]

{Setup} Exercise 2, [NAME]:

[link to Gitlab screen capture, I guess we want a video to see the robots stopping, lets aim for 20s max per person. I would recommend https://wiki.ubuntuusers.de/recordMyDesktop/, very easy to use (! Note Linux has built in Screen capture software.... use ctrl, alt, shift r to start and stop recording, capture is stored in videos). To make it more compact, convert it to mp4 in you machine and it can then easily be pushed to gitlab. If people feel this is overkill, lets discuss wednesday.][what did you notice?]

{Vergeet dit niet in het Engels te schrijven!}


Exercise 1, Lysander Herrewijn:

Code

The code utilizes the minimum of the scan data. It loops over all data and saves the smallest distance. If the distance is smaller than 0.3, the robot drives forward. However, if the smallest distance is smaller than 0.3, it will rotate in counter clockwise direction. When new scanner data is available, the distance given by the smallest laser data is redefined. At a certain point, the robot has turned enough such that it will drive forward again until it meets a new wall. The distance of 0.3 is chosen, as it gives the robot enough space to make its turn, with a margin of error in the scanner data and for turning.

Screen capture exercise 1


Exercise 2, Lysander Herrewijn:

Screen capture exercise 2 map 1

The robot behaves as expected. It drives forward, gets closer to the wall, the scanner data indicates the robot is getting to close and it starts to turn in clockwise direction. It goes forward again until it gets too close to the left wall.

Screen capture exercise 2 map 1

In this case, the robot can pass the block slightly. However, as the scanner data indicates a wall is too close, it stops driving forward and start turning. Do notice the turn is less sharp as in previous example, as it needs to turn less degrees in counter clockwise direction for the scanner to not observe the obstacle. At this point, it can move forward and the robot is sure it will not hit anything in front of it.

Exercise 1, Adis Husanovic:

Code

The current method ensures that the mobile robot moves forward while avoiding collisions with obstacles closer than 0.15 m in its path. This approach relies on monitoring of the environment using an onboard laser range sensor to detect potential obstacles. As the robot advances, it compares distance readings from the sensors with a predefined threshold distance, representing the desired safety margin between the robot and any detected object. When detecting an obstacle within this threshold distance, the robot stops before reaching the obstacle.

Screen capture exercise 1


Exercise 2, Adis Husanovic:

In both test scenarios conducted in different maps from exercise 2, the robot shows the desired behavior without any issues. In the first map, the robot stops before reaching the object, showing its ability to detect and respond to obstacles effectively.

Screen capture exercise 2 map 1

In the second map, the robot navigates along the side of the object and comes to a stop when encountering the wall, thereby avoiding any collision.

Screen capture exercise 2 map 2


Exercise 1, Marten de Klein:

Code

The laser data is used to stop the robot if the distance to an object is smaller than 0.15 m. Since the robot only has to stop for this exercise the most straightforward method is to stop if any of the laser data becomes smaller than this distance. This also means that if the robot moves past an object very close the robot will stop.

Screen capture exercise 1


Exercise 2, Marten de Klein:

Screen capture exercise 2 map 1

Screen capture exercise 2 map 2

The robot functions in both maps as desired. The robot stops before the object in the first map. The robot moves along the side of the object in the second map and stops when encountering the wall.


Exercise 1, [Ruben van de Guchte]:

Code

The code calculates which points from the data are relevant for bumping into objects based on the safe distance specified in the script. It then checks whether there lidar returns an object in front of it that is too close.

The robot now stops 0.5 meters before an obstacle, but this can be easily finetuned using the safety_distance variable. It should be taken into account that the lidar scans are not a continuous function and ifthe robot were going very fast that an unlucky timing might push it within the safety distance.

Screen capture exercise 1


Exercise 2, [Ruben van de Guchte]:

After finetuning the width of the robot it works nicely.

Screen capture exercise 2


Exercise 1, Vincent:

Code

The code uses the laser data to determine the distance from the wall. When the wall is at 0.3 meters the robot stops and returns it has stopped text. Where after the program ends.

Screen capture exercise 1


Exercise 1, Timo van der Stokker:

With the data taken from the laser, the robot keeps checking the distances to the walls where the lidar is aimed at. If the distance that is found is less than the so called stop distance, the velocity of the robot is set to 0 and therefore stops. The stop distance can be easily be changed by altering the stop_distance variable which is now set to 0.2 meters.

Screen capture exercise 1

Exercise 2, Timo van der Stokker:

The robot works in both the maps with the stop_distance chosen and does not crash.

Screen capture exercise 2 Map 1

Screen capture exercise 2 Map 2