vanderbiltrobotics / NASA-RMC-2018-2019

ROS Packages for NASA Robotic Mining Competition 2018-2019
MIT License
1 stars 6 forks source link

[High Priority] Drive Motor Controller Interface #1

Closed SwapnilPande closed 5 years ago

SwapnilPande commented 5 years ago

Which section of robot code is this for? Drive Control

Description of feature

partlygloudy commented 5 years ago

Good work guys, I'll look through your progress and have some suggestions for next steps at Thursday's meeting

Chinchuluun1029 commented 5 years ago

Haven't done much. Currently just learning how to use rospy, the whole environment is set up and can be run. Just need to know how to implement the functions.

llblanc64 commented 5 years ago

Connected all the publishers and subscribers with (hopefully) the correct message types after the conversion math. The math for linear/angular velocities might be somewhat wrong, though. Also trying to learn ros and python syntax more deeply.

acarsgithub commented 5 years ago

Getting more familiar with the python syntax and libraries and i rewrote some old code from last year from c++ into python. Also, we have the math figured out partially for linear and angular velocities of the motors, may need to account for more stuff though. I'm trying to understand ros more deeply.

partlygloudy commented 5 years ago

I think the math is working here now, there was one small division issue but otherwise it works as expected. So the main functionality of this node is finished. Next step is to read the wheel radius and wheel separation from the parameter server and pass those into the function, rather than hard coding them

Names for the parameters: "wheel_radius" "wheel_base_separation"

partlygloudy commented 5 years ago

Made a few additions:

  1. Added the ability to publish pwm values rather than motor speeds - the mode used can be configured using a parameter
  2. Node now has 4 publishers which each publish a float value for a single motor. This is the way the motor_control interface is set up
  3. Added the ability to remap the input velocities to a desired output range. This is important mainly for teleop control - the joystick node will output velocities in the range -1.0 to 1.0 which won't be the range we want to be commanding velocities in. Remapping allows us to choose any output range we want without having to mess with the joystick node output
  4. Added parameters for configuring all the aforementioned features

Next steps:

After those tasks are done, I think this issue should be just about done

partlygloudy commented 5 years ago

I can't think of any obvious improvements to what we've got right now and the current version works as expected. Going to close the issue now.