This work space contains all necessary code for the simulation, control, perception and learning of the Jaguar V4 with Arm robot, as part of the following publication :
@article{AR-Mitriakov-2022,
author = {A. Mitriakov and P. Papadakis and S. Garlatti},
title = {An open-source software framework for reinforcement learning-based control of tracked robots in simulated indoor environments},
journal = {Advanced Robotics},
volume = {0},
number = {0},
pages = {1-14},
year = {2022},
publisher = {Taylor & Francis},
doi = {10.1080/01691864.2022.2076570},
}
Software was tested on a machine with the following hardware configuration:
- Memory 31,2 GiB
- Processor Intel® Core™ i7-8650U CPU @ 1.90GHz × 8
- Graphics Intel® UHD Graphics 620 (KBL GT2)
- >30 GiB HDD/SSD
The user is addressed to this folder for more instructions.
We invite the reader to check the examples
folder for example videos and the description of used configuration files and files themselves.
It is possible to launch with (server) and without (standlalone) application interface.
Important note: one experiment can take from 15 mins to several hours, it depends on your machine and number of experiment time steps.
In case when you want to launch only the simulation, you should follow the convienent ROS+Gazebo workflow.
You start ROS and launch Gazebo as it presented below, then you launch a learning script.
Here, the script "stables3_launch.py" is an example, you can modify "stables3_launch.json" to change experiment configurations.
Alternatively, you can provide your own "your_own_template.json" and "your_own_launch.py" for your libraries of choice.
You can find working examples here and instructions to currently used fields of the json-based configuration here.
roslaunh backend learning.launch gui:=true &
roscd backend/scripts/learning/scripts
python stables3_launch.py
In case you to start the server application that will communicate with the GUI application, you have to execute next commands.
roscd backend
./bin/master_app
- GUI launching
Description of configuration fields can be found here and here.
If you want to launch a particular package you can find its documentation inside.
If you have modified any Go-based node, be sure that they are compiled.
To do so, it is necessary to execute python build.py
in the robot_ws
folder.
Launching python build.py
leads to compilation of all nested Go targets located in cmd
folders and placing binaries into corresponding bin
folders.
Gazebo environment flat/multi-floor simulation and robot spawning accordingly to the task.
Real/simulated robot control package.
Feature extraction from the RGBD image.
Task progress and criteria observer.
OpenAI gym environment for tracked robots moving indoor.
Drawing utilities.
Automation tools which contain a server application and ROS database node.
Gazebo plugins necessery to make contact surface motion model working.