Coder Social home page Coder Social logo

multi_arm_coordination's Introduction

multi_arm_coordination

This program implements a coordination method for multiple robot arms (Franka Panda).

Multiple robot arms work in a shared workspace. A target is assigned to each robot. Collision checkings are performed and coordinated trajectories leading all the robots to their targets concurrently without collision are generated with three trajectory replanning strategies: (1) offline replanning: proportionally slowing down; (2) offline replanning: delaying; (3) online replanning: updating temporary goals according to current motion state.

Instruction

0.1 create a workspace

$ mkdir -p ~/mutl_arm_coordination_ws/src
$ cd ~/mutl_arm_coordination_ws/src

0.2 git clone this package

$ git clone [email protected]:DianeZhao/multi_arm_coordination.git

0. Required Dependencies

Franka Emika https://frankaemika.github.io/docs/installation_linux.html

$ sudo apt install ros-noetic-libfranka ros-noetic-franka-ros

panda_movit_config (can be built from source)

$ git clone [email protected]:ros-planning/panda_moveit_config.git

then build packages according to the Franka Emika instructions

catkin build -DFranka_DIR=/path/to/usr/lib/cmake/Franka -DCMAKE_BUILD_TYPE=Release

1. Run the program in simulation

Open up four terminals and run the following commands.

1.1 Offline replanning

$ roslaunch franka_coord coord_offline.launch
$ rosrun franka_coord coord_offline_all
$ roslaunch franka_coord control_offline.launch
$ roslaunch franka_coord give_goals.launch

1.2 Online replanning

$ roslaunch franka_coord coord_online_simu.launch
$ rosrun franka_coord coord_online_all
$ roslaunch franka_coord control_online.launch
$ roslaunch franka_coord give_goals.launch

2. Run the program on real robots (Franka Panda)

Run the program on n (n>=2) Franka Panda robots

  • n computers (PC1, PC2, PC3, ...), each connect to a robot. PC 1 is set as the master. The coordinators and goal assignments are performed on PC1. The state reading and controller are performed on each PC.
  • modify the variable robot_num in coord_offline_all.cpp and coord_online_all.cpp to set the robot number
  • modify the robot IP address in control_offline_rm_rx.cpp

2.1 Offline replanning

PC 1

$ rosrun franka_coord control_offline_rm_r1
$ rosrun franka_coord read_state_r1
$ roslaunch franka_coord coord_offline_rm.launch
$ rosrun franka_coord coord_offline_all
$ roslaunch franka_coord give_goals_r1.launch
$ roslaunch franka_coord give_goals_r2.launch

PC 2

$ rosrun franka_coord control_offline_rm_r2
$ rosrun franka_coord read_state_r2

2.2 Online replanning

PC 1

$ rosrun franka_coord control_online_rm_r1
$ rosrun franka_coord read_state_r1
$ roslaunch franka_coord coord_online_rm.launch
$ rosrun franka_coord coord_online_all
$ roslaunch franka_coord give_goals_r1.launch
$ roslaunch franka_coord give_goals_r2.launch

PC 2

$ rosrun franka_coord control_offline_rm_r2
$ rosrun franka_coord read_state_r2

multi_arm_coordination's People

Contributors

diane4021 avatar zhangshiyu271 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.