This repository contains an implementation of the Sparse, Online, Locally Adaptive Regression using Gaussian Processes (SOLAR-GP) algorithm that is being presented in IEEE-RAL 2020. The code in this repository is considered research and "experimental", so results may vary depending on hardware and configuration
2D Manipulators | 3D Manipulators |
---|---|
This package depends on the below packages in order to compile and operate:
- teleop_utils (https://github.com/bpwilcox/teleop_utils)
- baxter_interface (https://github.com/RethinkRobotics/baxter_interface)
- May require additional baxter dependencies
Though the core SOLAR_GP algorithm does not depend on Baxter, currently the data buffer uses the EndpointState
custom msg
from the baxter_core_msgs
package (a dependency of baxter_interface
). This is may change in the future.
This package is currently based around the Rethink Robotics Baxter robot implementation of the SOLAR_GP algorithm. In the Baxter launch and Baxter scripts directories are Baxter-specific implementations of core classes.
- launch Baxter simulator in Gazebo or real Baxter robot (see )
- set teleop_device in run_baxter.launch to "xbox"
- run
roslaunch SOLAR_GP_ROS run_baxter.launch
- launch Baxter simulator in Gazebo or real Baxter robot (see )
- set
teleop_device
in run_baxter.launch to "bag" - set
bagfile
to path of trajectory rosbag - run
roslaunch SOLAR_GP_ROS run_baxter.launch
In order to the SOLAR_GP algorithm with your own robot, you need to implement derived classes of the following base classes:
In these derived classes, you can set up robot-specific variables and API, and implement robot-specific overrides of the base class functions in order to perform training, prediction, and control.
After creating the derived classes, you can create a main
to initialize and run the derived classes. See the below Baxter
implementations for examples: