diff --git a/.github/workflows/gh_pages.yaml b/.github/workflows/gh_pages.yaml
index b54342c28..39b70c62a 100644
--- a/.github/workflows/gh_pages.yaml
+++ b/.github/workflows/gh_pages.yaml
@@ -20,7 +20,7 @@ jobs:
# Wait for the CI to finish so we can download the docs artifact
- name: Wait for CI
- uses: lewagon/wait-on-check-action@v1.0.0
+ uses: lewagon/wait-on-check-action@v1.3.3
if: github.event.action != 'closed'
with:
ref: ${{ github.event.pull_request.head.ref }}
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 7751457af..79a11871a 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -11,15 +11,15 @@ ci:
repos:
- repo: https://github.com/adrienverge/yamllint.git
- rev: v1.32.0
+ rev: v1.33.0
hooks:
- id: yamllint
- repo: https://github.com/psf/black
- rev: 23.9.1
+ rev: 24.1.1
hooks:
- id: black
- repo: https://github.com/pre-commit/mirrors-clang-format
- rev: v16.0.6
+ rev: v17.0.6
hooks:
- id: clang-format
- repo: https://github.com/PyCQA/autoflake
@@ -34,18 +34,18 @@ repos:
exclude: ^docker|deprecated|NaviGator/simulation/VRX
args: [--severity=warning, --exclude=SC1090]
- repo: https://github.com/scop/pre-commit-shfmt
- rev: v3.7.0-1
+ rev: v3.7.0-4
hooks:
- id: shfmt
exclude: ^docker|deprecated|NaviGator/simulation/VRX
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
- rev: 'v0.0.292'
+ rev: 'v0.2.0'
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
- repo: https://github.com/codespell-project/codespell
- rev: v2.2.5
+ rev: v2.2.6
hooks:
- id: codespell
args:
@@ -73,11 +73,12 @@ repos:
- id: prettier-package-xml
- id: sort-package-xml
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v4.4.0
+ rev: v4.5.0
hooks:
- id: check-added-large-files
- id: check-case-conflict
- id: check-merge-conflict
+ exclude_types: [markdown, rst]
- id: check-executables-have-shebangs
- id: check-symlinks
- id: check-json
diff --git a/NaviGator/gnc/navigator_path_planner/nodes/path_planner.py b/NaviGator/gnc/navigator_path_planner/nodes/path_planner.py
index ba33ca850..1f6ff6793 100755
--- a/NaviGator/gnc/navigator_path_planner/nodes/path_planner.py
+++ b/NaviGator/gnc/navigator_path_planner/nodes/path_planner.py
@@ -1070,7 +1070,7 @@ def reevaluate_plan(self) -> None:
def action_check(self, _: rospy.timer.TimerEvent) -> None:
"""
Manages action preempting. Serves as the callback to a Timer operating
- opereating every self.revisit_period seconds.
+ operating every self.revisit_period seconds.
"""
if self.preempted or not self.move_server.is_active():
return
diff --git a/NaviGator/hardware_drivers/navigator_kill_board/navigator_kill_board/constants.py b/NaviGator/hardware_drivers/navigator_kill_board/navigator_kill_board/constants.py
index 83663e034..d5eaef7e4 100644
--- a/NaviGator/hardware_drivers/navigator_kill_board/navigator_kill_board/constants.py
+++ b/NaviGator/hardware_drivers/navigator_kill_board/navigator_kill_board/constants.py
@@ -17,6 +17,7 @@
The computer can also command a kill (for example, if ROS notices a criticaly low battery)
by sending the COMPUTER.KILL.REQUEST and undone with COMPUTER.CLEAR.REQUEST
"""
+
constants = {
"TIMEOUT_SECONDS": 8.0, # How often board must be pinged to not set HEARTBERAT_REMOTE True
# Note: not official documented, this is just a guess
diff --git a/NaviGator/mission_control/navigator_alarm/navigator_alarm_handlers/battery_voltage.py b/NaviGator/mission_control/navigator_alarm/navigator_alarm_handlers/battery_voltage.py
index 6c25b9169..c10b13c91 100644
--- a/NaviGator/mission_control/navigator_alarm/navigator_alarm_handlers/battery_voltage.py
+++ b/NaviGator/mission_control/navigator_alarm/navigator_alarm_handlers/battery_voltage.py
@@ -27,9 +27,9 @@ def _check_voltage(self, msg):
if not self._raised or self._severity != severity:
self.broadcaster.raise_alarm(
severity=severity,
- problem_description="battery critcaly low"
- if severity == 2
- else "battery low",
+ problem_description=(
+ "battery critcaly low" if severity == 2 else "battery low"
+ ),
parameters={"voltage": voltage},
)
diff --git a/NaviGator/mission_control/navigator_alarm/navigator_alarm_handlers/odom_kill.py b/NaviGator/mission_control/navigator_alarm/navigator_alarm_handlers/odom_kill.py
index 2bc5e6c43..d0fa63afd 100755
--- a/NaviGator/mission_control/navigator_alarm/navigator_alarm_handlers/odom_kill.py
+++ b/NaviGator/mission_control/navigator_alarm/navigator_alarm_handlers/odom_kill.py
@@ -51,9 +51,7 @@ def check_continuity(self, odom):
self._raised = True # Avoid raising multiple times
rospy.logwarn("ODOM DISCONTINUITY DETECTED")
self.ab.raise_alarm(
- problem_description="ODOM DISCONTINUITY DETECTED. JUMPED {} METERS".format(
- jump,
- ),
+ problem_description=f"ODOM DISCONTINUITY DETECTED. JUMPED {jump} METERS",
severity=5,
)
self.last_position = position
diff --git a/NaviGator/mission_control/navigator_missions/launch/mission_params.yaml b/NaviGator/mission_control/navigator_missions/launch/mission_params.yaml
index 7b44edc7e..c4ee5940c 100644
--- a/NaviGator/mission_control/navigator_missions/launch/mission_params.yaml
+++ b/NaviGator/mission_control/navigator_missions/launch/mission_params.yaml
@@ -157,14 +157,14 @@ dock_shape_1:
param: /mission/identify_dock/shape_1
options: [CIRCLE, TRIANGLE, CROSS, ANY]
description: >
- The shape of the first bay to dock in during the dentify
+ The shape of the first bay to dock in during the identify
Symbols and Dock mission. If set to ANY, mission should dock based on the
color parameter and set this parameter during the mission
dock_color_1:
param: /mission/identify_dock/color_1
options: [RED, GREEN, BLUE, ANY]
description: >
- The color of the first bay to dock in during the dentify Symbols and Dock
+ The color of the first bay to dock in during the identify Symbols and Dock
mission. If set to ANY, mission should dock based on the shape parameter
and set this parameter during the mission
@@ -174,7 +174,7 @@ dock_shape_2:
description: >
# yamllint disable-line rule:line-length
The shape of the second bay to dock in during the
- dentify Symbols and Dock mission. If set to ANY,
+ identify Symbols and Dock mission. If set to ANY,
mission should dock based on the color parameter and set this
parameter during the mission
dock_color_2:
@@ -183,6 +183,6 @@ dock_color_2:
description: >
# yamllint disable-line rule:line-length
The color of the second bay to dock in during the
- dentify Symbols and Dock mission.
+ identify Symbols and Dock mission.
If set to ANY, mission should dock based on the shape
parameter and set this parameter during the mission
diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/constant_velocity.py b/NaviGator/mission_control/navigator_missions/navigator_missions/constant_velocity.py
index 5ae078c90..a0ce42a26 100644
--- a/NaviGator/mission_control/navigator_missions/navigator_missions/constant_velocity.py
+++ b/NaviGator/mission_control/navigator_missions/navigator_missions/constant_velocity.py
@@ -66,7 +66,7 @@ def decode_parameters(cls, parameters):
return parsed
async def run(self, args):
- # Publish a velocity of zero for a while to stabalize navigator
+ # Publish a velocity of zero for a while to stabilize navigator
self.send_feedback("Switching trajectory to constant")
await self.change_trajectory("constant")
await self.nh.sleep(0.1)
diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/demonstrate_navigation.py b/NaviGator/mission_control/navigator_missions/navigator_missions/demonstrate_navigation.py
index 6c53d35a4..599a388cc 100644
--- a/NaviGator/mission_control/navigator_missions/navigator_missions/demonstrate_navigation.py
+++ b/NaviGator/mission_control/navigator_missions/navigator_missions/demonstrate_navigation.py
@@ -68,7 +68,7 @@ async def run(self, parameters):
_, closest_reds = await self.get_sorted_objects("red_cylinder", 1)
_, closest_greens = await self.get_sorted_objects("green_cylinder", 1)
- # Rename the totems for their symantic name
+ # Rename the totems for their semantic name
green_close = closest_greens[0]
red_close = closest_reds[0]
@@ -83,7 +83,7 @@ async def run(self, parameters):
_, closest_reds = await self.get_sorted_objects("red_cylinder", 2)
_, closest_greens = await self.get_sorted_objects("green_cylinder", 2)
- # Rename the totems for their symantic name
+ # Rename the totems for their semantic name
green_far = closest_greens[1]
red_far = closest_reds[1]
diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/detect_deliver_2016.py b/NaviGator/mission_control/navigator_missions/navigator_missions/detect_deliver_2016.py
index 28c3ac4d9..dee540de0 100644
--- a/NaviGator/mission_control/navigator_missions/navigator_missions/detect_deliver_2016.py
+++ b/NaviGator/mission_control/navigator_missions/navigator_missions/detect_deliver_2016.py
@@ -153,9 +153,7 @@ async def do_circle():
await self.nh.sleep(0.25)
continue
fprint(
- "Shape ({}found, using normal to look at other 3 shapes if needed".format(
- res[0],
- ),
+ f"Shape ({res[0]}found, using normal to look at other 3 shapes if needed",
title="DETECT DELIVER",
msg_color="green",
)
diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/move.py b/NaviGator/mission_control/navigator_missions/navigator_missions/move.py
index 8ae428057..a9debd213 100755
--- a/NaviGator/mission_control/navigator_missions/navigator_missions/move.py
+++ b/NaviGator/mission_control/navigator_missions/navigator_missions/move.py
@@ -149,7 +149,7 @@ async def run(self, args):
"yl": "yaw_left",
"yr": "yaw_right",
}
- command = command if command not in shorthand else shorthand[command]
+ command = shorthand.get(command, command)
movement = getattr(self.move, command)
trans_move = command[:3] != "yaw"
diff --git a/NaviGator/mission_control/navigator_missions/navigator_missions/pose_editor.py b/NaviGator/mission_control/navigator_missions/navigator_missions/pose_editor.py
index 5f25f36ab..d2b1855cd 100644
--- a/NaviGator/mission_control/navigator_missions/navigator_missions/pose_editor.py
+++ b/NaviGator/mission_control/navigator_missions/navigator_missions/pose_editor.py
@@ -341,9 +341,7 @@ def as_MoveGoal(self, move_type=MoveGoal.DRIVE, **kwargs):
for key in kwargs:
if not hasattr(MoveGoal, key):
fprint(
- "MoveGoal msg doesn't have a field called '{}' you tried to set via kwargs.".format(
- key,
- ),
+ f"MoveGoal msg doesn't have a field called '{key}' you tried to set via kwargs.",
title="POSE_EDITOR",
msg_color="red",
)
diff --git a/NaviGator/mission_control/navigator_missions/vrx_missions/dock.py b/NaviGator/mission_control/navigator_missions/vrx_missions/dock.py
index 23d7cdfb3..44a3cacae 100644
--- a/NaviGator/mission_control/navigator_missions/vrx_missions/dock.py
+++ b/NaviGator/mission_control/navigator_missions/vrx_missions/dock.py
@@ -607,7 +607,7 @@ async def prepare_for_docking(self):
# This function looks at the two squares in front of the boat
# and it gets the middle pixel between the two squares.
# If the middle pixel is for some reason not in the middle of our camera...
- # adjust the boat postiion before docking
+ # adjust the boat position before docking
print("prepare for landing!")
img = await self.front_left_camera_sub.get_next_message()
diff --git a/NaviGator/satellite/rviz_satellite/src/aerialmap_display.cpp b/NaviGator/satellite/rviz_satellite/src/aerialmap_display.cpp
index 22a307f76..bf5ec8b20 100644
--- a/NaviGator/satellite/rviz_satellite/src/aerialmap_display.cpp
+++ b/NaviGator/satellite/rviz_satellite/src/aerialmap_display.cpp
@@ -416,7 +416,7 @@ void AerialMapDisplay::assembleScene()
// determine location of this tile, flipping y in the process
const double x = (tile.x() - loader_->centerTileX()) * tile_w + origin_x;
const double y = -(tile.y() - loader_->centerTileY()) * tile_h + origin_y;
- // don't re-use any ids
+ // don't reuse any ids
const std::string name_suffix = std::to_string(tile.x()) + "_" + std::to_string(tile.y()) + "_" +
std::to_string(map_id_) + "_" + std::to_string(scene_id_);
diff --git a/NaviGator/scripts/bash_aliases.sh b/NaviGator/scripts/bash_aliases.sh
index 216b1ff80..de6da5f4b 100755
--- a/NaviGator/scripts/bash_aliases.sh
+++ b/NaviGator/scripts/bash_aliases.sh
@@ -18,7 +18,7 @@ nthrust() {
topic="/$1_motor/cmd"
publishers=$(rostopic info "$topic" | grep Publishers)
if [ "$publishers" != "Publishers: None" ]; then
- echo "Somone is already publishing to $topic. Perhaps you need to kill thrust mapper?"
+ echo "Someone is already publishing to $topic. Perhaps you need to kill thrust mapper?"
return 1
fi
rostopic pub "$topic" "roboteq_msgs/Command" "setpoint: $2" -r100
diff --git a/NaviGator/utils/navigator_msgs/srv/GetDockBays.srv b/NaviGator/utils/navigator_msgs/srv/GetDockBays.srv
index 9a39764bd..7081b1b07 100644
--- a/NaviGator/utils/navigator_msgs/srv/GetDockBays.srv
+++ b/NaviGator/utils/navigator_msgs/srv/GetDockBays.srv
@@ -2,4 +2,4 @@
geometry_msgs/Point[3] bays #The positions in ENU frame of the center of the three bays 0=left, 1=center, 2=right
geometry_msgs/Vector3 normal #Vector or normal pointing away from plane of dock back
bool success #False if an error occurred getting dock bays
-string error #Descripion of error if success=false
+string error #Description of error if success=false
diff --git a/NaviGator/utils/navigator_tools/nodes/navigator_status_tui b/NaviGator/utils/navigator_tools/nodes/navigator_status_tui
index 3efa0a5d1..0fc39eb3b 100755
--- a/NaviGator/utils/navigator_tools/nodes/navigator_status_tui
+++ b/NaviGator/utils/navigator_tools/nodes/navigator_status_tui
@@ -35,7 +35,7 @@ class nav_tui:
self.panel.hide()
panel.update_panels()
self.rate = rospy.Rate(2) # Fixed rate for while loop to update at: 2 hz
- # The following are default field initalizations for various values that that will be overwritten
+ # The following are default field initializations for various values that that will be overwritten
self.voltage = 0
self.wrench = None
self.LAT = None
@@ -214,15 +214,13 @@ class nav_tui:
if len(self.decode_fault_status(self.FL_fault)) == 0:
self.window.addstr(5, self.x / 2 - 7, "No faults", curses.color_pair(3))
else:
- n = 0
- for fault in self.decode_fault_status(self.FL_fault):
+ for n, fault in enumerate(self.decode_fault_status(self.FL_fault)):
self.window.addstr(
5 + n,
self.x / 2 - 7,
"%s" % fault,
curses.color_pair(1),
)
- n += 1
self.window.addstr(14, self.x / 2 - 7, "Back Left", color)
if len(self.decode_fault_status(self.BL_fault)) == 0:
diff --git a/NaviGator/utils/remote_control/navigator_emergency_control/nodes/navigator_emergency.py b/NaviGator/utils/remote_control/navigator_emergency_control/nodes/navigator_emergency.py
index 8077b4601..0bd27c291 100755
--- a/NaviGator/utils/remote_control/navigator_emergency_control/nodes/navigator_emergency.py
+++ b/NaviGator/utils/remote_control/navigator_emergency_control/nodes/navigator_emergency.py
@@ -95,7 +95,7 @@ def check_for_timeout(self, joy: Joy):
def joy_recieved(self, joy: Joy) -> None:
"""
- Button elements are being assigned and simplied to readable names. The
+ Button elements are being assigned and simplified to readable names. The
number of deployments or retractions for thrusters are being updated based
on several conditions. Moreover, additional settings are changed based on the
state of the controller and the activation of potential alarms or switches.
diff --git a/NaviGator/utils/voltage_gui/src/voltage_gui.py b/NaviGator/utils/voltage_gui/src/voltage_gui.py
index 932dbc22b..79e6a0e85 100644
--- a/NaviGator/utils/voltage_gui/src/voltage_gui.py
+++ b/NaviGator/utils/voltage_gui/src/voltage_gui.py
@@ -184,7 +184,7 @@ def resizeFont(self) -> None: # done
threshFont = QtGui.QFont("Times", (self.fontSize) / 3, QtGui.QFont.Bold)
self.labelThresh.setFont(threshFont)
- # Sets the text of the thrshold info box
+ # Sets the text of the threshold info box
def initThresh(self) -> None:
"""
Sets the text of the threshold info box
diff --git a/SubjuGator/command/subjugator_launch/config/passive_sonar.yaml b/SubjuGator/command/subjugator_launch/config/passive_sonar.yaml
index 9901f9703..e55aec3da 100644
--- a/SubjuGator/command/subjugator_launch/config/passive_sonar.yaml
+++ b/SubjuGator/command/subjugator_launch/config/passive_sonar.yaml
@@ -3,7 +3,7 @@
dist_h: 2.286e-02
# speed of sound in water
v_sound: 1482
-# target Frquency in Hz
+# target Frequency in Hz
triggering/target_frequency: 30000
# tolerance around target frequerncy in Hz
triggering/frequency_tolerance: 100
diff --git a/SubjuGator/command/subjugator_launch/launch/subsystems/nav_box.launch b/SubjuGator/command/subjugator_launch/launch/subsystems/nav_box.launch
index eb5e1bc31..3dee6ee81 100644
--- a/SubjuGator/command/subjugator_launch/launch/subsystems/nav_box.launch
+++ b/SubjuGator/command/subjugator_launch/launch/subsystems/nav_box.launch
@@ -42,10 +42,10 @@
scale:
- - [0.993770963897068, 0.00105871125374563, 7.659410525291767e-05]
- - [0.00105871125374563, 0.9996814868251349, -0.0011040738267441828]
- - [7.659410525291767e-05, -0.001104073826744163, 1.0065910531028952]
- shift: [1.2551999807772446e-06, -1.1666595150804588e-06, 6.895773090438596e-08]
+ - [0.9991765357958566, 0.006242798579443988, -0.008472478269327878]
+ - [0.006242798579443957, 1.0016179705091928, 0.0059841151097914345]
+ - [-0.008472478269327836, 0.0059841151097913, 0.999354597532967]
+ shift: [7.889247409445414e-06, 4.879179471165382e-06, 7.46017199298374e-06]
diff --git a/SubjuGator/drivers/magnetic_compensation/sub8_magnetic_hardsoft_compensation/scripts/generate_config b/SubjuGator/drivers/magnetic_compensation/sub8_magnetic_hardsoft_compensation/scripts/generate_config
index 4b65395af..342292350 100755
--- a/SubjuGator/drivers/magnetic_compensation/sub8_magnetic_hardsoft_compensation/scripts/generate_config
+++ b/SubjuGator/drivers/magnetic_compensation/sub8_magnetic_hardsoft_compensation/scripts/generate_config
@@ -132,9 +132,11 @@ if __name__ == "__main__":
with rosbag.Bag(sys.argv[1]) as bag:
points = numpy.array(
[
- mil_ros_tools.rosmsg_to_numpy(msg.magnetic_field)
- if hasattr(msg, "magnetic_field")
- else mil_ros_tools.rosmsg_to_numpy(msg.vector)
+ (
+ mil_ros_tools.rosmsg_to_numpy(msg.magnetic_field)
+ if hasattr(msg, "magnetic_field")
+ else mil_ros_tools.rosmsg_to_numpy(msg.vector)
+ )
for topic, msg, t in bag.read_messages(topics=["/imu/mag_raw"])
],
)
diff --git a/SubjuGator/perception/subjugator_perception/nodes/dice_detect.py b/SubjuGator/perception/subjugator_perception/nodes/dice_detect.py
index 55d1dd5e2..312123597 100755
--- a/SubjuGator/perception/subjugator_perception/nodes/dice_detect.py
+++ b/SubjuGator/perception/subjugator_perception/nodes/dice_detect.py
@@ -93,7 +93,7 @@ def detect(self, dice_img):
params.minConvexity = 0.8 # 1 = perfect convex hull
# Filter by Inertia
params.filterByInertia = True
- params.minInertiaRatio = 0.4 # Defines the ellipsoid 1= detects only cirlces
+ params.minInertiaRatio = 0.4 # Defines the ellipsoid 1= detects only circles
# 0 = Detects even lines
# Create a detector with the parameters
diff --git a/SubjuGator/perception/subjugator_perception/nodes/hsv_calibration.py b/SubjuGator/perception/subjugator_perception/nodes/hsv_calibration.py
index 4a67f4bb7..433133431 100755
--- a/SubjuGator/perception/subjugator_perception/nodes/hsv_calibration.py
+++ b/SubjuGator/perception/subjugator_perception/nodes/hsv_calibration.py
@@ -36,13 +36,17 @@ def parse_string(threshes):
def reconfigure(self, config, level):
try:
self.lower = np.array(self.parse_string(config["dyn_lower"]))
- rospy.logwarn("HSV lower bound below minimum value") if (
- self.lower < 0
- ).any() else None
+ (
+ rospy.logwarn("HSV lower bound below minimum value")
+ if (self.lower < 0).any()
+ else None
+ )
self.upper = np.array(self.parse_string(config["dyn_upper"]))
- rospy.logwarn("HSV upper bound above maximum values") if (
- self.upper[0] > 179
- ).any() or (self.upper[1:] > 255).any() else None
+ (
+ rospy.logwarn("HSV upper bound above maximum values")
+ if (self.upper[0] > 179).any() or (self.upper[1:] > 255).any()
+ else None
+ )
except ValueError as e:
rospy.logwarn(f"Invalid dynamic reconfigure: {e}")
diff --git a/SubjuGator/perception/subjugator_perception/nodes/orange_rectangle_finder.py b/SubjuGator/perception/subjugator_perception/nodes/orange_rectangle_finder.py
index 0701c3b05..237fe94e3 100755
--- a/SubjuGator/perception/subjugator_perception/nodes/orange_rectangle_finder.py
+++ b/SubjuGator/perception/subjugator_perception/nodes/orange_rectangle_finder.py
@@ -52,7 +52,7 @@ class OrangeRectangleFinder:
* Transform this frames pose into /map frame
* Plug this frames pose in /map into a kalman filter to reduce noise
- TODO: Allow for two objects to be identifed at once, both filtered through its own KF
+ TODO: Allow for two objects to be identified at once, both filtered through its own KF
"""
# Coordinate axes for debugging image
diff --git a/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/HOG/HOG_SVM_trainer.py b/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/HOG/HOG_SVM_trainer.py
index bbdb7aefb..01e85b3a2 100644
--- a/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/HOG/HOG_SVM_trainer.py
+++ b/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/HOG/HOG_SVM_trainer.py
@@ -16,8 +16,7 @@
class_list = np.array(0)
# loop through the training images
-count = 0
-for i in os.listdir(os.path.abspath(folder)):
+for count, i in enumerate(os.listdir(os.path.abspath(folder))):
# get the roi from the file
path = folder + "/" + i
roi_str = f.readline()
@@ -72,7 +71,6 @@
class_temp = np.empty(len_myinvhog / 9)
class_temp.fill(-1)
class_list = np.append(class_list, class_temp)
- count += 1
# hack
class_list = np.delete(class_list, [0])
diff --git a/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/machine_learning/boost_auto.py b/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/machine_learning/boost_auto.py
index c9027ff60..c1cf17e1a 100644
--- a/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/machine_learning/boost_auto.py
+++ b/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/machine_learning/boost_auto.py
@@ -100,10 +100,11 @@ def train_on_data(observation_list, label_list, split_factor=4):
s_time = time.time()
process_round = 0
# Split this into multiple passes in an attempt to free RAM (no idea if this works).
- for x, y in zip(all_observations_split, all_labels_split):
+ for process_round, (x, y) in enumerate(
+ zip(all_observations_split, all_labels_split),
+ ):
print(f"Training subset {process_round + 1}/{split_factor}.")
boost.train(x, cv2.CV_ROW_SAMPLE, y, params=parameters)
- process_round += 1
print(f"Time to complete: {time.time() - s_time}")
print("Done! Saving...")
diff --git a/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/marker_occ_grid.py b/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/marker_occ_grid.py
index 9261de0ac..c547f7847 100644
--- a/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/marker_occ_grid.py
+++ b/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/marker_occ_grid.py
@@ -174,7 +174,7 @@ def return_pose(self, srv):
self.poly_generator = self.polygon_generator()
return [0, False, srv.intial_position]
- # We search at 1.5 * r so that there is some overlay in the search feilds.
+ # We search at 1.5 * r so that there is some overlay in the search fields.
np_pose = msg_helpers.pose_to_numpy(srv.intial_position)
rot_mat = make_2D_rotation(
tf.transformations.euler_from_quaternion(np_pose[1])[2],
@@ -249,7 +249,6 @@ def polygon_generator(self, n=12):
class MarkerOccGrid(OccGridUtils):
-
"""
Handles updating occupancy grid when new data comes in.
TODO: Upon call can return some path to go to in order to find them.
diff --git a/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/rviz.py b/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/rviz.py
index c46dd18ea..e6af8929a 100644
--- a/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/rviz.py
+++ b/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/rviz.py
@@ -9,7 +9,6 @@
class RvizVisualizer:
-
"""Cute tool for drawing both depth and height-from-bottom in RVIZ"""
def __init__(self, topic="visualization/markers"):
diff --git a/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/visual_threshold_tools.py b/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/visual_threshold_tools.py
index 7ec7d04c9..f30275cfc 100644
--- a/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/visual_threshold_tools.py
+++ b/SubjuGator/perception/subjugator_perception/subjugator_vision_tools/visual_threshold_tools.py
@@ -63,7 +63,6 @@ def denormalize(val, _min, _max):
class ExtentDialog(traits.api.HasTraits):
-
"""A dialog to graphically adjust the extents of a threshold range"""
# Data extents
diff --git a/SubjuGator/perception/subjugator_perception/test/test_path_marker.py b/SubjuGator/perception/subjugator_perception/test/test_path_marker.py
index 4f3a621cc..5674ddf5a 100755
--- a/SubjuGator/perception/subjugator_perception/test/test_path_marker.py
+++ b/SubjuGator/perception/subjugator_perception/test/test_path_marker.py
@@ -17,7 +17,6 @@
class TestPathMarker(unittest.TestCase):
-
"""
Unit test for perception service finding orange path markers
Plays several bags with known pixel coordinates of path marker,
diff --git a/SubjuGator/simulation/subjugator_gazebo/diagnostics/gazebo_tests/common.py b/SubjuGator/simulation/subjugator_gazebo/diagnostics/gazebo_tests/common.py
index de7bc39f0..38a5baf41 100644
--- a/SubjuGator/simulation/subjugator_gazebo/diagnostics/gazebo_tests/common.py
+++ b/SubjuGator/simulation/subjugator_gazebo/diagnostics/gazebo_tests/common.py
@@ -8,7 +8,6 @@
class Job:
-
"""Inherit from this!"""
_job_name = "generic job"
diff --git a/SubjuGator/simulation/subjugator_simulation/subjugator_sim_tools/shaders/shader_manager.py b/SubjuGator/simulation/subjugator_simulation/subjugator_sim_tools/shaders/shader_manager.py
index edfb7d12f..192755207 100644
--- a/SubjuGator/simulation/subjugator_simulation/subjugator_sim_tools/shaders/shader_manager.py
+++ b/SubjuGator/simulation/subjugator_simulation/subjugator_sim_tools/shaders/shader_manager.py
@@ -36,7 +36,6 @@ def add_item(self, position, intensity):
class ShaderManager:
-
"""
This class is used when you want to have an entity switch out shaders at a specific time.
If you want to add another rule for when to switch out shaders:
diff --git a/SubjuGator/simulation/subjugator_simulation/subjugator_sim_tools/shaders/shaders.py b/SubjuGator/simulation/subjugator_simulation/subjugator_sim_tools/shaders/shaders.py
index d4a2e1f62..210a68e8e 100644
--- a/SubjuGator/simulation/subjugator_simulation/subjugator_sim_tools/shaders/shaders.py
+++ b/SubjuGator/simulation/subjugator_simulation/subjugator_sim_tools/shaders/shaders.py
@@ -65,7 +65,6 @@ def recursive_dictionary(self, path, text):
class Shaders:
-
"""A Shaders class, which automatically contains all of the shaders
in the shaders folder
WTF?
diff --git a/SubjuGator/simulation/subjugator_simulation/subjugator_sim_tools/widgets/sub.py b/SubjuGator/simulation/subjugator_simulation/subjugator_sim_tools/widgets/sub.py
index cbb628bad..144ec195d 100644
--- a/SubjuGator/simulation/subjugator_simulation/subjugator_sim_tools/widgets/sub.py
+++ b/SubjuGator/simulation/subjugator_simulation/subjugator_sim_tools/widgets/sub.py
@@ -83,7 +83,6 @@ def make_visual(self, physical, position, thrust_indicators=False):
)
class ThrustGetter:
-
"""This is a pretty garbage thing, and will be replaced by the scenegraph system"""
def __init__(self, thruster_name, rdir):
diff --git a/SubjuGator/utils/subjugator_diagnostics/scripts/self_check.py b/SubjuGator/utils/subjugator_diagnostics/scripts/self_check.py
index 2552541cc..4db32b96c 100755
--- a/SubjuGator/utils/subjugator_diagnostics/scripts/self_check.py
+++ b/SubjuGator/utils/subjugator_diagnostics/scripts/self_check.py
@@ -18,7 +18,6 @@
class TemplateChecker:
-
"""Template for how each checker class should look.
This provides interface functions for the main function to use. You don't have to
implement them all in each checker.
diff --git a/docs/design/passive_sonar/passive_sonar.rst b/docs/design/passive_sonar/passive_sonar.rst
index 522368705..6f23f38ab 100644
--- a/docs/design/passive_sonar/passive_sonar.rst
+++ b/docs/design/passive_sonar/passive_sonar.rst
@@ -78,8 +78,8 @@ Configuration
*************
All parameters that are expected to be changed in tuining are ROS Params initialized in ``passive_sonar.yaml``
-To make a custom configation
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+To make a custom configuration
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* ``roscd subjugator_launch``
diff --git a/docs/electrical/onboarding.md b/docs/electrical/onboarding.md
index c48026aaa..45d73e7a7 100644
--- a/docs/electrical/onboarding.md
+++ b/docs/electrical/onboarding.md
@@ -20,7 +20,7 @@ including meeting times.
## Join the electrical GitHub
Unlike the software and mechanical teams (who share a GitHub repository), we use
-a separate repository for the electrical team. As a resut, you will need to be added
+a separate repository for the electrical team. As a result, you will need to be added
to this organization. Once you're in Slack (or you've come to the lab), ask an electrical
leader to add you to the GitHub organization. The organization can be found [here](https://github.com/uf-mil-electrical).
diff --git a/docs/extensions/attributetable.py b/docs/extensions/attributetable.py
index bfee064d7..53372cb61 100644
--- a/docs/extensions/attributetable.py
+++ b/docs/extensions/attributetable.py
@@ -2,6 +2,7 @@
Credit goes to discord.py and its creators for creating most of this file:
https://github.com/Rapptz/discord.py/blob/master/docs/extensions/attributetable.py
"""
+
import importlib
import inspect
import re
diff --git a/docs/extensions/builder.py b/docs/extensions/builder.py
index 84de6d59d..881417afc 100644
--- a/docs/extensions/builder.py
+++ b/docs/extensions/builder.py
@@ -2,6 +2,7 @@
Credit goes to discord.py and its creators for creating most of this file:
https://github.com/Rapptz/discord.py/blob/master/docs/extensions/attributetable.py
"""
+
from sphinx.builders.html import StandaloneHTMLBuilder
from sphinx.environment.adapters.indexentries import IndexEntries
from sphinx.writers.html5 import HTML5Translator
diff --git a/docs/indyav/software/planning/indyav_path/path_recorder.rst b/docs/indyav/software/planning/indyav_path/path_recorder.rst
index 77c3d4ee3..d1b5f1a47 100644
--- a/docs/indyav/software/planning/indyav_path/path_recorder.rst
+++ b/docs/indyav/software/planning/indyav_path/path_recorder.rst
@@ -33,7 +33,7 @@ Basic Usage Example
- Visualize this new topic in rviz by clicking `Add` and then `/odom2 -> Odometry`
-- Watch the red arrow advance from where the sub started to where the sub stopped updting approximately 10 times a second.
+- Watch the red arrow advance from where the sub started to where the sub stopped updating approximately 10 times a second.
Source Files
^^^^^^^^^^^^
diff --git a/docs/navigator/lessons22.md b/docs/navigator/lessons22.md
index 1c92fc298..25607540e 100644
--- a/docs/navigator/lessons22.md
+++ b/docs/navigator/lessons22.md
@@ -62,7 +62,7 @@ future teams to learn from!
It is quicker to tell when tools have gone missing (as each tool now has a
dedicated spot in the organizer), and which tool is missing. Furthermore, it
becomes easier for software members, electrical members, and mentors to find
- tools, even if they maybe are not acquianted with a deep knowledge of the
+ tools, even if they maybe are not acquainted with a deep knowledge of the
mechanical team.
* **Focus on bringing less and staying more organized.** - At RobotX 2022, we
were one of the teams who had brought the most equipment, yet we had a hard
diff --git a/docs/software/adding_documentation.md b/docs/software/adding_documentation.md
index cc1a1fd46..d91bf76e3 100644
--- a/docs/software/adding_documentation.md
+++ b/docs/software/adding_documentation.md
@@ -100,5 +100,5 @@ $ ./scripts/build_docs --scratch
```
## Contributing changes
-Now that you have made and verifed your changes, follow the [contributing guide](contributing)
+Now that you have made and verified your changes, follow the [contributing guide](contributing)
to add your changes to the repository.
diff --git a/docs/software/getting_started.md b/docs/software/getting_started.md
index 1215b276e..a40845665 100644
--- a/docs/software/getting_started.md
+++ b/docs/software/getting_started.md
@@ -420,7 +420,7 @@ launches the Gazebo GUI - aka, the thing you will actually interact with! If all
goes according to plan, you should see our robot in its own little world!
## Installing developer tools
-After you have verified that your Git setup is working appopriately, take a look
+After you have verified that your Git setup is working appropriately, take a look
at installing some developer tools on the [Developer Tools](/software/devtools)
page.
diff --git a/docs/software/help.md b/docs/software/help.md
index 060f8376b..f8250fa70 100644
--- a/docs/software/help.md
+++ b/docs/software/help.md
@@ -63,7 +63,7 @@ for examples of it being used.
## Search the internet
If your problem is not MIL-specific (issue with Linux, ROS, C++, etc),
-somone has most likely had the same problem and written about it on the internet.
+someone has most likely had the same problem and written about it on the internet.
You'll be surprised how often you can fix your issue by Googling the error.
## Search Slack
diff --git a/docs/software/noetic_migration.md b/docs/software/noetic_migration.md
index 6a79ec10a..6a93a86cd 100644
--- a/docs/software/noetic_migration.md
+++ b/docs/software/noetic_migration.md
@@ -45,7 +45,7 @@ before you commit.
Great, the code is now pretty! :D
-If you ran `python-modernize`, it will have suggested some changes to you, indcated
+If you ran `python-modernize`, it will have suggested some changes to you, indicated
by `+` and `-` signs. It may look something like this:
```diff
diff --git a/mil_common/axros b/mil_common/axros
index a4951d333..1b0399935 160000
--- a/mil_common/axros
+++ b/mil_common/axros
@@ -1 +1 @@
-Subproject commit a4951d33356c349856532ddef5c97c6ec6810c28
+Subproject commit 1b03999351fb5a61b202ff125f493229c2a1676b
diff --git a/mil_common/drivers/mil_passive_sonar/README.md b/mil_common/drivers/mil_passive_sonar/README.md
index 572ad4069..7010a3ae0 100644
--- a/mil_common/drivers/mil_passive_sonar/README.md
+++ b/mil_common/drivers/mil_passive_sonar/README.md
@@ -4,7 +4,7 @@ This package includes the main algorithm to find the direction of a pinger. It a
# Running:
Ensure that hydrophones -> ros is running and publishing a `mil_passive_sonar/Ping` msg.
-Then run `roslaunch mil_passive_sonar mil_passive_sonar.lauch`
+Then run `roslaunch mil_passive_sonar mil_passive_sonar.launch`
`mil_passive_sonar/FindPinger`
diff --git a/mil_common/drivers/mil_passive_sonar/scripts/triggering.py b/mil_common/drivers/mil_passive_sonar/scripts/triggering.py
index 897a76949..321a20411 100755
--- a/mil_common/drivers/mil_passive_sonar/scripts/triggering.py
+++ b/mil_common/drivers/mil_passive_sonar/scripts/triggering.py
@@ -96,7 +96,7 @@ def get_params(self):
self.enabled = rospy.get_param("~enable_on_launch")
# Attributes about our target frequency range
- # target Frquency in Hz
+ # target Frequency in Hz
self.target = rospy.get_param("~target_frequency")
# tolerance around that frequerncy in Hz
tolerance = rospy.get_param("~frequency_tolerance")
@@ -121,7 +121,7 @@ def get_params(self):
self.v_sound = rospy.get_param("v_sound")
# Misc attributes
- # minimum gradient of the max convolution wrt time to trigger a time of arivals calculation
+ # minimum gradient of the max convolution wrt time to trigger a time of arrivals calculation
self.threshold = rospy.get_param("~threshold")
self.trigger_offset = rospy.get_param("~trigger_offset")
# how far after the triggering time to make upper bound of samples at triggering in sec
diff --git a/mil_common/drivers/mil_pneumatic_actuator/nodes/pneumatic_actuator_node b/mil_common/drivers/mil_pneumatic_actuator/nodes/pneumatic_actuator_node
index bf8261177..920fb5a92 100755
--- a/mil_common/drivers/mil_pneumatic_actuator/nodes/pneumatic_actuator_node
+++ b/mil_common/drivers/mil_pneumatic_actuator/nodes/pneumatic_actuator_node
@@ -37,7 +37,7 @@ class Actuator:
if isinstance(config, int):
return cls.from_int(config)
type_str = config["type"]
- pulse_time = config["pulse_time"] if "pulse_time" in config else None
+ pulse_time = config.get("pulse_time")
open_id = config["ports"]["open_port"]["id"]
open_default = config["ports"]["open_port"]["default"]
if "close_port" in config["ports"]:
diff --git a/mil_common/drivers/mil_usb_to_can/mil_usb_to_can/sub8/utils.py b/mil_common/drivers/mil_usb_to_can/mil_usb_to_can/sub8/utils.py
index 0ef0cf9a1..7524e6dfe 100644
--- a/mil_common/drivers/mil_usb_to_can/mil_usb_to_can/sub8/utils.py
+++ b/mil_common/drivers/mil_usb_to_can/mil_usb_to_can/sub8/utils.py
@@ -114,13 +114,11 @@ def __bytes__(self) -> bytes:
@overload
@classmethod
- def _unpack_payload(cls, data: Literal[b""]) -> None:
- ...
+ def _unpack_payload(cls, data: Literal[b""]) -> None: ...
@overload
@classmethod
- def _unpack_payload(cls, data: bytes) -> bytes:
- ...
+ def _unpack_payload(cls, data: bytes) -> bytes: ...
@classmethod
def _unpack_payload(cls, data: bytes) -> bytes | None:
@@ -455,13 +453,11 @@ def calculate_checksum(self, data: bytes) -> int:
@overload
@classmethod
- def from_bytes(cls, data: Literal[b""]) -> None:
- ...
+ def from_bytes(cls, data: Literal[b""]) -> None: ...
@overload
@classmethod
- def from_bytes(cls: type[T], data: bytes) -> T:
- ...
+ def from_bytes(cls: type[T], data: bytes) -> T: ...
@classmethod
def from_bytes(cls: type[T], data: bytes) -> T | None:
diff --git a/mil_common/drivers/mil_usb_to_can/mil_usb_to_can/sub9/sub9_driver.py b/mil_common/drivers/mil_usb_to_can/mil_usb_to_can/sub9/sub9_driver.py
index 59db73c99..90928ff8d 100755
--- a/mil_common/drivers/mil_usb_to_can/mil_usb_to_can/sub9/sub9_driver.py
+++ b/mil_common/drivers/mil_usb_to_can/mil_usb_to_can/sub9/sub9_driver.py
@@ -31,8 +31,9 @@ class SimulatedUSBtoCANStream(SimulatedSerial):
def __init__(
self,
- devices: list[tuple[type[SimulatedCANDeviceHandle], list[type[Packet]]]]
- | None = None,
+ devices: (
+ list[tuple[type[SimulatedCANDeviceHandle], list[type[Packet]]]] | None
+ ) = None,
):
"""
Args:
@@ -214,16 +215,14 @@ def read_devices(
self,
*,
simulated: Literal[True],
- ) -> list[tuple[type[SimulatedCANDeviceHandle], list[type[Packet]]]]:
- ...
+ ) -> list[tuple[type[SimulatedCANDeviceHandle], list[type[Packet]]]]: ...
@overload
def read_devices(
self,
*,
simulated: Literal[False],
- ) -> list[tuple[type[CANDeviceHandle], list[type[Packet]]]]:
- ...
+ ) -> list[tuple[type[CANDeviceHandle], list[type[Packet]]]]: ...
def read_devices(
self,
diff --git a/mil_common/gnc/rawgps_common/src/rawgps_common/gps.py b/mil_common/gnc/rawgps_common/src/rawgps_common/gps.py
index 81393bb3f..d8fb03d5b 100644
--- a/mil_common/gnc/rawgps_common/src/rawgps_common/gps.py
+++ b/mil_common/gnc/rawgps_common/src/rawgps_common/gps.py
@@ -649,9 +649,7 @@ def generate_satellite_message(
for i in range(2):
dt = t - eph.t_oc
assert abs(dt) < week_length / 2
- deltat_SV_L1 = (
- eph.a_f0 + eph.a_f1 * dt + eph.a_f2 * dt**2 + deltat_r - eph.T_GD
- )
+ deltat_SV_L1 = eph.a_f0 + eph.a_f1 * dt + eph.a_f2 * dt**2 + deltat_r - eph.T_GD
t = t_SV - deltat_SV_L1
if i == 1:
sat_pos, deltat_r, sat_vel = eph.predict(t)
@@ -691,14 +689,16 @@ def generate_satellite_message(
time=-pseudo_range / c - deltat_SV_L1,
T_iono=T_iono,
T_tropo=T_tropo,
- carrier_distance=carrier_cycles * c / L1_f0
- if carrier_cycles is not None
- else nan,
+ carrier_distance=(
+ carrier_cycles * c / L1_f0 if carrier_cycles is not None else nan
+ ),
doppler_velocity=doppler_freq * c / L1_f0,
direction_enu=Vector3(*direction_enu),
- velocity_plus_drift=doppler_freq * c / L1_f0 + direction.dot(sat_vel)
- if doppler_freq is not None
- else nan,
+ velocity_plus_drift=(
+ doppler_freq * c / L1_f0 + direction.dot(sat_vel)
+ if doppler_freq is not None
+ else nan
+ ),
)
diff --git a/mil_common/mil_missions/mil_missions_core/__init__.py b/mil_common/mil_missions/mil_missions_core/__init__.py
index f4244279d..e603f4026 100644
--- a/mil_common/mil_missions/mil_missions_core/__init__.py
+++ b/mil_common/mil_missions/mil_missions_core/__init__.py
@@ -4,6 +4,7 @@
from to create robot-specific mission tasks. These mission classes can be imported
by the mission runner and then run.
"""
+
from .base_mission import BaseMission
from .chain_with_timeout import MakeChainWithTimeout
from .exceptions import (
diff --git a/mil_common/perception/mil_vision/include/mil_vision_lib/cv_tools.hpp b/mil_common/perception/mil_vision/include/mil_vision_lib/cv_tools.hpp
index 4709fa85f..af6f30853 100644
--- a/mil_common/perception/mil_vision/include/mil_vision_lib/cv_tools.hpp
+++ b/mil_common/perception/mil_vision/include/mil_vision_lib/cv_tools.hpp
@@ -76,7 +76,7 @@ unsigned int select_hist_mode(std::vector &histogram_modes, unsigned
// Takes in a grayscale image and segments out a semi-homogenous foreground
// object with pixel intensities close to . Tuning of last three
-// parameters may imrove results but default values should work well in
+// parameters may improve results but default values should work well in
// most cases.
void statistical_image_segmentation(const cv::Mat &src, cv::Mat &dest, cv::Mat &debug_img, const int hist_size,
const float **ranges, const int target, std::string image_name = "Unnamed Image",
diff --git a/mil_common/perception/mil_vision/mil_vision_tools/color_classifier.py b/mil_common/perception/mil_vision/mil_vision_tools/color_classifier.py
index df48a5881..c19e09c5e 100755
--- a/mil_common/perception/mil_vision/mil_vision_tools/color_classifier.py
+++ b/mil_common/perception/mil_vision/mil_vision_tools/color_classifier.py
@@ -94,7 +94,7 @@ def classify_features(self, features: np.ndarray) -> int:
def feature_probabilities(self, features: np.ndarray) -> List[float]:
"""
- Allows child classes to give probabilties for each possible class given
+ Allows child classes to give probabilities for each possible class given
a features vector, instead of just one classification. By default,
gives 1.0 to classified class and 0.0 to others.
diff --git a/mil_common/perception/mil_vision/mil_vision_tools/shape_finder.py b/mil_common/perception/mil_vision/mil_vision_tools/shape_finder.py
index 5ba5f78cb..33479a753 100644
--- a/mil_common/perception/mil_vision/mil_vision_tools/shape_finder.py
+++ b/mil_common/perception/mil_vision/mil_vision_tools/shape_finder.py
@@ -213,7 +213,7 @@ def get_pose_3D(
cam (Optional[PinholeCameraModel]): The camera model.
rectified (bool): If ``cam`` is set, set True if corners were found in an
already rectified image (image_rect_color topic).
- instrinsics (np.ndarray): Camera intrinisic matrix.
+ intrinsics (np.ndarray): Camera intrinisic matrix.
dist_coeffs (np.ndarray): Camera distortion coefficients.
Returns:
@@ -304,12 +304,12 @@ def __init__(self, length=1.0, width=1.0):
self.model_2D = np.zeros((50, 1, 2), dtype=np.int)
# Approximate an ellipse with 50 points, so that verify_contour is reasonable fast still
for idx, theta in enumerate(np.linspace(0.0, 2.0 * np.pi, num=50)):
- self.model_2D[idx][0][
- 0
- ] = self.length * 0.5 * scale + self.length * 0.5 * scale * np.cos(theta)
- self.model_2D[idx][0][
- 1
- ] = self.width * 0.5 * scale + self.width * 0.5 * scale * np.sin(theta)
+ self.model_2D[idx][0][0] = (
+ self.length * 0.5 * scale + self.length * 0.5 * scale * np.cos(theta)
+ )
+ self.model_2D[idx][0][1] = (
+ self.width * 0.5 * scale + self.width * 0.5 * scale * np.sin(theta)
+ )
def get_corners(self, contour, debug_image=None):
"""
diff --git a/mil_common/perception/mil_vision/mil_vision_tools/vision_node.py b/mil_common/perception/mil_vision/mil_vision_tools/vision_node.py
index d1c8d37e9..caaaf7fd6 100755
--- a/mil_common/perception/mil_vision/mil_vision_tools/vision_node.py
+++ b/mil_common/perception/mil_vision/mil_vision_tools/vision_node.py
@@ -27,7 +27,7 @@ def create_object_msg(
is needed/available in your application.
Args:
- name (str): Name of the identifed object.
+ name (str): Name of the identified object.
attributes (str): Attributes to attach to message, the purpose and value
of this attribute will vary by application. Defaults to an empty string.
confidence (Optional[float]): Float between 0 and 1 describing the confidence
diff --git a/mil_common/perception/mil_vision/ros_tools/on_the_fly_thresholder.py b/mil_common/perception/mil_vision/ros_tools/on_the_fly_thresholder.py
index 74fbc58dd..e70de289e 100755
--- a/mil_common/perception/mil_vision/ros_tools/on_the_fly_thresholder.py
+++ b/mil_common/perception/mil_vision/ros_tools/on_the_fly_thresholder.py
@@ -78,9 +78,11 @@ def __init__(self, img, thresh_type="bgr"):
def update_mask(self):
self.lower, self.upper = self.trackbars.get_bounds()
self.mask = cv2.inRange(
- self.image
- if self.thresh_type == "bgr"
- else cv2.cvtColor(self.image, cv2.COLOR_BGR2HSV),
+ (
+ self.image
+ if self.thresh_type == "bgr"
+ else cv2.cvtColor(self.image, cv2.COLOR_BGR2HSV)
+ ),
self.lower,
self.upper,
)
diff --git a/mil_common/perception/mil_vision/src/mil_vision_lib/colorizer/pcd_colorizer.cpp b/mil_common/perception/mil_vision/src/mil_vision_lib/colorizer/pcd_colorizer.cpp
index a0bd83adb..14333e5e3 100644
--- a/mil_common/perception/mil_vision/src/mil_vision_lib/colorizer/pcd_colorizer.cpp
+++ b/mil_common/perception/mil_vision/src/mil_vision_lib/colorizer/pcd_colorizer.cpp
@@ -24,7 +24,7 @@ PcdColorizer::PcdColorizer(ros::NodeHandle nh, string input_pcd_topic)
}
catch (std::exception &e)
{
- _err_msg = "COLORIZER: Suscriber or publisher error caught: "_s + e.what();
+ _err_msg = "COLORIZER: Subscriber or publisher error caught: "_s + e.what();
ROS_ERROR(_err_msg.c_str());
return;
}
diff --git a/mil_common/ros_alarms/nodes/alarm_server.py b/mil_common/ros_alarms/nodes/alarm_server.py
index bb602304c..b3a023778 100755
--- a/mil_common/ros_alarms/nodes/alarm_server.py
+++ b/mil_common/ros_alarms/nodes/alarm_server.py
@@ -178,9 +178,9 @@ def _create_alarm_handlers(self):
if alarm_name in self.alarms:
self.alarms[alarm_name].update(h.initial_alarm)
else:
- self.alarms[
- alarm_name
- ] = h.initial_alarm # Update even if already added to server
+ self.alarms[alarm_name] = (
+ h.initial_alarm
+ ) # Update even if already added to server
elif (
alarm_name not in self.alarms
): # Add default initial if not there already
diff --git a/mil_common/ros_alarms/ros_alarms/__init__.py b/mil_common/ros_alarms/ros_alarms/__init__.py
index 600cc75c8..9f257faae 100644
--- a/mil_common/ros_alarms/ros_alarms/__init__.py
+++ b/mil_common/ros_alarms/ros_alarms/__init__.py
@@ -39,6 +39,7 @@
Topic publishing any getting/setting updates that occur on alarms.
"""
+
from .alarms import (
Alarm,
AlarmBroadcaster,
diff --git a/mil_common/ros_alarms/test/roscpp/listener_test.cpp b/mil_common/ros_alarms/test/roscpp/listener_test.cpp
index 2138546e5..f365a1305 100644
--- a/mil_common/ros_alarms/test/roscpp/listener_test.cpp
+++ b/mil_common/ros_alarms/test/roscpp/listener_test.cpp
@@ -51,7 +51,7 @@ TEST(ListenerTest, listenerTest)
ab.getAlarm() = pxy;
ab.clear(); // alarm starts off cleared
- // Last update time happened wehen we called ab.clear()
+ // Last update time happened when we called ab.clear()
auto first_query = listener.getLastUpdateTime();
ab.updateSeverity(5); // This is an update to the alarm
diff --git a/mil_common/ros_alarms/test/rospy/python_tests.py b/mil_common/ros_alarms/test/rospy/python_tests.py
index 9c29a7305..c11b0f061 100755
--- a/mil_common/ros_alarms/test/rospy/python_tests.py
+++ b/mil_common/ros_alarms/test/rospy/python_tests.py
@@ -17,7 +17,7 @@ def __init__(self, *args):
super().__init__(*args)
""" Tests alarm client operations
- Creates some listeners and some broadcasters and tests various raising and clearing conditoins
+ Creates some listeners and some broadcasters and tests various raising and clearing conditions
Also tests various combination of parameters
"""
@@ -142,7 +142,7 @@ def test_callbacks(self):
self.cleared = False
self.both = False
- # Make sure callbacks run when they're suppsed to
+ # Make sure callbacks run when they're supposed to
ab_a.raise_alarm()
rospy.sleep(0.5)
diff --git a/mil_common/utils/mil_tools/mil_misc_tools/download.py b/mil_common/utils/mil_tools/mil_misc_tools/download.py
index 85001f69a..fbf3fe61d 100644
--- a/mil_common/utils/mil_tools/mil_misc_tools/download.py
+++ b/mil_common/utils/mil_tools/mil_misc_tools/download.py
@@ -11,6 +11,7 @@
[3] Download a file via http
http://stackoverflow.com/questions/22676
"""
+
import io as StringIO
import os
import urllib.request
diff --git a/mil_common/utils/mil_tools/mil_ros_tools/cv_debug.py b/mil_common/utils/mil_tools/mil_ros_tools/cv_debug.py
index 275abf969..b5695ded9 100644
--- a/mil_common/utils/mil_tools/mil_ros_tools/cv_debug.py
+++ b/mil_common/utils/mil_tools/mil_ros_tools/cv_debug.py
@@ -1,6 +1,7 @@
"""
Shows images for debugging purposes.
"""
+
import sys
from typing import Optional
diff --git a/mil_common/utils/mil_tools/mil_ros_tools/image_helpers.py b/mil_common/utils/mil_tools/mil_ros_tools/image_helpers.py
index 22f8eac56..45e12b931 100644
--- a/mil_common/utils/mil_tools/mil_ros_tools/image_helpers.py
+++ b/mil_common/utils/mil_tools/mil_ros_tools/image_helpers.py
@@ -98,7 +98,7 @@ class Image_Subscriber:
last_image_time (genpy.Time): The time of the last image received.
im_sub (rospy.Subscriber): The subscriber to the image topic. The topic
name and queue size are received through the constructor.
- info_sub (rospy.Susbcriber): The subscriber to the camera info topic.
+ info_sub (rospy.Subscriber): The subscriber to the camera info topic.
The topic name is derived from the root of the supplied topic and the
queue size is derived from the constructor.
bridge (CvBridge): The bridge between OpenCV and ROS.
diff --git a/mil_common/utils/mil_tools/mil_ros_tools/init_helpers.py b/mil_common/utils/mil_tools/mil_ros_tools/init_helpers.py
index 0a8541fd6..789b36153 100644
--- a/mil_common/utils/mil_tools/mil_ros_tools/init_helpers.py
+++ b/mil_common/utils/mil_tools/mil_ros_tools/init_helpers.py
@@ -2,6 +2,7 @@
This module provides functions which help to ensure that resources are available
when needed.
"""
+
import time
from typing import Any, Optional
diff --git a/mil_common/utils/mil_tools/mil_ros_tools/label_me_bag.py b/mil_common/utils/mil_tools/mil_ros_tools/label_me_bag.py
index 4e6c7231c..aa7f91142 100755
--- a/mil_common/utils/mil_tools/mil_ros_tools/label_me_bag.py
+++ b/mil_common/utils/mil_tools/mil_ros_tools/label_me_bag.py
@@ -53,13 +53,13 @@ def __init__(self, config):
self.topics = config["topics"]
if not isinstance(self.topics, list):
self.topics = [self.topics]
- self.start = config["start"] if "start" in config else None
- self.stop = config["stop"] if "stop" in config else None
- self.freq = config["freq"] if "freq" in config else None
+ self.start = config.get("start")
+ self.stop = config.get("stop")
+ self.freq = config.get("freq")
self.name = (
config["name"] if "name" in config else self.default_name(self.filename)
)
- self.outfile = config["outfile"] if "outfile" in config else self.filename
+ self.outfile = config.get("outfile", self.filename)
class BagToLabelMe:
diff --git a/mil_common/utils/mil_tools/test/test_ros_tools.py b/mil_common/utils/mil_tools/test/test_ros_tools.py
index bbcc5511b..2c0eeeca5 100644
--- a/mil_common/utils/mil_tools/test/test_ros_tools.py
+++ b/mil_common/utils/mil_tools/test/test_ros_tools.py
@@ -131,10 +131,7 @@ def test_make_rotation(self):
[0.0, 0.0, 0.0],
np.cross(p_rotated, q),
atol=1e-5,
- err_msg="The generated rotation matrix did not align the input vectors, {} to {}".format(
- p,
- q,
- ),
+ err_msg=f"The generated rotation matrix did not align the input vectors, {p} to {q}",
)
self.assertGreater(
np.dot(p_rotated, q),
diff --git a/ruff.toml b/ruff.toml
index 0ec9c21f1..56794e48d 100644
--- a/ruff.toml
+++ b/ruff.toml
@@ -28,6 +28,7 @@ extend-exclude = [
target-version = "py38"
+[lint]
ignore = [
"E501", # Line length
"F405", # Unknown import