ros_control hw interface for a mecanum robot
HI,
I'd like to implement a precise motion mechanism for a Mecanum wheelbase connected to Beaglebone Blue and running ROS Noetic.
The wheelbase should be able to accept a relative point to drive to or a direction to drive to (i.e. xbox controller). Later I'd like to connect it to ROS navigation.
Beagle Blue includes an IMU, but there are no encoders. It also includes a library that accepts a duty cycle for each motor.
Currently I implemented a driver node which listens for cmd_vel
and rotates the wheels accordingly - https://github.com/cloud-rocket/bbblu...
But as far as I understand the best option would be to use ros_control
and develop a hardware interface that will call a custom library for rotating the wheels.
My questions are:
- What interface I need to implement. Is it a Velocity? And what this implementation should include under "write" function?
- Is it possible to reuse IMU instead of encoders to provide a motion feedback?
- Should I implement a PID on my own (i.e. reuse a 3rd party PID library) or can I reuse an existing ROS functionality?
- Is there an existing code I can reuse
Thanks!