Skip to content

farol_bringup package

The farol_bringup is a ROS package that serves as the launching point of the entire farol stack. However, it does not act directly as the launcher, but instead it is used to replicate a bringup of our own to properly launch all the available vehicles. This can be attained using the following command:

dsor_pkg_bringup <PKG_NAME> <VEHICLE_NAME>

where PKG_NAME is the desired name for the bringup (to be added to _bringup), and VEHICLE_NAME is the desired vehicle to add to your bringup.You can add more vehicles later with the command:

dsor_add_vehicle_bringup <VEHICLE_NAME>

Inside the newly created bringup, you will find two main folders, the config/ and the launch/ folder. Each of them are further explained on their respective documentation tabs. However, it is better to tackle first the difference between the original farol_bringup and the replicated bringup.

Config

In the config/ folder reside the configuration files regarding the system in terms of what is general to all vehicles available in the bringup, on the personal_ros.yaml file in the dev_config/ folder, and the configurations specific to each type of vehicle, inside the vehicles/ folder.

personal.yaml file

In here, you can edit the general parameters, like new topics and ports used for CPF communications, which are common to all types of vehicles. The vehicle within the topic should be replaced by the one instantiated when launching the system. The topics should resemble something like the following:

addons/console_server:
    PORT: 7080

cooperative/cpf_wifi_server:
    broadcast_port: 2808

cooperative/cpf_wifi_client:
    broadcast_port: 2808

example_node:
    topics:
        publisher:
            example_pub: '/#vehicle#/example/example_pub'
        subscriber:
            example_sub: '/#vehicle#/example/example_sub'

This file is used to override the permanent version with default values inside the farol_bringup package. What really happens is that the permanent file is loaded and then the personal_ros.yaml file is also loaded. This means that if the same fields exist in both files, the fields specified in the personal_ros.yaml are the ones which are effectively loaded.

Vehicle configuration files

Inside the vehicles/ folder within your own bringup, reside the folders with respect to each type of vehicle available in the bringup. To override certain default parameters defined in the config files inside the farol_bringup stack, you need to create the right config files and write the new values you want to assign to the existing variables. For example, to assign new gains to the controllers, you just need to create the control.yaml file inside the folder of the vehicle you want to override. The following example demonstrates the overriding of the depth controller's PID gains:

inner_loops_pid:
    controllers:
        depth:
            kp: 1.0
            ki: 1.0
            kd: 1.0

process.yaml file

Finally, the process.yaml file needs to be configured so that the new config file inside the custom bringup is loaded. There are many processes defined within the file, although for now you just need to pay attention to the first one, named 'load':

processes:
    - name: 'load' # Set to true to load all parameters need to run the stack
      launch_on_startup: true
      delay_before_start: 0.0
      cmd: 'roslaunch farol_bringup load_parameters.launch'
      args: # set to true when you want to add or override any default parameter(s)
            - common:= false
            - simulation:= false
            - addons:= false
            - navigation:= false
            - controllers:= false
            - cooperative:= false
            - comms:= false
            - acoustic_data:= false
            - planning:= false 
      dependencies:
            []

Nodes

Dependencies

  • None

Last update: October 28, 2022