Package Summary

Tags No category tags.
Version 1.1.13
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-planning/moveit.git
VCS Type git
VCS Version master
Last Updated 2024-03-03
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ros_control controller manager interface for MoveIt

Additional Links

No additional links.

Maintainers

  • Mathias Lüdtke
  • MoveIt Release Team

Authors

  • Mathias Lüdtke

MoveIt ROS Control Plugin

This package provides plugins of base class moveit_controller_manager::MoveItControllerManager and a new plugin base class for moveit_controller_manager::MoveItControllerHandle allocators. The allocator class is necessary because moveit_controller_manager::MoveItControllerHandle needs a name passed to the constructor. Two variantes are provided, moveit_ros_control_interface::MoveItControllerManager for interfacing a single ros_control node and moveit_ros_control_interface::MoveItMultiControllerManager for seamless integration with any number of ros_control nodes.

moveit_ros_control_interface::MoveItControllerManager

This plugin interfaces a single ros_control-driven node in the namespace given in the ~ros_control_namespace ROS parameter. It polls all controllers via the list_controllers service and passes their properties to MoveIt. The polling is throttled to 1 Hertz.

Handle plugins

The actual handle creation is delegated to allocator plugins of base class moveit_ros_control_interface::ControllerHandleAllocator. These plugins should be registered with lookup names that match the corresponding controller types.

Currently plugins for position_controllers/JointTrajectoryController, velocity_controllers/JointTrajectoryController and effort_controllers/JointTrajectoryController are available, which simply wrap moveit_simple_controller_manager::FollowJointTrajectoryControllerHandle instances.

Setup

In your MoveIt launch file (e.g. ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml) set the moveit_controller_manager parameter:

<param name="moveit_controller_manager" value="moveit_ros_control_interface::MoveItControllerManager" />

And make sure to set the ros_control_namespace parameter to the namespace (without the /controller_manager/ part) of the ros_control-based node you like to interface. If you are using the moveit_setup_assistent you can add it to ROBOT_moveit_config/config/controllers.yaml, e.g.:

ros_control_namespace: /ROS_CONTROL_NODE
controller_list:
  - name: /ROS_CONTROL_NODE/position_trajectory_controller
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    default: true
    joints:
      - joint_a1
      - joint_a2
      - joint_a3
      - joint_a4
      - joint_a5
      - joint_a6
      - joint_a7

Controller switching

MoveIt can decide which controllers have to be started and stopped. Since only controller names with registered allocator plugins are handed over to MoveIt, this implementation takes care of stopping other conflicting controllers based on their claimed resources and the resources for the to-be-started controllers.

Namespaces

All controller names get prefixed by the namespace of the ros_control node. For this to work the controller names should not contain slashes. This is a strict requirement if the ros_control namespace is /.

moveit_ros_control_interface::MoveItMultiControllerManager

This plugin does not need further configuration. It polls the ROS master for services and identifies ros_control nodes automatically. It spawns moveit_ros_control_interface::MoveItControllerManager instances with their namespace and takes cares of proper delegation.

Setup

Just set the moveit_controller_manager parameter in your MoveIt launch file (e.g. ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml)

<param name="moveit_controller_manager" value="moveit_ros_control_interface::MoveItMultiControllerManager" />

CHANGELOG

Changelog for package moveit_ros_control_interface

1.1.13 (2023-07-28)

1.1.12 (2023-05-13)

  • Drop lib/ prefix from plugin paths (#3305)
  • Contributors: Jochen Sprickerhof

1.1.11 (2022-12-21)

1.1.10 (2022-09-13)

1.1.9 (2022-03-06)

1.1.8 (2022-01-30)

1.1.7 (2021-12-31)

1.1.6 (2021-11-06)

  • Use newly introduced cmake macro moveit_build_options() from moveit_core
  • Fix reversed check in switchControllers (#2726)
  • Contributors: Nathan Brooks, Robert Haschke

1.1.5 (2021-05-23)

1.1.4 (2021-05-12)

1.1.3 (2021-04-29)

1.1.2 (2021-04-08)

1.1.1 (2020-10-13)

  • [maint] Add comment to MOVEIT_CLASS_FORWARD (#2315)
  • Contributors: Felix von Drigalski

1.1.0 (2020-09-04)

  • [feature] Optional cpp version setting (#2166)
  • [feature] Remove support for Indigo\'s ros_control (#2128)
  • [feature] Add support for pos_vel_controllers and pos_vel_acc_controllers (#1806)
  • [fix] Various fixes for upcoming Noetic release (#2180)
  • [fix] Fix compiler warnings (#1773)
  • [maint] clang-tidy-fix [modernize-loop-convert]{.title-ref} to entire code base (#1419)
  • [maint] Switch from include guards to pragma once (#1615)
  • [maint] Remove ! from MoveIt name (#1590)
  • Contributors: Dave Coleman, Henning Kayser, Jonathan Binney, Robert Haschke, Sandro Magalh

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Recent questions tagged moveit_ros_control_interface at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.9.18
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-planning/moveit.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2020-10-12
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ros_control controller manager interface for MoveIt!

Additional Links

No additional links.

Maintainers

  • Mathias Lüdtke
  • MoveIt! Release Team

Authors

  • Mathias Lüdtke

MoveIt! ROS Control Plugin

This package provides plugins of base class moveit_controller_manager::MoveItControllerManager and a new plugin base class for moveit_controller_manager::MoveItControllerHandle allocators. The allocator class is necessary because moveit_controller_manager::MoveItControllerHandle needs a name passed to the constructor. Two variantes are provided, moveit_ros_control_interface::MoveItControllerManager for interfacing a single ros_control node and moveit_ros_control_interface::MoveItMultiControllerManager for seamless integration with any number of ros_control nodes.

moveit_ros_control_interface::MoveItControllerManager

This plugin interfaces a single ros_control-driven node in the namespace given in the ~ros_control_namespace ROS parameter. It polls all controllers via the list_controllers service and passes their properties to MoveIt!. The polling is throttled to 1 Hertz.

Handle plugins

The actual handle creation is delegated to allocator plugins of base class moveit_ros_control_interface::ControllerHandleAllocator. These plugins should be registered with lookup names that match the corresponding controller types.

Currently plugins for position_controllers/JointTrajectoryController, velocity_controllers/JointTrajectoryController and effort_controllers/JointTrajectoryController are available, which simply wrap moveit_simple_controller_manager::FollowJointTrajectoryControllerHandle instances.

Setup

In your MoveIt! launch file (e.g. ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml) set the moveit_controller_manager parameter:

<param name="moveit_controller_manager" value="moveit_ros_control_interface::MoveItControllerManager" />

And make sure to set the ros_control_namespace parameter to the namespace (without the /controller_manager/ part) of the ros_control-based node you like to interface. If you are using the moveit_setup_assistent you can add it to ROBOT_moveit_config/config/controllers.yaml, e.g.:

ros_control_namespace: /ROS_CONTROL_NODE
controller_list:
  - name: /ROS_CONTROL_NODE/position_trajectory_controller
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    default: true
    joints:
      - joint_a1
      - joint_a2
      - joint_a3
      - joint_a4
      - joint_a5
      - joint_a6
      - joint_a7

Controller switching

MoveIt! can decide which controllers have to be started and stopped. Since only controller names with registered allocator plugins are handed over to MoveIt!, this implementation takes care of stopping other conflicting controllers based on their claimed resources and the resources for the to-be-started controllers.

Namespaces

All controller names get prefixed by the namespace of the ros_control node. For this to work the controller names should not contain slashes. This is a strict requirement if the ros_control namespace is /.

moveit_ros_control_interface::MoveItMultiControllerManager

This plugin does not need further configuration. It polls the ROS master for services and identifies ros_control nodes automatically. It spawns moveit_ros_control_interface::MoveItControllerManager instances with their namespace and takes cares of proper delegation.

Setup

Just set the moveit_controller_manager parameter in your MoveIt! launch file (e.g. ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml)

<param name="moveit_controller_manager" value="moveit_ros_control_interface::MoveItMultiControllerManager" />

CHANGELOG

Changelog for package moveit_ros_control_interface

0.9.18 (2020-01-24)

0.9.17 (2019-07-09)

0.9.16 (2019-06-29)

0.9.15 (2018-10-29)

0.9.14 (2018-10-24)

0.9.13 (2018-10-24)

0.9.12 (2018-05-29)

0.9.11 (2017-12-25)

0.9.10 (2017-12-09)

0.9.9 (2017-08-06)

  • [improve] add backward compatibility patch for indigo (#551)
  • Contributors: Michael G

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Recent questions tagged moveit_ros_control_interface at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.8.7
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-planning/moveit.git
VCS Type git
VCS Version jade-devel
Last Updated 2017-07-23
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ros_control controller manager interface for MoveIt!

Additional Links

No additional links.

Maintainers

  • Mathias Lüdtke

Authors

  • Mathias Lüdtke

MoveIt! ROS Control Plugin

This package provides plugins of base class moveit_controller_manager::MoveItControllerManager and a new plugin base class for moveit_controller_manager::MoveItControllerHandle allocators. The allocator class is necessary because moveit_controller_manager::MoveItControllerHandle needs a name passed to the constructor. Two variantes are provided, moveit_ros_control_interface::MoveItControllerManager for interfacing a singe ros_control node and moveit_ros_control_interface::MoveItMultiControllerManager for seamless integration with any number of ros_control nodes.

moveit_ros_control_interface::MoveItControllerManager

This plugin intefaces a single ros_control-driven node in the namespace given in the ~ros_control_namespace ROS parameter. It polls all controllers via the list_controllers service and passes their properties to MoveIt!. The polling is throttled to 1 Hertz.

Handle plugins

The actual handle creation is delegated to allocator plugins of base class moveit_ros_control_interface::ControllerHandleAllocator. These plugins should be registered with lookup names that match the corresponding controller types.

Currently plugins for position_controllers/JointTrajectoryController, velocity_controllers/JointTrajectoryController and effort_controllers/JointTrajectoryController are available, which simply wrap moveit_simple_controller_manager::FollowJointTrajectoryControllerHandle instances.

Setup

In your MoveIt! launch file (e.g. ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml) set the moveit_controller_manager parameter:

<arg name="moveit_controller_manager" default="moveit_ros_control_interface::MoveItControllerManager" />

And make sure so set the ros_control_namespace parameter to the namespace (without the /contoller_manager/ part) of the ros_control-based node you like to interface. If you are using the moveit_setup_assistent you can add it to ROBOT_moveit_config/config/ROBOT_controllers.yaml, e.g.:

ros_control_namespace: /ROBOT
controller_list:
  - name: /ROBOT/position_trajectory_controller
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    default: true
    joints:
      - joint_a1
      - joint_a2
      - joint_a3
      - joint_a4
      - joint_a5
      - joint_a6
      - joint_a7

Controller switching

MoveIt! can decide which controllers have to be started and stopped. Since only controller names with registered allocator plugins are handed over to MoveIt!, this implementation takes care of stopping other confflicting controllers based on their claimed resources and the resources for the to-be-started controlles.

Namespaces

All controller names get prefixed by the namespace of the ros_control node. For this to work the controller names should not contain slashes. This is a strict requirement if the ros_control namespace is /.

moveit_ros_control_interface::MoveItMultiControllerManager

This plugin does not need further configuration. It polls the ROS master for services and identifies ros_control nodes automatically. It spawns moveit_ros_control_interface::MoveItControllerManager instances with their namespace and takes cares of proper delegation.

Setup

Just set the moveit_controller_manager parameter in your MoveIt! launch file (e.g. ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml)

<arg name="moveit_controller_manager" default="moveit_ros_control_interface::MoveItMultiControllerManager" />

CHANGELOG

Changelog for package moveit_ros_control_interface

0.8.7 (2017-04-03)

0.8.6 (2017-03-08)

0.8.4 (2017-02-06)

  • [doc] Cleanup readme (#267)
  • [maintenance] Replace last easy explicit shared_ptrs with MOVEIT_CLASS_FORWARD.
  • Contributors: Dave Coleman, Isaac I.Y. Saito, Maarten de Vries

0.8.3 (2016-08-19)

0.5.7 (2016-01-30)

  • C++03 conforming nested templates
  • fixed typo, added example config
  • added brief decription tags
  • formatted code to roscpp style
  • improved documentation
  • introduced getAbsName
  • Added missing lock
  • pre-allocate handles
  • fixed typos
  • set version to match the others
  • fixed a lot of typos
  • Intitial version of moveit_ros_control_interface package
  • Contributors: Mathias Luedtke

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Recent questions tagged moveit_ros_control_interface at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.7.14
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-planning/moveit.git
VCS Type git
VCS Version indigo-devel
Last Updated 2019-06-17
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ros_control controller manager interface for MoveIt!

Additional Links

No additional links.

Maintainers

  • Mathias Lüdtke
  • MoveIt! Release Team

Authors

  • Mathias Lüdtke

MoveIt! ROS Control Plugin

This package provides plugins of base class moveit_controller_manager::MoveItControllerManager and a new plugin base class for moveit_controller_manager::MoveItControllerHandle allocators. The allocator class is necessary because moveit_controller_manager::MoveItControllerHandle needs a name passed to the constructor. Two variantes are provided, moveit_ros_control_interface::MoveItControllerManager for interfacing a singe ros_control node and moveit_ros_control_interface::MoveItMultiControllerManager for seamless integration with any number of ros_control nodes.

moveit_ros_control_interface::MoveItControllerManager

This plugin intefaces a single ros_control-driven node in the namespace given in the ~ros_control_namespace ROS parameter. It polls all controllers via the list_controllers service and passes their properties to MoveIt!. The polling is throttled to 1 Hertz.

Handle plugins

The actual handle creation is delegated to allocator plugins of base class moveit_ros_control_interface::ControllerHandleAllocator. These plugins should be registered with lookup names that match the corresponding controller types.

Currently plugins for position_controllers/JointTrajectoryController, velocity_controllers/JointTrajectoryController and effort_controllers/JointTrajectoryController are available, which simply wrap moveit_simple_controller_manager::FollowJointTrajectoryControllerHandle instances.

Setup

In your MoveIt! launch file (e.g. ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml) set the moveit_controller_manager parameter:

<arg name="moveit_controller_manager" default="moveit_ros_control_interface::MoveItControllerManager" />

And make sure so set the ros_control_namespace parameter to the namespace (without the /contoller_manager/ part) of the ros_control-based node you like to interface. If you are using the moveit_setup_assistent you can add it to ROBOT_moveit_config/config/ROBOT_controllers.yaml, e.g.:

ros_control_namespace: /ROBOT
controller_list:
  - name: /ROBOT/position_trajectory_controller
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    default: true
    joints:
      - joint_a1
      - joint_a2
      - joint_a3
      - joint_a4
      - joint_a5
      - joint_a6
      - joint_a7

Controller switching

MoveIt! can decide which controllers have to be started and stopped. Since only controller names with registered allocator plugins are handed over to MoveIt!, this implementation takes care of stopping other confflicting controllers based on their claimed resources and the resources for the to-be-started controlles.

Namespaces

All controller names get prefixed by the namespace of the ros_control node. For this to work the controller names should not contain slashes. This is a strict requirement if the ros_control namespace is /.

moveit_ros_control_interface::MoveItMultiControllerManager

This plugin does not need further configuration. It polls the ROS master for services and identifies ros_control nodes automatically. It spawns moveit_ros_control_interface::MoveItControllerManager instances with their namespace and takes cares of proper delegation.

Setup

Just set the moveit_controller_manager parameter in your MoveIt! launch file (e.g. ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml)

<arg name="moveit_controller_manager" default="moveit_ros_control_interface::MoveItMultiControllerManager" />

CHANGELOG

Changelog for package moveit_ros_control_interface

0.7.14 (2018-10-20)

0.7.13 (2017-12-25)

0.7.12 (2017-08-06)

0.7.11 (2017-06-21)

0.7.10 (2017-06-07)

0.7.9 (2017-04-03)

0.7.8 (2017-03-08)

0.7.7 (2017-02-06)

  • [maintenance] clang-format upgraded to 3.8 (#404)
  • Contributors: Dave Coleman

0.7.6 (2016-12-30)

0.7.5 (2016-12-25)

0.7.4 (2016-12-22)

0.7.3 (2016-12-20)

0.5.7 (2016-01-30)

  • C++03 conforming nested templates
  • fixed typo, added example config
  • added brief decription tags
  • formatted code to roscpp style
  • improved documentation
  • introduced getAbsName
  • Added missing lock
  • pre-allocate handles
  • fixed typos
  • set version to match the others
  • fixed a lot of typos
  • Intitial version of moveit_ros_control_interface package
  • Contributors: Mathias L

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Recent questions tagged moveit_ros_control_interface at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.9.18
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-planning/moveit.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2020-10-12
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ros_control controller manager interface for MoveIt!

Additional Links

No additional links.

Maintainers

  • Mathias Lüdtke
  • MoveIt! Release Team

Authors

  • Mathias Lüdtke

MoveIt! ROS Control Plugin

This package provides plugins of base class moveit_controller_manager::MoveItControllerManager and a new plugin base class for moveit_controller_manager::MoveItControllerHandle allocators. The allocator class is necessary because moveit_controller_manager::MoveItControllerHandle needs a name passed to the constructor. Two variantes are provided, moveit_ros_control_interface::MoveItControllerManager for interfacing a single ros_control node and moveit_ros_control_interface::MoveItMultiControllerManager for seamless integration with any number of ros_control nodes.

moveit_ros_control_interface::MoveItControllerManager

This plugin interfaces a single ros_control-driven node in the namespace given in the ~ros_control_namespace ROS parameter. It polls all controllers via the list_controllers service and passes their properties to MoveIt!. The polling is throttled to 1 Hertz.

Handle plugins

The actual handle creation is delegated to allocator plugins of base class moveit_ros_control_interface::ControllerHandleAllocator. These plugins should be registered with lookup names that match the corresponding controller types.

Currently plugins for position_controllers/JointTrajectoryController, velocity_controllers/JointTrajectoryController and effort_controllers/JointTrajectoryController are available, which simply wrap moveit_simple_controller_manager::FollowJointTrajectoryControllerHandle instances.

Setup

In your MoveIt! launch file (e.g. ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml) set the moveit_controller_manager parameter:

<param name="moveit_controller_manager" value="moveit_ros_control_interface::MoveItControllerManager" />

And make sure to set the ros_control_namespace parameter to the namespace (without the /controller_manager/ part) of the ros_control-based node you like to interface. If you are using the moveit_setup_assistent you can add it to ROBOT_moveit_config/config/controllers.yaml, e.g.:

ros_control_namespace: /ROS_CONTROL_NODE
controller_list:
  - name: /ROS_CONTROL_NODE/position_trajectory_controller
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    default: true
    joints:
      - joint_a1
      - joint_a2
      - joint_a3
      - joint_a4
      - joint_a5
      - joint_a6
      - joint_a7

Controller switching

MoveIt! can decide which controllers have to be started and stopped. Since only controller names with registered allocator plugins are handed over to MoveIt!, this implementation takes care of stopping other conflicting controllers based on their claimed resources and the resources for the to-be-started controllers.

Namespaces

All controller names get prefixed by the namespace of the ros_control node. For this to work the controller names should not contain slashes. This is a strict requirement if the ros_control namespace is /.

moveit_ros_control_interface::MoveItMultiControllerManager

This plugin does not need further configuration. It polls the ROS master for services and identifies ros_control nodes automatically. It spawns moveit_ros_control_interface::MoveItControllerManager instances with their namespace and takes cares of proper delegation.

Setup

Just set the moveit_controller_manager parameter in your MoveIt! launch file (e.g. ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml)

<param name="moveit_controller_manager" value="moveit_ros_control_interface::MoveItMultiControllerManager" />

CHANGELOG

Changelog for package moveit_ros_control_interface

0.9.18 (2020-01-24)

0.9.17 (2019-07-09)

0.9.16 (2019-06-29)

0.9.15 (2018-10-29)

0.9.14 (2018-10-24)

0.9.13 (2018-10-24)

0.9.12 (2018-05-29)

0.9.11 (2017-12-25)

0.9.10 (2017-12-09)

0.9.9 (2017-08-06)

  • [improve] add backward compatibility patch for indigo (#551)
  • Contributors: Michael G

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Recent questions tagged moveit_ros_control_interface at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.0.11
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-planning/moveit.git
VCS Type git
VCS Version melodic-devel
Last Updated 2022-09-13
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ros_control controller manager interface for MoveIt!

Additional Links

No additional links.

Maintainers

  • Mathias Lüdtke
  • MoveIt! Release Team

Authors

  • Mathias Lüdtke

MoveIt! ROS Control Plugin

This package provides plugins of base class moveit_controller_manager::MoveItControllerManager and a new plugin base class for moveit_controller_manager::MoveItControllerHandle allocators. The allocator class is necessary because moveit_controller_manager::MoveItControllerHandle needs a name passed to the constructor. Two variantes are provided, moveit_ros_control_interface::MoveItControllerManager for interfacing a single ros_control node and moveit_ros_control_interface::MoveItMultiControllerManager for seamless integration with any number of ros_control nodes.

moveit_ros_control_interface::MoveItControllerManager

This plugin interfaces a single ros_control-driven node in the namespace given in the ~ros_control_namespace ROS parameter. It polls all controllers via the list_controllers service and passes their properties to MoveIt!. The polling is throttled to 1 Hertz.

Handle plugins

The actual handle creation is delegated to allocator plugins of base class moveit_ros_control_interface::ControllerHandleAllocator. These plugins should be registered with lookup names that match the corresponding controller types.

Currently plugins for position_controllers/JointTrajectoryController, velocity_controllers/JointTrajectoryController and effort_controllers/JointTrajectoryController are available, which simply wrap moveit_simple_controller_manager::FollowJointTrajectoryControllerHandle instances.

Setup

In your MoveIt! launch file (e.g. ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml) set the moveit_controller_manager parameter:

<param name="moveit_controller_manager" value="moveit_ros_control_interface::MoveItControllerManager" />

And make sure to set the ros_control_namespace parameter to the namespace (without the /controller_manager/ part) of the ros_control-based node you like to interface. If you are using the moveit_setup_assistent you can add it to ROBOT_moveit_config/config/controllers.yaml, e.g.:

ros_control_namespace: /ROS_CONTROL_NODE
controller_list:
  - name: /ROS_CONTROL_NODE/position_trajectory_controller
    action_ns: follow_joint_trajectory
    type: FollowJointTrajectory
    default: true
    joints:
      - joint_a1
      - joint_a2
      - joint_a3
      - joint_a4
      - joint_a5
      - joint_a6
      - joint_a7

Controller switching

MoveIt! can decide which controllers have to be started and stopped. Since only controller names with registered allocator plugins are handed over to MoveIt!, this implementation takes care of stopping other conflicting controllers based on their claimed resources and the resources for the to-be-started controllers.

Namespaces

All controller names get prefixed by the namespace of the ros_control node. For this to work the controller names should not contain slashes. This is a strict requirement if the ros_control namespace is /.

moveit_ros_control_interface::MoveItMultiControllerManager

This plugin does not need further configuration. It polls the ROS master for services and identifies ros_control nodes automatically. It spawns moveit_ros_control_interface::MoveItControllerManager instances with their namespace and takes cares of proper delegation.

Setup

Just set the moveit_controller_manager parameter in your MoveIt! launch file (e.g. ROBOT_moveit_config/launch/ROBOT_moveit_controller_manager.launch.xml)

<param name="moveit_controller_manager" value="moveit_ros_control_interface::MoveItMultiControllerManager" />

CHANGELOG

Changelog for package moveit_ros_control_interface

1.0.11 (2022-09-13)

1.0.10 (2022-03-06)

1.0.9 (2022-01-09)

1.0.8 (2021-05-23)

1.0.7 (2020-11-20)

  • [maint] Add comment to MOVEIT_CLASS_FORWARD (#2315)
  • Contributors: Felix von Drigalski

1.0.6 (2020-08-19)

1.0.5 (2020-07-08)

1.0.4 (2020-05-30)

1.0.3 (2020-04-26)

  • [maint] Fix errors: catkin_lint 1.6.7 (#1987)
  • [maint] Windows build: Fix binary artifact install locations. (#1575)
  • [maint] Use CMAKE_CXX_STANDARD to enforce c++14 (#1607)
  • [feature] Add support for pos_vel_controllers and pos_vel_acc_controllers (#1806)
  • Contributors: Robert Haschke, Sandro Magalh

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Recent questions tagged moveit_ros_control_interface at Robotics Stack Exchange