Here is a geckodriver example for Firefox (win)
Start your Firefox with marionette enabled (standard port is 2828)
"C:\Program Files\Mozilla Firefox\firefox.exe" --marionette
Robot example script
*** Settings ***
Library SeleniumLibrary
*** Variables ***
${BROWSER} Firefox
${GECKODRIVER EXE} c:/MY_GECKODRIVER_PATH/geckodriver.exe
${GECKODRIVER LOG} C:/MY_GECKODRIVER_LOG_PATH/log.txt
*** Test Cases ***
Firefox Browser Test
Init Webdriver
Go To https://www.google.com
*** Keywords ***
Init Webdriver
${service_args}= Create List --connect-existing --marionette-port=2828 --marionette-host=127.0.0.1
Create Webdriver ${BROWSER} executable_path=${GECKODRIVER EXE} service_args=${service_args} service_log_path=${GECKODRIVER LOG}
-- Chrome example --
Start Chrome with remote debugging enabled (port is 9222)
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
Robot example script
*** Settings ***
Library SeleniumLibrary
Library Collections
*** Variables ***
${BROWSER} Chrome
${CHROMEDRIVER EXE} c:/MY_CHROMEDRIVER_PATH/chromedriver93.exe
${CHROMEDRIVER LOG} c:/MY_CHROMEDRIVER_LOG_PATH/chromedriver_log.txt
*** Test Cases ***
Chrome Browser Test
Init Webdriver
Go To https://stackoverflow.com
*** Keywords ***
Init Webdriver
${service_args}= Create List --log-path=${CHROMEDRIVER LOG} --verbose
${chromeOptions}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys,selenium.webdriver
${chromeCapabilities}= Call Method ${chromeOptions} to_capabilities
Set To Dictionary ${chromeCapabilities["goog:chromeOptions"]} debuggerAddress 127.0.0.1:9222
Create WebDriver ${BROWSER} desired_capabilities=${chromeCapabilities} executable_path=${CHROMEDRIVER EXE} service_args=${service_args}