How to load a controller from control_manager?
Dears all,
I'm new to ROS_control and I'm investigating the possibility to use it to build an hardware-interface and a controller for a 6 gdl human-exoskeleton.
To begin, I wrote a simple hardware-interface as the one in:
https://github.com/ros-controls/ros_c...
I registered a "joint state interface" and a "joint effort interface" for all my joints and created the hardware-interface class.
In my main program I created the controller_manager passing the created object as explained in the same tutorial.
I could compile the code and run the so created control-loop; when it is running I can see the /controller_manager services trough "rosservice list".
My question is: if I want to use some "effort_controllers/JointPositionController" for my joints, how should I load them? As a beginning, I built a yaml configuration file and a launch file to load a joint controller as follows:
yaml file
robot: #what should robot be for? Package name? Namespace?
rHip_position_controller:
type: effort_controllers/JointPositionController
joint: rHip
pid: {p: 100.0, i: 0.01, d: 10.0} #random example values
and launcher
rosparam file="$(find biomot_control)/config/biomot_config.yaml" command="load"
node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false" output="screen" args="rHip_position_controller"
But when I launch it, it blocks at the step: Loading controller: rHip_position_controller. Am I missing any step or doing something wrong?
Also running "rosrun controller_manager controller_manager list-types" blocks without prompting any error or answer.
Thank you very much for the attention.