ROS 2 wrappers for AnyGrasp detection and tracking.
Create the docker mavclan network following these instructions. This limits the host to Linux OS (Windows, WSL and MacOS not supported) but AnyGrasp Licensing requires this apprach when using a docker based implementation.
Install VSCode and add the DevContainer addon.
Clone this repo and open using VSCode. Generally VScode should auto detect, if not press Shift+Ctrl+P to open the command palette and select "DevContainer: Rebuild and Reopen the container" option.
Once the Container is built, run the license_checker function from anygrasp_sdk and apply for the license following the steps from here.
Following commands will help to run the license_checker within the dev container.
cd /dependencies/anygrasp_sdk/license_registration/
./license_checker -fOnce you fill the form and receive the license zip file, unzip and copy it to the /license folder within the cloned repo (Not inside the container). Devcontainer has been configured to mount the license folder into the following locations of the container,
/home/ubuntu/colcon_ws/license
To check the license run following command
cd /dependencies/anygrasp_sdk/license_registration/
./license_checker -c /dependencies/precompiled/license/licenseCfg.jsonCopy the detection and tracking model weights into weights/detection and weights/tracking folders respectively. These will be mounted into following folders inside the container.
/dependencies/precompiled/weights/detectionallows to run the ros2 packages/dependencies/precompiled/weights/trackingallows to run the ros2 packages
This can also be done alongside the prior Adding Licesne step.
Try running the grasp_detection/demo.py and grasp_tracking/demo.py to confirm the process pipeline is working.
Use the following command to start the anygrasp system
ros2 launch anygrasp_ros detection.launch.pyUse the following command to start the anygrasp system
ros2 launch anygrasp_ros tracking.launch.pyBoth nodes expose services using anygrasp_msgs/srv/GetGrasps:
/anygrasp/detection(detection)/anygrasp/tracking(tracking)
Each service takes a count in the request and returns geometry_msgs/Pose[] in the response.