This package enables interfacing Photoneo PhoXi 3D Scanner/Camera from ROS.
phoxi_camera package depends on:
sudo chmod +x PhotoneoPhoXiControlInstaller-xxxxx.run
sudo ./PhotoneoPhoXiControlInstaller-xxxxx.run
cd catkin_ws/src
git clone https://github.com/photoneo/phoxi_camera
rosdep update
cd catkin_ws
rosdep install --from-paths src --ignore-src -r -y
~/scanner_id - Default PhoXi 3D Scannet to connect after startup. Default value: "InstalledExamples-PhoXi-example"
~/frame_id: - Frame id to which captured data relies to. Default value: "PhoXi3Dscanner_sensor"
~/latch_topics - Default value: false
~/topic_queue_size - Default value: 1
~/init_from_config - Default value: false # if true all following parameters will be initialized from this config otherwise from PhoXi control application.
~/organized_cloud - Default value: true # if true organized point cloud will be published, other otherwise unorganized
## All following parameters are for PhoXi Control and they can override all dynamic_reconfigure parameters in cfg file.
# This values are set to scanner after successful connection only if init_from_config parameter is true.
~/resolution - Default value: 1 # 0 = Low, 1 = High
~/scan_multiplier - Default value: 1
~/confidence - Default value: 3.0
~/send_confidence_map - Default value: true
~/send_depth_map - Default value: true
~/send_normal_map - Default value: true
~/send_point_cloud - Default value: true
~/send_texture - Default value: true
~/shutter_multiplier - Default value: 1
~/timeout - Default value: -3 # in ms, special parameters: 0 = Zero, -1 = Infinity, -2 = Last stored, -3 = Default
~/trigger_mode - Default value: 1 # 0 = Free run, 1 = Software
## Setting available only for PhoXi Control 1.2 and higher. Also for dynamic reconfigure
~/coordinate_space - Default value: 1 # 1 = Camera, 2 = Mounting, 3 = Marker, 4 = Robot, 5 = Custom
~/ambient_light_suppression - Default value: false # Ambient light suppression samples the scene multiple times during one pattern exposure.
# This multiple samples are then used to suppress the effect of ambient illumination by eliminating most of the shot noise caused by longer exposure of ambient light.
# Enabling the mode will set Shutter multiplier to fixed value of 2.
~/single_pattern_exposure - Default value: 20 # The time for projection of one pattern. Use only provided values form PhoXi control settings.
~/camera_only_mode - Default value: false # With this mode you can use the scanner internal camera to capture only 2D images of the scene.
For input and output parameters of each service please see coresponding service file in srv folder.
~/V2/is_acquiring
~/V2/is_connected
~/V2/start_acquisition
~/V2/stop_acquisition
~/connect_camera
~/disconnect_camera
~/get_device_list
~/get_frame
~/get_hardware_indentification
~/get_supported_capturing_modes
~/is_acquiring
~/is_connected
~/save_frame
~/set_parameters
~/start_acquisition
~/stop_acquisition
~/trigger_image
Services available only for PhoXi Control API version 1.2 and higher
~/V2/save_last_frame
~/V2/set_coordinate_space
~/V2/set_transformation
~/confidence_map
~/depth_map
~/normal_map
~/parameter_updates
~/pointcloud
~/rgb_texture
~/texture
Rostests are used to test ROS node interfaces. These tests will try to connect and check if there are topics, services, and some basic parameters.
In config file tests/interfaces/config.py set camera ID. You can set up real scanner or file camera. For more information read tests/README.md
Launch test for phoxi_camera node interfaces:
rostest -t phoxi_camera phoxi_camera_interfaces.test
It is possible to test PhoXi ROS interface without real hardware.
roslaunch phoxi_camera phoxi_camera_test.launch
rosrun phoxi_camera phoxi_camera
See phoxi_camera ROS Wiki page for further details.