Giter VIP home page Giter VIP logo

saifer-surgery's Introduction

Safe AI for surgical assistance

As AI based decision-making methods make their way from internet applications to more safety-critical physical systems, questions about the robustness of the models and policies become increasingly more important. This project is developing methods to address this through novel methods for learning specifications from human experts and synthesising policies that are correct by construction. These developments are grounded in the domain of surgical assistance with autonomous robots in the operating room.

This repository is under an MIT license, but pulls in git submodules that may be subject to different licenses. ### NB While still being prototyped, some submodules may be private - the public branch should remain accessible at all times.

Requirements:

Ubuntu 16.04, ROS Kinetic

Installation:

cd saifer-surgery
git submodule update --init --recursive
catkin_make
source devel/setup.bash

How to contribute:

  • Bug fixes, code cleanups and functionality improvements are encouraged, along with testing and documenting
  • Help fight the hard coded parameters
  • At the moment, the preferred integration strategy is:
    • Build standalone library/ tool with core functionality (eg. visual IRL) and link using a git submodule
    • Develop a small app showing how to use this functionality (eg. autonomous ultrasound scanner)
    • Document both with READMEs

Current functionality

(Warning: this is semi-functional research code under active development):


Motion planning and control with MoveIt!

Launch arms, plan and execute using MoveIt!

roslaunch saifer_launch dual_arm.launch

3D mouse control with spacenav

Inverse dynamics on the red arm, with gripper opening and closing. See the spacenav_teleop node for more detail.

roslaunch saifer_launch dual_arm.launch
roslaunch spacenav_teleop teleop.launch

User defined contour following

Select a pointcloud region in Rviz and follow this surface using MoveIt! Cartesian waypoint following and position control. This requires calibrated offsets depending on the tool used for contour following. See the contour launch node for more detail.

roslaunch contour_launch contour.launch

Kinesthetic demonstration

Physically move red arm (only red has this functionality at present, to avoid risk of crushing blue camera. Make sure to zero the ft sensor before using. See the ft_compliance node for more detail.

rosservice call /red/robotiq_ft_sensor_acc "command_id: 0 command: 'SET ZRO'"
roslaunch ft_compliance compliance.launch

Autonomous ultrasound scanning

This app uses Bayesian optimisation to move an ultrasound scanner over an ultrasound imaging phantom in search of a tumour like object. The app relies on a reward model learned from demonstration ultrasound image sequences using the visual IRL package.

Launch robot and ultrasound image streamer

roslaunch saifer_launch dual_arm.launch
roslaunch ultrasound_epiphan us.launch
rosrun ultrasound_imager pairwise_ultrasound_scanner.py

Probabilistic Environment Specification

Declaratively specify the space of possible environments your robot can run in, then automatically sample environment configurations which conform to this specification. These configurations can then be used to initialize setups in simulation.

Note: Integration of this functionality with ROS-Kinetic is currently in-progress, but you can access the main functionality via the ProbRobScene repository

saifer-surgery's People

Contributors

amitparag avatar craigiedon avatar mgb45 avatar rtylecek avatar samankim avatar skateglue avatar yordanh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

saifer-surgery's Issues

Clean up repository

A number of duplicate folders in the repo, and nodes in the wrong place.

  • Sensors and devices should be combined,
  • UI and Apps combined
  • Planning nodes in devices folder

Dual arm robot launch

We currently can only launch one robot at at a time.

TODO: Create launch files for the UR10 robots that run robots with specific drivers and appropriate ros namespaces.

Hierarchical planner

  • Planning is difficult right now because of cables/ camera - hard to move long distances.
  • Set up rapid hierarchical planner library eg. if moving A->C, known to be difficult, add node so plan is A->B->C
  • Overlay on moveit - uses fixed plans to jump between regions where planning fails.
  • Build on Katie's work in active vision branch
  • Good MSc project

Fix broken rough calibration

Realsense pointcloud is completely offset, unclear where the changes came in, unless modifications have been made to the submodule.

Move to ROS2

  • Dockerise
  • ROS2
  • Move away from deprecated ur_modern_driver

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.