Giter Club home page Giter Club logo

serl_franka_controllers's Introduction

SERL Franka Controllers

Robot controller used in SERL (A Software Suite for Sample-Efficient Robotic Reinforcement Learning)

Serl Website and Paper: https://serl-robot.github.io/

serl_franka_controllers is a ROS package designed to control Franka Emika Robot through libfranka and franka_ros. This package provides a compliant yet accurate Cartesian Impedance Controller for safe online reinforcement learning algorithms, as well as a Joint Position Controller for resetting arm.

Compliance and accuracy is achieved at the same time by limiting the reference point of the Impedance controller to be within a certain distance from the current pose in the realtime loop. This way, a high gain can be used for accuracy without excess force when in contact.

Image

Installation

Prerequisites

  • ROS Noetic
  • Installation of libfranka>=0.8.0 and franka_ros>=0.8.0 according to the Franka FCI Documentation
    sudo apt install ros-noetic-libfranka ros-noetic-franka-ros

Installing via apt-get

sudo apt-get install ros-serl_franka_controllers

Installing from Source

  1. Clone the repository into your catkin workspace:
    cd ~/catkin_ws/src
    git clone [email protected]:rail-berkeley/serl_franka_controllers.git
    cd ~/catkin_ws
    catkin_make --pkg serl_franka_controllers
    source ~/catkin_ws/devel/setup.bash

Usage

Cartesian Impedance Controller

To launch the Cartesian Impedance Controller, use:

roslaunch serl_franka_controllers impedance.launch robot_ip:=<RobotIP> load_gripper:=<true/false>

Replace with the IP address of your Franka robot. The load_gripper argument is a boolean value (true or false) depending on whether you have a gripper attached.

Compliance parameters for the controller can be adjusted in an interactive GUI by running rosrun rqt_reconfigure rqt_reconfigure. This can also be achieved in Python code as demonstrated in the example section.

Joint Position Controller

For resetting or moving the robot to a specific joint position, launch the joint position controller:

rosparam set /target_joint_positions '[q1, q2, q3, q4, q5, q6, q7]'
roslaunch serl_franka_controllers joint.launch robot_ip:=<RobotIP> load_gripper:=<true/false>

Here, you also need to replace with the actual IP address and specify the load_gripper option. Then replace [q1, q2, q3, q4, q5, q6, q7] with the desired joint positions.

rospy Example

We include a requirements.txt and python script to show one way of interacting with the controller. This script shows how to adjust the reference limiting values and how to send robot commands through ROS Topics and dynamic_reconfigure. To use this, run

conda create -n serl_controller python=3.8
conda activate serl_controller
pip install -r requirements.txt
python test/test.py --robot_ip=ROBOT_IP

serl_franka_controllers's People

Contributors

charlesxu0124 avatar youliangtan avatar jianlanluo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.