Force controlled elastography with DaVinci Toolkit

Last updated: 05/16/2017 3:00PM


Integrating Ultrasound Elastography to da Vinci Research Kit (dVRK).

  • Students: Xingtong Liu
  • Mentor(s): Preetham Chalasani, Dr. Emad Boctor, Dr. Russell Taylor

Background, Specific Aims, and Significance

Ultrasound elastography is a good way to detect stiff features at various depths intra-operatively and is not limited to only superficial ones like Palpation. However, free-hand ultrasound elastography is a challenge even for experienced doctors due to various reasons like out of plane motion. Robot assistance has played an important role in surgery due to its high accuracy, safety and efficiency. With proper calibration and force feedback, the robot arm can achieve the most suitable motion for generating elastography images. Therefore, in order to obtain consecutive high-quality elastography images in real time, it is necessary to reach out for the help of a robot.

da Vinci Research Kit(dVRK) is an open-source platform for researchers to develop algorithms for computer assisted surgery. Previously there was no ultrasound elastography integrated. In this project, we want to develop and integrate this module to the DVRK system to allow for future research based on that.


  • Minimum:
    1. Integrating DaVinci ultrasound tool and ultrasound system into dVRK system
  • Expected:
    1. Ultrasound imaging with force feedback control
  • Maximum:
    1. Ultrasound elastography with dVRK

Technical Approach

1. Socket programming for ultrasound data acquisition

The above state machine is used for receiving ultrasound image messages from ultrasound machine through network. There are three states in it, which are message header searching, message header receiving and message body receiving. Message header searching is used to efficiently find the potential valid message in the received bit stream. As you can see from the above message structure, the header consists of V, TYPE, DEVICE_NAME and so on. For a valid header, the value for V should be only 1 or 2, TYPE in this application should be IMAGE. Just by verifying these two sections of the header, we can almost be certain that whether we find a valid message or not, which is what we are trying to do in state “Message header searching”.

For state “Message header receiving”, what we do is to receive a complete message header and extract information of message body to be received such as body size and so on. In that way, we can dynamic allocate right size of memory to receive the message body.

For state “Message body receiving”, what we do is to receive a complete message body, which is one or more images in this application, to complete the whole procedure of receiving one message.

Asynchronous non-blocking I/O is a more efficient way of reading data. In the socket case, we usually want to do some other task processing instead of blocking a whole thread to wait for data to be read available. In this project, we use that efficient I/O model to implement the socket programming. The library we use to achieve this goal is libevent.

2. Ultrasound Elastography

The algorithm we use to generate ultrasound elastography is cross-correlation method. It can be implemented in GPU computing way to make it suitable for real-time application.

The following two pictures are a toy example to help understand how the tissue will be compressed with stress.

The following picture is used to demonstrate how to find the time shift for a segment pair including pre and post-compressed radio frequency(RF) signal.

After obtaining the corresponding displacement for each individual segment, we can then calculate the strain value as follow,

where dz is the overall axial deformation of the tissue, c is the speed of the sound inside tissue. ti is the time shift for ith segment. To learn more about the details of this method, please refer to


Milestones and Status

  1. Milestone name: Ultrasound data acquisition integration
    • Planned Date: 03/14/17
    • Expected Date: 03/21/17
    • Status: Completed
  2. Milestone name: Ultrasound probe calibration
    • Planned Date: 03/28/17
    • Expected Date: 04/21/17
    • Status: Skipped due to mechanical problem of the ultrasound probe
  3. Milestone name: Hybrid force feedback control with ultrasound probe
    • Planned Date: 04/07/17
    • Expected Date: 04/28/17
    • Status: Completed
  4. Milestone name: Ultrasound Elastography integration
    • Planned Date: 04/25/17
    • Expected Date: 05/5/17
    • Status: Completed

Reports and presentations

Project Bibliography

  • Ophir, J., C??spedes, I., Ponnekanti, H., Yazdi, Y., & Li, X. (1991). Elastography: A quantitative method for imaging the elasticity of biological tissues. Ultrasonic Imaging, 13(2), 111–134.
  • Chen, H., Shi, H., & Varghese, T. (2007). Improvement of elastographic displacement estimation using a two-step cross-correlation method. Ultrasound in Medicine and Biology, 33(1), 48–56.
  • Zahiri-Azar, R., & Salcudean, S. E. (2006). Motion Estimation in Ultrasound Images Using Time Domain Cross Correlation With Prior Estimates. Biomedical Engineering, IEEE Transactions on, 53(10), 1990–2000.
  • York, G., & Kim, Y. (1999). Ultrasound processing and computing: review and future directions. Annual Review of Biomedical Engineering, 1, 559–588.
  • Gennisson, J. L., Deffieux, T., Fink, M., & Tanter, M. (2013). Ultrasound elastography: Principles and techniques. Diagnostic and Interventional Imaging, 94(5), 487–495.
  • Chalasani, P., Wilkening, P., Chen, Z., & Taylor, R. (2014). CSA NRI Research Environment.
  • Mueller, K. (1990). Introduction to Medical Imaging Ultrasound Imaging Milestone applications : Non-linearity.
  • Rivaz, H., Boctor, E., Foroughi, P., Zellars, R., Fichtinger, G., & Hager, G. (2008). Ultrasound elastography: A dynamic programming approach. IEEE Transactions on Medical Imaging, 27(10), 1373–1377.
  • Manuscript, A., & Elastography, Q. U. (2010). NIH Public Access, 4(3), 323–338.
  • Hsu, P., Prager, R. W., Hsu, P., Prager, R. W., Gee, A. H., & Treece, G. M. (2007). Freehand 3-D Ultrasound Calibration: A Review. Engineering, (December).
  • Chalasani, P., Wang, L., Roy, R., Simaan, N., Taylor, R. H., & Kobilarov, M. (n.d.). Concurrent Nonparametric Estimation of Organ Geometry and Tissue Stiffness Using Continuous Adaptive Palpation.
  • Krupa, A. (2006). Automatic calibration of a robotized 3D ultrasound imaging system by visual servoing. Proceedings - IEEE International Conference on Robotics and Automation, 2006(May), 4136–4141.
  • Krupa, A., & Chaumette, F. (2005). Control of an ultrasound probe by adaptive visual servoing. 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems, IROS, 2007–2012.

Other Resources and Project Files

courses/446/2017/446-2017-18/project.txt · Last modified: 2019/08/07 12:01 (external edit)