mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-07 05:27:45 +08:00
201 lines
4.1 KiB
Markdown
201 lines
4.1 KiB
Markdown
# orbbec_camera
|
|
|
|
---
|
|
ORBBEC_SDK ROS2 wrapper for orbbec 3d camera
|
|
|
|
## Installation Instructions
|
|
|
|
---
|
|
Install ROS2
|
|
|
|
* Add ROS2 gpg key
|
|
|
|
```bash
|
|
sudo apt install curl gnupg2
|
|
sudo curl -sSL https://mirrors.tuna.tsinghua.edu.cn/rosdistro/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
|
|
```
|
|
|
|
* Add tuna ROS2 mirror
|
|
|
|
```bash
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
|
|
|
|
sudo apt update
|
|
```
|
|
|
|
* Install ROS2
|
|
|
|
```bash
|
|
sudo apt-get install ros-galactic-desktop
|
|
sudo apt-get install python3-colcon-common-extensions
|
|
|
|
```
|
|
>>If your ROS2 command does not auto-complete, put the following two lines into your `.bashrc`
|
|
or `.zshrc`
|
|
|
|
```bash
|
|
eval "$(register-python-argcomplete3 ros2)"
|
|
eval "$(register-python-argcomplete3 colcon)"
|
|
```
|
|
|
|
Create `colcon` workspace Ubuntu
|
|
|
|
```bash
|
|
mkdir -p ~/ros2_ws/src
|
|
cd ~/ros2_ws/src
|
|
```
|
|
|
|
Clone source code
|
|
|
|
```bash
|
|
git clone [email protected]:OrbbecSDK/orbbecros2sdk.git
|
|
```
|
|
|
|
Install deb dependencies
|
|
|
|
```bash
|
|
sudo apt install libgflags-dev nlohmann-json3-dev \
|
|
ros-galactic-image-transport ros-galactic-image-publisher
|
|
```
|
|
|
|
Install glog
|
|
|
|
```bash
|
|
cd orbbec_camera/dependencies
|
|
tar -xzvf glog-0.6.0.tar.gz
|
|
cd glog-0.6.0
|
|
mkdir build && cd build
|
|
cmake .. && make -j4
|
|
sudo make install
|
|
sudo ldconfig
|
|
```
|
|
|
|
Install `magic_enum`
|
|
|
|
```bash
|
|
cd orbbec_camera/dependencies
|
|
tar -xzvf magic_enum-0.8.0.tar.gz
|
|
cd magic_enum-0.8.0
|
|
mkdir build && cd build
|
|
cmake .. && make -j4
|
|
sudo make install
|
|
sudo ldconfig
|
|
```
|
|
|
|
Install `ORBBEC_SDK`,First remove old one if you have installed, **BE CAREFUL**
|
|
|
|
```bash
|
|
# remove old If you have already installed
|
|
cd /usr/local/lib/
|
|
sudo rm libOrbbecSDK.so* # BE CAREFUL
|
|
sudo rm libpostfilter.so
|
|
cd /usr/local/include/
|
|
sudo rm -fr libobsensor
|
|
|
|
# install
|
|
cd orbbec_camera/dependencies
|
|
tar -xzvf sensor_sdk_v1.2.8_linux.tar.gz
|
|
cd SDK/lib
|
|
sudo cp libOrbbecSDK.so.1.2.8 /usr/local/lib
|
|
sudo cp libpostfilter.so /usr/local/lib
|
|
sudo ln -s /usr/local/lib/libOrbbecSDK.so.1.2.8 /usr/local/lib/libOrbbecSDK.so.1.2
|
|
sudo ln -s /usr/local/lib/libOrbbecSDK.so.1.2.8 /usr/local/lib/libOrbbecSDK.so
|
|
cd ../include
|
|
sudo cp -frd libobsensor /usr/local/include
|
|
sudo ldconfig
|
|
```
|
|
|
|
|
|
---
|
|
|
|
## Getting start
|
|
|
|
---
|
|
|
|
```bash
|
|
cd ~/ros2_ws/
|
|
# build release, Default is Debug
|
|
colcon build --event-handlers console_direct+ -DCMAKE_BUILD_TYPE=Release
|
|
```
|
|
Launch camera node
|
|
* On terminal 1
|
|
```bash
|
|
. ./install/setup.bash
|
|
ros2 launch orbbec_camera ob_camera.launch.py
|
|
```
|
|
* On terminal 2
|
|
|
|
```bash
|
|
. ./install/setup.bash
|
|
rviz2 -d src/orbbec_camera/rviz/pointcloud.rviz
|
|
```
|
|
* List topics / services/ parameters ( on terminal 3)
|
|
|
|
```bash
|
|
ros2 topic list
|
|
ros2 service list
|
|
ros2 param list
|
|
```
|
|
|
|
* Show depth to color extrinsic
|
|
|
|
```bash
|
|
ros2 topic echo --qos-durability=transient_local /camera/extrinsic/depth_to_color --qos-profile=services_default
|
|
```
|
|
* Get device info
|
|
|
|
```bash
|
|
ros2 service call /camera/get_device_info orbbec_camera_msgs/srv/GetDeviceInfo '{}'
|
|
```
|
|
* Get SDK version
|
|
|
|
```bash
|
|
ros2 service call /camera/get_sdk_version orbbec_camera_msgs/srv/GetString '{}'
|
|
|
|
```
|
|
|
|
* Get exposure
|
|
|
|
```bash
|
|
ros2 service call /camera/get_color_exposure orbbec_camera_msgs/srv/GetInt32 '{}'
|
|
```
|
|
> If your check `ir` or `depth`, please change ` /camera/get_color_exposure`
|
|
to `/camera/get_ir_exposure` or `/camera/get_depth_exposure`, Same below.
|
|
|
|
* Get gain
|
|
|
|
```bash
|
|
ros2 service call /camera/get_color_gain orbbec_camera_msgs/srv/GetInt32 '{}'
|
|
```
|
|
* Get white balance
|
|
|
|
```bash
|
|
ros2 service call /camera/get_white_balance orbbec_camera_msgs/srv/GetInt32 '{}'
|
|
```
|
|
|
|
* Set auto exposure
|
|
|
|
```bash
|
|
ros2 service call /camera/set_color_auto_exposure std_srvs/srv/SetBool '{data: false}'
|
|
```
|
|
|
|
* Set white balance
|
|
|
|
```bash
|
|
ros2 service call /camera/set_white_balance orbbec_camera_msgs/srv/SetInt32 '{data: 4600}'
|
|
```
|
|
* Set laser enable
|
|
|
|
```bash
|
|
ros2 service call /camera/set_laser_enable std_srvs/srv/SetBool "{data: true}"
|
|
* ```
|
|
|
|
* toggle sensor
|
|
|
|
```bash
|
|
ros2 service call /camera/toggle_ir std_srvs/srv/SetBool "{data : true}"
|
|
* ```
|
|
---
|
|
## Known issues
|
|
* TODO:
|