spiri-sdk/guiTools/spawn_drones.sh

32 lines
936 B
Bash
Raw Normal View History

2024-10-25 14:49:07 -03:00
#!/bin/bash
set -e #PR #6
2024-10-25 14:49:07 -03:00
source /opt/ros/$ROS_DISTRO/setup.bash
if [[ -z $SIM_DRONE_COUNT ]]
then
echo "SIM_DRONE_COUNT environment variable is not set."
exit 1
fi
2024-10-25 14:49:07 -03:00
gz sim -v -r $WORLD_FILE_NAME &
while true
do
topics=$(gz topic -l)
if [[ $topics == *"/world/$WORLD_NAME"* ]]
then
break
fi
sleep 1
done
cd /ardupilot_gazebo/models/$DRONE_MODEL
2024-10-25 14:49:07 -03:00
for (( j=0; j<$SIM_DRONE_COUNT; j++ ));
do
2024-10-31 13:28:03 -03:00
xacro -v gstreamer_udp_port:=$(($GSTREAMER_UDP_PORT + ($j * 10))) fdm_port_in:=$(($FDM_PORT_IN + ($j * 10))) model.xacro.sdf -o model.sdf
#! string is better than using -file option. File is not up to date in the next iteration.
value=$(</ardupilot_gazebo/models/$DRONE_MODEL/model.sdf)
gz_drone_name=spiri-$(($j + 1))
#? Maybe read from text file for formation of drones? x y z r p y
ros2 run ros_gz_sim create -world $WORLD_NAME -string "$value" -name $gz_drone_name -x $j -y 0 -z 0.195
2024-10-25 14:49:07 -03:00
done
exec "$@"