-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcreate_scene.py
More file actions
51 lines (38 loc) · 1.6 KB
/
create_scene.py
File metadata and controls
51 lines (38 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/usr/bin/env python3
import rospy
import roslaunch
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('num_agents', type=int, help='agent number', default=1)
args, unknown = parser.parse_known_args()
if __name__ == '__main__':
package = 'decentralized_ergodic'
executable = 'create_agent.py'
nodes = []
processes = []
launch = roslaunch.scriptapi.ROSLaunch()
launch.start()
num_agents = args.num_agents
agent_names = []
for i in range(num_agents):
node_name = 'agent{}'.format(i)
agent_names.append(node_name)
args = '{}'.format(node_name)
if i == 0:
nodes.append(
roslaunch.core.Node(package=package, node_type=executable, name=node_name, args=args, output="screen")
)
else:
nodes.append(
roslaunch.core.Node(package=package, node_type=executable, name=node_name, args=args)
)
processes.append(launch.launch(nodes[-1]))
# create a process for visualizing swarm
robot_rendering_node = roslaunch.core.Node(package=package, args=str(agent_names)[1:-1].replace(",",""),
node_type='create_agent_rendering.py', name='robot_rendering', output="screen")
processes.append(launch.launch(robot_rendering_node))
env_rendering_node = roslaunch.core.Node(package=package, node_type='create_env_rendering.py',
name='env_rendering',output="screen", args=str(6))
processes.append(launch.launch(env_rendering_node))
rospy.init_node('launch_node', anonymous=True)
rospy.spin()