The current 6 dof arm does not have enough flexibility to control fine tune movements of the end effector sideways (or in linear +/- y direction when talking in vector space). However, we can bypass this issue by instead controlling the arm's side-to-side motion via the drivetrain.
We can accomplish this by modifying our existing drive implementation to add this new "arm mode" functionality, specifically in vesc_controller.py and rad_drive_controller.cpp, such that when a button is pressed on the controller, it sends a request to services run on these nodes which will toggle the control mode from drivetrain to arm.
- For vesc controller, subscribe to TwistStamped topic
/servo_node/delta_twist_cmds and set the speed of each VESC to linear.y when "arm mode" is enabled
- For rad controller, set target angles for each RAD to be perpendicular to the angle stored in the RadStatus topic
/arm/joint0/rad_status (this is the arm base)

The current 6 dof arm does not have enough flexibility to control fine tune movements of the end effector sideways (or in linear +/- y direction when talking in vector space). However, we can bypass this issue by instead controlling the arm's side-to-side motion via the drivetrain.
We can accomplish this by modifying our existing drive implementation to add this new "arm mode" functionality, specifically in vesc_controller.py and rad_drive_controller.cpp, such that when a button is pressed on the controller, it sends a request to services run on these nodes which will toggle the control mode from drivetrain to arm.
/servo_node/delta_twist_cmdsand set the speed of each VESC tolinear.ywhen "arm mode" is enabled/arm/joint0/rad_status(this is the arm base)