This repo uses the panda arm to grasp a known object (labeled with Aruco marker).
- Panda arm from Franka Emika
- RGB camera (e.g. Realsense D435)
- Ubuntu 18.04
- franka_ros in catkin_ws (built from source)
- libfranka (built from source)
- panda_moveit_config
- aruco_ros
- rviz_visual_tools
Download the "franka_gripper_client.cpp" in the folder catkin_ws/src/franka_ros/franka_gripper/src/
cd $path-to-catkin_ws/src/franka_ros/franka_gripper/src/
wget https://raw.githubusercontent.com/lily983/Panda-Grasp-Known-Object/main/franka_gripper_client.cpp
Stay the directory in the terminal from the last step.
Delete the "CMakeLists.txt" and "package.xml" file in the folder catkin_ws/src/franka_ros/franka_gripper/
After that, install the two files from Github.
cd ..
rm CMakeLists.txt
rm package.xml
wget https://raw.githubusercontent.com/lily983/Panda-Grasp-Known-Object/main/CMakeLists.txt
wget https://raw.githubusercontent.com/lily983/Panda-Grasp-Known-Object/main/package.xml
Now, we need to catkin_build the catkin_ws.
catkin_build
Before using this repo, we need to do the following things:
- Install camera on a static place
- Handeye calibration (recommond repo: IFL_CAMP/easy_handeye url:https://github.com/IFL-CAMP/easy_handeye)
- Print out Aruco marker (https://chev.me/arucogen/) (chooes Dictionary: Original ArUco) (Remeber to check the printed marker size! Incorrect size will cause a huge error on calibration)
- Modify Aruco detection file in pkg aruco_ros
- In the first terminal, launching the arm.launch file:
roslaunch panda_moveit_config panda_control_moveit_rviz.launch robot_ip:=172.16.0.2
- In the second terminal, boardcasting the transformation between panda_link0 to camera:
rosrun tf static_transform_publisher x y z qx qy qz qw panda_link0 camera_color_frame
- In the third terminal, launching the camera:
roslaunch realsense2_camera rs_camera.launch
- In the fourth terminal, launching marker detect file:
roslaunch aurco_ros single.launch
After all these setup, the robot arm is ready to grasp object.
- In the last terminal, running the file:
rosrun franka_gripper franka_gripper_client