ViSP_ROS vs ViSP_WS
There are two ways of working with ViSP platform:
- Creating a ViSP workspace (visp_ws) where ViSP works as a standalone environment
- Using ViSP within ROS environment, through visp_ros packages
I have already built some working demonstrations, using each one of these methodologies:
- Using ViSP_WS: see this RGB-D object tracking demo
- Using ViSP_ROS: see this RGB object tracking with tf publishing
Since the final goal is to control the robot to pick up the tracked object, the initial idealization was based on the premise that every working process should be within ROS environment. And, let's be honest, it makes perfect sense.
However, during my experiments, I found out that ViSP platform is way better prepared to track an object if we don't need to use the visp_ros packages, i.e., if we just use ViSP as a standalone in its own environment.
ViSP_WS provides classes and methods ready to track objects with or without CAD models, with or without markers. ViSP_WS is ready to work with RGB data, RGB-D data, stereo systems, and much, much more. On the opposite hand, VISP_ROS is limited to simply grabbing RGB images from a camera_color topic.
So, is it better to have ViSP as a ROS node or to use ViSP to track the object on its own and then communicate the transform to ROS?
I will now try to write down the main limitations and opportunities of each way of working:
ViSP_ROS
- Do not allow, directly, to use of any tracking methodology that requires more than a simple RGB image (no RGB-D, no stereo, etc)
- Allow using any device, since the tracker will be agnostic to the camera that is being used
- Allow processing the same data (images) by two different agents, simultaneously, having multiple outputs (if needed) for the same image input
- Time synchronization is ensured
ViSP_WS
- It requires some adaptations depending on the device (camera) that is being used
- Do not allow to have multiple processes running on the same device output, since the tracker will be directly connected to the camera driver
- External communication with ROS will possible have some time delay, not ensuring real-time synchronization
- Allow using every tracking methodology that ViSP enclose, ensuring a more robust object tracking
Comments
Post a Comment