Week 9 & 10 - minaamakary/MENA GitHub Wiki

28-08-2024 - Changing navigation approach

After numerous attempts, I realized that navigation using the LiDAR co-ordinates will be very inefficient and will cause a lot of inconsistency. This is because the data from the LiDAR Scanner is all 3D so it causes confusions with corners and turns. To eliminate this issue I decided to use laser scan for navigation since it only sends readings in 2D, which will ease the navigation process.

29-08-2024 - Inconsistent readings with /laserscan

The laser scanner is not giving me the readings which reflect front, left and right sides of the robots. By initial troubleshooting it appears that the configuration of the laser sensor on the robot might not be pointing to the correct direction. We modified the data range for front scan to be 85-105, left scan to be 165-175 and right scan 0-10 and printed out the values to see it finally making sense. Also the velodyne lidar was causing a confusion to the laser scan sensor in the robot urdf file although they are two separate tags. Once we removed the LiDAR Scanner, the laser scanner works in an acceptable way. Now the robot moves as long as the wall in front is greater than the threshold distance.

gazeboo09-01 at 13 14 37

30-08-2024 - Localising Turtlebot

We subscribed to /model_states to print the orientation and current location with respect to the map as it moves around.

gazeboo09-01 at 13 14 37 2

31-08-2024 - Adding LiDAR correctly

I tried to find out the correct way of adding the lidar, so I cloned a vlp 16 velodyne 3D LiDAR into my workspace, and imported the description file into my turtlebot3 description file. The LiDAR now is recognized with all its physics aspects, which is a new challenge ...

simulation_fun

01-09-2024 - Changing to Turtlebot3 Waffle

We tried using the turtlebot waffle instead of the burger due to its bigger surface area, assuming it will have more stability when we place the LiDAR and a bit more room for placement.

PICTURE HERE OF TURTLEBOT WAFFLE NAVIGATION--

09-09-2024 - Debugging major issues

The ultimate issue that each script had to subscribe to the same topics again, which was creating a confusion with the navigation and with data handling. Data handling always affected the navigation and resulted in a deviation with the robot (Turtlebot3_waffle) sometimes even resulting in random movements or movements in circular motion.

13-09-2024 - Creating separate scripts for data handling and Integrating all together

To overcome issues, I created different scripts to handle the data and then publish it to topics that are later subscri bed to, to eventually map the data.

I created a distance_measurement_node.py which computes the distance from a wall using PointCloud2 topic (/velodyne_points), and added a Kalman Filter for noise handling. After the distance is computed, the data is published to a /processed_point_cloud topic. The same way for position and orientation of the robot, I have created a pose_orientation_node.py which computes both angle and position by subscribing to the Odometry topic (/odom), and then publish the computed data to /robot_pose and /robot_yaw. These topics are then subscribed to by the mappingRoom.py and while the robot is navigating the map is created, once we kill the script, the map data is saved into a room_map.pcd file which can be then accessed for analysis. Below is the rqt_tree for visualizing the above description.

15-09-2024 - Mapping the Room

mapping