How fsc-lab/fsc_octorotor_simulation_ros2 works
This repository provides a Tarot T18 forest-monitoring simulation and two ways to command the simulated aircraft: QGroundControl missions or ROS 2 offboard waypoint following. In the ROS 2 route, the controller generates and tracks a smooth trajectory, sends PX4 commands over the XRCE-DDS link, and can visualize flight status; PX4 drives the Gazebo aircraft in the forest world. The tree-placement script and camera receiver are supporting runtime capabilities. Wiring beyond the README and sampled controller excerpts is not assumed.
Main entry points: offboard_ctrl_example.py Offboard controller · customforest.sdf Forest world · gzcam.py Gazebo camera receiver · tree_coordinates.py Tree layout generator
Components 17
Flight control
- QGroundControl
- Offboard controller
ros2_node/src/my_offboard_ctrl/my_offboard_ctrl/offboard_ctrl_example.py - Trajectory planning
ros2_node/src/my_offboard_ctrl/my_offboard_ctrl/offboard_ctrl_example.py - Flight visualization
ros2_node/src/my_offboard_ctrl/my_offboard_ctrl/offboard_ctrl_example.py
Simulation scene
- Gazebo simulator
- Forest world
gazebo/gazebo_world/customforest.sdf - T18 models
gazebo/gazebo_model/t18 - Camera variant
gazebo/gazebo_model/t18_mono_cam - Pine tree model
gazebo/gazebo_model/Pine Tree - Tree layout generator
gazebo/gazebo_world/tree_coordinates.py
Vehicle integration
- PX4 SITL
- T18 airframe
px4_airframe_configuration/4012_gz_t18 - PX4 ROS messages
ros2_node/src/px4_msgs - Micro XRCE-DDS Agent
Monitoring
- Gazebo camera receiver
ros2_node/src/my_offboard_ctrl/my_offboard_ctrl/gzcam.py - Gazebo camera stream
Other components
- Mission operator
Connections 21
- Mission operator → QGroundControl: plans mission
- QGroundControl → PX4 SITL: uploads mission
- Mission operator → Offboard controller: starts node
- Offboard controller → Trajectory planning: generates trajectory
- Offboard controller → PX4 ROS messages: uses message definitions
- Offboard controller → Micro XRCE-DDS Agent: sends commands
- Micro XRCE-DDS Agent → PX4 SITL: transports DDS
- PX4 SITL → Micro XRCE-DDS Agent: publishes vehicle state
- Micro XRCE-DDS Agent → Offboard controller: delivers state
- T18 airframe → PX4 SITL: configures vehicle
- PX4 SITL → Gazebo simulator: controls simulated vehicle
- Gazebo simulator → PX4 SITL: returns simulation data
- Gazebo simulator → Forest world: loads world
- Gazebo simulator → T18 models: loads model
- Gazebo simulator → Camera variant: loads optional model
- Forest world → Pine tree model: includes trees
- Tree layout generator → Forest world: emits tree includes
- Offboard controller → Gazebo camera receiver: starts camera thread
- Gazebo camera receiver → Gazebo camera stream: subscribes
- Gazebo simulator → Gazebo camera stream: publishes images
- Offboard controller → Flight visualization: updates visualization