Skip to content

cpezzato/unbiased_aic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unbiased active inference for torque control

Alt Text

This package contains implementations of the active inference controller (AIC) from [1] and the unbiased active inference controller. The controllers are designed and tuned for satisfactory behavior of a Franka Emika Panda.

How to cite this work

If you found this repository useful, please consider citing the associated paper below:

  • Unbiased Active Inference for Classical Control. Baioumy, M., Pezzato, C., Ferrari, R., & Hawes, N. IROS 2022.

Pre-requisites

This package relies on joint states readings and torque commands for the Panda arm. Provided a goal through the /desired_state topic as a JointState message type, the active inference controllers compute the required torques and publish them to the topic /panda_joint_effort_controller/command. Thus two requirements:

  1. Franka ROS is installed and configured
  2. A high-frequency torque interface is available such that the published torques by the active inference are forwarded to the joints

How to install

Simply clone this repository and build it in your workspace.

mkdir uaic_ws/src
cd src
git clone git@github.com:cpezzato/unbiased_aic.git
cd ..
catkin build

Examples of how to use

Note: Be sure that the Panda is publishing joint states at /franka_state_controller/joint_states

Given an available torque interface with the Panda arm which listens to the topic /panda_joint_effort_controller/command, the controllers (either AIC or uAIC) can be launched with

roslaunch unbiased_aic $controller$.launch

Available controllers are aic and unbiased_aic.

After that the robot will move to a central position and try to maintain it. To make the robot move you need to run one of the available Python scripts to send desired goal states to be achieved. For a simple tracking test of sinusoidal waves for the first three joints run:

rosrun unbiased_aic $test_controller.py$

You can write your own examples in Python following the examples in /scripts. The tuning of the controllers can be done in the .yaml files in the \config folder.

About

General package for control or robot manipulators with unbiased active inference

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published