mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-23 00:23:34 +08:00
- much simpler direct interface using Ignition Transport - in tree models and worlds - control allocation output configuration, no more magic actuator mapping to mavlink and back - currently requires no custom Gazebo plugins (keeping things as lightweight and simple as possible) Co-authored-by: Jaeyoung-Lim <jalim@ethz.ch>
44 lines
1.2 KiB
Bash
44 lines
1.2 KiB
Bash
#!/bin/sh
|
|
# shellcheck disable=SC2154
|
|
|
|
PX4_SIM_WORLD="${PX4_SIM_WORLD:="empty"}" # default to empty world?
|
|
|
|
echo "PX4_SIM_MODEL: ${PX4_SIM_MODEL}"
|
|
echo "PX4_SIM_WORLD: ${PX4_SIM_WORLD}"
|
|
|
|
# TODO: verify if world exists
|
|
ign service --info --service /world/${PX4_SIM_WORLD}/create
|
|
echo $?
|
|
|
|
ign service -s /world/${PX4_SIM_WORLD}/create --reqtype ignition.msgs.EntityFactory --reptype ignition.msgs.Boolean --timeout 1000 --req "sdf_filename: \"${PX4_SIM_MODEL}/model.sdf\""
|
|
|
|
if ignition_simulator start -m "${PX4_SIM_MODEL}" -w "${PX4_SIM_WORLD}"
|
|
then
|
|
|
|
sensor_baro_sim start
|
|
sensor_gps_sim start
|
|
sensor_mag_sim start
|
|
|
|
else
|
|
simulator_tcp_port=$((4560+px4_instance))
|
|
|
|
# Check if PX4_SIM_HOSTNAME environment variable is empty
|
|
# If empty check if PX4_SIM_HOST_ADDR environment variable is empty
|
|
# If both are empty use localhost for simulator
|
|
if [ -z "${PX4_SIM_HOSTNAME}" ]; then
|
|
|
|
if [ -z "${PX4_SIM_HOST_ADDR}" ]; then
|
|
echo "PX4 SIM HOST: localhost"
|
|
simulator start -c $simulator_tcp_port
|
|
else
|
|
echo "PX4 SIM HOST: $PX4_SIM_HOST_ADDR"
|
|
simulator start -t $PX4_SIM_HOST_ADDR $simulator_tcp_port
|
|
fi
|
|
|
|
else
|
|
echo "PX4 SIM HOST: $PX4_SIM_HOSTNAME"
|
|
simulator start -h $PX4_SIM_HOSTNAME $simulator_tcp_port
|
|
fi
|
|
|
|
fi
|