ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Why is Rviz unable to identify any set of controllers that can actuate the specified joints?

asked 2021-07-02 13:40:05 -0500

CM gravatar image

updated 2021-07-03 10:59:05 -0500

To start, I'm using ROS noetic with Gazebo11 on a dual boot Ubuntu 20.04 (kernel 5.8.0-59-generic) - Windows 10 system. I'm running all of my ROS related stuff on Ubuntu of course. I want to have MoveIt connected with Gazebo and have built my own .urdf with SolidWorks to use with the MoveIt setup assistant. Then, to have Gazebo ROS control, I followed this tutorial "http://gazebosim.org/tutorials/?tut=r...". The file that connects everything together is called "demo_gazebo.launch" which is located in my config directory generated by the MoveIt setup assistant. However, when I launch this file, plan and execute a movement, I get the following errors:

[ERROR] [1625248281.179031173, 12.602000000]: Unable to identify any set of controllers that can actuate the specified joints: [ accessor_rail arm_base forearm palm shoulder upper_arm wrist ]
[ERROR] [1625248281.179086593, 12.602000000]: Known controllers and their joints:

[ERROR] [1625248281.179182223, 12.602000000]: Apparently trajectory initialization failed

==================================================================================================

Here is everything upon launching, planning and executing a movement:

bobnickelson@bobnickelson-MS-7B79:~$ roslaunch simulation_final_config demo_gazebo.launch
... logging to /home/bobnickelson/.ros/log/273a7810-db61-11eb-a90e-c95419d5660a/roslaunch-bobnickelson-MS-7B79-5830.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://bobnickelson-MS-7B79:40957/

SUMMARY
========

PARAMETERS
 * /gazebo/enable_ros_network: True
 * /joint_state_publisher/source_list: ['/joint_states']
 * /move_group/allow_trajectory_execution: True
 * /move_group/capabilities: 
 * /move_group/default_planning_pipeline: ompl
 * /move_group/disable_capabilities: 
 * /move_group/jiggle_fraction: 0.05
 * /move_group/max_range: 5.0
 * /move_group/max_safe_path_cost: 1
 * /move_group/moveit_controller_manager: moveit_simple_con...
 * /move_group/moveit_manage_controllers: True
 * /move_group/octomap_resolution: 0.025
 * /move_group/planning_pipelines/chomp/collision_clearence: 0.2
 * /move_group/planning_pipelines/chomp/collision_threshold: 0.07
 * /move_group/planning_pipelines/chomp/enable_failure_recovery: True
 * /move_group/planning_pipelines/chomp/joint_update_limit: 0.1
 * /move_group/planning_pipelines/chomp/learning_rate: 0.01
 * /move_group/planning_pipelines/chomp/max_iterations: 200
 * /move_group/planning_pipelines/chomp/max_iterations_after_collision_free: 5
 * /move_group/planning_pipelines/chomp/max_recovery_attempts: 5
 * /move_group/planning_pipelines/chomp/obstacle_cost_weight: 1.0
 * /move_group/planning_pipelines/chomp/planning_plugin: chomp_interface/C...
 * /move_group/planning_pipelines/chomp/planning_time_limit: 10.0
 * /move_group/planning_pipelines/chomp/pseudo_inverse_ridge_factor: 1e-4
 * /move_group/planning_pipelines/chomp/request_adapters: default_planner_r...
 * /move_group/planning_pipelines/chomp/ridge_factor: 0.01
 * /move_group/planning_pipelines/chomp/smoothness_cost_acceleration: 1.0
 * /move_group/planning_pipelines/chomp/smoothness_cost_jerk: 0.0
 * /move_group/planning_pipelines/chomp/smoothness_cost_velocity: 0.0
 * /move_group/planning_pipelines/chomp/smoothness_cost_weight: 0.1
 * /move_group/planning_pipelines/chomp/start_state_max_bounds_error: 0.1
 * /move_group/planning_pipelines/chomp/use_pseudo_inverse: False
 * /move_group/planning_pipelines/chomp/use_stochastic_descent: True
 * /move_group/planning_pipelines/ompl/gripper/default_planner_config: RRT
 * /move_group/planning_pipelines/ompl/gripper/longest_valid_segment_fraction: 0.005
 * /move_group/planning_pipelines/ompl/gripper/planner_configs: ['AnytimePathShor...
 * /move_group/planning_pipelines/ompl/gripper/projection_evaluator: joints(midfinger_...
 * /move_group/planning_pipelines/ompl/manipulator/default_planner_config: RRT
 * /move_group/planning_pipelines/ompl/manipulator/longest_valid_segment_fraction: 0.005
 * /move_group/planning_pipelines/ompl/manipulator/planner_configs: ['AnytimePathShor...
 * /move_group/planning_pipelines/ompl/manipulator/projection_evaluator: joints(accessor_r...
 * /move_group/planning_pipelines/ompl/planner_configs/AnytimePathShortening/hybridize: True
 * /move_group/planning_pipelines/ompl/planner_configs/AnytimePathShortening/max_hybrid_paths: 24
 * /move_group/planning_pipelines/ompl/planner_configs/AnytimePathShortening/num_planners: 4
 * /move_group/planning_pipelines/ompl/planner_configs/AnytimePathShortening/planners: 
 * /move_group/planning_pipelines/ompl/planner_configs/AnytimePathShortening/shortcut: True
 * /move_group/planning_pipelines/ompl/planner_configs/AnytimePathShortening/type: geometric::Anytim...
 * /move_group/planning_pipelines/ompl/planner_configs/BFMT/balanced: 0
 * /move_group/planning_pipelines/ompl/planner_configs/BFMT/cache_cc: 1
 * /move_group/planning_pipelines/ompl/planner_configs/BFMT/extended_fmt: 1
 * /move_group/planning_pipelines/ompl/planner_configs/BFMT/heuristics: 1
 * /move_group/planning_pipelines/ompl/planner_configs/BFMT/nearest_k: 1
 * /move_group ...
(more)
edit retag flag offensive close merge delete

Comments

Just a quick comment:

Why is Rviz unable to identify any set of controllers

the error is not printed by RViz.

RViz does not control anything, nor do any motion planning. It's purely a visualisation tool.

MoveIt does that, and it's MoveIt which prints that error.

It may be informative to add the following to your .bashrc and open a new terminal:

export ROSCONSOLE_FORMAT='[${severity}] [${time}] [${node}] [${logger}]: ${message}'

then run your .launch file again.

Logging lines should now be clearly attributed to the node they are emitted by.

gvdhoorn gravatar image gvdhoorn  ( 2021-07-03 04:38:44 -0500 )edit

Is this a commercial robot? If the vendor provides a ros demo, you really want to start with that. To make it work, there are low-level libraries you need to interface between ros and whatever proprietary API the robot hardware uses.

If you have no hardware and are just learning, you should start with something like the turtlebot3 demo. See http://wiki.ros.org/turtlebot3_simulations

Mike Scheutzow gravatar image Mike Scheutzow  ( 2021-07-03 08:48:37 -0500 )edit

@gvdhoorn Thanks for the tip.

@Mike Scheutzow It's just a robot I made to learn. Would it really be beneficial for me to use a tutorial bot over my own work? I wanted to do the process of setting up and building everything myself. Also, I plan on making a similar model in real life and have some of the hardware already.

CM gravatar image CM  ( 2021-07-03 11:08:51 -0500 )edit

@CM Yes, you should start with an existing demo of a robot of similar type. However, my recommendation of turtlebot3 is not a good one if you want to learn about robot arms. The ros stack to control a robot-with-wheels is quite different from one to control a robot-arm. I don't have a gazebo arm demo to suggest for you; hopefully someone else can recommend one.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2021-07-03 11:32:50 -0500 )edit

The ros tutorials seem to like to use the PR2 Robot Arm, so maybe that's a vote of confidence? The wiki page does not show it, but I do see a noetic-devel branch for the gazebo piece. I have never personally tried to run these packages.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2021-07-03 12:45:14 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2021-07-03 09:13:45 -0500

Mike Scheutzow gravatar image

The likely problem is that your launch configuration is incomplete (I don't mean just your .launch file.) Some possibilities are: you have not installed the correct vendor libraries to control the hardware, or you have not started some ros nodes, or you have not specified the correct plugins to the ros controller manager.

edit flag offensive delete link more

Comments

@Mike Scheutzow I updated my post with 6 files related to the controllers. Also, I installed the following packages:

sudo apt-get install ros-noetic-ros-control ros-noetic-joint-state-controller ros-noetic-effort-controllers ros-noetic-position-controllers ros-noetic-velocity-controllers ros-noetic-ros-controllers ros-noetic-gazebo-ros ros-noetic-gazebo-ros-control

I don't know if these relate to the hardware, but I have started the controller_spawner node with pkg controller_manager that should initialize the controllers, but I'm also unsure about how the connection works between my controller_list and hardware_interface in the ros_controllers.yaml and my demo_gazebo.launch. In fact, because I'm new to this, I don't know much about any of the connections at all.

CM gravatar image CM  ( 2021-07-03 11:22:30 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2021-07-02 13:33:39 -0500

Seen: 736 times

Last updated: Jul 03 '21