cd Sunray
# 编译sunray_simulator模块
catkin_make --source Simulation/sunray_simulator --build build/sunray_simulator
## 写入环境变量
source ~/.Sunray/devel/setup.bash
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/Sunray/Simulation/sunray_simulator/models
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/Sunray/Simulation/sunray_simulator/models/scence_models
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/Sunray/Simulation/sunray_simulator/models/sensor_models
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/Sunray/Simulation/sunray_simulator/models/drone_models
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/Sunray/Simulation/sunray_simulator/models/aws_models
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/Sunray/Simulation/sunray_simulator/models/ugv_models
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/Sunray/Simulation/sunray_simulator/texture
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/Sunray/Simulation/sunray_simulator/worlds
在使用前需要了解Sunray仿真模块中的几个文件夹
- Sunray/Simulation/sunray_simulator/launch_basic:该文件夹下存储着无人机/车启动底层逻辑的launch文件
- Sunray/Simulation/sunray_simulator/models:该文件夹下存放着Sunray系列无人机/车相关的仿真模型以及其他传感器和环境相关的仿真模型
- Sunray/Simulation/sunray_simulator/worlds:该模式将响应外部发送的控制指令(通过话题发布)
- Sunray/Simulation/sunray_simulator/testure:该文件夹下存放着.world中展示的贴图文件
- Sunray/Simulation/sunray_simulator/launch_ego:该文件夹下存放着ego相关的launch文件
- Sunray/Simulation/sunray_simulator/launch_fuel:该文件夹下存放着fuel相关的launch文件
- Sunray/Simulation/sunray_simulator/launch_rviz:该文件夹下存放着rviz相关的launch文件
- Sunray/Simulation/sunray_simulator/launch_slam:该文件夹下存放着slam相关的launch文件
- Sunray/Simulation/sunray_simulator/launch_test:该文件夹下存放着测试相关的launch文件
- Sunray/Simulation/sunray_simulator/launch_uav_demo:该文件夹下存放着不同状态的无人机在不同仿真世界的launch文件
- Sunray/Simulation/sunray_simulator/launch_ugv_demo:该文件夹下存放着不同状态的无人车在仿真世界的launch文件
## 启动ros
roscore
## 启动仿真加载模型
roslaunch sunray_simulator sunray_sim_1ugv.launch
## 启动ros
roscore
## 启动px4仿真加载模型
roslaunch sunray_simulator sunray_sim_3ugv.launch
<arg name="ugv_model" default="wheeltec"/>
ugv_model参数用来指定仿真的模型,Sunray/Simulation/sunray_simulator/models
文件夹下定义了多款无人车和不同的传感器的搭配的机型,如:wheeltec_with_2d_lidar、wheeltec_with_mid360<arg name="world" default="$(find sunray_simulator)/worlds/sunray_empty_world.world"/>
world参数用来指定gazebo中的仿真环境,在Sunray/Simulation/sunray_simulator/worlds
中定义了多个gazebo环境可进行跟换,如:bookstore.world、outdoor.world、football_field.world等 <arg name="uav_init_x" default="0.0"/>
和 <arg name="uav_init_y" default="0.0"/>
用来指定无人机的初始位置,还可以包括Z值, <arg name="uav_init_yaw" default="0.0"/>
用来指定无人机的初始偏航角 <arg name="gazebo_enable" default="true"/>
和 <arg name="gui" default="true"/>
gazebo_enable参数决定是否启用 Gazebo 仿真环境(默认启用),gui参数决定是否显示 Gazebo 图形界面(默认显示)<launch>
<!-- Gazebo 配置 -->
<arg name="gazebo_enable" default="true"/>
<arg name="gui" default="true"/>
<arg name="world" default="$(find sunray_simulator)/worlds/sunray_empty_world.world"/>
<!-- 启动 Gazebo -->
<group if="$(arg gazebo_enable)">
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="$(arg world)"/>
<arg name="gui" value="$(arg gui)"/>
<!-- /use_sim_time true # 使用仿真时间 -->
<!-- /use_sim_time false # 使用系统时间(默认) -->
<!-- 如果需要在rviz中正常显示,需要设置为true -->
<arg name="use_sim_time" value="false"/>
</include>
</group>
<!-- 无人车的ID -->
<arg name="ugv_id" default="1"/>
<!-- 无人车的名称 -->
<arg name="ugv_name" default="ugv"/>
<!-- 无人车的模型 -->
<arg name="ugv_model" default="wheeltec" />
<!-- 无人车的初始位置坐标 -->
<arg name="init_x" default="0"/>
<arg name="init_y" default="0"/>
<arg name="init_yaw" default="0"/>
<!-- 启动文件 -->
<include file="$(find sunray_simulator)/launch_basic/sunray_ugv_basic.launch">
<!-- 传递参数 -->
<arg name="ugv_id" value="$(arg ugv_id)" />
<arg name="ugv_model" value="$(arg ugv_model)" />
<arg name="init_x" value="$(arg init_x)"/>
<arg name="init_y" value="$(arg init_y)"/>
<arg name="init_yaw" value="$(arg init_yaw)"/>
</include>
<!-- 启动rviz -->
<node name="rviz_ugv" pkg="rviz" type="rviz" args="-d $(find sunray_simulator)/config/ugv.rviz" />
</launch>