Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
mhmukadam committed Jun 20, 2017
0 parents commit 856478b
Show file tree
Hide file tree
Showing 31 changed files with 1,798 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
build/
*~
*pyc
8 changes: 8 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for PIPER
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.1.0 (2017-06-20)
------------------
* Initial release
* Contributors: Mustafa Mukadam
125 changes: 125 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
cmake_minimum_required(VERSION 2.8.3)
project(piper)

# version indicator
set(PIPER_VERSION_MAJOR 0)
set(PIPER_VERSION_MINOR 1)
set(PIPER_VERSION_PATCH 0)
set(PIPER_VERSION_STRING "${PIPER_VERSION_MAJOR}.${PIPER_VERSION_MINOR}.${PIPER_VERSION_PATCH}")

# Find catkin macros and libraries
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
control_msgs
actionlib
roslib
sensor_msgs
geometry_msgs
trajectory_msgs
)

# C++11 flags for GTSAM 4.0
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")

# find GTSAM
find_package(GTSAM REQUIRED)
include_directories(${GTSAM_INCLUDE_DIR})
set(GTSAM_LIBRARIES gtsam)

# find GPMP2
find_package(gpmp2 REQUIRED)
include_directories(${gpmp2_INCLUDE_DIR})
set(gpmp2_LIBRARIES gpmp2)

catkin_package()

# Specify additional locations of header files
include_directories(${catkin_INCLUDE_DIRS})


################################################
## base ##
################################################
include_directories(piper/base/)

file(GLOB BASE_SRC "piper/base/*.cpp")
add_library(piperbase ${BASE_SRC})

target_link_libraries(piperbase
${catkin_LIBRARIES}
${GTSAM_LIBRARIES}
${gpmp2_LIBRARIES}
)

install(DIRECTORY piper/base/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h"
)

# options for which interfaces need to be built and installed
option(BUILD_ALL_INTERFACE "whether to build all interfaces" OFF)
option(BUILD_GPMP2_INTERFACE "whether to build interface for batch GPMP2" OFF)
option(BUILD_STEAP_INTERFACE "whether to build interface for STEAP" OFF)


################################################
## all ##
################################################
if(BUILD_ALL_INTERFACE)
set(BUILD_GPMP2_INTERFACE ON)
set(BUILD_STEAP_INTERFACE ON)
endif()


################################################
## gpmp2_interface ##
################################################
if(BUILD_GPMP2_INTERFACE)
include_directories(piper/gpmp2_interface/)

file(GLOB GPMP2_INTERFACE_SRC "piper/gpmp2_interface/*.cpp")
add_executable(gpmp2_interface ${GPMP2_INTERFACE_SRC})

target_link_libraries(gpmp2_interface piperbase)

install(TARGETS gpmp2_interface
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

install(DIRECTORY piper/gpmp2_interface/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h"
)
endif()


################################################
## steap_interface ##
################################################
if(BUILD_STEAP_INTERFACE)
include_directories(piper/steap_interface/)

file(GLOB STEAP_INTERFACE_SRC "piper/steap_interface/*.cpp")
add_executable(steap_interface ${STEAP_INTERFACE_SRC})

target_link_libraries(steap_interface piperbase)

install(TARGETS steap_interface
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

install(DIRECTORY piper/steap_interface/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h"
)
endif()


################################################
## launch ##
################################################
install(DIRECTORY launch/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
)
13 changes: 13 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Copyright (c) 2017, Georgia Tech Research Corporation
Atlanta, Georgia 30332-0415
All Rights Reserved

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
103 changes: 103 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
PIPER
===================================================

PIPER (Probabilistic Inference based Platform for Essential problems in Robotics) is a modular package that provides support for algorithms that use probabilistic inference on factor graphs to solve various robotics problems. Each module can be independently installed and implements an easy ROS interface for that algorithm to run on any simulated or real robots. Currently PIPER supports the following algorithms:

- [GPMP2](http://www.cc.gatech.edu/~bboots3/files/GPMP2.pdf) - Gaussian Process Motion Planner 2
- [STEAP](http://www.cc.gatech.edu/~bboots3/files/STEAP.pdf) - Simultaneous Trajectory Estimation and Planning
- more coming soon ...

PIPER is being developed by [Mustafa Mukadam](mailto:[email protected]) at the Georgia Tech Robot Learning Lab. See [documentation](doc/index.md) for information on usage and development.

---
Table of Contents
---
- [Prerequisites](#prerequisites)
- [Compilation and Installation](#compilation-and-installation)
- [Questions and Bug reporting](#questions-and-bug-reporting)
- [Citing](#citing)
- [License](#license)

---
Prerequisites
------

- Install [ROS](http://wiki.ros.org/indigo/Installation/Ubuntu). We have tested ROS indigo on Ubuntu 14.04.
- Install [GPMP2](https://github.com/gtrll/gpmp2) C++ library.


Compilation and Installation
------

- Initialize a catkin workspace (if you are using an existing catkin workspace this step is not needed)

```bash
mkdir -p ~/piper_ws/src
cd ~/piper_ws/src
catkin_init_workspace
```

Before running setup the environment variables

```bash
source ~/piper_ws/devel/setup.bash
```

- Clone this repository in ```~/piper_ws/src```

```bash
git clone https://github.com/gtrll/piper.git
```

- To compile only the ```piperbase``` library, in the catkin workspace directory do

```bash
catkin_make
```

- Otherwise, to install some module, for example, _X_: first make sure to install dependencies for _X_, besides the prerequisites for piperbase, then do

```bash
catkin_make -build_flag_X
```

- Similarly, to install multiple modules, for example, _X_ and _Y_: install all their dependencies and then use their appropriate flags together

```bash
catkin_make -build_flag_X -build_flag_Y
```

See table below for currently supported modules, their dependencies and build flags

| Module | Other Dependencies | Build Flag |
|:------:|:------------------:|:----------:|
|GPMP2|None|```-DBUILD_GPMP2_INTERFACE:OPTION=ON```|
|STEAP|None|```-DBUILD_STEAP_INTERFACE:OPTION=ON```|
|ALL|All from above|```-DBUILD_ALL_INTERFACE:OPTION=ON```|


Questions and Bug reporting
-----

Please use Github issue tracker to report bugs. For other questions please contact [Mustafa Mukadam](mailto:[email protected]).


Citing
-----

If you use PIPER in an academic context, please cite any module/algorithm specific publications you use, and cite the following:

```
@article{mukadam2017piper,
title={{PIPER}},
author={Mukadam, Mustafa},
journal={[Online] Available at \url{https://github.com/gtrll/piper}},
year={2017}
}
```
License
-----
PIPER is released under the BSD license. See LICENSE file in this directory.
26 changes: 26 additions & 0 deletions config/jaco2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
piper:
robot:
DOF: 6
arm_base: {orientation: [0, 0, 0, 1], position: [0, 0, 0]}
DH:
alpha: [1.5708, 3.1416, 1.5708, 1.0472, 1.0472, 3.1416]
a: [0, 0.41, 0, 0, 0, 0]
d: [0.2755, 0, -0.0098, -0.2501, -0.0856, -0.2228]
theta: [0, -1.5708, 1.5708, 0, -3.1416, 1.5708]
theta_neg: [true, false, false, false, false, false]
spheres:
js: [0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5]
xs: [0,0,0,0,0,-0.06,-0.12,-0.18,-0.24,-0.3,-0.36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
ys: [0,-0.08,-0.155,-0.23,0,0,0,0,0,0,0,-0.01,-0.01,0,0,0,0,0,-0.008,0.05,0.05,0.06,0.06,0.035,
-0.05,-0.05,-0.06,-0.06,-0.035,0.015,0.025,0,-0.025,-0.015]
zs: [0,0,0,0,0,0.03,0.03,0.03,0.03,0.03,0.03,-0.05,-0.1,-0.15,-0.2,0,-0.045,0,-0.075,-0.01,0.01,
-0.039,-0.067,-0.042,-0.01,0.01,-0.039,-0.067,-0.042,-0.055,-0.08,-0.08,-0.08,-0.055]
rs: [0.053,0.053,0.053,0.053,0.053,0.04,0.04,0.04,0.04,0.04,0.04,0.035,0.03,0.035,0.035,0.04,0.04,
0.04,0.05,0.013,0.013,0.018,0.018,0.018,0.013,0.013,0.018,0.018,0.018,0.02,0.02,0.02,0.02,0.02]
arm_joint_names: [right_shoulder_pan_joint, right_shoulder_lift_joint, right_elbow_joint,
right_wrist_1_joint, right_wrist_2_joint, right_wrist_3_joint]
sensor_arm_sigma: 0.0001
trajectory_control_topic: /jaco2/arm_controller/trajectory
est_traj_pub_topic: /piper/est_traj
plan_traj_pub_topic: /piper/plan_traj
arm_state_topic: /joint_states
24 changes: 24 additions & 0 deletions config/pr2_rightarm.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
piper:
robot:
DOF: 7
arm_base: {orientation: [0, 0, 0, 1], position: [-0.05, -0.188, 0.802175]}
DH:
alpha: [-1.5708, 1.5708, -1.5708, 1.5708, -1.5708, 1.5708, 0]
a: [0.1, 0, 0, 0, 0, 0, 0]
d: [0, 0, 0.4, 0, 0.321, 0, 0]
theta: [0, 1.5708, 0, 0, 0, 0, 0]
spheres:
js: [0,2,2,2,2,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6]
xs: [-0.01,0.015,0.035,0.035,0,-0.005,0.01,0.01,0.015,0.015,0.005,0.005,0,0,0,0,0,0,0,0,0,0,0]
ys: [0,0.22,0.14,0.0725,0,0.191,0.121,0.121,0.056,0.056,0.001,0.001,-0.0175,0.0175,0,0.036,0.027,
0.009,0.0095,-0.036,-0.027,-0.009,-0.0095]
zs: [0,0,0,0,0,0,-0.025,0.025,-0.0275,0.0275,-0.0225,0.0225,0.0725,0.0725,0.0925,0.11,0.155,0.18,
0.205,0.11,0.155,0.18,0.205]
rs: [0.18,0.11,0.08,0.08,0.105,0.075,0.055,0.055,0.05,0.05,0.05,0.05,0.04,0.04,0.04,0.04,0.035,
0.03,0.02,0.04,0.035,0.03,0.02]
arm_joint_names: [r_shoulder_pan_joint, r_shoulder_lift_joint, r_upper_arm_roll_joint,
r_elbow_flex_joint, r_forearm_roll_joint, r_wrist_flex_joint, r_wrist_roll_joint]
trajectory_control_topic: /pr2/right_arm_controller/trajectory
est_traj_pub_topic: /piper/est_traj
plan_traj_pub_topic: /piper/plan_traj
arm_state_topic: /joint_states
44 changes: 44 additions & 0 deletions config/vector.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
piper:
robot:
mobile_base: true
DOF: 9
arm_base: {orientation: [0.5, 0.5, 0.5, 0.5], position: [0.2889, 0, 1.0864]}
DH:
alpha: [1.5708, 3.1416, 1.5708, 1.0472, 1.0472, 3.1416]
a: [0, 0.41, 0, 0, 0, 0]
d: [0.2755, 0, -0.0098, -0.2501, -0.0856, -0.2228]
theta: [0, -1.5708, 1.5708, 0, -3.1416, 1.5708]
theta_neg: [true, false, false, false, false, false]
spheres:
js: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,4,4,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6]
xs: [-0.01,-0.26,-0.26,-0.26,0.24,0.24,0.24,0.04,-0.2,-0.2,0.16,0.16,0.16,0.16,0.33,-0.01,
-0.12,-0.22,-0.32,0.1,0.2,0.3,-0.01,-0.12,-0.22,-0.32,0.1,0.2,0.3,-0.32,-0.32,-0.32,0.32,
0.32,0.32,0.12,0.14,0.14,0.19,0.14,0.14,0.175,0.175,0.175,0.175,0.175,0.27,0.37,0.37,0.37,
0.37,0.37,0,0,0,0,0,-0.06,-0.12,-0.18,-0.24,-0.3,-0.36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0]
ys: [-0.01,-0.01,0.15,-0.17,-0.01,0.15,-0.17,-0.01,-0.06,0.04,-0.07,0.05,-0.18,0.16,-0.01,
-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,-0.24,0.22,0.22,0.22,0.22,0.22,0.22,0.22,-0.01,0.1,-0.13,
-0.01,0.1,-0.13,-0.01,-0.11,0.09,-0.01,-0.11,0.09,-0.01,-0.01,-0.01,-0.01,-0.01,-0.01,
-0.01,-0.01,-0.01,-0.1,0.08,0,-0.08,-0.155,-0.23,0,0,0,0,0,0,0,-0.01,-0.01,0,0,0,0,0,-0.008,
0.05,0.05,0.06,0.06,0.035,-0.05,-0.05,-0.06,-0.06,-0.035,0.015,0.025,0,-0.025,-0.015]
zs: [0.22,0.08,0.08,0.08,0.08,0.08,0.08,0.6,0.45,0.45,0.41,0.41,0.41,0.41,0.29,0.31,0.31,0.31,
0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.87,
0.78,0.78,1.07,0.97,0.97,1.2,1.3,1.4,1.5,1.62,1.5,1.5,1.6,1.66,1.66,1.66,0,0,0,0,0,0.03,
0.03,0.03,0.03,0.03,0.03,-0.05,-0.1,-0.15,-0.2,0,-0.045,0,-0.075,-0.01,0.01,-0.039,-0.067,
-0.042,-0.01,0.01,-0.039,-0.067,-0.042,-0.055,-0.08,-0.08,-0.08,-0.055]
rs: [0.21,0.08,0.08,0.08,0.08,0.08,0.08,0.18,0.1,0.1,0.06,0.06,0.06,0.06,0.05,0.05,0.05,0.05,
0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.05,0.1,
0.08,0.08,0.08,0.08,0.08,0.05,0.05,0.05,0.05,0.07,0.05,0.05,0.05,0.045,0.045,0.045,0.053,
0.053,0.053,0.053,0.053,0.04,0.04,0.04,0.04,0.04,0.04,0.035,0.03,0.035,0.035,0.04,0.04,0.04,
0.05,0.013,0.013,0.018,0.018,0.018,0.013,0.013,0.018,0.018,0.018,0.02,0.02,0.02,0.02,0.02]
arm_joint_names: [right_shoulder_pan_joint, right_shoulder_lift_joint, right_elbow_joint,
right_wrist_1_joint, right_wrist_2_joint, right_wrist_3_joint]
sensor_arm_sigma: 0.0001
sensor_base_sigma: 0.0001
trajectory_control_topic: /vector/full_body_controller/trajectory
est_traj_pub_topic: /piper/est_traj
plan_traj_pub_topic: /piper/plan_traj
arm_state_topic: /joint_states
base_state_topic: /base_state

21 changes: 21 additions & 0 deletions config/wam.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
piper:
robot:
DOF: 7
arm_base: {orientation: [0, 0, 0, 1], position: [0, 0, 0]}
DH:
alpha: [-1.5708, 1.5708, -1.5708, 1.5708, -1.5708, 1.5708, 0]
a: [0, 0, 0.045, -0.045, 0, 0, 0]
d: [0, 0, 0.55, 0, 0.3, 0, 0.06]
theta: [0, 0, 0, 0, 0, 0, 0]
spheres:
js: [0,1,1,1,1,2,3,3,3,5,6,6,6,6,6,6]
xs: [0,0,0,0,0,0,0,0,0,0,0.1,0.1,-0.1,0.15,0.15,-0.15]
ys: [0,0,0,0,0,0,0,0,0,0,-0.025,0.025,0,-0.025,0.025,0]
zs: [0,0.2,0.3,0.4,0.5,0,0.1,0.2,0.3,0.1,0.08,0.08,0.08,0.13,0.13,0.13]
rs: [0.15,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.04,0.04,0.04,0.04,0.04,0.04]
arm_joint_names: [Shoulder_Yaw, Shoulder_Pitch, Shoulder_Roll,
Elbow, Wrist_Yaw, Wrist_Pitch, Wrist_Roll]
trajectory_control_topic: /wam/arm_controller/trajectory
est_traj_pub_topic: /piper/est_traj
plan_traj_pub_topic: /piper/plan_traj
arm_state_topic: /joint_states
Loading

0 comments on commit 856478b

Please sign in to comment.