blackchacal / smalldrop

ROS packages created for my Master Thesis in Medical Robotics.
MIT License
3 stars 0 forks source link

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:

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

Dependencies (git submodules)

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.