cob_gazebo_ros_control package from cob_gazebo_plugins repocob_gazebo_plugins cob_gazebo_ros_control |
|
Package Summary
Tags | No category tags. |
Version | 0.7.8 |
License | Apache 2.0 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ipa320/cob_gazebo_plugins.git |
VCS Type | git |
VCS Version | kinetic_dev |
Last Updated | 2024-02-19 |
Dev Status | END-OF-LIFE |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Felix Messmer
Authors
- Felix Messmer
Gazebo ros_control Interfaces
This is a ROS package for integrating the ros_control
controller architecture
with the Gazebo simulator.
This package provides a Gazebo plugin which instantiates a ros_control controller manager and connects it to a Gazebo model.
It extends the default plugin available in gazebo_ros_control.
This plugin has originally been discussed and proposed here.
Besides the features provided by the default
``` plugin, this plugin here adds the following additional features:
- Support for HardwareInterface-Switching
- Enable joint filtering
__NOTE__: The control\_methods
```POSITION_PID
``` and
```VELOCITY_PID
``` are not supported anymore, i.e. PID parameters loaded to the parameter server under namespace
```/gazebo_ros_control/pid_gains/
``` are ignored. In case you want to command e.g. positions but want to write efforts to Gazebo, use the
```effort_controllers/JointPositionController
``` (or similar) and set your PID values thers.
---
## Usage
[Documentation](http://gazebosim.org/tutorials?tut=ros_control&cat=connect_ros) related to the default plugin is provided on Gazebo's website.
To use the plugin, add the following to your robot's URDF:
The
```robotNamespace
``` is used as a prefix for the
```controller_manager
``` instantiated by the plugin.
The tag is optional and will default to global namespace '/' if not set.
In the example above the services will be advertised under
```/NAMESPACE/controller_manager
```.
__NOTE__: Do not use a trailing '/' before NAMESPACE!
You can also use the tags
```robotParam
``` and
```controlPeriod
``` as for the default plugin.
The tag
```robotSimType
``` is ignored and defaults to
```cob_gazebo_ros_control/HWISwitchRobotHWSim
``` which is a specialized HardwareInterface which is also provided in this package.
```HWISwitchRobotHWSim
``` derives from
```DefaultRobotHWSim
``` of the default plugin.
#### Support for HardwareInterface-Switching
With this plugin, you can now specify multiple HardwareInterfaces for the transmissions of your joints, like this:
<transmission name="arm_1_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="arm_1_joint">
<hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
<hardwareInterface>hardware_interface/VelocityJointInterface</hardwareInterface>
</joint>
<actuator name="arm_1_motor">
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
You can specify any HardwareInterface out of [
```PositionJointInterface
```,
```VelocityJointInterface
```,
```EffortJointInterface
```]. The order of does not matter.
#### Enable joint filtering
The default
```gazebo_ros_control
``` plugin creates JointHandles for all the joints present in your URDF. In order to only assign a specific set of joints to one plugin - and then use several plugins under different
```robotNamespaces
``` - you can use the new tag
```filterJointsParam
```.
The plugin will only create JointHandles given in the list loaded to the parameter server under
```/NAMESPACE/joint_names
```. In case the parameter cannot be found, the plugin fails to load.
The
```joint_names
``` parameter might look like this:
```joint_names: [arm_1_joint, arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint, arm_6_joint, arm_7_joint]
Benefit
This plugin allows to use ros_controllers requiring different HardwareInterfaces within the same gazebo session.
(No need to change the URDF for a different control_mode).
For example:
#position controller
arm_1_joint_position_controller:
type: position_controllers/JointPositionController
joint: arm_1_joint
#velocity controller
arm_1_joint_velocity_controller:
type: velocity_controllers/JointVelocityController
joint: arm_1_joint
can be loaded to the parameter server (under the NAMESPACE of the controller_manager) and then those two controllers can be switched using the ControllerManagers
switch_controller
-Service “on-the-fly”.
A side-benefit of this is that no “PID-Parameter-Tuning” would be required for simulation anymore, as gazebo supports all the (Standard-)HardwareInterfaces.
Changelog for package cob_gazebo_ros_control
0.7.8 (2024-02-19)
0.7.7 (2022-07-29)
0.7.6 (2021-12-23)
0.7.5 (2020-09-26)
- Merge pull request #47 from fmessmer/test_noetic test noetic
- Bump CMake version to avoid CMP0048 warning
- Merge pull request #44 from MatthiasNieuwenhuisen/fix_joint_filtering_segfault Fix wrong array index occuring if using joint filtering
- Fix wrong array index occuring if using joint filtering
- Contributors: Felix Messmer, Matthias Nieuwenhuisen, fmessmer
0.7.4 (2020-03-18)
- Merge pull request #41 from fmessmer/ci_updates [travis] ci updates
- catkin_lint fixes
- Merge pull request #40 from fmessmer/fix_warnings fix catkin_package DEPENDS warning
- fix catkin_package DEPENDS warning
- Contributors: Felix Messmer, fmessmer
0.7.3 (2019-08-06)
- Merge pull request #38 from benmaidel/melodic-devel [Melodic]
- backwards compatibility wrt hardware interface prefix
- query physics engine type
- remove obsolete member variable
- adjust plugin readme
- fix get simulation time for older gazebo version
- fix interface_type inference
- joint_interface should have prefix 'hardware_interface'
- fix compilation error
- Contributors: Benjamin Maidel, Felix Messmer, Shohei Fujii, fmessmer
0.7.2 (2018-01-07)
- Merge pull request #34 from ipa320/kinetic_release_candidate Kinetic release candidate
- Merge pull request #32 from ipa-fxm/kinetic_dev [kinetic] updates from indigo_dev
- Merge branch 'indigo_dev' of github.com:ipa320/cob_gazebo_plugins into kinetic_dev Conflicts: .travis.yml
- Merge pull request #31 from ipa-fxm/update_maintainer update maintainer
- update maintainer
- Merge pull request #28 from ipa-fxm/APACHE_license use license apache 2.0
- use license apache 2.0
- Contributors: Felix Messmer, ipa-fxm, ipa-uhr-mk
0.7.1 (2017-07-17)
- fix dependencies
- Contributors: Richard Bormann
0.7.0 (2017-07-17)
- Merge branch 'indigo_dev' of github.com:ipa320/cob_gazebo_plugins into multi_distro_travis_kinetic Conflicts: .travis.yml README.md
- compile with c++11
- Kinetic and Gazebo > 2, fixed hardware_interface::ControllerInfo API change
- Contributors: Benjamin Maidel, Dinesh Thakur, ipa-fxm
0.6.6 (2017-07-17)
- add state_valid behavior
- add estop behavior
- manually fix changelog
- Contributors: ipa-fxm
0.6.5 (2016-10-10)
0.6.4 (2016-04-01)
0.6.3 (2015-08-25)
- boost revision
- remove trailing whitespaces
- migration to package format 2
- fix missing dependency
- review dependencies
- Contributors: ipa-fxm
0.6.2 (2015-06-17)
- using strict_hwi_switch api
- more suitable name for plugin
- beautify CMakeLists
- use hwi_switch api
- proper reset of joint limit interface
- cleanup output
- Contributors: ipa-fxm
0.6.1 (2014-12-12)
- Update README.md
- Update README.md
- Update README.md
- Update README.md
- Update README.md
- enable joint filtering for multi_hwi_gazebo plugin
- remove support for X_PID control_methods for simplicity (obsolete anyway)
- unify ROS STREAM output
- ignore 'robotSimType'
- Update README.md
- Update README.md
- add README for new plugin
- correctly reset all interfaces in doSwitchHWInterface
- new gazebo_ros_control_plugin supporting multiple hardwareinterfaces and switch on controller_switching
- Contributors: Felix Messmer, ipa-fxm
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin | |
controller_manager | |
gazebo_ros | |
gazebo_ros_control | |
hardware_interface | |
joint_limits_interface | |
pluginlib | |
roscpp | |
transmission_interface | |
urdf |
System Dependencies
Name |
---|
gazebo |
Dependant Packages
Name | Deps |
---|---|
cob_gazebo |
Launch files
Messages
Services
Plugins
Recent questions tagged cob_gazebo_ros_control at Robotics Stack Exchange
cob_gazebo_ros_control package from cob_gazebo_plugins repocob_gazebo_plugins cob_gazebo_ros_control |
|
Package Summary
Tags | No category tags. |
Version | 0.7.8 |
License | Apache 2.0 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ipa320/cob_gazebo_plugins.git |
VCS Type | git |
VCS Version | kinetic_dev |
Last Updated | 2024-02-19 |
Dev Status | END-OF-LIFE |
CI status | Continuous Integration : 0 / 0 |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Felix Messmer
Authors
- Felix Messmer
Gazebo ros_control Interfaces
This is a ROS package for integrating the ros_control
controller architecture
with the Gazebo simulator.
This package provides a Gazebo plugin which instantiates a ros_control controller manager and connects it to a Gazebo model.
It extends the default plugin available in gazebo_ros_control.
This plugin has originally been discussed and proposed here.
Besides the features provided by the default
``` plugin, this plugin here adds the following additional features:
- Support for HardwareInterface-Switching
- Enable joint filtering
__NOTE__: The control\_methods
```POSITION_PID
``` and
```VELOCITY_PID
``` are not supported anymore, i.e. PID parameters loaded to the parameter server under namespace
```/gazebo_ros_control/pid_gains/
``` are ignored. In case you want to command e.g. positions but want to write efforts to Gazebo, use the
```effort_controllers/JointPositionController
``` (or similar) and set your PID values thers.
---
## Usage
[Documentation](http://gazebosim.org/tutorials?tut=ros_control&cat=connect_ros) related to the default plugin is provided on Gazebo's website.
To use the plugin, add the following to your robot's URDF:
The
```robotNamespace
``` is used as a prefix for the
```controller_manager
``` instantiated by the plugin.
The tag is optional and will default to global namespace '/' if not set.
In the example above the services will be advertised under
```/NAMESPACE/controller_manager
```.
__NOTE__: Do not use a trailing '/' before NAMESPACE!
You can also use the tags
```robotParam
``` and
```controlPeriod
``` as for the default plugin.
The tag
```robotSimType
``` is ignored and defaults to
```cob_gazebo_ros_control/HWISwitchRobotHWSim
``` which is a specialized HardwareInterface which is also provided in this package.
```HWISwitchRobotHWSim
``` derives from
```DefaultRobotHWSim
``` of the default plugin.
#### Support for HardwareInterface-Switching
With this plugin, you can now specify multiple HardwareInterfaces for the transmissions of your joints, like this:
<transmission name="arm_1_trans">
<type>transmission_interface/SimpleTransmission</type>
<joint name="arm_1_joint">
<hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
<hardwareInterface>hardware_interface/VelocityJointInterface</hardwareInterface>
</joint>
<actuator name="arm_1_motor">
<mechanicalReduction>1</mechanicalReduction>
</actuator>
</transmission>
You can specify any HardwareInterface out of [
```PositionJointInterface
```,
```VelocityJointInterface
```,
```EffortJointInterface
```]. The order of does not matter.
#### Enable joint filtering
The default
```gazebo_ros_control
``` plugin creates JointHandles for all the joints present in your URDF. In order to only assign a specific set of joints to one plugin - and then use several plugins under different
```robotNamespaces
``` - you can use the new tag
```filterJointsParam
```.
The plugin will only create JointHandles given in the list loaded to the parameter server under
```/NAMESPACE/joint_names
```. In case the parameter cannot be found, the plugin fails to load.
The
```joint_names
``` parameter might look like this:
```joint_names: [arm_1_joint, arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint, arm_6_joint, arm_7_joint]
Benefit
This plugin allows to use ros_controllers requiring different HardwareInterfaces within the same gazebo session.
(No need to change the URDF for a different control_mode).
For example:
#position controller
arm_1_joint_position_controller:
type: position_controllers/JointPositionController
joint: arm_1_joint
#velocity controller
arm_1_joint_velocity_controller:
type: velocity_controllers/JointVelocityController
joint: arm_1_joint
can be loaded to the parameter server (under the NAMESPACE of the controller_manager) and then those two controllers can be switched using the ControllerManagers
switch_controller
-Service “on-the-fly”.
A side-benefit of this is that no “PID-Parameter-Tuning” would be required for simulation anymore, as gazebo supports all the (Standard-)HardwareInterfaces.
Changelog for package cob_gazebo_ros_control
0.7.8 (2024-02-19)
0.7.7 (2022-07-29)
0.7.6 (2021-12-23)
0.7.5 (2020-09-26)
- Merge pull request #47 from fmessmer/test_noetic test noetic
- Bump CMake version to avoid CMP0048 warning
- Merge pull request #44 from MatthiasNieuwenhuisen/fix_joint_filtering_segfault Fix wrong array index occuring if using joint filtering
- Fix wrong array index occuring if using joint filtering
- Contributors: Felix Messmer, Matthias Nieuwenhuisen, fmessmer
0.7.4 (2020-03-18)
- Merge pull request #41 from fmessmer/ci_updates [travis] ci updates
- catkin_lint fixes
- Merge pull request #40 from fmessmer/fix_warnings fix catkin_package DEPENDS warning
- fix catkin_package DEPENDS warning
- Contributors: Felix Messmer, fmessmer
0.7.3 (2019-08-06)
- Merge pull request #38 from benmaidel/melodic-devel [Melodic]
- backwards compatibility wrt hardware interface prefix
- query physics engine type
- remove obsolete member variable
- adjust plugin readme
- fix get simulation time for older gazebo version
- fix interface_type inference
- joint_interface should have prefix 'hardware_interface'
- fix compilation error
- Contributors: Benjamin Maidel, Felix Messmer, Shohei Fujii, fmessmer
0.7.2 (2018-01-07)
- Merge pull request #34 from ipa320/kinetic_release_candidate Kinetic release candidate
- Merge pull request #32 from ipa-fxm/kinetic_dev [kinetic] updates from indigo_dev
- Merge branch 'indigo_dev' of github.com:ipa320/cob_gazebo_plugins into kinetic_dev Conflicts: .travis.yml
- Merge pull request #31 from ipa-fxm/update_maintainer update maintainer
- update maintainer
- Merge pull request #28 from ipa-fxm/APACHE_license use license apache 2.0
- use license apache 2.0
- Contributors: Felix Messmer, ipa-fxm, ipa-uhr-mk
0.7.1 (2017-07-17)
- fix dependencies
- Contributors: Richard Bormann
0.7.0 (2017-07-17)
- Merge branch 'indigo_dev' of github.com:ipa320/cob_gazebo_plugins into multi_distro_travis_kinetic Conflicts: .travis.yml README.md
- compile with c++11
- Kinetic and Gazebo > 2, fixed hardware_interface::ControllerInfo API change
- Contributors: Benjamin Maidel, Dinesh Thakur, ipa-fxm
0.6.6 (2017-07-17)
- add state_valid behavior
- add estop behavior
- manually fix changelog
- Contributors: ipa-fxm
0.6.5 (2016-10-10)
0.6.4 (2016-04-01)
0.6.3 (2015-08-25)
- boost revision
- remove trailing whitespaces
- migration to package format 2
- fix missing dependency
- review dependencies
- Contributors: ipa-fxm
0.6.2 (2015-06-17)
- using strict_hwi_switch api
- more suitable name for plugin
- beautify CMakeLists
- use hwi_switch api
- proper reset of joint limit interface
- cleanup output
- Contributors: ipa-fxm
0.6.1 (2014-12-12)
- Update README.md
- Update README.md
- Update README.md
- Update README.md
- Update README.md
- enable joint filtering for multi_hwi_gazebo plugin
- remove support for X_PID control_methods for simplicity (obsolete anyway)
- unify ROS STREAM output
- ignore 'robotSimType'
- Update README.md
- Update README.md
- add README for new plugin
- correctly reset all interfaces in doSwitchHWInterface
- new gazebo_ros_control_plugin supporting multiple hardwareinterfaces and switch on controller_switching
- Contributors: Felix Messmer, ipa-fxm
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin | |
controller_manager | |
gazebo_ros | |
gazebo_ros_control | |
hardware_interface | |
joint_limits_interface | |
pluginlib | |
roscpp | |
transmission_interface | |
urdf |
System Dependencies
Name |
---|
gazebo |
Dependant Packages
Name | Deps |
---|---|
cob_gazebo |