Skip to content

Commit

Permalink
First Init.
Browse files Browse the repository at this point in the history
  • Loading branch information
Lucas authored and Lucas committed Apr 10, 2019
1 parent 2cece32 commit ec2fea5
Show file tree
Hide file tree
Showing 127 changed files with 14,038 additions and 0 deletions.
10 changes: 10 additions & 0 deletions config/README.MD
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
## SET USB Driver on Ubuntu/Linux
```
sudo cp ./config/ubuntu/72-CalculusCDK.rules /etc/udev/rules.d/
sudo cp ./config/ubuntu/60-SonyCDK.rules /etc/udev/rules.d/
sudo chmod a+x /etc/udev/rules.d/72-CalculusCDK.rules
sudo chmod a+x /etc/udev/rules.d/60-SonyCDK.rules.rules
sudo udevadm control --reload
```
2 changes: 2 additions & 0 deletions config/ubuntu/60-SonyCDK.rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SUBSYSTEM=="usb", ATTR{idVendor}=="04b4", ATTR{idProduct}=="9109", MODE="0666"

2 changes: 2 additions & 0 deletions config/ubuntu/72-CalculusCDK.rules
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="9107", MODE="0666"

108 changes: 108 additions & 0 deletions doc/ConfigurationFilesDescription.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
SDK configuration files are of three types -

1. Main configuration file
2. Camera profile configuration file
3. DML file

All the configuration files are with an extension of ".conf". The format of a configuration file is same as the INI file format, with notable exceptions being

Comments begin with '#' and not ';'
Double-quoted values are not supported. However, spaces in values are supported without double quotes.

The conf file directory varies according to the system platform:
```
libPointCloud/libs/macos/share/pointcloud-1.0.0/conf
libPointCloud/libs/ubuntu/share/pointcloud-1.0.0/conf
libPointCloud/libs/windows/share/pointcloud-1.0.0/conf
```
## DML file
DML file which follows XML syntax, is a way by which all parameters valid for a depth camera are specified.

## Main Configuration File
This consists of top level information for starting up a board such as DML file name, firmware file name (if any), etc. The name of this file is expected to exactly match the name assigned by the C++ class which handles this board. For instance, SonyCDK board has "SonyCDKCamera" as the assigned name in its C++ class, and its main configuration file is named as "SonyCDKCamera.conf". We provide a typical configuration here for reference.

```
[core]
dml = SONY556IMX.dml
camera_profiles = SonyCDKCameraNormal.conf
default_profile = 130
[observed_params]
tsensor = refresh:5
tillum = refresh:5
```

Here, the section 'core' consists of important information about

* Camera profiles supported by this depth camera. This is via the key 'camera_profiles'.
* Default camera profile is specified via ID of the required camera profile.
* DML file name via 'dml' key.

The main configuration may consist of other keys and sections too which are board specific.

The 'observed_params' section is primarily for the benefit for PointCloudTool, which uses this information to periodically monitor some of the key parameters and checks for their validity. The format of this section is as follows.

Key name is to match exactly the name of the parameter to be monitor.
Value is a semi-colon separated list of settings for monitoring. Each setting is a colon separated key-value pair. Supported settings are as follows. Note that all these settings are optional.
'refresh' with value being number of seconds. This is used to set the refresh rate for the parameter. Default value is voxel-viewer dependent.
'valid' with value being two hyphen separated numbers. This represents valid range of numbers. Typically this is used to notify user when parameter value falls outside this range. If not specified, all values of the parameter are treated to be valid.

## Camera Profile Configuration File

A camera profile defines various calibrations and parameter values to be used for running a depth camera. This is a handy of choosing various modes of operation for a depth camera. For instance, a camera profile could be defined for short range of operation of a depth camera, while another one for long range. Similarly, indoor or outdoor, etc.

A camera profile is active and usable only when its file name is given in 'camera_profiles' key of 'core' section in the main configuration file.

The format of this flexible to support variety of possible profiles. A typical configuration is presented below.


```
[global]
id = 130
name = Normal
[defining_params]
#make sure to send this register at first after power-on = inck frequency[mhz]
unambiguous_range = 4.96 #7.45
intg_time = 100 #100
mod_freq1 = 60
sub_rseq_lnum = 40 #40 #3
[params]
rngchken = 0
dutof_mode = 0 #4
hmax = 1800 #1900 #1388 #1700 #2304
micr_lnum = 10000 #10000 #2500
dpth_su_num = 30
binning_mode = 0 #3
phases_num = 8
dlycnt = 5
anadlycnt = 14 #40
dlycntsf = 0 # 10
[calib]
fy = 478
fx = 478
cx = 319
cy = 239
k1 = -0.0
k2 = -0.0
k3 = 0.00
p1 = 0.00
p2 = 0.00
calib_disable = 14 #78
actual_distance = 0.7
tsensor_calib = 39 #60
tillum_calib = 0
phase_corr_2 = 0
phase_corr_1 = -131 #69 #-194
disable_offset_corr = 0 #0
phasecorrection = file:SonyCDKCamera70cm8phase60mhzPhaseOffset.bin
disable_temp_corr = 0
coeff_illum = 0
coeff_sensor = 5
```

If you want to know more about the settings of this file, please contact us by mail [email protected] .
49 changes: 49 additions & 0 deletions doc/DepthH3Introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
## Simple Introduction
The Depth Eye H3 is a TOF base depth camera. It use the most high-end TOF sensor from Sony which provide 640X480 resolution. This module uses USB 3.0 cable with high versatility to pass all depth data including pointcloud.

## Application Scenarios:
1. Gesture recognition
2. General robot navigation and localization
3. Environment scanning and 3D re-modeling
4. Service robot or industrial robot working for long hours
5. Home service /clean robot navigation and localization
6. General simultaneous localization and mapping (SLAM)
7. Smart toy's localization and obstacle avoidance
8. Face recognition
## Feature:
1. Amazing tiny size
2. USB 3.0 interface
3. Provide Pointcloud and RAW depth data
4. FOV(D* H*V ) :90 * 75 * 59
5. 850nm band infrared VCSEL
6. Sony VGA TOF sensor
7. Supported platform : Ubuntu / Raspberry pi / Mac/ Windows

## Specification
| Parameter | Desc |
|-------|:-------:|
| Dimensions | 76mm x76mm x41mm |
| Weight |G.W 190g |
| Battery |Exclude |
| Distance Range | 0.3~7 meters |
| FOV |G.W 190g |
| FPS |Max 30 FPS |
| Light source |850 VCSEL |
| Working temperature |0~50° |
| Typical power consumption | 5W |
| Communication Interface |USB 3.0 |
| OS | Wins7 abovce/Linux/Android/Mac/Ubuntu/Raspberry pi |
## Part List
| Item | quantity |
|-------|:-------:|
| Module | 1 |
| USB Cable | 1 |
## Documents
1. UserGuide-cPlus
2. UserGuide-Python
3. EnvironmentalConfiguration
4. FilterUsage
5. Examples(Gesture Control / DistanceMe)
6. Viewer Tool Guide

Others please refer to github page.
33 changes: 33 additions & 0 deletions doc/EnvironmentalConfiguration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Environmental configuration for libPointCloud SDK
## Ubuntu
### Path Setting
Modify .bashrc to set environment variables:
```
# vim ~/.bashrc
```
add below source code to the end of bashrc file:
```
export POINTCLOUD_SDK_PATH="/yourspath/libs/ubuntu"
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$POINTCLOUD_SDK_PATH/lib"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$POINTCLOUD_SDK_PATH/lib"
export PYTHONPATH=$POINTCLOUD_SDK_PATH/lib/python2.7
```
We need to make above changes come into effect:
```
# source ~/.bashrc
```
Finally, echo the constant to verify :
```
# echo $POINTCLOUD_SDK_PATH
```
### USB Driver Setting

```
sudo cp ./config/72-CalculusCDK.rules /etc/udev/rules.d/
sudo cp ./config/60-SonyCDK.rules /etc/udev/rules.d/
sudo chmod a+x /etc/udev/rules.d/72-CalculusCDK.rules
sudo chmod a+x /etc/udev/rules.d/60-SonyCDK.rules.rules
sudo udevadm control --reload
```
83 changes: 83 additions & 0 deletions doc/FilterUsage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Filter Usage for libPointCloud SDK

1. DarkPixFilter
2. DenoiseFilter
3. FlypixFilter
4. HDRFilter
5. IIRFilter
6. MedianFilter
7. TemporalMedianFilter
8. SmoothFilter
9. BilateralFilter

## DarkPixFilter

| Parameter | Desc | Min | Max |
|-------|:---:|-----------|-------:|
| aThrNear | Amp Near Threshold | 0.0f | 4095.0f |
| phThrNear | Phase Near Threshold | 0.0f | 4095.0f |
| aThrFar | Amp Far Threshold | 0.0f | 4095.0f |
| phThrFar | Phase Far Threshold | 0.0f | 4095.0f |
| ambThresh | Ambient Threshold | 0.0f | 4095.0f |

## DenoiseFilter

| Parameter | Desc | Min | Max |
|-------|:---:|-----------|-------:|
| order | Order of the filter | 2 | 100 |
| threshold | Threshold | 0 | 10000 |

## FlypixFilter

| Parameter | Desc | Min | Max |
|-------|:---:|-----------|-------:|
| threshold | Gradient Threshold | 0 | 10000 |

## HDRFilter

| Parameter | Desc | Min | Max |
|-------|:---:|-----------|-------:|
| order | Order of the filter | 2 | 100 |

## IIRFilter

| Parameter | Desc | Min | Max |
|-------|:---:|-----------|-------:|
| gain | IIR gain coefficient | 0.0f | 1.0f |

## MedianFilter

| Parameter | Desc | Min | Max |
|-------|:---:|-----------|-------:|
| stability | Stability factor | 0.0f | 1.0f |
| deadband | Dead band | 0.0f | 1.0f |
| deadbandStep | Dead band step | 0.0f | 1.0f |
| halfKernelSize | Half kernel size | 1 | 100|
| ambThresh | Ambient Threshold | 0.0f | 4095.0f |

## TemporalMedianFilter

| Parameter | Desc | Min | Max |
|-------|:---:|-----------|-------:|
| order | Order of the filter | 1 | 100 |
| deadband | Dead band | 0.0f | 1.0f |

## TemporalMedianFilter

| Parameter | Desc | Min | Max |
|-------|:---:|-----------|-------:|
| sigma | Standard deviation | 1 | 100 |
| deadband | Dead band | 0.0f | 1.0f |

## SmoothFilter


| Parameter | Desc | Min | Max |
|-------|:---:|-----------|-------:|
| sigma | Standard deviation | 1 | 100 |

## BilateralFilter

| Parameter | Desc | Min | Max |
|-------|:---:|-----------|-------:|
| sigma | Standard deviation | 1 | 100 |
18 changes: 18 additions & 0 deletions doc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Index for documents

## Environment setting
* [Environmental configuration for libPointCloud SDK](https://github.com/pointcloudAI/libPointCloud/blob/master/doc/EnvironmentalConfiguration.md)

## Visualization tool
* [Visualization tool guide](https://github.com/pointcloudAI/libPointCloud/tree/master/tools/PointCloudTool)

## Programming guide
* [Programming guide for c++](https://github.com/pointcloudAI/libPointCloud/blob/master/doc/UserGuide-cPlus.md)
* [Programming guide for Python](https://github.com/pointcloudAI/libPointCloud/blob/master/doc/UserGuide-Python.md)

## Programming guide - common
* [Filter usage](https://github.com/pointcloudAI/libPointCloud/blob/master/doc/FilterUsage.md)
* [Configuration files description](https://github.com/pointcloudAI/libPointCloud/blob/master/doc/ConfigurationFilesDescription.md)

## Programming guide - application
* [ROS Wrapper](https://github.com/pointcloudAI/libPointCloud/tree/master/wrappers/pointcloud_ros)
Loading

0 comments on commit ec2fea5

Please sign in to comment.