Skip to content

ROS packages created for my Master Thesis in Medical Robotics.

License

Notifications You must be signed in to change notification settings

blackchacal/smalldrop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SmallDrop

SmallDrop is a project being developed during my master thesis in medical robotics. It consists on a bioprinting system for in situ printing directly on burn wounds.

The main system is composed of three sub-systems:

  • A 7 DOF robotic arm, named Panda from Franka Emika.
  • A D415 Intel RealSense Depth camera.
  • A custom print head based on a DIY syringe pump model.

The whole project is ROS-based and is being developed using ROS Melodic on a Linux Mint 19.2 MATE 64-bit. It has a simulation component based on the Gazebo simulator, and it also runs on the real robot. The robot is controlled via custom controllers.

Package list

This project is composed of several ROS packages that communicate with each other. Some external package dependencies were added to the project as git submodules.

Main packages

  • smalldrop: Project metapackage.
  • smalldrop_bioprint: Responsible for controlling the whole system.
  • smalldrop_robot_arm: Responsible for the robot arm control for the real robot and Gazebo simulation.
  • smalldrop_msgs: Responsible for declaring all messages, services and actions for the project.
  • smalldrop_rviz: Responsible for handling rviz configurations and visualisation displays.
  • smalldrop_teleoperation: Responsible for providing an interface for remote controllers for teleoperation. It provides a standard remote controller (Space Mouse Compact from 3Dconnexion).
  • smalldrop_toolpath: Provides cartesian and joint path/trajectory planners.
  • smalldrop_state: Responsible for declaring exceptions and provides a SystemState class that has general publishers and subscribers to be used by the other packages.
  • smalldrop_segmentation: Responsible for providing wound segmentation algorithms for co-manipulation or camera segmentation.

Dependencies (git submodules)

  • franka_ros: ROS integration for Franka Emika research robots, available on github. The melodic-devel branch is being used. This project is licensed under the Apache 2.0 license.

Installation

The installation takes three steps:

1. Install the project packages

Just clone the project into your ROS catkin workspace src folder.

cd <catkin_ws>
git clone --recurse-submodules https://github.com/blackchacal/smalldrop.git src/smalldrop
catkin_make
source devel/setup.bash

2. Install dependencies

Several dependencies not associated with ROS packages are also needed.

libfranka

To operate the Franka Emika Panda robot, the C++ library libfranka is needed. The suggested procedure is to install it from source following the installation instructions from Franka Emika. It is also possible to install it as part of a ros distro.

sudo apt install ros-$ROS_DISTRO-libfranka

3. Real-time kernel and CPU frequency scaling (only for real robot)

To operate with the real robot, it is mandatory to use a Linux real-time kernel. Follow the installation instructions from Franka Emika. The kernel version used for development is version 4.14.139-rt66.

The communication between the computer and the robot needs to be stable for proper robot operation. The CPU frequency has a direct impact on the quality of this communication. For this reason, it is recommended to disable CPU frequency scaling. Follow the instructions from Franka Emika.

Troubleshooting

If the robot is constantly collapsing or RVIZ you need to add the following line to your ~/.bashrc file, and source it:

export LC_NUMERIC="en_US.UTF-8"

License

This project is licensed under the MIT License.

References

  1. Franka Control Interface (FCI) documentation: Important documentation from Franka Emika to work with the Panda robot.
  2. Integrating FRANKA EMIKA Panda robot into Gazebo: It presents the changes to be made on franka_description package that are important to integrate the Panda robot into Gazebo.
  3. Franka ROS Interface project on Github: This project makes some changes on franka_description package to include dynamics parameters as estimated on an academic paper for simulation purposes.

About

ROS packages created for my Master Thesis in Medical Robotics.

Resources

License

Stars

Watchers

Forks

Packages

No packages published