This package contains a method for box pose estimation from RGBD camera using geometrical classical methods.
Given such an RGBD image, which is typical for most robotics picking applications. And given the camera extrinsics and intrinsics.
The objective is to detect the box dimensions and its pose using geometrical methods
- Convert RGBD image to a point cloud.
- Detect planar batches from the point cloud using statistical algorithm [ArujoAndOliveira2020] implemented by open3d.
- Find the floor (plane with the maximum volume).
- Find all horizontal planes (planes parallel to the floor).
- Find the box surface (horizontal plane with the maximum distance to the floor).
- Calculate the box dimensions from the floor, box surface, and pallet height.
- Find the box pose relative to the camera frame.
- The floor always dominates the scene.
- The box we are interested in detecting is always the closest horizontal surface to the camera.
- The pallet height is constant and known.
- Clone the package
git clone https://github.com/AbdElRahmanFarhan/box_pose_estimation- Build the docker image
cd box_pose_estimation
docker build . -t box_pose_img- Run the container
docker run -v /absolute_path/to/box_pose_estimation/data:/home/data -it box_pose_imgOutput from the terminal.
Start box pose estimation
Read camera parameters
Create a point cloud from RGB and depth
Save the point cloud in /home/data/results/pcd.ply
Detect the Floor
Save the Floor in /home/data/results/floor.ply
Detect the surface of the box then get the whole box
save the box surface in /home/data/results/box_surface.ply
Save the box in /home/data/results/box.ply
The pose of the object relative to the camera frame is:
[[ 0.56617101 -0.76133504 -0.31594056 -0.0531412 ]
[-0.79776736 -0.60255059 0.02237968 -2.3469073 ]
[-0.20740834 0.23937712 -0.94851448 2.50505253]
[ 0. 0. 0. 1. ]]
Save the pose in/home/data/results/pose.jsonThe container generates different ply files inside the data/results folder. To visualize the whole scene with the detected box, do the following:
sudo apt-get install meshlab
cd /path/to/data/results
meshlab *.plyThis will open meshlab and you can visualize it!



