hanruihua / master_multirobot

The project of multiple robot localization by fusing multiple sensors

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Multiple Robots Master

The program of multiple robot platform running in master computer

In the real experiment, please run the Slave program in slave robot

Test Environment

  • system -- ubuntu 16.06
  • platform -- ros kinetic/melodic

Installation

requirement

turtlebot package

sudo apt-get update
sudo apt-get install ros-kinetic-turtlebot ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-interactions ros-kinetic-turtlebot-simulator ros-kinetic-kobuki-ftdi ros-kinetic-rocon-* ros-kinetic-ar-track-alvar-msgs

keyboard control:

sudo pip install pynput

build

cd ~/catkin_ws/src
git clone https://github.com/hanruihua/master_multirobot.git
cd ~/catkin_ws
catkin_make

planning algorithm ORCA:

cd ~/catkin_ws/src
git clone https://github.com/hanruihua/rvo_ros.git
cd ~/catkin_ws
catkin_make

Configuration

Before run the launch file for the real experiment, you should allocate the ROS_MASTER_URI, ROS_HOSTNAME, ROS_IP for this master robot(in .zshrc or .bashrc)

template:

echo "export ROS_MASTER_URI=http://localhost_ip:11311" >> ~/.zshrc
echo "export ROS_HOSTNAME=localhost_ip" >> ~/.zshrc
echo "export ROS_IP=localhost_ip" >> ~/.zshrc
source ~/.zshrc

example:

  • In .zshrc or .bashrc:

Run

keyboard telecontrol

roslaunch master_teleop master_keyboard.launch --screen

simulation

  • Turtlebot(rvo)

roslaunch master_simulation rvo_turtlebot_gazebo2.launch
roslaunch master_simulation rvo2.launch
rosrun rvo_ros set_goals_client random 0 4 0 4

Note: (1) the command of the rvo_ros should refer to the rvo readme
(2) if there is the error like the "unused args [ROBOT_INITIAL_POSE, model]", please replace your kobuki.launch file in the path turtlebot_simulator/turtlebot_gazebo/launch/includes by the file kobuki.launch

real experiment

rvo real experiment (turtlebot should run the slave robot program)

roslaunch master_launch rvo_turtlebot_exp.launch

Attention: All the slave robots and master should connect to the same ros master. Our system is currently capable to perform collision avoidance and navigation for 10 slave robots at the same time. If you want to control more than 10 robots, you need to add new my_inc0[X].sh file.

Authors

Han - Han
Chen - Chen

License

This project is licensed under the MIT License

About

The project of multiple robot localization by fusing multiple sensors

License:MIT License


Languages

Language:C++ 37.0%Language:Python 30.6%Language:CMake 29.8%Language:C 2.1%Language:Shell 0.6%