Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing documentation on multi-robot setups #131

Open
TheMipmap opened this issue Oct 31, 2023 · 5 comments
Open

Missing documentation on multi-robot setups #131

TheMipmap opened this issue Oct 31, 2023 · 5 comments
Labels
documentation Improvements or additions to documentation
Milestone

Comments

@TheMipmap
Copy link

Lack of documentation regarding the implementation of multi-robot setups.

@mhubii
Copy link
Member

mhubii commented Nov 2, 2023

thanks for sharing this issue @TheMipmap .

So in order to do a multi-robot setup, it is necessary to

  • Configure a unique port id for each robot in the java application
  • Configure a unique IP address for each robot

Once that's done, one can connect the robots and the controlling PC to a switch. When using this stack, launch files can then e.g. be used as follows:

ros2 launch lbr_bringup bringup.launch.py \
    model:=iiwa7 # [iiwa7, iiwa14, med7, med14] \
    sim:=false \
    robot_name:=robot1 \
    port_id:=30200 # assuming port was set to 30200

or (depending what is used)

ros2 launch lbr_fri_ros2 app.launch.py model:=iiwa7 robot_name:=robot1 port_id:=30200

The same launch file can then be re-run with a different robot_name / port_id. The transforms will be pre-fixed, so, in rviz, to display the robot correctly, one has to:

  • Configure the Description Topic to /robot_name/robot_description
  • Set a TF prefix in the RobotModel to robot_name

See below:

Screenshot from 2023-11-02 11-47-42

Multi-robot setups with moveit are currently not supported in this stack, but I haven't found a good way to do this through moveit yet. One interesting way to investigate multi-robot setups with moveit is the namespace tag in xacro ros/xacro#305.

@mhubii
Copy link
Member

mhubii commented Nov 2, 2023

This issue requires:

  • How to set port id documentation
  • How to configure IP address documentation
  • Hint on using a switch
  • How to launch documentation

Moving forward, it might be beneficial to have an lbr_model_zoo repository in https://github.com/lbr-stack/ for the community to share setups.

@mhubii mhubii added the documentation Improvements or additions to documentation label Nov 2, 2023
@EliasTDam
Copy link

thanks for sharing this issue @TheMipmap .

So in order to do a multi-robot setup, it is necessary to

  • Configure a unique port id for each robot in the java application
  • Configure a unique IP address for each robot

Once that's done, one can connect the robots and the controlling PC to a switch. When using this stack, launch files can then e.g. be used as follows:

ros2 launch lbr_bringup bringup.launch.py \
    model:=iiwa7 # [iiwa7, iiwa14, med7, med14] \
    sim:=false \
    robot_name:=robot1 \
    port_id:=30200 # assuming port was set to 30200

or (depending what is used)

ros2 launch lbr_fri_ros2 app.launch.py model:=iiwa7 robot_name:=robot1 port_id:=30200

The same launch file can then be re-run with a different robot_name / port_id. The transforms will be pre-fixed, so, in rviz, to display the robot correctly, one has to:

  • Configure the Description Topic to /robot_name/robot_description
  • Set a TF prefix in the RobotModel to robot_name

See below:

Screenshot from 2023-11-02 11-47-42

Multi-robot setups with moveit are currently not supported in this stack, but I haven't found a good way to do this through moveit yet. One interesting way to investigate multi-robot setups with moveit is the namespace tag in xacro ros/xacro#305.

Hey! How/where do we set the port number? I am looking through LBRServer.java, and cannot find anything related to the port number.

@mhubii
Copy link
Member

mhubii commented Nov 13, 2023

Hi @EliasTDam , in the java application, you can configure the FRI connection.

fri_configuration_ = FRIConfiguration.createRemoteConfiguration(lbr_, client_name_);
fri_configuration_.setSendPeriodMilliSec(send_period_);
fri_configuration_.setPortOnRemote(30201);  // add this line and set desired port ID

ideally there would be a user interaction to set it on the fly. That would need to be added

@EliasTDam
Copy link

Thanks @mhubii ! We'll continue to keep you posted on our progress.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

3 participants