diff --git a/andino_gz/.flake8 b/andino_gz/.flake8
new file mode 100644
index 0000000..1887502
--- /dev/null
+++ b/andino_gz/.flake8
@@ -0,0 +1,76 @@
+# .flake8
+#
+# DESCRIPTION
+# Configuration file for the python linter flake8.
+#
+[flake8]
+
+################### PROGRAM ################################
+
+# Specify the number of subprocesses that Flake8 will use to run checks in parallel.
+jobs = auto
+
+
+################### OUTPUT #################################
+
+########## FORMATTING ##########
+
+# Select the formatter used to display errors to the user.
+format = pylint
+# Print the total number of errors.
+count = True
+# Print the source code generating the error/warning in question.
+show-source = True
+# Count the number of occurrences of each error/warning code and print a report.
+statistics = False
+
+################### FILE PATTERNS ##########################
+
+# Provide a comma-separated list of glob patterns to exclude from checks.
+exclude =
+
+# Provide a comma-separate list of glob patterns to include for checks.
+filename =
+ *.py
+
+
+################### LINTING ################################
+
+########## ENVIRONMENT ##########
+
+# Provide a custom list of builtin functions, objects, names, etc.
+builtins =
+
+
+########## OPTIONS ##########
+
+# Set the maximum length that any line (with some exceptions) may be.
+max-line-length = 120
+# Set the maximum allowed McCabe complexity value for a block of code.
+max-complexity = 10
+# Toggle whether pycodestyle should enforce matching the indentation of the opening bracket’s line.
+# incluences E131 and E133
+hang-closing = True
+
+
+########## RULES ##########
+
+# ERROR CODES
+#
+# E/W - PEP8 errors/warnings (pycodestyle)
+# F - linting errors (pyflakes)
+# C - McCabe complexity error (mccabe)
+#
+# E133 - Closing bracket is missing indentation.
+# E226 - Missing whitespace around arithmetic operator.
+
+# Specify a list of codes to ignore.
+ignore =
+ E133,
+ E226,
+# Specify the list of error codes you wish Flake8 to report.
+select =
+ E,
+ W,
+ F,
+ C
diff --git a/andino_gz/CMakeLists.txt b/andino_gz/CMakeLists.txt
index c63b8d0..1c42d67 100644
--- a/andino_gz/CMakeLists.txt
+++ b/andino_gz/CMakeLists.txt
@@ -16,4 +16,10 @@ install(
share/${PROJECT_NAME}/
)
+if(BUILD_TESTING)
+ find_package(ament_cmake_flake8 REQUIRED)
+ enable_testing()
+ ament_flake8("--config" ${CMAKE_CURRENT_SOURCE_DIR}/.flake8)
+endif()
+
ament_package()
diff --git a/andino_gz/package.xml b/andino_gz/package.xml
index e7d0663..5edfb46 100644
--- a/andino_gz/package.xml
+++ b/andino_gz/package.xml
@@ -23,6 +23,8 @@
rviz2
xacro
+ ament_cmake_flake8
+
ament_cmake