Skip to content

smtbhd32/slam_bot_with_fusion360

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SLAM Bot With Fusion360

This project demonstrates the development of a SLAM (Simultaneous Localization and Mapping) bot using ROS and Gazebo. The process involves creating a robot model in Fusion 360, exporting it to URDF, adding functionality with Gazebo plugins, and implementing SLAM for robot localization and map creation. The entire project is based on the SLAM Robot Simulation playlist by Jerin Peter.

Watch Demo

You can watch the demonstration on YouTube by clicking the video below:

Watch the video

Features

  • 3D Design: The robot model was created using Fusion 360 and exported to URDF.
  • Gazebo Integration: The robot is simulated in Gazebo with LIDAR and differential drive functionality.
  • Custom Environment: A custom Gazebo world was created to test the robot.
  • SLAM Implementation: Used the slam_gmapping package for robot localization and map creation.
  • Teleoperation: The robot can be manually controlled using the teleop_twist_keyboard package during simulation.
  • Visualization: The robot and SLAM process can be visualized using RQT and RViz.

Project Steps

  1. Create the Robot Model: Design the robot in Fusion 360, including adding joints, and export it to URDF using the fusion2urdf tool.

    Screenshot 2024-12-09 001758

  2. Test the Robot in Gazebo: Import the URDF model into Gazebo and add LIDAR and differential drive functionality through plugins.

    Screenshot 2024-12-08 222045

  3. Create a Gazebo World: Build a custom Gazebo world for the robot and modify the launch file to load it.

    Screenshot 2024-12-08 233748

  4. Implement SLAM: Use the slam_gmapping package for robot localization and map creation.

    Screenshot 2024-12-09 063508

  5. Save the Map: Save the generated map after running the SLAM process.

    Screenshot 2024-12-09 002645

  6. Control the Robot: Use the teleop_twist_keyboard package to manually control the robot during the simulation.

Commands

  1. Gazebo Launch (Simulate the Robot):

    roslaunch myrobot_description gazebo.launch
  2. RViz Launch (Visualize the Robot):

    roslaunch myrobot_description display.launch
  3. GMAPPING Launch (Start SLAM for Localization and Map Creation):

    roslaunch myrobot_description mapping.launch
  4. Teleoperation (Control the Robot Using the Keyboard):

    rosrun teleop_twist_keyboard teleop_twist_keyboard.py
  5. Saving the map:

    rosrun map_server map_saver -f myworld_map

Issues Faced

  • Python Compatibility: The script for exporting Fusion 360 models to URDF used distutils.dir_util, which is deprecated in Python 3.10 and above. This caused issues since Fusion 360 uses Python 3.12. I resolved this by replacing distutils with shutil for directory operations, ensuring compatibility with Python 3.12.
  • Gazebo Plugin Configuration: I encountered difficulties when setting up the Gazebo plugins for LIDAR and differential drive functionality, requiring multiple adjustments to the configuration files.
  • Updated Fusion2URDF Plugin: I forked and updated the Fusion2URDF plugin to ensure compatibility with newer Python versions.

Acknowledgments

A huge thank you to Jerin Peter for his insightful and detailed tutorials. His work served as the foundation for this project and provided the necessary knowledge to successfully develop and simulate the SLAM bot.

About

A ROS-based SLAM robot simulation using Fusion 360 for 3D modeling, URDF export, and Gazebo for testing with LIDAR and differential drive functionality. Implements GMAPPING for localization and map creation, with manual control via the teleop_twist_keyboard package.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors