Mentors

  • Joel Jojo Painuthara
  • Sakshi Bothra

Members

  • Bakti Raju Karchi
  • Mohammed Shadab Alam
  • Nithin S
  • Sonali Kannojiya

Aim

The aim of this project is to simulate a robotic arm using the Robot Operating System (ROS) and the Gazebo simulator. The project demonstrates the capabilities of ROS in controlling and simulating robotic systems, while providing a platform for further research and development in the field of robotics.

Robotic Arm Model

Introduction

Robotic systems play a crucial role in various industries, from manufacturing to healthcare. The ability to accurately simulate and control robotic arms is essential for designing, testing, and optimizing their performance. The Robot Operating System (ROS) is a flexible framework that provides tools and libraries for developing robot applications. Gazebo, on the other hand, is a powerful simulator that allows for realistic physics-based simulations of robots and environments. This project combines the strengths of ROS and Gazebo to simulate a robotic arm and control it using a graphical user interface (GUI) generated using the Tkinter library in Python.

Technologies Used

  1. Robot Operating System (ROS) - A set of software libraries and tools that helps in building robot applications.

  2. Python - A high-level, general-purpose programming language.

Implementation

The implementation of the project involves the following steps:

Designing the Robotic Arm

The robotic arm is designed using CAD software, taking into consideration its kinematics and mechanical properties. The arm model is then imported into Gazebo for simulation.

ROS Integration

ROS is installed and configured on the system. The necessary ROS packages and dependencies are set up to interface with Gazebo and control the robotic arm.

Setting up Simulation

Gazebo is launched with the robotic arm model and an appropriate simulation environment. The physics properties of the arm and the environment are configured to ensure realistic behavior during simulation.

Robotic Arm in Gazebo

Controller GUI

A graphical user interface (GUI) is created using Tkinter in Python. The GUI provides buttons and sliders to control the joints of the robotic arm. Python scripts are developed to interface with ROS and send control commands based on the user inputs from the GUI.

GUI Controller

ROS Node Communication

ROS nodes are created to establish communication between the GUI controller and the robotic arm simulation. The GUI sends control commands to the ROS node, which then publishes them to the appropriate topics in ROS for controlling the arm in Gazebo.

Testing and Validation

The simulated robotic arm is tested using different control inputs from the GUI. The performance of the arm, including its accuracy, responsiveness, and stability, is evaluated during various tasks and scenarios.

Future Ventures

Few of the future scopes of this project includes:

  1. Using image processing to track hand movements to control the robotic arm.

  2. Interfacing a camera to the arm and running machine learning algorithms for automatic picking and dropping.

  3. Programming a sequence of movements of the robotic arm for automation purposes.

Conclusion

In conclusion, this project showcases the successful simulation and control of a robotic arm using the Robot Operating System (ROS) and the Gazebo simulator. By integrating a GUI controller generated using Tkinter, the project provides an intuitive and user-friendly interface for commanding the arm’s joints. The implementation demonstrates the capabilities of ROS in controlling and simulating robotic systems, while leveraging Gazebo’s realistic physics-based simulation environment. The project serves as a solid foundation for further research and development in the field of robotics, enabling advancements in robotic arm control and optimization.

References

  1. ROS Wiki
  2. StackOverflow
  3. ROS Robotics Learning
  4. Gazebo Sim