Click to show/hide context
../../../_images/logic-view-user-app.gif

9.1.1. Introduction

The dVRK software stack is meant to be as open as possible, so it can be integrated in an end-user application. Once you’ve configured your subset of dVRK arms to use in your console.json, the dVRK console class will automatically set up some Qt widgets for visual debugging as well as some ROS topics, services and tf2 transforms. This is described in the software architecture page. The API is described in the dVRK API 2.x. The dVRK API uses the CRTK naming convention as much as possible, so you should familiarize yourself with CRTK.

../../../_images/dVRK-component-standard.png

Default components for the dVRK process

If you decide to use ROS and treat the dVRK console as a “black box”, you will end-up with two (or more processes). ROS is one example of middleware between the processes, we also provide some support for OpenIGTLink and plain UDP sockets. Alternatively, you can opt to implement your application’s logic using a new cisstMultiTask component. In this case, your application will be a single process with multiple threads.