uf-mil / mil

Monorepo of the Machine Intelligence Lab at the University of Florida
https://mil.ufl.edu/docs
Other
46 stars 29 forks source link

Add communication library for ball shooter board #1275

Closed cbrxyz closed 1 month ago

cbrxyz commented 2 months ago

What needs to change?

We will need to design a library to speak with the new ball shooter/actuator board. This board will likely include two controls:

  1. Spin up the motors quickly
  2. Drop a ball into the motors

We will need to a design library that can communicate with this board. The design (ie, ROS topics/services/etc.) should mirror the method to fire balls in VRX.

Relevant electrical issue: uf-mil-electrical/NaviGator#3

How would this task be tested?

  1. Ensure that our library successfully communicates with the board/device.
  2. Ensure that the ROS inputs are visible/can be called.
  3. Ensure that no improper states can be set. (ie, will trying to spin up the motors once they are already spinning cause an error?)
  4. Ensure that the ROS inputs trigger the board properly
Shxl2 commented 1 month ago

Ball Shooter Board drawio

I'm planning to make a ROS node similar to the HW kill driver that will handle all the codes that are sent and received to the board and will subscribe to topics that control the motor and servo from other nodes. Ideally the node would also have publishers that output telemetry from the actuators but I do not yet know the exact details of what is being communicated from the board. So far in the flowchart I just have the logic for the connection to the board through serial.

Shxl2 commented 1 month ago

For this week, I have begun writing code for the ROS package. Right now, I am copying the code for the HW kill driver and using that as a template for the actual driver and it's sim classes. When I receive the codes needed to communicate with the board, I will add them to the constants file, and write the methods to shoot. Until then, the methods will be empty.

cbrxyz commented 1 month ago

@Shxl2 - Hey Javier! I hope you're doing well, and staying safe. Super sorry, but I accidentally completed this issue and didn't realize that you were assigned to it/interested in doing it. I would reach out to Daniel (your mentor) to find another task that you can work on. You're welcome to reach out to me as well! Again, super sorry about this!