Hey! We are working on multi-robot communication that allows our stretches to be controlled on our master local desktop. However, it seems that the stretch_core must be run on the stretch. Does it mean that we can only allow one stretch to be the master instead of the local desktop? Also, is it a must that we launch stretch_core before launching other launch files? Can we integrate stretch_core launch and another launch in one file? Thanks!
Hi @JannaLam! It’s true that stretch_core must be run on Stretch, but that doesn’t mean you must run ROS master a single Stretch. You can launch roscore on your desktop first (making it the ROS master), and then launch the drivers on each robot (each of which connect to the master). With this setup, you’d be able to control multiple robots from your desktop. Keep in mind that to differentiate between robots, you’ll need to remap the topics for each Stretch to a namespace unique to each robot.
Generally, you do want stretch_core to launch before or together with other launch files because the drivers in stretch_core access the hardware present on each robot (e.g. the motors and sensors) and make them available to the rest of the ROS system. It’s common to launch stretch_driver.launch together with other launch files by including these launch files in a single one.
Thank you!!! It works!!!