Skip to content

Conversation

@Jayden442
Copy link
Contributor

@Jayden442 Jayden442 commented Nov 1, 2025

This is the first part of the task, which is the actual refactoring of the servo package. The second part is to update Teleop control to be compatible with this.

  • Redesigned the servo architecture to use inheritance with a common class and config yaml file.
  • Config files are made to be as similar as possible
  • Now uses publisher/subscriber as opposed to services
  • The client is the publisher, the server is the subscriber
  • Degrees are now radians.

Tested by having the client send 2 unique positions.

Tested by running usb servo and client from the same launch file but it is commented out right now just as it was before.

Part 2 (The joystick part) has been merged.

Task: ROVER-411

@Jayden442 Jayden442 changed the title [Draft] Refactor Servo Architecture [Draft] Refactor Servo Architecture Part 1 Nov 20, 2025
@Jayden442 Jayden442 marked this pull request as ready for review November 22, 2025 18:57
@Jayden442 Jayden442 changed the title [Draft] Refactor Servo Architecture Part 1 Refactor Servo Architecture Part 1 Nov 22, 2025
@Jayden442 Jayden442 marked this pull request as draft November 22, 2025 19:12
@Jayden442 Jayden442 marked this pull request as ready for review November 22, 2025 19:16
@Jayden442 Jayden442 requested a review from ConnorNeed November 22, 2025 19:36
@ConnorNeed
Copy link
Member

Thanks Jayden. I will take a look through tomorrow. We will hold off on merging it in until part 1 and 2 are both ready to be merged.

Copy link
Member

@ConnorNeed ConnorNeed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Just need to wait for the porting of all the control to use the new system before merging

@ConnorNeed
Copy link
Member

Looks like you have to rebase off main and resolve the conflicts. Once you do there will be a pylint config .pylintrc.
If you run:

pylint src

It will run some basic checks to ensure the changes are compliant with our codebase pylint rules. They are not super strict (yet) but they help catch some stuff.

Jayden442 and others added 2 commits January 15, 2026 16:43
* port from old repo

* Removed logging for debugging

* drive mode

Minor fixes

Arm dummy

* Update servo to pub/sub for all modes

Linting and minor comments

slash in topic name

Small pi servo changes

Remove unnecessary import

Remove more imports

formatting

* Pi constant and readded toggle lights

Formatting

Radians in config

arm servo name

servo service revert

* Nav launch (#21)

* fix: navigation launch

* chore: update readme

* chore: add convenience script to source ros env

* chore: add zed folder to volumes for dev container

* chore: format

* chore: add gridmap filter dependancy

* chore: add host zed SDK to setup package

* Microservice video streaming (#19)

* feat: template for distributed streaming setup

* style: spelling

* Navigation tuning (#23)

* feat: split nav2 and mapping launches

* feat: reduce layers on traversability_postprocessing

* chore: format

* chore: clean up parameters passed in

* Aruco changes (#24)

* chore: move plugins to video_streaming package

* chore: seperate gstreamer plugins

* docs: file extension

* chore: allow camera work in linux dev container

* feat: optimize aruco detection

* feat: ros2 image source gst-plugin

* updating limits with encoder movement (#29)

Co-authored-by: Jetson <softlead@curover.ca>

* Optimize Decay Computation in radialInflateSerial (#16)

* Optimize Decay Computation in radialInflateSerial

* fix: get preserve cost inflation working

* style: autoformat

---------

Co-authored-by: ConnorN <connor.needham2015@gmail.com>

* Offset issues (#33)

* feat: use talon sensor offset support

* tune: fix sensor offsets and limits

* style: format

* fix: current ticks issue

* Arm launch clean up (#31)

* chore: manual clean up

* chore: ai cleanup

* chore: remove redundant files

* fix: remove duplicate rsp

* fix: move ros2_control_node to individual node

* Add open loop drive option to talon drive controller (#28)

* feat: open loop drive option

* Format code and test

---------

Co-authored-by: Jetson <softlead@curover.ca>

* Pylint (#32)

* fix: all import errors

* fix: unused varibles

* chore: add pylint

* fix: code review comments

* Feature/srt component (#36)

* Fix build: Reduce parallel workers to 1 to save memory

* feat: add SRT node for video streaming with GStreamer integration

* fix: restore dynamic parallel worker count in build script

* Style: auto-format launch file with black

* Fix: syntax error and formatting in srt_node.cpp

* Refactor: improve code formatting and organization in SrtNode class

* Refactor: update CMakeLists.txt and package.xml for improved dependency management; modify SRT node parameters for testing

* Refactor: improve formatting and organization in SrtNode class; streamline try-catch blocks and enhance pipeline description logging

* Refactor: update SRT node parameters for improved configuration; change default srt_uri and add test_mode parameter

* Refactor: improve formatting and organization in SrtNode class; streamline parameter declarations and subscription bindings

* improve code formatting

* fix: pipeline fixes during testing

---------

Co-authored-by: Ju <bangmar@iclod.com>
Co-authored-by: ConnorN <connor.needham2015@gmail.com>

* port from old repo

Removed logging for debugging

Linting and minor comments

slash in topic name

Small pi servo changes

Remove unnecessary import

Remove more imports

formatting

Removed max_num_servo

formatting

* Fixed build errors and warnings

Fixed typing on science

Fix drive mode servo client

* Allow multiple servos

Fixed config

Check all ports for all servo types

linting

* Removed duplicates in pi servo

* Lint compliance

---------

Co-authored-by: Connor Needham <129120300+ConnorNeed@users.noreply.github.com>
Co-authored-by: ConnorN <connor.needham2015@gmail.com>
Co-authored-by: Darren Wallace <63486143+TheWalrus368@users.noreply.github.com>
Co-authored-by: Jetson <softlead@curover.ca>
Co-authored-by: Jack Wong <120768324+jackcwong2007@users.noreply.github.com>
Co-authored-by: Erik <43829793+ErikCald@users.noreply.github.com>
Co-authored-by: 潤辰| Runchen Zhao <runchenzhao@cmail.carleton.ca>
Co-authored-by: Ju <bangmar@iclod.com>
@Jayden442 Jayden442 requested a review from ConnorNeed January 17, 2026 16:16
@Jayden442 Jayden442 merged commit 5ac96fb into main Jan 22, 2026
8 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants