0.0.1
as of 2020/8/28ROS Melodic
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.
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
We also have a Dockerfile
. See how you install and run it in our Wiki page
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
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
Change the robot_ip
accordingly.
roslaunch ros_robotic_skin panda.launch robot_ip:=172.16.0.172
roslaunch ros_robotic_skin sawyer_world.launch
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!
We use 2 different tests.
Flake8
ROS Test
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 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
Here are some extra resources for this package.
Below are links to an explanation of the Ding control paper and the Overleaf document that has the equations included in the explanation.