Skip to content

Ros Controllers

The Ros Controllers node converts a state measurement into an input that should be applied to the car. It can be launched by executing

roslaunch ros_controllers default.launch

ROS Information for Controllers

Available Visualizers

The package also contains different visualizers which can be used to visualize the controller in rviz:

Configuration

Independent of the selected controller, the following generic arguments must be provided in order to use any controller
Example controller_config.yaml

state_type: pacejka_car  # Internal state type of the controller
input_type: pacejka_car  # Internal input type of the controller
controller_type: FF_FB   # Unique controller identifier

max_rate: 50 # Rate at which controller node should run
visualization_rate: 10 # Rate at which visualizer for this controller should run

controller_params:
  # controller specific arguments

model:
  # Model specific parameters
  # This overrides the base model loaded into the /<car_name>/model/* 
  # namespace and allows for a model missmatch between the controller and the simulation
  model_params: # e.g. only missmatch mass and Intertia for pacejka model
  #    m: 0.2
  #    I: 0.000605

visualizer:
  type: last_refrence | mpc # visualizer type
   # Visualizer specific arguments

Launch file Arguments

The default.launch file accepts the following arguments:

Argument Default Description
car_state_topic controller_node/state Topic where state of the car is published.
car_input_topic controller_node/control_input Topic where the control input will be published
controller_config_file $(find ros_controllers)/config/ff_fb_controller.yaml Path to configuration.yaml file as described above
visualizer_topic controller_node/controller_visualization Topic where the visualization markers are published