Using roboclaw with ros_control, and programming interface
Posted: Sat Feb 09, 2019 1:08 pm
Hi
I am hoping someone can give me a steer in the right direction as I am floundering with my autonomous mobile robot project!
I have built a two wheel diff drive robot, with a kinect and a lidar, which I intend to use for mapping and later, SLAM. I am at the stage where I can use ros teleop to move the robot around, however up to this point I have only built robots in ROS' virtual tools. Making an actual robot is a new venture!
I see that the roboclaw_ros node does indeed publish the odom topic and subscribes to /cmd_vel. Now as I understand it, I need to use ros_control to allow ROS to interface with the roboclaw so that it can use the diff_drive_controller to operate the wheels. Part of this involves writing a hardware interface class that tells ros_control how to speak to your hardware. Unfortunately the ros documentation on all of this is somewhat vague and I have not been able to make progress in understanding.
Is there an interface class already coded up for the roboclaw? If not can you advise on where to start? Secondly, how does the roboclaw_ros package relate to all of this?
Thanks for reading
I am hoping someone can give me a steer in the right direction as I am floundering with my autonomous mobile robot project!
I have built a two wheel diff drive robot, with a kinect and a lidar, which I intend to use for mapping and later, SLAM. I am at the stage where I can use ros teleop to move the robot around, however up to this point I have only built robots in ROS' virtual tools. Making an actual robot is a new venture!
I see that the roboclaw_ros node does indeed publish the odom topic and subscribes to /cmd_vel. Now as I understand it, I need to use ros_control to allow ROS to interface with the roboclaw so that it can use the diff_drive_controller to operate the wheels. Part of this involves writing a hardware interface class that tells ros_control how to speak to your hardware. Unfortunately the ros documentation on all of this is somewhat vague and I have not been able to make progress in understanding.
Is there an interface class already coded up for the roboclaw? If not can you advise on where to start? Secondly, how does the roboclaw_ros package relate to all of this?
Thanks for reading