robotsorcerer / torobo

One Hell of a Control Lyapunov Function Solver for Nonlinear Control Tasks

Home Page:https://scriptedonachip.com/neuro-adaptive-control

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Header Info

author = "Olalekan Ogunmolu"

copyright = "2018, One Hell of a Lyapunov Solver"

credits = "Rachel Thompson (MIT), Jethro Tan (PFN), Ayaka Kume (PFN)"

license = "MIT"

maintainer = "Olalekan Ogunmolu"

email = "lexilighty@gmail.com"

status = "Testing"

Introduction

This codebase represents a wip for our proposed learning stable control laws for nonlinear complex robot trajectories.

Packages Organization

  • Torobo_ik: Contains the ik solver and service calls' source code for converting the joint positions of the robot to cartesian workspace. This leverages on the TRAC_IK_SOLVER and the KDL_LIBRARY.

  • Torobo Control: Details the meta-package for the whole packages that we use in this project.

  • LyapunovLearner: Basic implementation of Khansari-Zadeh's Stable Estimator of Dynamical Systems paper and Learning Control Lyapunov Functions for Nonlinear Robot Trajectories.

  • LWPR: This is an implementation of Stefan Schaal and Sethu Vijaykumar's Locally Weighted Projected Regression from their 2003 ICML paper. This is the test Matlab source code for

    The original matlab lwpr code is located here.

  • LWPR Translations: These are my translations for the example that the original authors provided in the matlab code.

    • This can be tested with python test_lwpr_1D.py.
  • LWPR 3rd party python source: This contains the source code for the python/c/mex source code by a 3rd party developer. I earlier tried to install this on a linux system as the readme file directs but I found that after running configure, make was giving weird errors. Would appreciate if you could look into this.

Running

  • Bring up the robot

    roslaunch toroboarm_seven_bringup bringup_real.launch

    roslaunch torobo_ik torobo.launch

  • The above two commands can be merged with

    roslaunch torobo_ik torobo.launch bringup:=true

    In addition, one can turn off the stdout printouts by appending the arg disp:=true to the torobo.launch file e.g.,

    roslaunch torobo_ik torobo.launch bringup:=true disp:=false

  • Launch the Lyapunov Learner Executor

    In a separate terminal, launch the robot executor.

    cd /path_to_root_folder/lyapunovlearner/scripts python main.py

Update: Aug 16, 2018. Tokyo

  • Note that these files represent each motion for the same sinusoidal stuff for the robot. The data was collected in joint space.

  • They have been augmented with the target position in the files to make the data uniform across all demos. See the scripts in torobo_ik/src/joints_pub.py

  • The joint space data collected was converted to cartesian workspace coordinates using the KDL library. This is saved in lyapunovlearner/scripts/data/cart_pos_new.csv

  • We use the cartesian coordinates of the data collected in teaching the robot to repeat the motion.

About

One Hell of a Control Lyapunov Function Solver for Nonlinear Control Tasks

https://scriptedonachip.com/neuro-adaptive-control

License:GNU General Public License v3.0


Languages

Language:Jupyter Notebook 95.3%Language:CMake 2.3%Language:Python 1.8%Language:C++ 0.5%