Conversation
…ity (feedback not implemented)
…ce for action-server 3. Included entry point for node
make probe-motor upto date with main
Added prerequisites for Raspberry Pi setup guide.
Expanded documentation for the Rover Probe Motor Control System, detailing system architecture, requirements, configuration, ROS2 interface, setup, logic flow, and troubleshooting steps.
update probe-motor
This ros2 node has been revised and added to src/embr/embr as probeMotor.py
mrichards03
left a comment
There was a problem hiding this comment.
I'll do a more thorough check when you mark the PR as ready for review and when I can test with the actual probe stepper. It looks good so far though! I've left a few comments. Also don't forget about adding python dependencies to the dependencies script for provisioning. I believe pymodbus should be added.
| return SensorFactory.create(sensor_type, config) | ||
|
|
||
|
|
||
| class StepperFactory: |
There was a problem hiding this comment.
This class seems almost identical to the SensorFactory class. Why can't the SensorFactory create the probe stepper motor object? What's the need for another factory?
There was a problem hiding this comment.
I totally agree. I'll work on merging the 2 factories together.
| @@ -0,0 +1 @@ | |||
| int32 move_position No newline at end of file | |||
There was a problem hiding this comment.
I don't think you need a custom message when the message just contains an int. Just label the topic as having message type int32.
Added power requirements for LMD Drive in the setup guide.
…r interface with Int32
2. Added parameter for motion_range, max_velocity, and acceleration. 3. Added parameter change value validation to ensure values are within range.
… to motion_range set in CONFIG.
Moved to probe-motor.md
Contents moved to probe-motor.md
maisonJar-dev
left a comment
There was a problem hiding this comment.
Great stuff! Just a few miscellaneous fixes but otherwise good to go!
| "acceleration": 1000000, | ||
| "steps_per_distance": 51200, | ||
| "motion_range": 10 | ||
|
|
Co-authored-by: Maison <maison.personal03@gmail.com>
Co-authored-by: Maison <maison.personal03@gmail.com>
Co-authored-by: Maison <maison.personal03@gmail.com>
Co-authored-by: Maison <maison.personal03@gmail.com>
Co-authored-by: Maison <maison.personal03@gmail.com>
Co-authored-by: Maison <maison.personal03@gmail.com>
Co-authored-by: Maison <maison.personal03@gmail.com>
Co-authored-by: Maison <maison.personal03@gmail.com>
Co-authored-by: Maison <maison.personal03@gmail.com>
Co-authored-by: Maison <maison.personal03@gmail.com>
Co-authored-by: Maison <maison.personal03@gmail.com>
Co-authored-by: Maison <maison.personal03@gmail.com>
The action was a previous implementation that was supposed to be removed. The communication type is now changed to a topic.
Added installation command for pymodbus to the script.
Clarified documentation on write_registers function to specify Little-Endian format.
Summary
This PR implements the core control logic for the LMDCE421 Stepper Motor (Probe Motor). It establishes a hardware abstraction layer using a Factory Pattern, allowing the system to switch between a Modbus TCP-based hardware driver and a simulated motor environment. It also introduces the
navnode, which manages autonomous probe deployment and retraction cycles during rover surveying.Related Task
Closes Notion Task
Type of Change
📄 Documentation
All of the following applicable documentation changes were added
sensors.json)Requirements Updated
requirements.txthas been updated withpymodbusandpyserial.🧪 Testing
1. Simulation Testing:
sensors.jsonwith"mode": "sim".ros2 launch embr embr_launch.py.navnode correctly waits forProbeMotorFeedbackand handles simulated deployment delays2. Hardware Integration (Modbus TCP):
sensors.jsonwith"mode": "real".✅ Pre-Merge Checklist
🧾 Notes (Optional)
probe_stepper_servernode now utilizes aMultiThreadedExecutorandReentrantCallbackGroupto prevent deadlocks during long-running motor movements.nav.pyscript uses a dedicated thread for the survey loop to keep the main ROS2 executor responsive to incoming feedback messages.