A pick-and-place application with the Franka Panda robot simulated in ROS and Gazebo.
This project showcases a pick-and-place application that utilizes:
- A state machine
- Vision to detect objects based on their color via a Kinect RGB-D sensor
The state machine graph is depicted below:
The robot starts in the home position. If objects are detected on the workbench, it randomly selects one. Once an object is selected, the robot picks and places it to the same color bin. Then, returns to the home position. If no objects are detected on the workbench, it stops.
The project was developed on Ubuntu 20.04 LTS with:
- ROS Noetic
- Gazebo 11.11.0
The following dependencies need to be installed:
The python dependencies can be installed from the requirements.txt
file.
pip install -r requirements.txt
To resolve issues with grasping in Gazebo, the Grasp Fix Plugin is utilized.
Load the robot in Gazebo
roslaunch pick_and_place panda_world.launch
Start MoveIt for motion planning
roslaunch panda_sim_moveit sim_move_group.launch
Run the object detector
rosrun pick_and_place object_detector.py
Run the pick-and-place controller
rosrun pick_and_place pick_and_place_state_machine.py
The contents of this repository are covered under the MIT License.