Skip to content

efc-robot/NICS_MultiRobot_Platform

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NICS_MultiRobot_Platform

This is an experimental mulit-robot system that converts the ROS interface into a GYM-like interface.

Framework

In our paper, we provide unified sim-to-real interfaces and their paradigm as shown above, supporting the collaborative development of DRL policy and real robot systems.

In this repository, we have realized a middleware that subscribes to the corresponding topics and provides data through a unified data interface. The DRL algorithm can easily migrate from the simulation environment to the real robot system with our tool.

Demo

Code Structure

.
├─docs/
├─scripts/
├─src/
│  ├─nics_robot_client/
│  ├─nics_robot_host/
│  ├─nics_robot_inference/
│  ├─velocity_tracker/
│  ├─vrpn_client_ros/
│  ├─xtark_driver/
│  ├─CMakeLists.txt
│  └─mac2id.py
├─.catkin_workspace
├─LICENSE
└─README.md

The main parts of our system are nics_robot_host, nics_robot_client and nics_robot_inference while xtark_driver and vrpn_client_ros are the specific hardware driver of robot (steering and lidar) and motion capture software used in our experiment.

  • nics_robot_host is the central control node of whole system. It collects raw ROS data, parses them into correct form and send to inference node on each robot.
  • nics_robot_inference includes independent instance of DRL algorithm. It obtains the perception data transmitted by the host node through ROS Service, and outputs the action to client node on each robot.
  • nics_robot_client converts the output action of algorithm to the resolvable control instructions for real robot.

Install

Prerequisites

Python (3.8.10), OpenAI gym (0.18.3), ROS(ros-noetic-desktop), numpy (1.20.3)

Instructions

Just install this repo by:

git clone https://github.com/efc-robot/NICS_MultiRobot_Platform.git
catkin_make
source devel/setup.bash

Getting Started

We use robots produced by XTARK and customize CAR_ID for each agent. If you need to adapt your own robot, some hardware configuration parameters may need to be modified.

Simple startup instructions are as follows:

# start central control
roslaunch nics_robot_host robot_host.launch
# start client on each robot
roslaunch nics_robot_client robot_client.launch
# after embedding your RL algorithm, start inference on each robot
roslaunch nics_robot_inference inference.launch

Then start your experiment according to the interaction program provided by host.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 46.1%
  • CMake 26.9%
  • C++ 26.7%
  • Shell 0.3%