Skip to content

HIRO-group/ros_robotic_skin

Repository files navigation

Github Actions:Build Documentation Generation

ROS Robotic Skin

This is our ROS package for our robotic skin work. This section includes data collection; once that is done, calibration follows, which can be found in our roboskin Python package.

Quick Installation

This installation includes the installation of the hiro_ros_arm_controller package, but will also install the ros_robotic_skin ROS package.

# Assuming catkin_ws is already made..
cd catkin_ws/src

# Install the hiro_ros_arm_controller package.
git clone https://github.com/HIRO-group/hiro_ros_arm_controller
cd hiro_ros_arm_controller
# the install script to install the other dependencies and builds the current workspace
./install.sh
cd ..

# Install this repo
git clone https://github.com/HIRO-group/ros_robotic_skin
cd ..
catkin build   # or catkin_make

Docker Installation

We also have a Dockerfile. See how you install and run it in our Wiki page

Launch Files

Prerequisite

In order to run the Panda Gazebo simulation, make sure that you have built your workspace, then run (from catkin_ws, or the root of your catkin workspace)

This tutorial will assume that you have added this line to your ~/.bashrc so you don't have to source the setup.bash file every time you open a terminal.

source <path to your workspace>/devel/setup.bash
# If you followed the ROS tutorials, it should be
# source ~/catkin_ws/devel/setup.bash

Running Panda in simulation

You can add as many IMUs as you want in config/imu_poses/imu_poses.txt. The format per line is as follows:

x,y,z,roll,pitch,yaw, num_link_connected_to

Run

python scripts/imu_spawners/spawn_real_imus.py

to update the xacro file with the IMU changes. Now, to run the simulation:

roslaunch ros_robotic_skin simulation.launch

Running Real Panda

Change the robot_ip accordingly.

roslaunch ros_robotic_skin panda.launch robot_ip:=172.16.0.172

Running Sawyer in simulation

roslaunch ros_robotic_skin sawyer_world.launch

Running the end to end flow

In order to run the whole process of data collection + optimization, we have a shell script that takes care of all of that in one line. To run:

First, make sure that you have installed our roboskin Python package before continuing.

Usage:

./shell_scripts/e2e.sh --panda-ip <panda ip> --experiment-type <real or sim> --roboskin-path <path to roboskin on YOUR computer>

Here's an example where the Panda's IP is 123, we want to run the experiment on the real panda, and the path to roboskin is /home/mamba/roboskin.

./shell_scripts/e2e.sh --panda-ip 123 --experiment-type real --roboskin-path /home/mamba/roboskin

Note: This flow assumes that the IMUs are already calibrated!

For DEVELOPERS

Test

We use 2 different tests.

  1. Flake8
    to enforce style consistency across Python projects.
  2. ROS Test
    to ensure our codes run without any bugs.

RUN TESTS BEFORE COMMITTING

Flake8

flake8 . --max-complexity=10 --max-line-length=140

within this repository (after cloning and changing directories to ros_robotic_skin).

ROS Test

Make sure that you have sourced the catkin workspace containing this package.

rostest ros_robotic_skin test.test

This will run our simulation without the GUI and perform the tests.

Guides to add tests are described in our Wiki page

Parameters

Parameters are all saved in config/params.yaml.
In every launch file, it should load the yaml file.
Whenever you use it, load it like example_param = ropsy.get_param("/example_param")

Refer to

Miscellaneous

Here are some extra resources for this package.

Ding Paper Explanation Resources

Below are links to an explanation of the Ding control paper and the Overleaf document that has the equations included in the explanation.

  • Ding Explanation: here
  • Overleaf File: here

About

The official ROS package for robotic skin.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published