-
Notifications
You must be signed in to change notification settings - Fork 21
Tutorial Vision System Interface
The CSDA10F robot at Invite uses two stereographic cameras (IDS N35) to map its workspace as a point-cloud.
The invite_vision
package provides the executables and classes necessary to easily control the
vision system.
This file will start the necessary scripts to:
- Connect and load calibration parameters to both cameras.
- Start the pre-processing executables that will modify the incoming point clouds before using them.
- Align and concatenate both cameras point-cloud into a single message.
-
/joint_cameras_point_cloud/sor_filtered
[sensor_msgs::PointCloud2
]: Joined cameras pointcloud, filtered with a stadistical outliner removal and an area of interest pass-through filter. -
/n35_upper_camera/point_cloud
[sensor_msgs::PointCloud2
]: Upper camera raw pointcloud. -
/n35_lower_camera/point_cloud
[sensor_msgs::PointCloud2
]: Lower camera raw pointcloud.
-
continuous
[boolean]: Whether to request point-clouds continuously or just connect and initialize the cameras, and wait for point-cloud scan requests.
Additional to the launch files, there is a class contained in the
invite_vision/include/vision_system_interface.h
that allow for inline code control of the system:
This class provides the functionality to request single and multi-camera request by an internal use of the Ensenso N35 action servers.
The class does not return the PointCloud data from the request, these are published in the
correspondent topis (see output topics of the initialize.launch
) in order to allow for complete
Nodelet processing of the clouds.
TO-DO: Change this functionality into a service.
-
requestDualCameraData()
: Request both cameras pointcloud, concatenated and pre propecessed. Request ready when thesystem_status
member enum variable is equal toIDLE
(1
).
invite_vision::VisionInterface vision_system_interface;
if (vision_system_interface.system_status != invite_vision::SystemStatus::IDLE)
ROS_ERROR("Camera system initialization failed")
else
vision_system_interface.requestDualCameraData();
The invite_motoman_moveit_config
package is already configured to perform point cloud self
filtering from the point cloud received on the /joint_cameras_point_cloud/sor_filtered
topic, and
the result is published in the /self_filtered_cloud
topic.
White cloud: Points remove from the incoming cloud due to self-filtering (see the robot shape), Colored cloud: Remaining points in the cloud after self filtered
Invite-Robotics
-
Tutorials