Skip to content

Commit

Permalink
release for franka_ros v0.7.1
Browse files Browse the repository at this point in the history
  • Loading branch information
justagist committed Dec 14, 2020
1 parent 7429cb1 commit cd8873b
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
# Franka ROS Interface [![Release](https://img.shields.io/badge/prerelease-v0.7.1%20beta-orange.svg)](https://github.com/justagist/franka_ros_interface/releases/tag/v0.7.1) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3747459.svg)](https://doi.org/10.5281/zenodo.3747459)
# Franka ROS Interface [![Release](https://img.shields.io/badge/release-v0.7.1-blue.svg)](https://github.com/justagist/franka_ros_interface/releases/tag/v0.7.1) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3747412.svg)](https://doi.org/10.5281/zenodo.3747412)

[![Codacy Badge](https://app.codacy.com/project/badge/Grade/ec16a09639d341358b73cb8cdaa57d2e)](https://www.codacy.com/manual/justagist/franka_ros_interface?utm_source=github.com&utm_medium=referral&utm_content=justagist/franka_ros_interface&utm_campaign=Badge_Grade) [![Build Status](https://travis-ci.org/justagist/franka_ros_interface.svg?branch=v0.7.1)](https://travis-ci.org/justagist/franka_ros_interface)

A ROS interface library for the Franka Emika Panda robot, extending the [franka-ros][franka-ros] to expose more information about the robot, and
providing low-level control of the robot using ROS and [Python API][fri-doc].

**This branch is still in development and needs further testing. Supports franka_ros versions 0.7.0, 0.7.1.** [![franka_ros_version](https://img.shields.io/badge/franka_ros-v0.7.1%20release-yellow.svg)](https://github.com/frankaemika/franka_ros/tree/49e5ac1055e332581b4520a1bd9ac8aaf4580fb1)

Franka ROS Interface provides utilites for controlling and managing the Franka Emika Panda robot (real and [simulated][ps-repo]. Contains exposed controllers for the robot (joint position,
velocity, torque), interfaces for the gripper, controller manager, coordinate frames interface, etc. Also provides utilities to control the robot using MoveIt! and ROS Trajectory Action & ActionClient. This package also provides almost complete sim-to-real / real-to-sim transfer of code with the [panda_simulator][ps-repo] package.

Documentation Page: https://justagist.github.io/franka_ros_interface

**This branch requires franka_ros release versions 0.7.0, 0.7.1.** [![franka_ros_version](https://img.shields.io/badge/franka_ros-v0.7.1%20release-yellow.svg)](https://github.com/frankaemika/franka_ros/tree/49e5ac1055e332581b4520a1bd9ac8aaf4580fb1)

A more unified ROS Python interface built over this package is available at [PandaRobot](https://github.com/justagist/panda_robot), which provides a more intuitive interface class that combines the different API classes in this package. Simple demos are also available.

## Features

- Low-level *controllers* (joint position, velocity, torque, impedance) available that can be controlled through ROS topics and Python API (including position control for gripper).
Expand All @@ -35,7 +37,7 @@ Documentation Page: https://justagist.github.io/franka_ros_interface

ROS Melodic: [![Build Status](https://travis-ci.org/justagist/franka_ros_interface.svg?branch=v0.7.1)](https://travis-ci.org/justagist/franka_ros_interface)

**NOTE:** *Tested on Ubuntu 18.04 with ROS Melodic with franka_ros version 0.7.1 (release). Version for ROS Kinetic requires franka_ros v0.6.1; check the 'v0.6.1' branch of this repo. The latest updates to the package may not be compatible with Kinetic.*
**NOTE:** *Tested on Ubuntu 18.04 with ROS Melodic with franka_ros version 0.7.1 (release). Version for ROS Kinetic requires franka_ros v0.6.0; check the 'v0.6.0' branch of this repo. The latest updates to the package may not be compatible with Kinetic.*

### Dependencies

Expand Down Expand Up @@ -73,18 +75,18 @@ Available keyword arguments for launch file:
- `start_moveit`: start moveit server along with the driver node (default: `true`).
- `load_demo_planning_scene`: loads a default planning scene for MoveIt planning with simple objects for collision avoidance (default: `true`). See [create_demo_planning_scene.py](franka_moveit/scripts/create_demo_planning_scene.py).

This starts the robot controllers and drivers to expose a variety of ROS topics and services for communicating with and controlling the robot. The robot's measurements and controllers can be accessed using ROS topics and services (see below too find out about some of the available topics and services), or using the provided [Python API][fri-doc] (also see [*PandaRobot*](https://github.com/justagist/panda_robot)).
This starts the robot controllers and drivers to expose a variety of ROS topics and services for communicating with and controlling the robot. The robot's measurements and controllers can be accessed using ROS topics and services (see below to find out about some of the available topics and services), or using the provided [Python API][fri-doc] (also see [*PandaRobot*](https://github.com/justagist/panda_robot)).

Basic usage of the API is shown in the [`test_robot.py` example file](franka_interface/tests/test_robot.py).
See [documentation][fri-doc] for all available methods and functionalities. More usage examples can be found in the [PandaRobot](https://github.com/justagist/panda_robot).

### The *franka.sh* environments

Once the values are correctly modified in the `franka.sh` file, different environments can be set for controlling the robot by sourcing this file.

- For instance, running `./franka.sh master` would start an environment assuming that the computer is directly connected to the robot (requires Real-Time kernel set up as described in the [FCI documentation][libfranka-doc]).
- On the other hand, `./franka.sh remote` would start an environment assuming that the robot is not connected directly to the computer, but to another computer in the network (whose IP must be specified in *franka.sh*). This way, if the 'master' is connected to the robot and running the driver node (see below), the 'remote' can control the robot (**no need for Real Time kernel!**) as long as they are in the same network.
- Simulation environment can be started by running `./franka.sh sim` (only required when using [panda_simulator][ps-repo] package).

Basic usage of the API is shown in the [`test_robot.py` example file](franka_interface/tests/test_robot.py).
See [documentation][fri-doc] for all available methods and functionalities.
- ~Simulation environment can be started by running `./franka.sh sim` (only required when using [panda_simulator][ps-repo] package).~

#### Some useful ROS topics

Expand All @@ -111,6 +113,8 @@ Controller manager service can be used to switch between all available controlle

Most of the above services and topics are wrapped using simple Python classes or utility functions, providing more control and simplicity. This includes direct control of the robot and gripper using the provided controllers. Refer README files in individual subpackages.

[Documentation][fri-doc]

### Related Packages

- [*panda_simulator*][ps-repo] : A Gazebo simulator for the Franka Emika Panda robot with ROS interface, providing exposed controllers and real-time robot state feedback similar to the real robot when using the *franka_ros_interface* package. Provides almost complete real-to-sim transfer of code.
Expand All @@ -130,4 +134,4 @@ Most of the above services and topics are wrapped using simple Python classes or

Copyright (c) 2019-2020, Saif Sidhik

If you use this software, please cite it using [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3747413.svg)](https://doi.org/10.5281/zenodo.3747413).
If you use this software, please cite it using [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3747412.svg)](https://doi.org/10.5281/zenodo.3747412).

0 comments on commit cd8873b

Please sign in to comment.