Fluid FSM is built around a client-server architecture with ROS services, where a client requests the server to do something through ROS services. In other words, we (the client) ask the drone (the server) to do operations.
Have a look at Flow and Operations for more details.
-
Make sure you have MAVROS installed and PX4 and gazebo built.
MAVROS for Noetic:
sudo apt install ros-noetic-mavros ros-noetic-mavros-msgs
then:/opt/ros/noetic/lib/mavros/install_geographiclib_datasets.sh
PX4:
git clone https://github.com/PX4/PX4-Autopilot PX4
Gazebo needs gstreamer-library:
sudo apt-get install libgstreamer-plugins-base1.0-dev
-
Clone fluid into your catkin workspace in the src-folder.
-
Run
source devel/setup.bash
andcatkin build
at root of the catkin workspace. -
Start Airsim. If you're using gazebo and PX4, start both by running
make px4_sitl gazebo
from thePX4
folder. -
Start fluid server:
roslaunch fluid simulator.launch
. -
Start your client.
There are some example clients in the src/examples
folder.
- Clone fluid into the catkin workspace on the drone.
- Run
source devel/setup.bash
andcatkin build
at root of the catkin workspace. - Start fluid server via the roslaunch file:
roslaunch fluid pixhawk.launch
. - Launch your client node.
You have to use ROS services in order to communicate with the state machine. Have a look at the python and C++ examples in the src/examples folder.