How to use ros_control with real robot

asked 2018-12-17 15:26:57 -0500

jcgarciaca gravatar image

updated 2018-12-17 15:29:38 -0500

I am trying to configure a controller for my own robot as suggested here, with using ros_controller and hardware_interface, but related documentation is not totally clear for me, then I run into ros_control_boilerplate template and tried to adapt it to my robot.

Such that I have a couple of doubts about it.

  1. read / write functions should include the code to command the motors and receive corresponding feedback from encoder. Then:

    a) Since motors in my robot are commanded through two services with angle as parameter, then do I just have to call them inside write function? If so, where is every joint position available?

    b) Current feedback position is available as topic data. So, where should this data be stored?

  2. I run demo.launch file created by setup assistant. But I am not sure how to communicate it with ros_control.

    a) Running demo.launch and then robotic_arm_mbpo_hardware.launch, it shows:

    process[robotic_arm_mbpo/robotic_arm_mbpo_hardware_interface-1]: started with pid [5110] process[robotic_arm_mbpo/ros_control_controller_manager-2]: started with pid [5114] process[robotic_arm_mbpo/robot_state_publisher-3]: started with pid [5117] [ INFO] [1545080133.382974836]: Waiting for model URDF on the ROS param server at location: //robotic_arm_mbpo/robot_description [ INFO] [1545080133.491500360]: RoboticArmMBPOHWInterface Ready. [ INFO] [1545080133.493281977]: GenericHWInterface Ready. Loaded joint_state_controller Loaded position_trajectory_controller Started ['joint_state_controller'] successfully Started ['position_trajectory_controller'] successfully [robotic_arm_mbpo/ros_control_controller_manager-2] process has finished cleanly

    b) If I set fake_execution to false in launch file an action client error appears: Action client not connected: /follow_joint_trajectory.

What should I do here?

edit retag flag offensive close merge delete