This repository contains code to execute a deep-learning based robotic milling cell in ROS framework using Python and C++.
The following dependencies need to be installed before running the project.
- ROS-melodic - framework for running the project.
- Gazebo - for simulation of the robot motions.
- MoveIt - Motion Planning of Robots.
- Keras-API to process deep learning dataset.
- TensorFlow-API to train Convolutional Neural Networks
- Sci-kit Learn-Machine Learning module in Python
Clone the repository in a folder 'Intelligent_Robotic_Milling_Cell' and rename the cloned repository to src. For now, please clone the master branch of the repo using:
git clone -b master https://github.com/jd509/Intelligent-Robotic-Millling-Cell.git
Then, type the following on a terminal:
cd Intelligent_Robotic_Milling_Cell && catkin_make -j7
This will make the project.
For simulation and planning purpose:
Open a new terminal and paste the following code:
cd Intelligent_Robotic_Milling_Cell
source devel/setup.bash
roslaunch process_visualizer start_simulation.launch
This will start the gazebo with the needed controllers. The initial PID gain have not been set and hence may produce warnings.
The gazebo window should display the robotic cell as follows:
Now, open another terminal alongside the gazebo and type the following:
cd Intelligent_Robotic_Milling_Cell
source devel/setup.bash
roslaunch ur5_planning ur5_planning.launch
This will start the MoveIt's Motion Planning Framework. The RViz window can then be used to plan and execute robot motions.
Finally, start the User Interface for the cell in the next step as:
cd Intelligent_Robotic_Milling_Cell
source devel/setup.bash
roslaunch user_interface user_interface.launch
The simulation video is embedded in the thumbnail below. Please follow the youtube link by clicking on the image.
-
The process visualizer package includes the launch file to load objects in the gazebo world.
- ROS node list:
- Workpiece Handler : This node is used to handle the workpiece spawning in Gazebo.
- URDF files : This folder contains all the urdf files needed to spawn objects into the world.
- ROS node list:
-
This package includes the service files, datasets and the pretrained model to classify images using a 6-layered network.
-
This package includes the nodes to draw millling paths on the workpiece.
-
ROS node list:
- Visualizing Milling Path : This node is used to draw milling paths using points on the workpiece.
- Visualizing Workpiece for Milling Path Generation : This node is used to visualize the workpiece in RViz.
-
-
This package includes the nodes to launch user interface for commanding the robots.
-
ROS node list:
- User Interface : This node is used to define button connections for controlling the robot cell.
-
-
This package includes the launch files and nodes to start the moveit planning for each robot.
- ROS node list:
- UR5 Robots : This node controls the motion planning for UR5 robots.
- UR10 Robot : his node controls the motion planning for UR10 Milling robot.
- ROS node list:
-
Coordinator : This package controls the information flow in the system.
If the gazebo specific controllers are not installed on the system, MoveIt will not be able to execute motions. You can install all the ros-controllers by typing:
sudo apt-get install ros*controller*
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.