If you use any of this code please cite our paper "VFH+ based shared control for remotely operated mobile robots". You can find it in IEEE explore link and arxiv link.
P. Pappas, M. Chiou, G. -T. Epsimos, G. Nikolaou and R. Stolkin, "VFH+ based shared control for remotely operated mobile robots," 2020 IEEE International Symposium on Safety, Security, and Rescue Robotics (SSRR), 2020, pp. 366-373, doi: 10.1109/SSRR50563.2020.9292585. https://ieeexplore.ieee.org/document/9292585
or
PAPPAS, Pantelis, et al. VFH+ based shared control for remotely operated mobile robots. arXiv e-prints, 2020, arXiv: 2011.05228. https://arxiv.org/abs/2011.05228
These are ERL's shared control packages
This repository holds packages that impliment a Husky simulation in a disaster arena. This version features a shared control Level of Autonomy (LOA) among Teleoperation and Autonomy. IMPORTANT You might need access to the lab's private repositories to complete the installation.
*NOTE: There is another repository for fuzzy_mi_controller in the ERL page. However there are some changes that need to be made in order for Shared Control
LOA to work, so I've included the changed version here for convenience.*
2. Make sure that the fuzzy_mi_controller pkg is in the src/ directory and NOT in the shared_control/ directory
$ git clone https://github.com/ros-planning/navigation.git
$ cd navigation
$ git checkout origin/kinetic-devel
$ git clone https://github.com/uob-erl/husky.git
$ cd husky
$ git checkout origin/learning_effect_exp
$ git clone https://github.com/uob-erl/variable_autonomy_utilities.git
Most ROS dependancies should be taken care of by rosdep install --from-paths src --ignore-src -r -y
from your catkin workspace. If not:
sudo apt-get install ros-kinetic-gmapping
sudo apt-get install ros-kinetic-robot-localization
sudo apt-get install ros-kinetic-joy
sudo apt-get install ros-kinetic-audio-common
sudo apt-get install ros-kinetic-frontier-exploration
sudo apt-get install ros-kinetic-hector-slam
sudo apt-get install ros-kinetic-p2os-urdf
For the controller to compile and run, the fuzzylite library is needed. The controller uses version 6 of fuzzylite. Please use the instructions below to install fuzzylite 6.
- Once download from https://fuzzylite.com/ , do a
cd
into the fuzzylite folder. - Run
./build.sh release
- Use checkinstall to create a debian file instead of installing the library old school. It makes life easier e.g. you can install or remove library via apt-get.
sudo apt-get install checkinstall
cd release
sudo checkinstall --pkgname=fuzzylite6
Alternatively:
cd release
sudo make install
In order to unistall, if make install was used, cat install_manifest.txt | xargs echo sudo rm | sh
.
- The library is installed.
A fresh installation of ROS Kinetic comes with Gazebo v.7.0.0. This version of Gazebo is buggy and causes problems. If that is the case for you, uninstall Gazebo entirely with:
sudo apt-get purge gazebo7*
and make sure you have v7.04.0 or greater. To do that type:
sudo apt-get install ros-kinetic-gazebo-*
This should give you Gazebo v.7.16.0
$ catkin_make
$ roslaunch experiments_launch husky_gazebo_mi_training.launch
or
$ roslaunch experiments_launch husky_gazebo_mi_experiment.launch
11. If for some reason everything runs but you can not control the robot; go to src/fuzzy_mi_controller/experiments_launch/launch/husky_gazebo_mi_experiment.launch file and try out different js[number]
Example:
node respawn="true" pkg="joy" type="joy_node" name="joy_node" param name="dev" type="string" value="/dev/input/js0" param name="deadzone" value="0.15" .... param name="dev" type="string" value="/dev/input/js1" remap from="/joy" to="/joy_experimenter"
OR
node respawn="true" pkg="joy" type="joy_node" name="joy_node" param name="dev" type="string" value="/dev/input/js1" param name="deadzone" value="0.15" .... param name="dev" type="string" value="/dev/input/js2" remap from="/joy" to="/joy_experimenter"