Hello! I’m wondering what kind of path planning 1114 used on their robot. Especially after seeing their behind the bumpers, their arm joints seemed to move in parallel. What type of algorithm did you use to get this smooth of motion?
We have 3 controlled degrees of freedom, the proximal arm, the distal arm, and the wrist.
The wrist and distal arm are just using a P term, and the proximal is using PID.
We don’t use any path planning, we simply set a target angle for each of the 3 joints and they get there when they get there. We do have some special cases such as raising the distal first and then the proximal to avoid hitting the middle pipe on our way up to the high, but these are handled with simple if statements.
We always start with implementing the simplest way of controlling something and if it works well enough then we use our time to focus on higher priority programming tasks.
A big reason why the arm code could be so simple was due to it being a virtual 4 bar via chain. So the angle that one of the arms was at didn’t change the other 2 joints.
That makes sense, what sensors did you use on each of the joints to get their position? And did you use neos, falcons, or something else entirely?
We used Cancoders on each of the joints, with a 3dp gear that would be close enough to 1:1 with the joint so that we could use them in absolute mode. The arms and wrist were controlled by neos, but we only used the 3 absolute encoders for feedback.
Were you doing the PID on the RoboRIO with CanCoder feedback? Where your CanCoders mounted so you could use them as feedback for the virtual fourbar?
Yes PID was done on the roboRIO with cancoder feedback.
The encoders were all mounted to the base, the sprockets on the chain bar were all 1:1 so it didn’t matter where the encoder was mounted (except for some small backlash due to chain).