Use YCB Dataset Objects in Gazebo

Although YCB Benchmarks has provided a series of mesh files, they still cannot be used directly in Gazebo because of the missing some of the physical properties.

I made SDF models for most YCB objects that can be used directly in Gazebo, and provided them with the following optimizations:

  1. Stable friction parameters.
  2. Enhanced lighting.
  3. HD textures.
YCB objects
Continue reading

Compile OpenCV 4 with Qt 5 for Python 3 and C++ on macOS High Sierra 10.13

This tutorial provides step-by-step instructions to compile OpenCV 4 with Qt 5 for Python 3 and C++ on macOS High Sierra 10.13. For the latest macOS version, I think you can install OpenCV from Homebrew directly. I wrote this tutorial on Dec. 2020 and the High Sierra is a previous macOS system and installing OpenCV directly from Homebrew will fail so I have to compile it manually.

Continue reading

YCB-Video dataset Download Mirror (YOLO labels & weights)

The YCB-Video dataset contributed by PoseCNN is based on the YCB dataset. 21 objects are selected, and photographed with an RGBD camera to make 92 videos. The entire data set contains 133827 frames.

21 Objects

The YCB-Video dataset is a little hard to download from Google Drive. Because it only consists of a super large compressed file (256GB) and does not support resumable transmission. Once the download fails, you will face an rate limitation (usually 24 hours) and have to download again from the first byte!😭

So I used sub-volume compression, each file is round 10GB in size with a verifiable hash. Although multi-threaded downloading is still not allowed, at least you can re-download from a sub-volume instead of the whole. Furthermore, I added text labels for YOLO training to each image under the data folder.

Continue reading

Laravel MySQL Query Return Empty When there is a Deadlock

Suppose you have two processes executing the following PHP code at the same time, what results will be printed?

Surprisingly, one process prints the query results, while another process prints an empty collection (array). The code that returned an empty collection did not trigger a deadlock exception as expected.

Continue reading