This project is an autonomous room cleaning robot.
The CAD Model has been designed in Autodesk Fusion 360 and later exported as URDF using the Fusion2URDF Plugin.
https://a360.co/3GqUmmx

Follow these instructions to work with the robot.
cd {your_catkin_workspace}/src
git clone https://github.com/SIDDHARTH-S-001/auto_clean.git
cd ..
catkin_make
rospack find auto_clean_description
If successful, launch the gazebo file with lockstep mode set to "True" (to sync sensor update rate and physics engine update rate)
This will open gazebo and RVIz with the robot spawned.
You can implement SLAM by launch Gmapping.
roslaunch auto_clean_description gazebo.launch lockstep:=true
roslaunch auto_clean_description gmapping,launch
In RVIZ click the Add button (bottom left) the add a map.</br
Dont forget to change the fixed frame to map (default will be base_link)
Launch Teleop twist keyboard in new terminal tab to drive the robot manually
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
You should see something like this (a 2D occypancy grid map)
After you're satisfied, you can safe the map using map saver, open a new terminal tab and execute
rosrun map_server map_saver -f mymap
You can start Autonomous Navigation by executing the following lines.
roslaunch auto_clean_description gazebo.launch lockstep:=true
roslaunch auto_clean_description navigation.launch
NavFn is set as the default global planner, which can be changed as per your preference. You'll find a few options in the scripts/autonomous folder
Remember to add the necessary widgets for visualization in RVIZ.
You can set your goak location using the 2D Nav tool.
If everything works, you should see the robot moving towards the goal location on its own like in the picture below
In case you prefer navigating the robot into a pre-saved map, then execute this instead
roslaunch auto_clean_description map_navigation.launch
Coming to the goal of the project, which is to clean every nook and corner of an indoor environment. For this we implement coverage planning
roslaunch auto_clean_description full_coverage.launch
https://github.com/syuntoku14/fusion2urdf/tree/master
http://wiki.ros.org/navigation
https://github.com/nobleo/full_coverage_path_planner