Skip to content

Conversation

@miikee
Copy link
Contributor

@miikee miikee commented Jul 24, 2025

Untested Driver

This adds:

  • ArmBackend base class
  • PreciseFlexBackend
  • TCP(IOBase) class
  • Arm front end class

Docs haven't been updated yet.
There's a warning included in the PreciseFlexBackend docstring that it's untested.

@rickwierenga rickwierenga marked this pull request as draft July 24, 2025 14:35
@rickwierenga rickwierenga force-pushed the main branch 5 times, most recently from 49a6770 to 159fd78 Compare August 29, 2025 21:51
@rickwierenga rickwierenga force-pushed the main branch 2 times, most recently from bffeb24 to a1d61b7 Compare September 23, 2025 01:22
…unndant method, chenge default ip address, change test_get_base assertion to tuple, add sleep to test_set_power
…lidation

- Updated get_signal to correctly parse response and return signal value.
- Modified get_location_z_clearance to return z_world as a boolean.
- Enhanced set_location_z_clearance to convert z_world to an integer for command.
- Improved get_location_config and set_location_config to handle bit mask configurations with validation checks.
…refactor speed handling and location management
@miikee
Copy link
Contributor Author

miikee commented Nov 13, 2025

@rickwierenga combining the two would be fine if you think it'll lower complexity.

…e operations

- Introduced VerticalAccess and HorizontalAccess data classes to define access patterns.
- Updated approach, pick_plate, and place_plate methods to accept access patterns.
- Improved documentation for methods to clarify usage and default behaviors.
@miikee
Copy link
Contributor Author

miikee commented Nov 13, 2025

@rickwierenga I also wanted to mention a complication with the pick/place/approach methods. These work by setting a station location in the robot's memory. Then the robot grabs from from that location. But it grabs differently depending what access type is set to that station. This is an internal flag it keeps with each station.

  • access type 1 = vertical (like a deck plate pad)
  • access type 2 = horizontal (like a hotel nest pad)

So the movement changes for each:

  • access type 1 place - the arm travels above the location and drops down
  • access type 2 place - the arm travels in front of the location and makes a "box" movement - up, forward, down, open gripper

Depending on access type, the z-clearance changes meaning:

  • access type 1 - z-clearance = distance above
  • access type 2 - z-clearance = distance in front

So this can be a bit confusing... plus theres a few other access parameters that can be changed. I've added a commit here to fix this with a AccessConfig dataclass to describe how to access the plate. Let me know your thoughts.

@rickwierenga
Copy link
Member

awesome, thank you!

@rickwierenga
Copy link
Member

  • is it correct that ElbowOrientation has a different integer encoding between pf400 and pf3400?
  • can I specify for close and open gripper which position it goes to? ie plate width. in the code I see gripper 1 and gripper 2 for open and close. should I use grasp_plate instead of close_gripper or pick_plate?

@miikee
Copy link
Contributor Author

miikee commented Nov 14, 2025

Im not too sure off the top of my head. I was working with the pf3400 and setup the pf400 as a bit of place holder to work with in the future. I can't remember if I looked up the info when I did that. I'll need to review some things to get the answer to you.

With the PF3400, I don't think it has a grip width. It's either open or close. I'm not sure if this is true with the PF400 or not. I'll look into it a bit more tonight or tomorrow once I'm home.

@rickwierenga
Copy link
Member

with the pf400 (which we have) I have been using grasp_plate and it works great. I am thinking about using that command for PLR. I don't think I would be able to use the other close gripper options because I can't specify the width for them.

@rickwierenga rickwierenga force-pushed the dev-precise-flex-pf400 branch from eabfeb5 to 2624bf7 Compare November 14, 2025 06:20
@miikee
Copy link
Contributor Author

miikee commented Nov 14, 2025

I looked through the docs and code some but can't find the definitive answer I'm looking for to answer your questions about the gripping and the ElbowOrientation. My thoughts are that the ElbowOrientation was different due to a difference in the number of joints between PF3400 and PF400. And that the use of the commands between grip width and binary open/close is more dependent on the gripper attached than the actual model of arm. I'm going to be on-site with them Monday, so it might just be best to ask them.

@miikee
Copy link
Contributor Author

miikee commented Nov 18, 2025

I see the ElbowOrientation swap you were talking about now. That was wrong, both arms use 1 = LEFT and 2 = RIGHT. I just made a commit to fix that.

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