Closed AshwinR96 closed 5 years ago
My quick initial guess is that you shouldn't have killed the joint_states controller. It publishes joints from the robot driver, I think. Try re-launching and stopping only the default trajectory controller.
I know this ros_control stuff can be confusing...
Hi Andy thank you very much for the quick response, I added the joint_states controller back in could you also help me with the ur3_moveit_config controllers.yaml file? What is the correct controller type?
My yaml file is like this at the moment:
`controller_list:
name: "" action_ns: joint_group_vel_controller/command type: velocity_controllers/JointGroupVelocityController joints: shoulder_pan_joint shoulder_lift_joint elbow_joint wrist_1_joint wrist_2_joint wrist_3_joint`
This is what I have. There shouldn't be an action_ns because there's no action associated with this controller.
joint_group_vel_controller: type: velocity_controllers/JointGroupVelocityController joints:
I set my ur3_moveit_config like this:
and i get the error
[ERROR] [1553114876.935109804]: Unknown controller type: velocity_controllers/JointGroupVelocityController
try sudo apt install ros-kinetic-velocity-controllers
I am still getting the same error after installing that
You may need to re-load the controller library. See the wiki here.
http://wiki.ros.org/controller_manager
rosservice call /controller_manager/reload-libraries
or something like that
I ran that:
but i still get the same error when i run move_group.launch:
I am actually able to control the ur3 using jog_arm now, I just ignored this unknown controller type error.
In jog_arm I am set the command out topic to ur_driver/joint_states, and this worked.
Thanks for your help.
Hmm, that's a new and interesting way to do it. Good
I think the confusion arose because most people are using ur_modern_driver these days, not ur_driver
@AshwinR96 Did you solve this problem finally? I meet the same question. And you mentioned that you ignored the error and still can do the velocity control? Is it true? Hope for your help, thanks very much.
@Tina1994 Yeah i was able to do velocity control, my understanding is that jog_arm doesnt need moveit's controllers to move the robot and MoveIt! starts after a few seconds despite giving the error message. I used the ur_modern_driver package to open the joint_states topic, and set jog_arm publish to publish to the joint_speeds topic.
The joint_states topic is launched with this: `roslaunch ur_modern_driver ur3_bringup.launch robot_ip:=IP_OF_THE_ROBOT'
This is my jog_settings.yaml file:
gazebo: false # Whether the robot is started in a Gazebo simulation environment collision_check: true # Check collisions? command_in_type: "unitless" # "unitless"> in the range [-1:1], as if from joystick. "speed_units"> cmds are in m/s and rad/s scale: # Only used if command_in_type=="unitless" linear: 0.0001 # Max linear velocity. Meters per publish_period. rotational: 0.0015 # Max angular velocity. Rads per publish_period. joint: 0.0015 # Max joint angular/linear velocity. Rads or Meters per publish period. cartesian_command_in_topic: jog_arm_server/delta_jog_cmds # Topic for xyz commands joint_command_in_topic: jog_arm_server/joint_delta_jog_cmds # Topic for angle commands command_frame: base_link # TF frame that incoming cmds are given in incoming_command_timeout: 0.5 # Stop jogging if X seconds elapse without a new cmd joint_topic: joint_states move_group_name: manipulator # Often 'manipulator' or 'arm' lower_singularity_threshold: 30 # Start decelerating when the condition number hits this (close to singularity). Larger --> closer to singularity hard_stop_singularity_threshold: 45 # Stop when the condition number hits this. Larger --> closer to singularity lower_collision_proximity_threshold: 0.1 # Start decelerating when a collision is this far [m] hard_stop_collision_proximity_threshold: 0.005 # Stop when a collision is this far [m] planning_frame: base_link # The MoveIt! planning frame. Often 'base_link' low_pass_filter_coeff: 12. # Larger-> more smoothing to jog commands, but more lag. publish_period: 0.008 # 1/Nominal publish rate [seconds] publish_delay: 0.005 # delay between calculation and execution start of command collision_check_rate: 5 # [Hz] Collision-checking can easily bog down a CPU if done too often. warning_topic: jog_arm_server/warning joint_limit_margin: 0.1 # added as a buffer to joint limits [radians]. If moving quickly, make this larger. quickly, make this larger. command_out_topic: ur_driver/joint_speed command_out_type: trajectory_msgs/JointTrajectory publish_joint_positions: true publish_joint_velocities: true publish_joint_accelerations: false
@AshwinR96 wrote:
I am actually able to control the ur3 using jog_arm now, I just ignored this unknown controller type error.
In jog_arm I am set the command out topic to ur_driver/joint_states, and this worked.
that cannot work. The joint_states
topic only broadcasts current state, it doesn't accept any commands.
HI,
I am trying to use jog_arm with the real ur3 but i am not able to send commands to the real robot. I was able to connect jog_arm to a gazebo simulation. I have listed below all my config files, rostopic list and roslaunch file. Can you please help me find out what the issue is?
I am not sure what the correct controller settings are. I tried shutting down all controllers except joint_group_vel_controller and my config files are set like this:
My jog_settings.yaml file is:
gazebo: false # Whether the robot is started in a Gazebo simulation environment collision_check: false # Check collisions? command_in_type: "unitless" # "unitless"> in the range [-1:1], as if from joystick. "speed_units"> cmds are in m/s and rad/s scale: # Only used if command_in_type=="unitless" linear: 0.004 # Max linear velocity. Meters per publish_period. Units is [m/s] rotational: 0.008 # Max angular velocity. Rads per publish_period. Units is [rad/s] joint: 0.003 # Max joint angular/linear velocity. Rads or Meters per publish period. Units is [rad/s] or [m/s]. cartesian_command_in_topic: jog_arm_server/delta_jog_cmds # Topic for xyz commands joint_command_in_topic: jog_arm_server/joint_delta_jog_cmds # Topic for angle commands command_frame: base_link # TF frame that incoming cmds are given in incoming_command_timeout: 0.2 # Stop jogging if X seconds elapse without a new cmd joint_topic: joint_states move_group_name: manipulator # Often 'manipulator' or 'arm' lower_singularity_threshold: 30 # Start decelerating when the condition number hits this (close to singularity) hard_stop_singularity_threshold: 45 # Stop when the condition number hits this lower_collision_proximity_threshold: 0.1 # Start decelerating when a collision is this far [m] hard_stop_collision_proximity_threshold: 0.005 # Stop when a collision is this far [m] planning_frame: base_link # The MoveIt! planning frame. Often 'base_link' low_pass_filter_coeff: 2. # Larger --> trust the filtered data more, trust the measurements less. publish_period: 0.008 # 1/Nominal publish rate [seconds] publish_delay: 0.005 # delay between calculation and execution start of command collision_check_rate: 5 # [Hz] Collision-checking can easily bog down a CPU if done too often. warning_topic: jog_arm_server/warning joint_limit_margin: 0.1 # added as a buffer to joint limits [radians]. If moving quickly, make this larger. command_out_topic: joint_group_vel_controller/command command_out_type: std_msgs/Float64MultiArray publish_joint_positions: false publish_joint_velocities: true publish_joint_accelerations: false
and my ur3_moveit_config controllers.yaml file is (this actually gives me an error saying unknown controller type "velocity_controllers/JointGroupVelocityController") :
`controller_list:
when i do rostopic list i get:
/attached_collision_object /clicked_point /collision_object /execute_trajectory/cancel /execute_trajectory/feedback /execute_trajectory/goal /execute_trajectory/result /execute_trajectory/status /initialpose /jog_arm_server/delta_jog_cmds /jog_arm_server/joint_delta_jog_cmds /jog_arm_server/warning /joint_group_vel_controller/command /joint_states /joint_temperature /move_base_simple/goal /move_group/cancel /move_group/display_contacts /move_group/display_planned_path /move_group/feedback /move_group/goal /move_group/monitored_planning_scene /move_group/ompl/parameter_descriptions /move_group/ompl/parameter_updates /move_group/plan_execution/parameter_descriptions /move_group/plan_execution/parameter_updates /move_group/planning_scene_monitor/parameter_descriptions /move_group/planning_scene_monitor/parameter_updates /move_group/result /move_group/sense_for_plan/parameter_descriptions /move_group/sense_for_plan/parameter_updates /move_group/status /move_group/trajectory_execution/parameter_descriptions /move_group/trajectory_execution/parameter_updates /pickup/cancel /pickup/feedback /pickup/goal /pickup/result /pickup/status /place/cancel /place/feedback /place/goal /place/result /place/status /planning_scene /planning_scene_world /recognized_object_array /rosout /rosout_agg /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/feedback /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update /rviz_moveit_motion_planning_display/robot_interaction_interactive_marker_topic/update_full /rviz_parallels_vm_7426_4186558235624850098/motionplanning_planning_scene_monitor/parameter_descriptions /rviz_parallels_vm_7426_4186558235624850098/motionplanning_planning_scene_monitor/parameter_updates /tf /tf_static /tool_velocity /trajectory_execution_event /ur_driver/URScript /ur_driver/io_states /ur_driver/robot_status /wrench
In my roslaunch file I am launching:
ur3_ros_control.launch ur3_moveit_planning_execution.launch moveit_rviz.launch jog_with_xbox