├── effort_controllers
├── .gitignore
├── mainpage.dox
├── test
│ ├── simple_bot_controllers.yaml
│ ├── effort_position_controller.test
│ ├── simple_bot.xacro
│ └── simple_bot_hw.launch
├── effort_controllers_plugins.xml
├── package.xml
├── src
│ ├── joint_effort_controller.cpp
│ └── joint_group_effort_controller.cpp
├── include
│ └── effort_controllers
│ │ └── joint_effort_controller.h
└── CMakeLists.txt
├── forward_command_controller
├── .gitignore
├── mainpage.dox
├── CMakeLists.txt
└── package.xml
├── joint_state_controller
├── .gitignore
├── config
│ └── joint_state_controller.yaml
├── test
│ ├── joint_state_controller_ok.yaml
│ ├── joint_state_controller_ko.yaml
│ ├── joint_state_controller_extra_joints_ok.yaml
│ ├── joint_state_controller_extra_joints_ko.yaml
│ └── joint_state_controller.test
├── rosdoc.yaml
├── launch
│ └── joint_state_controller.launch
├── joint_state_plugin.xml
├── package.xml
└── CMakeLists.txt
├── position_controllers
├── .gitignore
├── mainpage.dox
├── position_controllers_plugins.xml
├── CMakeLists.txt
├── package.xml
├── src
│ ├── joint_position_controller.cpp
│ └── joint_group_position_controller.cpp
└── include
│ └── position_controllers
│ └── joint_position_controller.h
├── velocity_controllers
├── .gitignore
├── mainpage.dox
├── velocity_controllers_plugins.xml
├── CMakeLists.txt
├── package.xml
├── src
│ ├── joint_velocity_controller.cpp
│ └── joint_group_velocity_controller.cpp
└── include
│ └── velocity_controllers
│ └── joint_velocity_controller.h
├── imu_sensor_controller
├── .gitignore
├── config
│ └── imu_sensor_controller.yaml
├── launch
│ └── imu_sensor_controller.launch
├── imu_sensor_plugin.xml
├── CMakeLists.txt
└── package.xml
├── force_torque_sensor_controller
├── .gitignore
├── config
│ └── force_torque_sensor_controller.yaml
├── launch
│ └── force_torque_sensor_controller.launch
├── force_torque_sensor_plugin.xml
├── CMakeLists.txt
└── package.xml
├── rqt_joint_trajectory_controller
├── src
│ └── rqt_joint_trajectory_controller
│ │ └── __init__.py
├── rosdoc.yaml
├── resource
│ ├── scope.png
│ └── double_editor.ui
├── scripts
│ └── rqt_joint_trajectory_controller
├── setup.py
├── CMakeLists.txt
├── plugin.xml
└── package.xml
├── joint_trajectory_controller
├── .gitignore
├── images
│ ├── new_trajectory.png
│ ├── trajectory_replacement_now.png
│ ├── trajectory_replacement_past.png
│ └── trajectory_replacement_future.png
├── rosdoc.yaml
├── mainpage.dox
├── README.md
├── test
│ ├── tolerances.test
│ ├── rrbot_partial_controllers.yaml
│ ├── rrbot_controllers.yaml
│ ├── rrbot_controllers_stopramp.yaml
│ ├── tolerances.yaml
│ ├── rrbot_vel_controllers.yaml
│ ├── rrbot_wrapping_controllers.yaml
│ ├── joint_trajectory_controller.test
│ ├── joint_trajectory_controller_vel.test
│ ├── joint_partial_trajectory_controller.test
│ ├── joint_trajectory_controller_stopramp.test
│ └── joint_trajectory_controller_wrapping.test
├── package.xml
└── ros_control_plugins.xml
├── diff_drive_controller
├── test
│ ├── diffbot_open_loop.yaml
│ ├── diffbot_timeout.yaml
│ ├── diffbot_multipliers.yaml
│ ├── diffbot_left_right_multipliers.yaml
│ ├── diffbot_controllers.yaml
│ ├── diffbot_wrong.yaml
│ ├── skidsteerbot_no_wheels.yaml
│ ├── diff_drive_controller.test
│ ├── skid_steer_controller.test
│ ├── diffbot_limits.yaml
│ ├── skidsteerbot_controllers.yaml
│ ├── diff_drive_open_loop.test
│ ├── diff_drive_controller_limits.test
│ ├── diff_drive_multipliers.test
│ ├── diff_drive_odom_tf.test
│ ├── diff_drive_timeout.test
│ ├── diff_drive_wrong.test
│ ├── diff_drive_dyn_reconf.test
│ ├── diff_drive_odom_frame.test
│ ├── diff_drive_controller_nan.test
│ ├── diff_drive_left_right_multipliers.test
│ ├── skid_steer_no_wheels.test
│ ├── diff_drive_default_odom_frame.test
│ ├── diff_drive_bad_urdf.test
│ ├── diff_drive_pub_cmd_vel_out.test
│ ├── diff_drive_default_cmd_vel_out.test
│ ├── diff_drive_get_wheel_radius_fail.test
│ ├── diff_drive_publish_wheel_joint_controller_state.test
│ ├── diff_drive_default_wheel_joint_controller_state.test
│ ├── diff_drive_radius_param.test
│ ├── diff_drive_radius_param_fail.test
│ ├── diff_drive_radius_sphere.test
│ ├── diff_drive_separation_param.test
│ ├── view_diffbot.launch
│ ├── view_skidsteerbot.launch
│ ├── diff_drive_common.launch
│ ├── skid_steer_common.launch
│ ├── diff_drive_multiple_cmd_vel_publishers.test
│ ├── sphere_wheel.xacro
│ ├── wheel.xacro
│ ├── square_wheel.xacro
│ ├── diffbot_sphere_wheels.xacro
│ ├── diffbot_square_wheels.xacro
│ ├── diff_drive_odom_tf_test.cpp
│ ├── diffbot.xacro
│ ├── diff_drive_fail_test.cpp
│ └── diff_drive_publish_wheel_joint_controller_state_test.cpp
├── README.md
├── diff_drive_controller_plugins.xml
├── cfg
│ └── DiffDriveController.cfg
└── package.xml
├── four_wheel_steering_controller
├── README.md
├── four_wheel_steering_controller_plugins.xml
├── test
│ ├── four_wheel_steering_controller_twist_cmd.test
│ ├── four_wheel_steering_wrong_config.test
│ ├── four_wheel_steering_controller_4ws_cmd.test
│ ├── src
│ │ ├── four_wheel_steering_wrong_config.cpp
│ │ └── four_wheel_steering.cpp
│ ├── config
│ │ ├── four_wheel_steering_controller_4ws_cmd.yaml
│ │ ├── four_wheel_steering_controller_twist_cmd.yaml
│ │ └── four_wheel_steering_wrong_config.yaml
│ ├── launch
│ │ ├── view_four_wheel_steering.launch
│ │ └── four_wheel_steering_common.launch
│ └── urdf
│ │ ├── four_wheel_steering.urdf.xacro
│ │ ├── chassis.xacro
│ │ ├── wheel.xacro
│ │ └── wheel_steered.xacro
└── package.xml
├── ros_controllers
├── CMakeLists.txt
└── package.xml
├── ackermann_steering_controller
├── test
│ ├── ackermann_steering_controller_open_loop_test
│ │ ├── ackermann_steering_bot_open_loop.yaml
│ │ └── ackermann_steering_controller_open_loop.test
│ ├── ackermann_steering_controller_timeout_test
│ │ ├── ackermann_steering_bot_timeout.yaml
│ │ └── ackermann_steering_controller_timeout.test
│ ├── common
│ │ ├── config
│ │ │ ├── ackermann_steering_bot_hw_sim.yaml
│ │ │ └── ackermann_steering_bot_controllers.yaml
│ │ ├── launch
│ │ │ ├── ackermann_steering_common.launch
│ │ │ └── view_ackermann_steering_bot.launch
│ │ └── src
│ │ │ └── ackermann_steering_bot.cpp
│ ├── ackermann_steering_controller_no_steer_test
│ │ ├── ackermann_steering_bot_no_steer.yaml
│ │ └── ackermann_steering_controller_no_steer.test
│ ├── ackermann_steering_controller_no_wheel_test
│ │ ├── ackermann_steering_bot_no_wheel.yaml
│ │ └── ackermann_steering_controller_no_wheel.test
│ ├── ackermann_steering_controller_fail_test
│ │ ├── ackermann_steering_bot_wrong.yaml
│ │ ├── ackermann_steering_controller_wrong.test
│ │ └── ackermann_steering_controller_fail_test.cpp
│ ├── ackermann_steering_controller_limits_test
│ │ ├── ackermann_steering_bot_limits.yaml
│ │ └── ackermann_steering_controller_limits.test
│ ├── ackermann_steering_controller_test
│ │ └── ackermann_steering_controller.test
│ ├── ackermann_steering_controller_nan_test
│ │ └── ackermann_steering_controller_nan.test
│ ├── ackermann_steering_controller_odom_tf_test
│ │ ├── ackermann_steering_controller_odom_tf.test
│ │ └── ackermann_steering_controller_odom_tf_test.cpp
│ ├── ackermann_steering_controller_odom_frame_test
│ │ └── ackermann_steering_controller_odom_frame.test
│ ├── ackermann_steering_controller_default_odom_frame_test
│ │ └── ackermann_steering_controller_default_odom_frame.test
│ ├── ackermann_steering_controller_radius_param_fail_test
│ │ └── ackermann_steering_controller_radius_param_fail.test
│ ├── ackermann_steering_controller_radius_param_test
│ │ └── ackermann_steering_controller_radius_param.test
│ └── ackermann_steering_controller_separation_param_test
│ │ └── ackermann_steering_controller_separation_param.test
├── README.md
├── ackermann_steering_controller_plugins.xml
└── package.xml
├── .gitignore
├── gripper_action_controller
├── ros_control_plugins.xml
├── package.xml
└── CMakeLists.txt
├── .github
└── workflows
│ └── ci.yml
├── LICENSE
├── .clang-format
└── README.md
/effort_controllers/.gitignore:
--------------------------------------------------------------------------------
1 | build
2 | lib
--------------------------------------------------------------------------------
/forward_command_controller/.gitignore:
--------------------------------------------------------------------------------
1 | build
--------------------------------------------------------------------------------
/joint_state_controller/.gitignore:
--------------------------------------------------------------------------------
1 | build
2 | lib
--------------------------------------------------------------------------------
/position_controllers/.gitignore:
--------------------------------------------------------------------------------
1 | build
2 | lib
--------------------------------------------------------------------------------
/velocity_controllers/.gitignore:
--------------------------------------------------------------------------------
1 | build
2 | lib
--------------------------------------------------------------------------------
/imu_sensor_controller/.gitignore:
--------------------------------------------------------------------------------
1 | bin
2 | build
3 | lib
--------------------------------------------------------------------------------
/force_torque_sensor_controller/.gitignore:
--------------------------------------------------------------------------------
1 | bin
2 | build
3 | lib
--------------------------------------------------------------------------------
/rqt_joint_trajectory_controller/src/rqt_joint_trajectory_controller/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/rqt_joint_trajectory_controller/rosdoc.yaml:
--------------------------------------------------------------------------------
1 | - builder: epydoc
2 | output_dir: python
--------------------------------------------------------------------------------
/joint_trajectory_controller/.gitignore:
--------------------------------------------------------------------------------
1 | bin
2 | build
3 | doc
4 | lib
5 | manifest.xml
6 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diffbot_open_loop.yaml:
--------------------------------------------------------------------------------
1 | diffbot_controller:
2 | open_loop: true
3 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diffbot_timeout.yaml:
--------------------------------------------------------------------------------
1 | diffbot_controller:
2 | cmd_vel_timeout: 0.5
3 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/README.md:
--------------------------------------------------------------------------------
1 | ## Four-wheel steering Controller ##
2 |
3 | Controller for a four_wheel_steering mobile base.
4 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diffbot_multipliers.yaml:
--------------------------------------------------------------------------------
1 | diffbot_controller:
2 | wheel_separation_multiplier: 2.3
3 | wheel_radius_multiplier: 1.4
4 |
--------------------------------------------------------------------------------
/imu_sensor_controller/config/imu_sensor_controller.yaml:
--------------------------------------------------------------------------------
1 | imu_sensor_controller:
2 | type: imu_sensor_controller/ImuSensorController
3 | publish_rate: 50
4 |
--------------------------------------------------------------------------------
/joint_state_controller/config/joint_state_controller.yaml:
--------------------------------------------------------------------------------
1 | joint_state_controller:
2 | type: joint_state_controller/JointStateController
3 | publish_rate: 50
--------------------------------------------------------------------------------
/joint_state_controller/test/joint_state_controller_ok.yaml:
--------------------------------------------------------------------------------
1 | joint_state_controller:
2 | type: joint_state_controller/JointStateController
3 | publish_rate: 10
--------------------------------------------------------------------------------
/ros_controllers/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.0.2)
2 | project(ros_controllers)
3 | find_package(catkin REQUIRED)
4 | catkin_metapackage()
5 |
--------------------------------------------------------------------------------
/joint_state_controller/test/joint_state_controller_ko.yaml:
--------------------------------------------------------------------------------
1 | joint_state_controller:
2 | type: joint_state_controller/JointStateController
3 | publish_rate: 0
4 |
--------------------------------------------------------------------------------
/rqt_joint_trajectory_controller/resource/scope.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ros-controls/ros_controllers/HEAD/rqt_joint_trajectory_controller/resource/scope.png
--------------------------------------------------------------------------------
/joint_trajectory_controller/images/new_trajectory.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ros-controls/ros_controllers/HEAD/joint_trajectory_controller/images/new_trajectory.png
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_open_loop_test/ackermann_steering_bot_open_loop.yaml:
--------------------------------------------------------------------------------
1 | ackermann_steering_bot_controller:
2 | open_loop: true
3 |
--------------------------------------------------------------------------------
/joint_state_controller/rosdoc.yaml:
--------------------------------------------------------------------------------
1 | - builder: doxygen
2 | name: C++ API
3 | output_dir: c++
4 | file_patterns: '*.c *.cpp *.h *.cc *.hh *.dox'
5 | exclude_patterns: 'test'
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_timeout_test/ackermann_steering_bot_timeout.yaml:
--------------------------------------------------------------------------------
1 | ackermann_steering_bot_controller:
2 | cmd_vel_timeout: 0.5
3 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/rosdoc.yaml:
--------------------------------------------------------------------------------
1 | - builder: doxygen
2 | name: C++ API
3 | output_dir: c++
4 | file_patterns: '*.c *.cpp *.h *.cc *.hh *.dox'
5 | exclude_patterns: 'test'
--------------------------------------------------------------------------------
/joint_trajectory_controller/images/trajectory_replacement_now.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ros-controls/ros_controllers/HEAD/joint_trajectory_controller/images/trajectory_replacement_now.png
--------------------------------------------------------------------------------
/joint_trajectory_controller/images/trajectory_replacement_past.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ros-controls/ros_controllers/HEAD/joint_trajectory_controller/images/trajectory_replacement_past.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # vi stuff
2 | .*.sw?
3 |
4 | # Python stuff
5 | *.pyc
6 |
7 | # Data files
8 | *.dat
9 | *.csv
10 |
11 | # Emacs temp files
12 | .#*
13 |
14 | # OSX Files
15 | .DS_Store
16 |
--------------------------------------------------------------------------------
/force_torque_sensor_controller/config/force_torque_sensor_controller.yaml:
--------------------------------------------------------------------------------
1 | force_torque_sensor_controller:
2 | type: force_torque_sensor_controller/ForceTorqueSensorController
3 | publish_rate: 50
4 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/images/trajectory_replacement_future.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ros-controls/ros_controllers/HEAD/joint_trajectory_controller/images/trajectory_replacement_future.png
--------------------------------------------------------------------------------
/diff_drive_controller/test/diffbot_left_right_multipliers.yaml:
--------------------------------------------------------------------------------
1 | diffbot_controller:
2 | wheel_separation_multiplier: 2.3
3 | left_wheel_radius_multiplier: 1.4
4 | right_wheel_radius_multiplier: 1.4
5 |
--------------------------------------------------------------------------------
/effort_controllers/mainpage.dox:
--------------------------------------------------------------------------------
1 | /**
2 | \mainpage
3 | \htmlinclude manifest.html
4 |
5 | \b effort_controllers
6 |
7 |
10 |
11 | -->
12 |
13 |
14 | */
15 |
--------------------------------------------------------------------------------
/position_controllers/mainpage.dox:
--------------------------------------------------------------------------------
1 | /**
2 | \mainpage
3 | \htmlinclude manifest.html
4 |
5 | \b position_controllers
6 |
7 |
10 |
11 | -->
12 |
13 |
14 | */
15 |
--------------------------------------------------------------------------------
/velocity_controllers/mainpage.dox:
--------------------------------------------------------------------------------
1 | /**
2 | \mainpage
3 | \htmlinclude manifest.html
4 |
5 | \b velocity_controllers
6 |
7 |
10 |
11 | -->
12 |
13 |
14 | */
15 |
--------------------------------------------------------------------------------
/forward_command_controller/mainpage.dox:
--------------------------------------------------------------------------------
1 | /**
2 | \mainpage
3 | \htmlinclude manifest.html
4 |
5 | \b forward_command_controller
6 |
7 |
10 |
11 | -->
12 |
13 |
14 | */
15 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/mainpage.dox:
--------------------------------------------------------------------------------
1 | /**
2 | \mainpage
3 | \htmlinclude manifest.html
4 |
5 | \b joint_trajectory_controller
6 |
7 |
10 |
11 | -->
12 |
13 |
14 | */
15 |
--------------------------------------------------------------------------------
/diff_drive_controller/README.md:
--------------------------------------------------------------------------------
1 | ## Diff Drive Controller ##
2 |
3 | Controller for a differential drive mobile base.
4 |
5 | Detailed user documentation can be found in the controller's [ROS wiki page](http://wiki.ros.org/diff_drive_controller).
6 |
--------------------------------------------------------------------------------
/rqt_joint_trajectory_controller/scripts/rqt_joint_trajectory_controller:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import sys
4 |
5 | from rqt_gui.main import Main
6 |
7 | main = Main()
8 | sys.exit(main.main(sys.argv, standalone='rqt_joint_trajectory_controller'))
9 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/README.md:
--------------------------------------------------------------------------------
1 | ## Ackermann Steerubg Controller ##
2 |
3 | Controller for a ackermann steering drive mobile base.
4 |
5 | Detailed user documentation can be found in the controller's [ROS wiki page](http://wiki.ros.org/ackermann_steering_controller)
6 |
--------------------------------------------------------------------------------
/effort_controllers/test/simple_bot_controllers.yaml:
--------------------------------------------------------------------------------
1 | joint_state_controller:
2 | type: joint_state_controller/JointStateController
3 | publish_rate: 50
4 |
5 | position_controller:
6 | type: effort_controllers/JointPositionController
7 | joint: joint
8 | pid: {p: 0.25, d: 1.0, i: 0.0}
9 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/README.md:
--------------------------------------------------------------------------------
1 | ## Joint Trajectory Controller ##
2 |
3 | Controller for executing joint-space trajectories on a group of joints.
4 |
5 | Detailed user documentation can be found in the controller's [ROS wiki page](http://wiki.ros.org/joint_trajectory_controller).
6 |
7 |
8 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/test/tolerances.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/rqt_joint_trajectory_controller/setup.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | from setuptools import setup
4 | from catkin_pkg.python_setup import generate_distutils_setup
5 |
6 | d = generate_distutils_setup(
7 | packages=['rqt_joint_trajectory_controller'],
8 | package_dir={'': 'src'}
9 | )
10 |
11 | setup(**d)
--------------------------------------------------------------------------------
/joint_state_controller/test/joint_state_controller_extra_joints_ok.yaml:
--------------------------------------------------------------------------------
1 | joint_state_controller:
2 | type: joint_state_controller/JointStateController
3 | publish_rate: 10
4 | extra_joints:
5 | - name: 'extra1'
6 | position: 10.0
7 | velocity: 20.0
8 | effort: 30.0
9 |
10 | - name: 'extra2'
11 | position: -10.0
12 |
13 | - name: 'extra3'
14 |
--------------------------------------------------------------------------------
/imu_sensor_controller/launch/imu_sensor_controller.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/joint_state_controller/launch/joint_state_controller.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/test/rrbot_partial_controllers.yaml:
--------------------------------------------------------------------------------
1 | rrbot_controller:
2 | type: "position_controllers/JointTrajectoryController"
3 | joints:
4 | - joint1
5 | - joint2
6 |
7 | constraints:
8 | goal_time: 0.5
9 | joint1:
10 | goal: 0.01
11 | trajectory: 0.05
12 | joint2:
13 | goal: 0.01
14 | trajectory: 0.05
15 | allow_partial_joints_goal: true
16 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/test/rrbot_controllers.yaml:
--------------------------------------------------------------------------------
1 | rrbot_controller:
2 | type: "position_controllers/JointTrajectoryController"
3 | joints:
4 | - joint1
5 | - joint2
6 |
7 | constraints:
8 | goal_time: 0.5
9 | joint1:
10 | goal: 0.01
11 | trajectory: 0.05
12 | joint2:
13 | goal: 0.01
14 | trajectory: 0.05
15 | stop_trajectory_duration: 0.0
16 | state_publish_rate: 100
17 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/common/config/ackermann_steering_bot_hw_sim.yaml:
--------------------------------------------------------------------------------
1 | ackermann_steering_bot_hw_sim:
2 | rear_wheel : 'rear_wheel_joint'
3 | front_steer : 'front_steer_joint'
4 |
5 | rear_wheels: ['rear_right_wheel_joint', 'rear_left_wheel_joint']
6 | front_wheels: ['front_right_wheel_joint', 'front_left_wheel_joint']
7 | front_steers: ['front_right_steer_joint', 'front_left_steer_joint']
8 |
9 | wheel_separation_h : 0.20
10 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/test/rrbot_controllers_stopramp.yaml:
--------------------------------------------------------------------------------
1 | rrbot_controller:
2 | type: "position_controllers/JointTrajectoryController"
3 | joints:
4 | - joint1
5 | - joint2
6 |
7 | constraints:
8 | goal_time: 0.5
9 | joint1:
10 | goal: 0.01
11 | trajectory: 0.05
12 | joint2:
13 | goal: 0.01
14 | trajectory: 0.05
15 | stop_trajectory_duration: 0.1
16 | state_publish_rate: 100
17 |
--------------------------------------------------------------------------------
/force_torque_sensor_controller/launch/force_torque_sensor_controller.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/test/tolerances.yaml:
--------------------------------------------------------------------------------
1 | constraints:
2 | goal_time: 1.0 # Defaults to zero
3 | stopped_velocity_tolerance: 0.02 # Defaults to 0.01
4 | foo_joint:
5 | trajectory: 0.05 # Not enforced if unspecified
6 | goal: 0.03 # Not enforced if unspecified
7 | bar_joint:
8 | goal: 0.01
9 |
10 | baz_joint: # Not part of joints we're looking for
11 | trajectory: 1.0
12 | goal: 2.0
13 |
14 |
15 |
--------------------------------------------------------------------------------
/diff_drive_controller/diff_drive_controller_plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The DiffDriveController tracks velocity commands. It expects 2 VelocityJointInterface type of hardware interfaces.
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/effort_controllers/test/effort_position_controller.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diffbot_controllers.yaml:
--------------------------------------------------------------------------------
1 | diffbot_controller:
2 | type: "diff_drive_controller/DiffDriveController"
3 | left_wheel: 'wheel_0_joint'
4 | right_wheel: 'wheel_1_joint'
5 | publish_rate: 50.0 # defaults to 50
6 | pose_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
7 | twist_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
8 | cmd_vel_timeout: 20.0 # we test this separately, give plenty for the other tests
9 |
--------------------------------------------------------------------------------
/imu_sensor_controller/imu_sensor_plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | This controller publishes the readings of all available IMU sensors as sensor_msgs/Imu message. The controller expects a ImuSensorInterface type of hardware interface.
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diffbot_wrong.yaml:
--------------------------------------------------------------------------------
1 | diffbot_controller:
2 | type: "diff_drive_controller/DiffDriveController"
3 | left_wheel: 'this_joint_does_not_exist'
4 | right_wheel: 'right_wheel_joint'
5 | publish_rate: 50.0 # defaults to 50
6 | pose_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
7 | twist_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
8 | cmd_vel_timeout: 20.0 # we test this separately, give plenty for the other tests
9 |
--------------------------------------------------------------------------------
/joint_state_controller/joint_state_plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | The joint state controller publishes the current joint state as a sensor_msgs/JointState message. The joint state controller expects a JointStateInterface type of hardware interface.
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/skidsteerbot_no_wheels.yaml:
--------------------------------------------------------------------------------
1 | skidsteerbot_controller:
2 | type: "diff_drive_controller/DiffDriveController"
3 | left_wheel: []
4 | right_wheel: ['wheel_3_joint', 'wheel_4_joint', 'wheel_5_joint']
5 | publish_rate: 50.0 # defaults to 50
6 | pose_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
7 | twist_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
8 | cmd_vel_timeout: 20.0 # we test this separately, give plenty for the other tests
9 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_controller.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/skid_steer_controller.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/ackermann_steering_controller_plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The AckermannSteeringController tracks velocity commands. It expects 1 VelocityJointInterface and 1 PositionJointInterfece types of hardware interfaces.
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/joint_state_controller/test/joint_state_controller_extra_joints_ko.yaml:
--------------------------------------------------------------------------------
1 | joint_state_controller:
2 | type: joint_state_controller/JointStateController
3 | publish_rate: 10
4 | extra_joints:
5 | - name: 'joint1' # should be ignored, as already exists
6 | position: 10.0
7 | velocity: 20.0
8 | effort: 30.0
9 |
10 | - name: 'bad_position'
11 | position: 'zero'
12 |
13 | - name: 'bad_velocity'
14 | velocity: 'zero'
15 |
16 | - name: 'bad_effort'
17 | effort: 'zero'
18 |
19 | - nickname: 'no_name'
20 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diffbot_limits.yaml:
--------------------------------------------------------------------------------
1 | diffbot_controller:
2 | linear:
3 | x:
4 | has_velocity_limits: true
5 | min_velocity: -0.5
6 | max_velocity: 1.0
7 | has_acceleration_limits: true
8 | min_acceleration: -0.5
9 | max_acceleration: 1.0
10 | has_jerk_limits: true
11 | max_jerk: 5.0
12 | angular:
13 | z:
14 | has_velocity_limits: true
15 | max_velocity: 2.0
16 | has_acceleration_limits: true
17 | max_acceleration: 2.0
18 | has_jerk_limits: true
19 | max_jerk: 10.0
20 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/skidsteerbot_controllers.yaml:
--------------------------------------------------------------------------------
1 | skidsteerbot_controller:
2 | type: "diff_drive_controller/DiffDriveController"
3 | left_wheel: ['wheel_0_joint', 'wheel_1_joint', 'wheel_2_joint']
4 | right_wheel: ['wheel_3_joint', 'wheel_4_joint', 'wheel_5_joint']
5 | publish_rate: 50.0 # defaults to 50
6 | pose_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
7 | twist_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
8 | cmd_vel_timeout: 20.0 # we test this separately, give plenty for the other tests
9 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/four_wheel_steering_controller_plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The FourWheelSteeringController tracks velocity commands. It expects 4 VelocityJointInterface type and 4 PositionJointInterface type of hardware interfaces.
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/test/rrbot_vel_controllers.yaml:
--------------------------------------------------------------------------------
1 | rrbot_controller:
2 | type: "velocity_controllers/JointTrajectoryController"
3 | joints:
4 | - joint1
5 | - joint2
6 |
7 | constraints:
8 | goal_time: 0.5
9 | joint1:
10 | goal: 0.01
11 | trajectory: 0.05
12 | joint2:
13 | goal: 0.01
14 | trajectory: 0.05
15 |
16 | gains:
17 | joint1: {p: 1.0, i: 0.0, d: 0.0, i_clamp: 1}
18 | joint2: {p: 1.0, i: 0.0, d: 0.0, i_clamp: 1}
19 |
20 | velocity_ff:
21 | joint1: 1.0
22 | joint2: 1.0
23 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_no_steer_test/ackermann_steering_bot_no_steer.yaml:
--------------------------------------------------------------------------------
1 | ackermann_steering_bot_controller:
2 | type: "ackermann_steering_controller/AckermannSteeringController"
3 | rear_wheel : 'rear_wheel_joint'
4 | front_steer : ''
5 | publish_rate: 50.0 # defaults to 50
6 | pose_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
7 | twist_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
8 | cmd_vel_timeout: 20.0 # we test this separately, give plenty for the other tests
9 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_no_wheel_test/ackermann_steering_bot_no_wheel.yaml:
--------------------------------------------------------------------------------
1 | ackermann_steering_bot_controller:
2 | type: "ackermann_steering_controller/AckermannSteeringController"
3 | rear_wheel : ''
4 | front_steer : 'front_steer_joint'
5 | publish_rate: 50.0 # defaults to 50
6 | pose_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
7 | twist_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
8 | cmd_vel_timeout: 20.0 # we test this separately, give plenty for the other tests
9 |
--------------------------------------------------------------------------------
/force_torque_sensor_controller/force_torque_sensor_plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | This controller publishes the readings of all available force-torque sensors as geometry_msgs/WrenchStamped message. The controller expects a ForceTorqueSensorInterface type of hardware interface.
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/test/rrbot_wrapping_controllers.yaml:
--------------------------------------------------------------------------------
1 | rrbot_wrapping_controller:
2 | type: "velocity_controllers/JointTrajectoryController"
3 | joints:
4 | - joint1
5 | - joint2
6 |
7 | constraints:
8 | goal_time: 0.5
9 | joint1:
10 | goal: 0.01
11 | trajectory: 0.05
12 | joint2:
13 | goal: 0.01
14 | trajectory: 0.05
15 |
16 | gains: # Required because we're controlling a velocity interface
17 | joint1: {p: 2.5, i: 0.0, d: 0.0, i_clamp: 1.0}
18 | joint2: {p: 2.5, i: 0.0, d: 0.0, i_clamp: 1.0}
19 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_fail_test/ackermann_steering_bot_wrong.yaml:
--------------------------------------------------------------------------------
1 | ackermann_steering_bot_controller:
2 | type: "ackermann_steering_controller/AckermannSteeringController"
3 | rear_wheel : 'this_joint_does_not_exist'
4 | front_steer : 'front_steer_joint'
5 | publish_rate: 50.0 # defaults to 50
6 | pose_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
7 | twist_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
8 | cmd_vel_timeout: 20.0 # we test this separately, give plenty for the other tests
9 |
--------------------------------------------------------------------------------
/effort_controllers/test/simple_bot.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/gripper_action_controller/ros_control_plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_limits_test/ackermann_steering_bot_limits.yaml:
--------------------------------------------------------------------------------
1 | ackermann_steering_bot_controller:
2 | linear:
3 | x:
4 | has_velocity_limits: true
5 | min_velocity: -0.5
6 | max_velocity: 1.0
7 | has_acceleration_limits: true
8 | min_acceleration: -0.5
9 | max_acceleration: 1.0
10 | has_jerk_limits: true
11 | max_jerk: 5.0
12 | angular:
13 | z:
14 | has_velocity_limits: true
15 | max_velocity: 0.5
16 | has_acceleration_limits: true
17 | max_acceleration: 0.5
18 | has_jerk_limits: true
19 | max_jerk: 2.5
20 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/four_wheel_steering_controller_twist_cmd.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_test/ackermann_steering_controller.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_open_loop.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_controller_limits.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_multipliers.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_odom_tf.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | diffbot_controller:
9 | enable_odom_tf: False
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_timeout.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_wrong.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_nan_test/ackermann_steering_controller_nan.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_dyn_reconf.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | diffbot_controller:
9 | enable_odom_tf: False
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_odom_frame.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | diffbot_controller:
9 | odom_frame_id: new_odom
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_controller_nan.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | diffbot_controller:
8 | publish_cmd: True
9 |
10 |
11 |
12 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_left_right_multipliers.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/skid_steer_no_wheels.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/common/config/ackermann_steering_bot_controllers.yaml:
--------------------------------------------------------------------------------
1 | ackermann_steering_bot_controller:
2 | type: "ackermann_steering_controller/AckermannSteeringController"
3 | rear_wheel : 'rear_wheel_joint'
4 | front_steer : 'front_steer_joint'
5 | publish_rate: 50.0 # defaults to 50
6 |
7 | pose_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
8 | twist_covariance_diagonal: [0.001, 0.001, 1000000.0, 1000000.0, 1000000.0, 1000.0]
9 | cmd_vel_timeout: 20.0 # we test this separately, give plenty for the other tests
10 |
11 | #wheel_separation_h : 0.4
12 | #wheel_radius : 0.11
13 | wheel_separation_h_multiplier: 0.257 # calibration parameter for odometory, needed for test.
14 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_default_odom_frame.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_bad_urdf.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_pub_cmd_vel_out.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | diffbot_controller:
8 | publish_cmd: True
9 |
10 |
11 |
12 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/forward_command_controller/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.0.2)
2 | project(forward_command_controller)
3 |
4 | # Load catkin and all dependencies required for this package
5 | find_package(catkin REQUIRED COMPONENTS
6 | controller_interface
7 | hardware_interface
8 | realtime_tools
9 | roscpp
10 | std_msgs
11 | )
12 |
13 | # Declare catkin package
14 | catkin_package(
15 | INCLUDE_DIRS
16 | include
17 | CATKIN_DEPENDS
18 | controller_interface
19 | hardware_interface
20 | realtime_tools
21 | roscpp
22 | std_msgs
23 | )
24 |
25 |
26 | #############
27 | ## Install ##
28 | #############
29 |
30 | # Install headers
31 | install(DIRECTORY include/${PROJECT_NAME}/
32 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
33 | )
34 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: Test ros_controllers
2 | on:
3 | pull_request:
4 | push:
5 | branches:
6 | - noetic-devel
7 | schedule:
8 | # Run every morning to detect flakiness and broken dependencies
9 | - cron: '17 8 * * *'
10 |
11 | jobs:
12 | industrial_ci:
13 | runs-on: ubuntu-latest
14 | strategy:
15 | matrix:
16 | env:
17 | - {ROS_DISTRO: noetic, ROS_REPO: main}
18 | - {ROS_DISTRO: noetic, ROS_REPO: testing}
19 | - {ROS_DISTRO: noetic, UPSTREAM_WORKSPACE: "https://raw.githubusercontent.com/ros-controls/ros_control/$ROS_DISTRO-devel/ros_control.rosinstall -ros_controllers"}
20 | steps:
21 | - uses: actions/checkout@v1
22 | - uses: ros-industrial/industrial_ci@master
23 | env: ${{matrix.env}}
24 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_default_cmd_vel_out.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_get_wheel_radius_fail.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/rqt_joint_trajectory_controller/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.0.2)
2 | project(rqt_joint_trajectory_controller)
3 |
4 | # Load catkin and all dependencies required for this package
5 | find_package(catkin REQUIRED COMPONENTS)
6 |
7 | catkin_python_setup()
8 |
9 | # Declare a catkin package
10 | catkin_package()
11 |
12 |
13 | #############
14 | ## Install ##
15 | #############
16 |
17 | # Install plugins
18 | install(FILES plugin.xml
19 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
20 | )
21 |
22 | # Intall extra
23 | install(DIRECTORY resource
24 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
25 | )
26 |
27 | # Install scripts
28 | catkin_install_python(PROGRAMS
29 | scripts/rqt_joint_trajectory_controller
30 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
31 | )
32 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/four_wheel_steering_wrong_config.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/rqt_joint_trajectory_controller/plugin.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | Graphical frontend for interacting with joint_trajectory_controller instances.
7 |
8 |
9 |
10 |
11 | folder
12 | Plugins related to robot tools.
13 |
14 |
15 | resource/scope.png
16 |
17 | Monitor and send commands to running joint trajectory controllers.
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/position_controllers/position_controllers_plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The JointPositionController tracks position commands. It expects a PositionJointInterface type of hardware interface.
6 |
7 |
8 |
9 |
10 |
11 | The JointGroupPositionController tracks position commands for a set of joints. It expects a PositionJointInterface type of hardware interface.
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/joint_state_controller/test/joint_state_controller.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
9 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_odom_tf_test/ackermann_steering_controller_odom_tf.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | ackermann_steering_bot_controller:
8 | enable_odom_tf: False
9 |
10 |
11 |
12 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/diff_drive_controller/cfg/DiffDriveController.cfg:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | PACKAGE = 'diff_drive_controller'
4 |
5 | from dynamic_reconfigure.parameter_generator_catkin import ParameterGenerator, bool_t, double_t
6 |
7 | gen = ParameterGenerator()
8 |
9 | # Kinematic parameters related
10 | gen.add("left_wheel_radius_multiplier", double_t, 0, "Left wheel radius multiplier.", 1.0, 0.5, 1.5)
11 | gen.add("right_wheel_radius_multiplier", double_t, 0, "Right wheel radius multiplier.", 1.0, 0.5, 1.5)
12 | gen.add("wheel_separation_multiplier", double_t, 0, "Wheel separation multiplier.", 1.0, 0.5, 1.5)
13 |
14 | # Publication related
15 | gen.add("publish_rate", double_t, 0, "Publish rate of odom.", 50.0, 0.0, 2000.0)
16 | gen.add("enable_odom_tf", bool_t, 0, "Publish odom frame to tf.", True)
17 |
18 | exit(gen.generate(PACKAGE, "diff_drive_controller", "DiffDriveController"))
19 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_publish_wheel_joint_controller_state.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | diffbot_controller:
9 | publish_wheel_joint_controller_state: True
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_odom_frame_test/ackermann_steering_controller_odom_frame.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | ackermann_steering_bot_controller:
9 | odom_frame_id: new_odom
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_default_wheel_joint_controller_state.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/four_wheel_steering_controller_4ws_cmd.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/src/four_wheel_steering_wrong_config.cpp:
--------------------------------------------------------------------------------
1 |
2 | #include "test_common.h"
3 |
4 | // TEST CASES
5 | TEST_F(FourWheelSteeringControllerTest, testWrongConfig)
6 | {
7 | // The controller should be never alive
8 | int secs = 0;
9 | while(!isControllerAlive() && ros::ok() && secs < 5)
10 | {
11 | ros::Duration(1.0).sleep();
12 | secs++;
13 | }
14 | if (!ros::ok())
15 | FAIL() << "Something went wrong while executing test.";
16 | // Give up and assume controller load failure after 5 seconds
17 | EXPECT_GE(secs,5);
18 | }
19 |
20 |
21 | int main(int argc, char** argv)
22 | {
23 | testing::InitGoogleTest(&argc, argv);
24 | ros::init(argc, argv, "four_wheel_steering_wrong_config_test");
25 |
26 | ros::AsyncSpinner spinner(1);
27 | spinner.start();
28 | int ret = RUN_ALL_TESTS();
29 | spinner.stop();
30 | ros::shutdown();
31 | return ret;
32 | }
33 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_limits_test/ackermann_steering_controller_limits.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_default_odom_frame_test/ackermann_steering_controller_default_odom_frame.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
12 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_fail_test/ackermann_steering_controller_wrong.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_timeout_test/ackermann_steering_controller_timeout.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_radius_param.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/effort_controllers/test/simple_bot_hw.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_open_loop_test/ackermann_steering_controller_open_loop.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_radius_param_fail.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_radius_sphere.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_no_steer_test/ackermann_steering_controller_no_steer.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_no_wheel_test/ackermann_steering_controller_no_wheel.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/config/four_wheel_steering_controller_4ws_cmd.yaml:
--------------------------------------------------------------------------------
1 | robot_joint_publisher:
2 | type: "joint_state_controller/JointStateController"
3 | publish_rate: 50
4 | four_wheel_steering_controller:
5 | type: "four_wheel_steering_controller/FourWheelSteeringController"
6 | front_wheel: ['front_left_wheel', 'front_right_wheel']
7 | rear_wheel: ['rear_left_wheel', 'rear_right_wheel']
8 | front_steering: ['front_left_steering_joint', 'front_right_steering_joint']
9 | rear_steering: ['rear_left_steering_joint', 'rear_right_steering_joint']
10 | publish_rate: 50
11 | pose_covariance_diagonal: [0.001, 0.001, 0.001, 0.001, 0.001, 0.03]
12 | twist_covariance_diagonal: [0.001, 0.001, 0.001, 0.001, 0.001, 0.03]
13 | cmd_vel_timeout: 25.0 # not tested here
14 |
15 | # Base frame_id
16 | base_frame_id: base_footprint
17 |
18 | # Odometry fused with IMU is published by robot_localization, so
19 | # no need to publish a TF based on encoders alone.
20 | enable_odom_tf: true
21 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/config/four_wheel_steering_controller_twist_cmd.yaml:
--------------------------------------------------------------------------------
1 | robot_joint_publisher:
2 | type: "joint_state_controller/JointStateController"
3 | publish_rate: 50
4 | four_wheel_steering_controller:
5 | type: "four_wheel_steering_controller/FourWheelSteeringController"
6 | front_wheel: ['front_left_wheel', 'front_right_wheel']
7 | rear_wheel: ['rear_left_wheel', 'rear_right_wheel']
8 | front_steering: ['front_left_steering_joint', 'front_right_steering_joint']
9 | rear_steering: ['rear_left_steering_joint', 'rear_right_steering_joint']
10 | publish_rate: 50
11 | pose_covariance_diagonal: [0.001, 0.001, 0.001, 0.001, 0.001, 0.03]
12 | twist_covariance_diagonal: [0.001, 0.001, 0.001, 0.001, 0.001, 0.03]
13 | cmd_vel_timeout: 25.0 # not tested here
14 |
15 | # Base frame_id
16 | base_frame_id: base_footprint
17 |
18 | # Odometry fused with IMU is published by robot_localization, so
19 | # no need to publish a TF based on encoders alone.
20 | enable_odom_tf: true
21 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_separation_param.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/view_diffbot.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/view_skidsteerbot.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_radius_param_fail_test/ackermann_steering_controller_radius_param_fail.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_radius_param_test/ackermann_steering_controller_radius_param.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_common.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | True
5 |
6 |
7 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
35 |
36 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/skid_steer_common.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | True
5 |
6 |
7 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
35 |
36 |
--------------------------------------------------------------------------------
/velocity_controllers/velocity_controllers_plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The JointVelocityController tracks velocity commands. It expects a VelocityJointInterface type of hardware interface.
6 |
7 |
8 |
9 |
10 |
11 | The JointPositionController converts position commands to velocity commands. It expects a VelocityJointInterface type of hardware interface.
12 |
13 |
14 |
15 |
16 |
17 | The JointGroupVelocityController tracks velocity commands for a set of joints. It expects a VelocityJointInterface type of hardware interface.
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_separation_param_test/ackermann_steering_controller_separation_param.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_multiple_cmd_vel_publishers.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/gripper_action_controller/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | gripper_action_controller
7 | 0.22.0
8 | The gripper_action_controller package
9 |
10 | BSD
11 |
12 | Sachin Chitta
13 | Bence Magyar
14 | Enrique Fernandez
15 |
16 | Sachin Chitta
17 |
18 | catkin
19 |
20 | actionlib
21 | controller_interface
22 | control_toolbox
23 | realtime_tools
24 | roscpp
25 | urdf
26 |
27 | control_msgs
28 | hardware_interface
29 | pluginlib
30 |
31 | control_msgs
32 | hardware_interface
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/position_controllers/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.0.2)
2 | project(position_controllers)
3 |
4 | # Load catkin and all dependencies required for this package
5 | find_package(catkin REQUIRED COMPONENTS
6 | forward_command_controller
7 | hardware_interface
8 | pluginlib
9 | roscpp
10 | )
11 |
12 | # Declare a catkin package
13 | catkin_package(
14 | CATKIN_DEPENDS forward_command_controller hardware_interface
15 | INCLUDE_DIRS include
16 | LIBRARIES ${PROJECT_NAME}
17 | )
18 |
19 |
20 | ###########
21 | ## Build ##
22 | ###########
23 |
24 | # Specify header include paths
25 | include_directories(include ${catkin_INCLUDE_DIRS})
26 | add_library(${PROJECT_NAME}
27 | src/joint_group_position_controller.cpp
28 | src/joint_position_controller.cpp
29 | )
30 | target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES})
31 |
32 |
33 | #############
34 | ## Install ##
35 | #############
36 |
37 | # Install headers
38 | install(DIRECTORY include/${PROJECT_NAME}/
39 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
40 | )
41 |
42 | # Install targets
43 | install(TARGETS ${PROJECT_NAME}
44 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
45 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
46 | RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
47 | )
48 |
49 | # Install plugins
50 | install(FILES position_controllers_plugins.xml
51 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
52 | )
53 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/config/four_wheel_steering_wrong_config.yaml:
--------------------------------------------------------------------------------
1 | four_wheel_steering_controller:
2 | type: "four_wheel_steering_controller/FourWheelSteeringController"
3 | front_wheel: ['joint_that_does_not_exist', 'front_right_wheel']
4 | rear_wheel: ['rear_left_wheel', 'rear_right_wheel']
5 | front_steering: ['front_left_steering_joint', 'front_right_steering_joint']
6 | rear_steering: ['rear_left_steering_joint', 'rear_right_steering_joint']
7 | publish_rate: 50
8 | pose_covariance_diagonal: [0.001, 0.001, 0.001, 0.001, 0.001, 0.03]
9 | twist_covariance_diagonal: [0.001, 0.001, 0.001, 0.001, 0.001, 0.03]
10 | cmd_vel_timeout: 0.25
11 |
12 | # Base frame_id
13 | base_frame_id: base_footprint
14 |
15 | # Odometry fused with IMU is published by robot_localization, so
16 | # no need to publish a TF based on encoders alone.
17 | enable_odom_tf: true
18 |
19 | #wheel_separation: 1.23
20 | #wheel_radius: 0.28
21 | #wheel_base: 1.22
22 |
23 | # Velocity and acceleration limits
24 | # Whenever a min_* is unspecified, default to -max_*
25 | linear:
26 | x:
27 | has_velocity_limits : true
28 | max_velocity : 3.0 # m/s
29 | has_acceleration_limits: true
30 | max_acceleration : 3.0 # m/s^2
31 | angular:
32 | z:
33 | has_velocity_limits : true
34 | max_velocity : 1.0 # rad/s
35 | has_acceleration_limits: true
36 | max_acceleration : 2.0 # rad/s^2
37 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/sphere_wheel.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | 1
36 | 1
37 |
38 |
39 |
40 | Gazebo/Red
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/gripper_action_controller/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.0.2)
2 | project(gripper_action_controller)
3 |
4 | find_package(catkin
5 | REQUIRED COMPONENTS
6 | actionlib
7 | control_msgs
8 | control_toolbox
9 | controller_interface
10 | hardware_interface
11 | pluginlib
12 | realtime_tools
13 | roscpp
14 | urdf
15 | )
16 |
17 | catkin_package(
18 | INCLUDE_DIRS include
19 | LIBRARIES gripper_action_controller
20 | CATKIN_DEPENDS
21 | actionlib
22 | control_msgs
23 | control_toolbox
24 | controller_interface
25 | hardware_interface
26 | realtime_tools
27 | roscpp
28 | urdf
29 | )
30 |
31 |
32 | ###########
33 | ## Build ##
34 | ###########
35 |
36 | # Specify header include paths
37 | include_directories(include ${catkin_INCLUDE_DIRS})
38 |
39 | add_library(gripper_action_controller
40 | src/gripper_action_controller.cpp
41 | )
42 | target_link_libraries(gripper_action_controller ${catkin_LIBRARIES})
43 |
44 |
45 | #############
46 | ## Install ##
47 | #############
48 |
49 | # Install headers
50 | install(DIRECTORY include/${PROJECT_NAME}/
51 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
52 | )
53 |
54 | # Install targets
55 | install(TARGETS gripper_action_controller
56 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
57 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
58 | RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
59 | )
60 |
61 | # Install plugins
62 | install(FILES ros_control_plugins.xml
63 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
64 | )
65 |
--------------------------------------------------------------------------------
/joint_state_controller/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | joint_state_controller
7 | 0.22.0
8 | Controller to publish joint state
9 |
10 | Bence Magyar
11 | Mathias Lüdtke
12 | Enrique Fernandez
13 |
14 | BSD
15 |
16 | https://github.com/ros-controls/ros_controllers/wiki
17 | https://github.com/ros-controls/ros_controllers/issues
18 | https://github.com/ros-controls/ros_controllers
19 |
20 | Wim Meeussen
21 |
22 | catkin
23 |
24 | controller_interface
25 | realtime_tools
26 | roscpp
27 |
28 | hardware_interface
29 | pluginlib
30 | sensor_msgs
31 |
32 | hardware_interface
33 | sensor_msgs
34 |
35 | rostest
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/position_controllers/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | position_controllers
7 | 0.22.0
8 | position_controllers
9 |
10 | Bence Magyar
11 | Mathias Lüdtke
12 | Enrique Fernandez
13 |
14 | BSD
15 |
16 | https://github.com/ros-controls/ros_controllers/wiki
17 | https://github.com/ros-controls/ros_controllers/issues
18 | https://github.com/ros-controls/ros_controllers
19 |
20 | Vijay Pradeep
21 |
22 | catkin
23 |
24 | forward_command_controller
25 | hardware_interface
26 | pluginlib
27 | roscpp
28 |
29 | forward_command_controller
30 | hardware_interface
31 |
32 | controller_interface
33 | roscpp
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/wheel.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | 1
36 | 1
37 |
38 |
39 |
40 | Gazebo/Red
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/imu_sensor_controller/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.0.2)
2 | project(imu_sensor_controller)
3 |
4 | # Load catkin and all dependencies required for this package
5 | find_package(catkin REQUIRED COMPONENTS
6 | controller_interface
7 | hardware_interface
8 | pluginlib
9 | realtime_tools
10 | roscpp
11 | sensor_msgs
12 | )
13 |
14 | # Declare a catkin package
15 | catkin_package(
16 | CATKIN_DEPENDS
17 | controller_interface
18 | hardware_interface
19 | realtime_tools
20 | roscpp
21 | sensor_msgs
22 | INCLUDE_DIRS include
23 | LIBRARIES ${PROJECT_NAME}
24 | )
25 |
26 |
27 | ###########
28 | ## Build ##
29 | ###########
30 |
31 | include_directories(include ${catkin_INCLUDE_DIRS})
32 |
33 | add_library(${PROJECT_NAME}
34 | src/imu_sensor_controller.cpp
35 | include/imu_sensor_controller/imu_sensor_controller.h
36 | )
37 | target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES})
38 |
39 |
40 | #############
41 | ## Install ##
42 | #############
43 |
44 | # Install headers
45 | install(DIRECTORY include/${PROJECT_NAME}/
46 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
47 | )
48 |
49 | # Install targets
50 | install(TARGETS ${PROJECT_NAME}
51 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
52 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
53 | RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
54 | )
55 |
56 | # Install plugins
57 | install(FILES imu_sensor_plugin.xml
58 | config/imu_sensor_controller.yaml
59 | launch/imu_sensor_controller.launch
60 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
61 | )
62 |
--------------------------------------------------------------------------------
/imu_sensor_controller/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | imu_sensor_controller
7 | 0.22.0
8 | Controller to publish state of IMU sensors
9 |
10 | Bence Magyar
11 | Mathias Lüdtke
12 | Enrique Fernandez
13 |
14 | BSD
15 |
16 | https://github.com/ros-controls/ros_controllers/wiki
17 | https://github.com/ros-controls/ros_controllers/issues
18 | https://github.com/ros-controls/ros_controllers
19 |
20 | Adolfo Rodriguez Tsouroukdissian
21 |
22 | catkin
23 |
24 | controller_interface
25 | realtime_tools
26 | roscpp
27 |
28 | hardware_interface
29 | pluginlib
30 | sensor_msgs
31 |
32 | hardware_interface
33 | sensor_msgs
34 |
35 | controller_manager
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/force_torque_sensor_controller/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.0.2)
2 | project(force_torque_sensor_controller)
3 |
4 | # Load catkin and all dependencies required for this package
5 | find_package(catkin REQUIRED COMPONENTS
6 | controller_interface
7 | geometry_msgs
8 | hardware_interface
9 | pluginlib
10 | realtime_tools
11 | roscpp
12 | )
13 |
14 | # Declare catkin package
15 | catkin_package(
16 | CATKIN_DEPENDS
17 | controller_interface
18 | geometry_msgs
19 | hardware_interface
20 | realtime_tools
21 | roscpp
22 | INCLUDE_DIRS include
23 | LIBRARIES ${PROJECT_NAME}
24 | )
25 |
26 |
27 | ###########
28 | ## Build ##
29 | ###########
30 |
31 | # Specify header include paths
32 | include_directories(include ${catkin_INCLUDE_DIRS})
33 |
34 | add_library(${PROJECT_NAME}
35 | src/force_torque_sensor_controller.cpp
36 | )
37 | target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES})
38 |
39 |
40 | #############
41 | ## Install ##
42 | #############
43 |
44 | # Install headers
45 | install(DIRECTORY include/${PROJECT_NAME}/
46 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
47 | )
48 |
49 | # Install targets
50 | install(TARGETS ${PROJECT_NAME}
51 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
52 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
53 | RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
54 | )
55 |
56 | # Intall plugins
57 | install(FILES force_torque_sensor_plugin.xml
58 | config/force_torque_sensor_controller.yaml
59 | launch/force_torque_sensor_controller.launch
60 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
61 | )
62 |
--------------------------------------------------------------------------------
/force_torque_sensor_controller/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | force_torque_sensor_controller
7 | 0.22.0
8 | Controller to publish state of force-torque sensors
9 |
10 | Bence Magyar
11 | Mathias Lüdtke
12 | Enrique Fernandez
13 |
14 | BSD
15 |
16 | https://github.com/ros-controls/ros_controllers/wiki
17 | https://github.com/ros-controls/ros_controllers/issues
18 | https://github.com/ros-controls/ros_controllers
19 |
20 | Adolfo Rodriguez Tsouroukdissian
21 |
22 | catkin
23 |
24 | controller_interface
25 | realtime_tools
26 | roscpp
27 |
28 | geometry_msgs
29 | hardware_interface
30 | pluginlib
31 |
32 | geometry_msgs
33 | hardware_interface
34 |
35 | controller_manager
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/rqt_joint_trajectory_controller/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | rqt_joint_trajectory_controller
7 | 0.22.0
8 | Graphical frontend for interacting with joint_trajectory_controller instances.
9 |
10 | Bence Magyar
11 | Mathias Lüdtke
12 | Enrique Fernandez
13 |
14 | BSD
15 |
16 | http://wiki.ros.org/rqt_joint_trajectory_controller
17 |
18 | Adolfo Rodriguez Tsouroukdissian
19 |
20 | catkin
21 | python-setuptools
22 | python3-setuptools
23 |
24 | control_msgs
25 | controller_manager_msgs
26 | python_qt_binding
27 | python3-rospkg
28 | trajectory_msgs
29 | rospy
30 | rqt_gui
31 | rqt_gui_py
32 | qt_gui
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/ros_controllers/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | ros_controllers
7 | 0.22.0
8 | Library of ros controllers
9 |
10 | Bence Magyar
11 | Mathias Lüdtke
12 | Enrique Fernandez
13 |
14 | BSD
15 |
16 | http://ros.org/wiki/ros_controllers
17 | https://github.com/ros-controls/ros_controllers/issues
18 | https://github.com/ros-controls/ros_controllers/
19 |
20 | Wim Meeussen
21 |
22 | catkin
23 |
24 | ackermann_steering_controller
25 | diff_drive_controller
26 | effort_controllers
27 | force_torque_sensor_controller
28 | forward_command_controller
29 | gripper_action_controller
30 | imu_sensor_controller
31 | joint_state_controller
32 | joint_trajectory_controller
33 | position_controllers
34 | velocity_controllers
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/test/joint_trajectory_controller.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
25 |
29 |
30 |
34 |
35 |
36 |
37 |
42 |
43 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/test/joint_trajectory_controller_vel.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
25 |
29 |
30 |
34 |
35 |
36 |
37 |
42 |
43 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/launch/view_four_wheel_steering.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
23 |
24 |
25 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/test/joint_partial_trajectory_controller.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
25 |
29 |
30 |
34 |
35 |
36 |
37 |
42 |
43 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/test/joint_trajectory_controller_stopramp.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
25 |
29 |
30 |
34 |
35 |
36 |
37 |
42 |
43 |
--------------------------------------------------------------------------------
/forward_command_controller/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | forward_command_controller
7 | 0.22.0
8 | forward_command_controller
9 |
10 | Bence Magyar
11 | Mathias Lüdtke
12 | Enrique Fernandez
13 |
14 | BSD
15 |
16 | https://github.com/ros-controls/ros_controllers/wiki
17 | https://github.com/ros-controls/ros_controllers/issues
18 | https://github.com/ros-controls/ros_controllers
19 |
20 | Vijay Pradeep
21 | Adolfo Rodriguez Tsouroukdissian
22 |
23 | catkin
24 |
25 | controller_interface
26 | hardware_interface
27 | realtime_tools
28 | roscpp
29 | std_msgs
30 |
31 | controller_interface
32 | hardware_interface
33 | realtime_tools
34 | roscpp
35 | std_msgs
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (C) 2008-2012 hiDOF, Inc & Willow Garage, Inc
4 | Copyright (C) 2013-2017 PAL Robotics S.L.
5 | Copyright note valid unless otherwise stated in individual files.
6 | All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without
9 | modification, are permitted provided that the following conditions are met:
10 |
11 | * Redistributions of source code must retain the above copyright notice, this
12 | list of conditions and the following disclaimer.
13 |
14 | * Redistributions in binary form must reproduce the above copyright notice,
15 | this list of conditions and the following disclaimer in the documentation
16 | and/or other materials provided with the distribution.
17 |
18 | * Neither the name of the copyright holder nor the names of its
19 | contributors may be used to endorse or promote products derived from
20 | this software without specific prior written permission.
21 |
22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/square_wheel.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | 1
37 | 1
38 |
39 |
40 |
41 | Gazebo/Red
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/velocity_controllers/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.0.2)
2 | project(velocity_controllers)
3 |
4 | # Load catkin and all dependencies required for this package
5 | find_package(catkin REQUIRED COMPONENTS
6 | angles
7 | control_msgs
8 | control_toolbox
9 | controller_interface
10 | forward_command_controller
11 | hardware_interface
12 | pluginlib
13 | realtime_tools
14 | roscpp
15 | std_msgs
16 | urdf
17 | )
18 |
19 | # Declare catkin package
20 | catkin_package(
21 | CATKIN_DEPENDS
22 | control_msgs
23 | control_toolbox
24 | controller_interface
25 | forward_command_controller
26 | hardware_interface
27 | realtime_tools
28 | std_msgs
29 | urdf
30 | INCLUDE_DIRS include
31 | LIBRARIES ${PROJECT_NAME}
32 | )
33 |
34 |
35 | ###########
36 | ## Build ##
37 | ###########
38 |
39 | # Specify header include paths
40 | include_directories(include ${catkin_INCLUDE_DIRS})
41 |
42 | add_library(${PROJECT_NAME}
43 | src/joint_velocity_controller.cpp
44 | src/joint_position_controller.cpp
45 | src/joint_group_velocity_controller.cpp
46 | )
47 |
48 | target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES})
49 |
50 |
51 | #############
52 | ## Install ##
53 | #############
54 |
55 | # Install headers
56 | install(DIRECTORY include/${PROJECT_NAME}/
57 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION})
58 |
59 | # Install targets
60 | install(TARGETS ${PROJECT_NAME}
61 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
62 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
63 | RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
64 | )
65 |
66 | # Install plugins
67 | install(FILES velocity_controllers_plugins.xml
68 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
69 | )
70 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/test/joint_trajectory_controller_wrapping.test:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
25 |
29 |
30 |
34 |
35 |
36 |
37 |
42 |
43 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/common/launch/ackermann_steering_common.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
17 |
18 |
19 |
22 |
23 |
24 |
38 |
39 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/common/launch/view_ackermann_steering_bot.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
20 |
21 |
22 |
25 |
26 |
27 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/velocity_controllers/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | velocity_controllers
7 | 0.22.0
8 | velocity_controllers
9 |
10 | Bence Magyar
11 | Mathias Lüdtke
12 | Enrique Fernandez
13 |
14 | BSD
15 |
16 | https://github.com/ros-controls/ros_controllers/wiki
17 | https://github.com/ros-controls/ros_controllers/issues
18 | https://github.com/ros-controls/ros_controllers
19 |
20 | Vijay Pradeep
21 |
22 | catkin
23 |
24 | control_toolbox
25 | controller_interface
26 | realtime_tools
27 | roscpp
28 | urdf
29 |
30 | angles
31 | control_msgs
32 | forward_command_controller
33 | hardware_interface
34 | pluginlib
35 | std_msgs
36 |
37 | control_msgs
38 | forward_command_controller
39 | hardware_interface
40 | std_msgs
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | ackermann_steering_controller
7 | 0.22.0
8 | Controller for a steer drive mobile base.
9 |
10 | Masaru Morita
11 | Bence Magyar
12 |
13 | BSD
14 |
15 | https://github.com/ros-controls/ros_controllers/issues
16 | https://github.com/ros-controls/ros_controllers/ackermann_steering_controller
17 |
18 | Masaru Morita
19 |
20 | catkin
21 |
22 | controller_interface
23 | diff_drive_controller
24 | hardware_interface
25 | nav_msgs
26 | realtime_tools
27 | roscpp
28 | tf
29 |
30 | boost
31 | pluginlib
32 | liburdfdom-dev
33 |
34 | boost
35 |
36 | pluginlib
37 | liburdfdom-dev
38 |
39 | controller_manager
40 | controller_manager_msgs
41 | geometry_msgs
42 | rostest
43 | std_msgs
44 | std_srvs
45 | xacro
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/effort_controllers/effort_controllers_plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | The JointPositionController tracks position commands. It expects a EffortJointInterface type of hardware interface.
6 |
7 |
8 |
9 |
10 |
11 | The JointVelocityController tracks velocity commands. It expects a EffortJointInterface type of hardware interface.
12 |
13 |
14 |
15 |
16 |
17 | The JointEffortController tracks effort commands. It expects a EffortJointInterface type of hardware interface.
18 |
19 |
20 |
21 |
22 |
23 | The JointGroupEffortController tracks effort commands for a set of joints. It expects a EffortJointInterface type of hardware interface.
24 |
25 |
26 |
27 |
28 |
29 | The JointGroupPositionController tracks position commands for a set of joints. It expects a EffortJointInterface type of hardware interface.
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/launch/four_wheel_steering_common.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | True
5 |
6 |
7 |
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
25 |
33 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/diff_drive_controller/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | diff_drive_controller
7 | 0.22.0
8 | Controller for a differential drive mobile base.
9 |
10 | Bence Magyar
11 | Enrique Fernandez
12 |
13 | BSD
14 |
15 | https://github.com/ros-controls/ros_controllers/wiki
16 | https://github.com/ros-controls/ros_controllers/issues
17 | https://github.com/ros-controls/ros_controllers
18 |
19 | Bence Magyar
20 |
21 | catkin
22 |
23 | controller_interface
24 | control_msgs
25 | dynamic_reconfigure
26 | geometry_msgs
27 | hardware_interface
28 | nav_msgs
29 | realtime_tools
30 | tf
31 |
32 | boost
33 | pluginlib
34 | urdf
35 |
36 | boost
37 |
38 | pluginlib
39 | urdf
40 |
41 | controller_manager
42 | rosgraph_msgs
43 | rostest
44 | rostopic
45 | std_srvs
46 | xacro
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/joint_state_controller/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.0.2)
2 | project(joint_state_controller)
3 |
4 | # Load catkin and all dependencies required for this package
5 | find_package(catkin REQUIRED COMPONENTS
6 | controller_interface
7 | hardware_interface
8 | pluginlib
9 | realtime_tools
10 | roscpp
11 | sensor_msgs
12 | )
13 |
14 | # Declare a catkin package
15 | catkin_package(
16 | CATKIN_DEPENDS
17 | controller_interface
18 | hardware_interface
19 | realtime_tools
20 | roscpp
21 | sensor_msgs
22 | LIBRARIES
23 | ${PROJECT_NAME}
24 | INCLUDE_DIRS
25 | include
26 | )
27 |
28 |
29 | ###########
30 | ## Build ##
31 | ###########
32 |
33 | # Specify header include paths
34 | include_directories(include ${Boost_INCLUDE_DIR} ${catkin_INCLUDE_DIRS})
35 |
36 | add_library(${PROJECT_NAME}
37 | src/joint_state_controller.cpp
38 | )
39 | target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES})
40 |
41 |
42 | #############
43 | ## Testing ##
44 | #############
45 |
46 | if(CATKIN_ENABLE_TESTING)
47 | find_package(rostest REQUIRED)
48 |
49 | add_rostest_gtest(joint_state_controller_test
50 | test/joint_state_controller.test
51 | test/joint_state_controller_test.cpp
52 | )
53 | target_link_libraries(joint_state_controller_test ${PROJECT_NAME})
54 |
55 | endif()
56 |
57 |
58 | #############
59 | ## Install ##
60 | #############
61 |
62 | # Install headers
63 | install(DIRECTORY include/${PROJECT_NAME}/
64 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
65 | )
66 |
67 | # Install targets
68 | install(TARGETS ${PROJECT_NAME}
69 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
70 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
71 | RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
72 | )
73 |
74 | # Install plugins
75 | install(FILES joint_state_plugin.xml
76 | config/joint_state_controller.yaml
77 | launch/joint_state_controller.launch
78 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
79 | )
80 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | four_wheel_steering_controller
7 | 0.22.0
8 | Controller for a four wheel steering mobile base.
9 |
10 | Vincent Rousseau
11 |
12 | BSD
13 |
14 | http://ros.org/wiki/four_wheel_steering_controller
15 | https://github.com/ros-controls/ros_controllers/issues
16 | https://github.com/ros-controls/ros_controllers
17 |
18 | Vincent Rousseau
19 |
20 | catkin
21 |
22 | controller_interface
23 | realtime_tools
24 | roscpp
25 | tf
26 |
27 | four_wheel_steering_msgs
28 | hardware_interface
29 | libboost-dev
30 | nav_msgs
31 | pluginlib
32 | urdf_geometry_parser
33 |
34 | four_wheel_steering_msgs
35 | hardware_interface
36 | libboost-dev
37 | nav_msgs
38 |
39 | controller_manager
40 | geometry_msgs
41 | std_msgs
42 | std_srvs
43 | rosgraph_msgs
44 | rostest
45 | xacro
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/urdf/four_wheel_steering.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/.clang-format:
--------------------------------------------------------------------------------
1 | ---
2 | BasedOnStyle: Google
3 | AccessModifierOffset: -2
4 | ConstructorInitializerIndentWidth: 2
5 | AlignEscapedNewlinesLeft: false
6 | AlignTrailingComments: true
7 | AllowAllParametersOfDeclarationOnNextLine: false
8 | AllowShortIfStatementsOnASingleLine: false
9 | AllowShortLoopsOnASingleLine: false
10 | AllowShortFunctionsOnASingleLine: None
11 | AllowShortLoopsOnASingleLine: false
12 | AlwaysBreakTemplateDeclarations: true
13 | AlwaysBreakBeforeMultilineStrings: false
14 | BreakBeforeBinaryOperators: false
15 | BreakBeforeTernaryOperators: false
16 | BreakConstructorInitializersBeforeComma: true
17 | BinPackParameters: true
18 | ColumnLimit: 120
19 | ConstructorInitializerAllOnOneLineOrOnePerLine: true
20 | DerivePointerBinding: false
21 | PointerBindsToType: true
22 | ExperimentalAutoDetectBinPacking: false
23 | IndentCaseLabels: true
24 | MaxEmptyLinesToKeep: 1
25 | NamespaceIndentation: None
26 | ObjCSpaceBeforeProtocolList: true
27 | PenaltyBreakBeforeFirstCallParameter: 19
28 | PenaltyBreakComment: 60
29 | PenaltyBreakString: 100
30 | PenaltyBreakFirstLessLess: 1000
31 | PenaltyExcessCharacter: 1000
32 | PenaltyReturnTypeOnItsOwnLine: 70
33 | SpacesBeforeTrailingComments: 2
34 | Cpp11BracedListStyle: false
35 | Standard: Auto
36 | IndentWidth: 2
37 | TabWidth: 2
38 | UseTab: Never
39 | IndentFunctionDeclarationAfterType: false
40 | SpacesInParentheses: false
41 | SpacesInAngles: false
42 | SpaceInEmptyParentheses: false
43 | SpacesInCStyleCastParentheses: false
44 | SpaceAfterControlStatementKeyword: true
45 | SpaceBeforeAssignmentOperators: true
46 | ContinuationIndentWidth: 4
47 | SortIncludes: false
48 | SpaceAfterCStyleCast: false
49 |
50 | # Configure each individual brace in BraceWrapping
51 | BreakBeforeBraces: Custom
52 |
53 | # Control of individual brace wrapping cases
54 | BraceWrapping: {
55 | AfterClass: 'true'
56 | AfterControlStatement: 'true'
57 | AfterEnum : 'true'
58 | AfterFunction : 'true'
59 | AfterNamespace : 'true'
60 | AfterStruct : 'true'
61 | AfterUnion : 'true'
62 | BeforeCatch : 'true'
63 | BeforeElse : 'true'
64 | IndentBraces : 'false'
65 | }
66 | ...
67 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/src/four_wheel_steering.cpp:
--------------------------------------------------------------------------------
1 | // NOTE: The contents of this file have been taken largely from the ros_control wiki tutorials
2 |
3 | #include "four_wheel_steering.h"
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 |
10 | int main(int argc, char **argv)
11 | {
12 | ros::init(argc, argv, "four_wheel_steering");
13 | ros::NodeHandle nh;
14 |
15 | // This should be set in launch files as well
16 | nh.setParam("/use_sim_time", true);
17 |
18 | FourWheelSteering robot;
19 | ROS_WARN_STREAM("period: " << robot.getPeriod().toSec());
20 | controller_manager::ControllerManager cm(&robot, nh);
21 |
22 | ros::Publisher clock_publisher = nh.advertise("/clock", 1);
23 |
24 | ros::AsyncSpinner spinner(1);
25 | spinner.start();
26 |
27 | std::chrono::system_clock::time_point begin = std::chrono::system_clock::now();
28 | std::chrono::system_clock::time_point end = std::chrono::system_clock::now();
29 |
30 | ros::Time internal_time(0);
31 | const ros::Duration dt = robot.getPeriod();
32 | double elapsed_secs = 0;
33 |
34 | while(ros::ok())
35 | {
36 | begin = std::chrono::system_clock::now();
37 |
38 | robot.read();
39 | cm.update(internal_time, dt);
40 | robot.write();
41 |
42 | end = std::chrono::system_clock::now();
43 |
44 | elapsed_secs = std::chrono::duration_cast >((end - begin)).count();
45 |
46 | if (dt.toSec() - elapsed_secs < 0.0)
47 | {
48 | ROS_WARN_STREAM_THROTTLE(
49 | 0.1, "Control cycle is taking to much time, elapsed: " << elapsed_secs);
50 | }
51 | else
52 | {
53 | ROS_DEBUG_STREAM_THROTTLE(1.0, "Control cycle is, elapsed: " << elapsed_secs);
54 | std::this_thread::sleep_for(std::chrono::duration(dt.toSec() - elapsed_secs));
55 | }
56 |
57 | rosgraph_msgs::Clock clock;
58 | clock.clock = ros::Time(internal_time);
59 | clock_publisher.publish(clock);
60 | internal_time += dt;
61 | }
62 | spinner.stop();
63 |
64 | return 0;
65 | }
66 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | joint_trajectory_controller
7 | Controller for executing joint-space trajectories on a group of joints.
8 | 0.22.0
9 |
10 | Bence Magyar
11 | Mathias Lüdtke
12 | Enrique Fernandez
13 |
14 | BSD
15 |
16 | https://github.com/ros-controls/ros_controllers/wiki
17 | https://github.com/ros-controls/ros_controllers/issues
18 | https://github.com/ros-controls/ros_controllers
19 |
20 | Adolfo Rodriguez Tsouroukdissian
21 |
22 | catkin
23 |
24 | actionlib
25 | boost
26 | control_toolbox
27 | controller_interface
28 | realtime_tools
29 | roscpp
30 | urdf
31 |
32 | angles
33 | control_msgs
34 | hardware_interface
35 | pluginlib
36 | trajectory_msgs
37 |
38 | angles
39 | control_msgs
40 | hardware_interface
41 | trajectory_msgs
42 |
43 | code_coverage
44 | controller_manager
45 | xacro
46 | rostest
47 | std_msgs
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/effort_controllers/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | effort_controllers
7 | 0.22.0
8 | effort_controllers
9 |
10 | Bence Magyar
11 | Mathias Lüdtke
12 | Enrique Fernandez
13 |
14 | BSD
15 |
16 | https://github.com/ros-controls/ros_controllers/wiki
17 | https://github.com/ros-controls/ros_controllers/issues
18 | https://github.com/ros-controls/ros_controllers
19 |
20 | Vijay Pradeep
21 |
22 | catkin
23 |
24 | control_toolbox
25 | controller_interface
26 | realtime_tools
27 | roscpp
28 | urdf
29 |
30 | angles
31 | control_msgs
32 | hardware_interface
33 | forward_command_controller
34 | pluginlib
35 | std_msgs
36 |
37 | control_msgs
38 | forward_command_controller
39 | hardware_interface
40 | std_msgs
41 |
42 | rostest
43 | controller_manager
44 | joint_state_controller
45 | robot_state_publisher
46 | rosgraph_msgs
47 | sensor_msgs
48 | xacro
49 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ros_controllers
2 | ===============
3 |
4 | See [ros_control](http://wiki.ros.org/ros_control) and [ros_controllers](http://wiki.ros.org/ros_controllers) documentation on ros.org
5 |
6 | ### Build Status
7 |
8 | Indigo | Kinetic | Lunar | Melodic | Noetic
9 | ------ | ------- | ----- | ------- | ------
10 | [](https://travis-ci.org/ros-controls/ros_controllers) | [](https://travis-ci.org/ros-controls/ros_controllers) | [](https://travis-ci.org/ros-controls/ros_controllers) | [](https://travis-ci.org/ros-controls/ros_controllers) | [](https://travis-ci.org/ros-controls/ros_controllers)
11 |
12 | ### Branches for source-based installation
13 |
14 | ROS Indigo | ROS Kinetic | ROS Lunar | ROS Melodic
15 | --- | ------------- | ------------- | -------------
16 | indigo-devel | kinetic-devel | kinetic-devel | melodic-devel
17 |
18 | ## Publication
19 |
20 | If you find this work useful please give credits to the authors by citing:
21 |
22 | * S. Chitta, E. Marder-Eppstein, W. Meeussen, V. Pradeep, A. Rodríguez Tsouroukdissian, J. Bohren, D. Coleman, B. Magyar, G. Raiola, M. Lüdtke and E. Fernandez Perdomo
23 | **"ros_control: A generic and simple control framework for ROS"**,
24 | The Journal of Open Source Software, 2017. ([PDF](http://www.theoj.org/joss-papers/joss.00456/10.21105.joss.00456.pdf))
25 |
26 | ```
27 | @article{ros_control,
28 | author = {Chitta, Sachin and Marder-Eppstein, Eitan and Meeussen, Wim and Pradeep, Vijay and Rodr{\'i}guez Tsouroukdissian, Adolfo and Bohren, Jonathan and Coleman, David and Magyar, Bence and Raiola, Gennaro and L{\"u}dtke, Mathias and Fern{\'a}ndez Perdomo, Enrique},
29 | title = {ros\_control: A generic and simple control framework for ROS},
30 | journal = {The Journal of Open Source Software},
31 | year = {2017},
32 | doi = {10.21105/joss.00456},
33 | URL = {http://www.theoj.org/joss-papers/joss.00456/10.21105.joss.00456.pdf}
34 | }
35 | ```
36 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/urdf/chassis.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Gazebo/Grey
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/effort_controllers/src/joint_effort_controller.cpp:
--------------------------------------------------------------------------------
1 | /*********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright (c) 2008, Willow Garage, Inc.
5 | * Copyright (c) 2012, hiDOF, Inc.
6 | * Copyright (c) 2013, PAL Robotics, S.L.
7 | * All rights reserved.
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * * Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * * Redistributions in binary form must reproduce the above
16 | * copyright notice, this list of conditions and the following
17 | * disclaimer in the documentation and/or other materials provided
18 | * with the distribution.
19 | * * Neither the name of the Willow Garage nor the names of its
20 | * contributors may be used to endorse or promote products derived
21 | * from this software without specific prior written permission.
22 | *
23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 | * POSSIBILITY OF SUCH DAMAGE.
35 | *********************************************************************/
36 |
37 | #include
38 | #include
39 |
40 | template
41 | void forward_command_controller::ForwardCommandController::starting(const ros::Time& time)
42 | {
43 | // Start controller with 0.0 effort
44 | command_buffer_.writeFromNonRT(0.0);
45 | }
46 |
47 |
48 | PLUGINLIB_EXPORT_CLASS(effort_controllers::JointEffortController,controller_interface::ControllerBase)
49 |
--------------------------------------------------------------------------------
/joint_trajectory_controller/ros_control_plugins.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 | The JointTrajectoryController executes joint-space trajectories on a set of joints.
8 | This variant represents trajectory segments as quintic splines and sends commands to a position interface.
9 |
10 |
11 |
12 |
15 |
16 | The JointTrajectoryController executes joint-space trajectories on a set of joints.
17 | This variant represents trajectory segments as quintic splines and sends commands to a velocity interface.
18 |
19 |
20 |
21 |
24 |
25 | The JointTrajectoryController executes joint-space trajectories on a set of joints.
26 | This variant represents trajectory segments as quintic splines and sends commands to an effort interface.
27 |
28 |
29 |
30 |
33 |
34 | The JointTrajectoryController executes joint-space trajectories on a set of joints.
35 | This variant represents trajectory segments as quintic splines and sends commands to an pos_vel interface.
36 |
37 |
38 |
39 |
42 |
43 | The JointTrajectoryController executes joint-space trajectories on a set of joints.
44 | This variant represents trajectory segments as quintic splines and sends commands to an spline interface.
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/velocity_controllers/src/joint_velocity_controller.cpp:
--------------------------------------------------------------------------------
1 | /*********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright (c) 2008, Willow Garage, Inc.
5 | * Copyright (c) 2012, hiDOF, Inc.
6 | * Copyright (c) 2013, PAL Robotics, S.L.
7 | * All rights reserved.
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * * Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * * Redistributions in binary form must reproduce the above
16 | * copyright notice, this list of conditions and the following
17 | * disclaimer in the documentation and/or other materials provided
18 | * with the distribution.
19 | * * Neither the name of the Willow Garage nor the names of its
20 | * contributors may be used to endorse or promote products derived
21 | * from this software without specific prior written permission.
22 | *
23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 | * POSSIBILITY OF SUCH DAMAGE.
35 | *********************************************************************/
36 |
37 | #include
38 | #include
39 |
40 | template
41 | void forward_command_controller::ForwardCommandController::starting(const ros::Time& time)
42 | {
43 | // Start controller with 0.0 velocity
44 | command_buffer_.writeFromNonRT(0.0);
45 | }
46 |
47 |
48 | PLUGINLIB_EXPORT_CLASS(velocity_controllers::JointVelocityController,controller_interface::ControllerBase)
49 |
--------------------------------------------------------------------------------
/effort_controllers/src/joint_group_effort_controller.cpp:
--------------------------------------------------------------------------------
1 | /*********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright (c) 2008, Willow Garage, Inc.
5 | * Copyright (c) 2012, hiDOF, Inc.
6 | * Copyright (c) 2013, PAL Robotics, S.L.
7 | * Copyright (c) 2014, Fraunhofer IPA
8 | * All rights reserved.
9 | *
10 | * Redistribution and use in source and binary forms, with or without
11 | * modification, are permitted provided that the following conditions
12 | * are met:
13 | *
14 | * * Redistributions of source code must retain the above copyright
15 | * notice, this list of conditions and the following disclaimer.
16 | * * Redistributions in binary form must reproduce the above
17 | * copyright notice, this list of conditions and the following
18 | * disclaimer in the documentation and/or other materials provided
19 | * with the distribution.
20 | * * Neither the name of the Willow Garage nor the names of its
21 | * contributors may be used to endorse or promote products derived
22 | * from this software without specific prior written permission.
23 | *
24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 | * POSSIBILITY OF SUCH DAMAGE.
36 | *********************************************************************/
37 |
38 | #include
39 | #include
40 |
41 | template
42 | void forward_command_controller::ForwardJointGroupCommandController::starting(const ros::Time& time)
43 | {
44 | // Start controller with 0.0 efforts
45 | commands_buffer_.readFromRT()->assign(n_joints_, 0.0);
46 | }
47 |
48 |
49 | PLUGINLIB_EXPORT_CLASS(effort_controllers::JointGroupEffortController,controller_interface::ControllerBase)
50 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diffbot_sphere_wheels.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | Gazebo/Green
69 |
70 |
71 |
72 | Gazebo/Purple
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diffbot_square_wheels.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | Gazebo/Green
69 |
70 |
71 |
72 | Gazebo/Purple
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/velocity_controllers/src/joint_group_velocity_controller.cpp:
--------------------------------------------------------------------------------
1 | /*********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright (c) 2008, Willow Garage, Inc.
5 | * Copyright (c) 2012, hiDOF, Inc.
6 | * Copyright (c) 2013, PAL Robotics, S.L.
7 | * Copyright (c) 2014, Fraunhofer IPA
8 | * All rights reserved.
9 | *
10 | * Redistribution and use in source and binary forms, with or without
11 | * modification, are permitted provided that the following conditions
12 | * are met:
13 | *
14 | * * Redistributions of source code must retain the above copyright
15 | * notice, this list of conditions and the following disclaimer.
16 | * * Redistributions in binary form must reproduce the above
17 | * copyright notice, this list of conditions and the following
18 | * disclaimer in the documentation and/or other materials provided
19 | * with the distribution.
20 | * * Neither the name of the Willow Garage nor the names of its
21 | * contributors may be used to endorse or promote products derived
22 | * from this software without specific prior written permission.
23 | *
24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 | * POSSIBILITY OF SUCH DAMAGE.
36 | *********************************************************************/
37 |
38 | #include
39 | #include
40 |
41 | template
42 | void forward_command_controller::ForwardJointGroupCommandController::starting(const ros::Time& time)
43 | {
44 | // Start controller with 0.0 velocities
45 | commands_buffer_.readFromRT()->assign(n_joints_, 0.0);
46 | }
47 |
48 |
49 | PLUGINLIB_EXPORT_CLASS(velocity_controllers::JointGroupVelocityController,controller_interface::ControllerBase)
50 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_odom_tf_test.cpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////
2 | // Copyright (C) 2014, PAL Robotics S.L.
3 | //
4 | // Redistribution and use in source and binary forms, with or without
5 | // modification, are permitted provided that the following conditions are met:
6 | // * Redistributions of source code must retain the above copyright notice,
7 | // this list of conditions and the following disclaimer.
8 | // * Redistributions in binary form must reproduce the above copyright
9 | // notice, this list of conditions and the following disclaimer in the
10 | // documentation and/or other materials provided with the distribution.
11 | // * Neither the name of PAL Robotics, Inc. nor the names of its
12 | // contributors may be used to endorse or promote products derived from
13 | // this software without specific prior written permission.
14 | //
15 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 | // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 | // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 | // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 | // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 | // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 | // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 | // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 | // POSSIBILITY OF SUCH DAMAGE.
26 | //////////////////////////////////////////////////////////////////////////////
27 |
28 | /// \author Bence Magyar
29 |
30 | #include "test_common.h"
31 | #include
32 |
33 | // TEST CASES
34 | TEST_F(DiffDriveControllerTest, testNoOdomFrame)
35 | {
36 | // wait for ROS
37 | waitForController();
38 |
39 | // set up tf listener
40 | tf::TransformListener listener;
41 | ros::Duration(2.0).sleep();
42 | // check the odom frame doesn't exist
43 | EXPECT_FALSE(listener.frameExists("odom"));
44 | }
45 |
46 | int main(int argc, char** argv)
47 | {
48 | testing::InitGoogleTest(&argc, argv);
49 | ros::init(argc, argv, "diff_drive_odom_tf_test");
50 |
51 | ros::AsyncSpinner spinner(1);
52 | spinner.start();
53 | int ret = RUN_ALL_TESTS();
54 | spinner.stop();
55 | ros::shutdown();
56 | return ret;
57 | }
58 |
--------------------------------------------------------------------------------
/position_controllers/src/joint_position_controller.cpp:
--------------------------------------------------------------------------------
1 | /*********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright (c) 2008, Willow Garage, Inc.
5 | * Copyright (c) 2012, hiDOF, Inc.
6 | * Copyright (c) 2013, PAL Robotics, S.L.
7 | * All rights reserved.
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * * Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * * Redistributions in binary form must reproduce the above
16 | * copyright notice, this list of conditions and the following
17 | * disclaimer in the documentation and/or other materials provided
18 | * with the distribution.
19 | * * Neither the name of the Willow Garage nor the names of its
20 | * contributors may be used to endorse or promote products derived
21 | * from this software without specific prior written permission.
22 | *
23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 | * POSSIBILITY OF SUCH DAMAGE.
35 | *********************************************************************/
36 |
37 | #include
38 | #include
39 | #include
40 | #include
41 |
42 | template
43 | void forward_command_controller::ForwardCommandController::starting(const ros::Time& time)
44 | {
45 | // Start controller with current joint position
46 | command_buffer_.writeFromNonRT(joint_.getPosition());
47 | }
48 |
49 | PLUGINLIB_EXPORT_CLASS(position_controllers::JointPositionController,controller_interface::ControllerBase)
50 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diffbot.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 | Gazebo/Green
71 |
72 |
73 |
74 | Gazebo/Purple
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_fail_test.cpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////
2 | // Copyright (C) 2013, PAL Robotics S.L.
3 | //
4 | // Redistribution and use in source and binary forms, with or without
5 | // modification, are permitted provided that the following conditions are met:
6 | // * Redistributions of source code must retain the above copyright notice,
7 | // this list of conditions and the following disclaimer.
8 | // * Redistributions in binary form must reproduce the above copyright
9 | // notice, this list of conditions and the following disclaimer in the
10 | // documentation and/or other materials provided with the distribution.
11 | // * Neither the name of PAL Robotics, Inc. nor the names of its
12 | // contributors may be used to endorse or promote products derived from
13 | // this software without specific prior written permission.
14 | //
15 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 | // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 | // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 | // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 | // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 | // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 | // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 | // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 | // POSSIBILITY OF SUCH DAMAGE.
26 | //////////////////////////////////////////////////////////////////////////////
27 |
28 | /// \author Paul Mathieu
29 |
30 | #include "test_common.h"
31 |
32 | // TEST CASES
33 | TEST_F(DiffDriveControllerTest, testWrongJointName)
34 | {
35 | // the controller should never be alive
36 | int secs = 0;
37 | while(!isControllerAlive() && ros::ok() && secs < 5)
38 | {
39 | ros::Duration(1.0).sleep();
40 | secs++;
41 | }
42 | if (!ros::ok())
43 | FAIL() << "Something went wrong while executing test.";
44 |
45 | // give up and assume controller load failure after 5 seconds
46 | EXPECT_GE(secs, 5);
47 | }
48 |
49 | int main(int argc, char** argv)
50 | {
51 | testing::InitGoogleTest(&argc, argv);
52 | ros::init(argc, argv, "diff_drive_fail_test");
53 |
54 | ros::AsyncSpinner spinner(1);
55 | spinner.start();
56 | int ret = RUN_ALL_TESTS();
57 | spinner.stop();
58 | ros::shutdown();
59 | return ret;
60 | }
61 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/urdf/wheel.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | Gazebo/Black
13 |
14 |
15 |
16 |
17 |
18 |
21 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | transmission_interface/SimpleTransmission
59 |
60 | 1
61 |
62 |
63 | VelocityJointInterface
64 |
65 |
66 |
67 |
68 |
69 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_fail_test/ackermann_steering_controller_fail_test.cpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////
2 | // Copyright (C) 2013, PAL Robotics S.L.
3 | //
4 | // Redistribution and use in source and binary forms, with or without
5 | // modification, are permitted provided that the following conditions are met:
6 | // * Redistributions of source code must retain the above copyright notice,
7 | // this list of conditions and the following disclaimer.
8 | // * Redistributions in binary form must reproduce the above copyright
9 | // notice, this list of conditions and the following disclaimer in the
10 | // documentation and/or other materials provided with the distribution.
11 | // * Neither the name of PAL Robotics, Inc. nor the names of its
12 | // contributors may be used to endorse or promote products derived from
13 | // this software without specific prior written permission.
14 | //
15 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 | // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 | // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 | // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 | // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 | // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 | // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 | // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 | // POSSIBILITY OF SUCH DAMAGE.
26 | //////////////////////////////////////////////////////////////////////////////
27 |
28 | /// \author Paul Mathieu
29 | /// \author Masaru Morita
30 |
31 | #include "../common/include/test_common.h"
32 |
33 | // TEST CASES
34 | TEST_F(AckermannSteeringControllerTest, testWrongJointName)
35 | {
36 | // the controller should never be alive
37 | int secs = 0;
38 | while(!isControllerAlive() && secs < 5)
39 | {
40 | ros::Duration(1.0).sleep();
41 | secs++;
42 | }
43 | // give up and assume controller load failure after 5 seconds
44 | EXPECT_GE(secs, 5);
45 | }
46 |
47 | int main(int argc, char** argv)
48 | {
49 | testing::InitGoogleTest(&argc, argv);
50 | ros::init(argc, argv, "ackermann_steering_controller_fail_test");
51 |
52 | ros::AsyncSpinner spinner(1);
53 | spinner.start();
54 | int ret = RUN_ALL_TESTS();
55 | spinner.stop();
56 | ros::shutdown();
57 | return ret;
58 | }
59 |
--------------------------------------------------------------------------------
/position_controllers/src/joint_group_position_controller.cpp:
--------------------------------------------------------------------------------
1 | /*********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright (c) 2008, Willow Garage, Inc.
5 | * Copyright (c) 2012, hiDOF, Inc.
6 | * Copyright (c) 2013, PAL Robotics, S.L.
7 | * Copyright (c) 2014, Fraunhofer IPA
8 | * All rights reserved.
9 | *
10 | * Redistribution and use in source and binary forms, with or without
11 | * modification, are permitted provided that the following conditions
12 | * are met:
13 | *
14 | * * Redistributions of source code must retain the above copyright
15 | * notice, this list of conditions and the following disclaimer.
16 | * * Redistributions in binary form must reproduce the above
17 | * copyright notice, this list of conditions and the following
18 | * disclaimer in the documentation and/or other materials provided
19 | * with the distribution.
20 | * * Neither the name of the Willow Garage nor the names of its
21 | * contributors may be used to endorse or promote products derived
22 | * from this software without specific prior written permission.
23 | *
24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 | * POSSIBILITY OF SUCH DAMAGE.
36 | *********************************************************************/
37 |
38 | #include
39 | #include
40 |
41 | template
42 | void forward_command_controller::ForwardJointGroupCommandController::starting(const ros::Time& time)
43 | {
44 | // Start controller with current joint positions
45 | std::vector & commands = *commands_buffer_.readFromRT();
46 | for(unsigned int i=0; i
41 |
42 | namespace effort_controllers
43 | {
44 |
45 | /**
46 | * \brief Joint Effort Controller (torque or force)
47 | *
48 | * This class passes the commanded effort down to the joint.
49 | *
50 | * \section ROS interface
51 | *
52 | * \param type Must be "JointEffortController".
53 | * \param joint Name of the joint to control.
54 | *
55 | * Subscribes to:
56 | * - \b command (std_msgs::Float64) : The joint effort to apply.
57 | */
58 | typedef forward_command_controller::ForwardCommandController
59 | JointEffortController;
60 | }
61 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/ackermann_steering_controller_odom_tf_test/ackermann_steering_controller_odom_tf_test.cpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////
2 | // Copyright (C) 2014, PAL Robotics S.L.
3 | //
4 | // Redistribution and use in source and binary forms, with or without
5 | // modification, are permitted provided that the following conditions are met:
6 | // * Redistributions of source code must retain the above copyright notice,
7 | // this list of conditions and the following disclaimer.
8 | // * Redistributions in binary form must reproduce the above copyright
9 | // notice, this list of conditions and the following disclaimer in the
10 | // documentation and/or other materials provided with the distribution.
11 | // * Neither the name of PAL Robotics, Inc. nor the names of its
12 | // contributors may be used to endorse or promote products derived from
13 | // this software without specific prior written permission.
14 | //
15 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 | // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 | // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 | // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 | // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 | // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 | // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 | // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 | // POSSIBILITY OF SUCH DAMAGE.
26 | //////////////////////////////////////////////////////////////////////////////
27 |
28 | /// \author Bence Magyar
29 | /// \author Masaru Morita
30 |
31 | #include "../common/include/test_common.h"
32 | #include
33 |
34 | // TEST CASES
35 | TEST_F(AckermannSteeringControllerTest, testNoOdomFrame)
36 | {
37 | // wait for ROS
38 | while(!isControllerAlive())
39 | {
40 | ros::Duration(0.1).sleep();
41 | }
42 | // set up tf listener
43 | tf::TransformListener listener;
44 | ros::Duration(2.0).sleep();
45 | // check the odom frame doesn't exist
46 | EXPECT_FALSE(listener.frameExists("odom"));
47 | }
48 |
49 | int main(int argc, char** argv)
50 | {
51 | testing::InitGoogleTest(&argc, argv);
52 | ros::init(argc, argv, "ackermann_steering_controller_odom_tf_test");
53 |
54 | ros::AsyncSpinner spinner(1);
55 | spinner.start();
56 | int ret = RUN_ALL_TESTS();
57 | spinner.stop();
58 | ros::shutdown();
59 | return ret;
60 | }
61 |
--------------------------------------------------------------------------------
/four_wheel_steering_controller/test/urdf/wheel_steered.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
29 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | transmission_interface/SimpleTransmission
46 |
47 | PositionJointInterface
48 | 1
49 |
50 |
51 | PositionJointInterface
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/ackermann_steering_controller/test/common/src/ackermann_steering_bot.cpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////
2 | // Copyright (C) 2013, PAL Robotics S.L.
3 | //
4 | // Redistribution and use in source and binary forms, with or without
5 | // modification, are permitted provided that the following conditions are met:
6 | // * Redistributions of source code must retain the above copyright notice,
7 | // this list of conditions and the following disclaimer.
8 | // * Redistributions in binary form must reproduce the above copyright
9 | // notice, this list of conditions and the following disclaimer in the
10 | // documentation and/or other materials provided with the distribution.
11 | // * Neither the name of PAL Robotics, Inc. nor the names of its
12 | // contributors may be used to endorse or promote products derived from
13 | // this software without specific prior written permission.
14 | //
15 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 | // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 | // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 | // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 | // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 | // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 | // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 | // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 | // POSSIBILITY OF SUCH DAMAGE.
26 | //////////////////////////////////////////////////////////////////////////////
27 |
28 | /// \author Masaru Morita
29 |
30 | // NOTE: The contents of this file have been taken largely from the ros_control wiki tutorials
31 |
32 | // ROS
33 | #include
34 |
35 | // ros_control
36 | #include
37 |
38 | #include "./../include/ackermann_steering_bot.h"
39 |
40 | int main(int argc, char **argv)
41 | {
42 | ros::init(argc, argv, "ackermann_steering_bot");
43 | ros::NodeHandle nh;
44 |
45 | AckermannSteeringBot robot;
46 | ROS_WARN_STREAM("period: " << robot.getPeriod().toSec());
47 | controller_manager::ControllerManager cm(&robot, nh);
48 |
49 | ros::Rate rate(1.0 / robot.getPeriod().toSec());
50 | ros::AsyncSpinner spinner(1);
51 | spinner.start();
52 | while(ros::ok())
53 | {
54 | robot.read();
55 | cm.update(robot.getTime(), robot.getPeriod());
56 | robot.write();
57 | rate.sleep();
58 | }
59 | spinner.stop();
60 |
61 | return 0;
62 | }
63 |
--------------------------------------------------------------------------------
/position_controllers/include/position_controllers/joint_position_controller.h:
--------------------------------------------------------------------------------
1 | /*********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright (c) 2008, Willow Garage, Inc.
5 | * Copyright (c) 2012, hiDOF, Inc.
6 | * Copyright (c) 2013, PAL Robotics, S.L.
7 | * All rights reserved.
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * * Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * * Redistributions in binary form must reproduce the above
16 | * copyright notice, this list of conditions and the following
17 | * disclaimer in the documentation and/or other materials provided
18 | * with the distribution.
19 | * * Neither the name of the Willow Garage nor the names of its
20 | * contributors may be used to endorse or promote products derived
21 | * from this software without specific prior written permission.
22 | *
23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 | * POSSIBILITY OF SUCH DAMAGE.
35 | *********************************************************************/
36 |
37 | #pragma once
38 |
39 |
40 | #include
41 | #include
42 |
43 | namespace position_controllers
44 | {
45 |
46 | /**
47 | * \brief Joint Position Controller (linear or angular)
48 | *
49 | * This class passes the commanded position down to the joint
50 | *
51 | * \section ROS interface
52 | *
53 | * \param type Must be "JointPositionController".
54 | * \param joint Name of the joint to control.
55 | *
56 | * Subscribes to:
57 | * - \b command (std_msgs::Float64) : The joint position to apply
58 | */
59 | typedef forward_command_controller::ForwardCommandController
60 | JointPositionController;
61 | }
62 |
--------------------------------------------------------------------------------
/rqt_joint_trajectory_controller/resource/double_editor.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | double_editor
4 |
5 |
6 | true
7 |
8 |
9 |
10 | 0
11 | 0
12 | 249
13 | 121
14 |
15 |
16 |
17 |
18 | 0
19 | 0
20 |
21 |
22 |
23 | Form
24 |
25 |
26 | -
27 |
28 |
29 | true
30 |
31 |
32 |
33 | 0
34 | 0
35 |
36 |
37 |
38 |
39 | 0
40 | 0
41 |
42 |
43 |
44 | 100
45 |
46 |
47 | Qt::Horizontal
48 |
49 |
50 | false
51 |
52 |
53 | false
54 |
55 |
56 |
57 | -
58 |
59 |
60 | true
61 |
62 |
63 |
64 | 0
65 | 0
66 |
67 |
68 |
69 |
70 | 60
71 | 0
72 |
73 |
74 |
75 |
76 | 100
77 | 0
78 |
79 |
80 |
81 | QAbstractSpinBox::UpDownArrows
82 |
83 |
84 | false
85 |
86 |
87 | 6
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/velocity_controllers/include/velocity_controllers/joint_velocity_controller.h:
--------------------------------------------------------------------------------
1 | /*********************************************************************
2 | * Software License Agreement (BSD License)
3 | *
4 | * Copyright (c) 2008, Willow Garage, Inc.
5 | * Copyright (c) 2012, hiDOF, Inc.
6 | * Copyright (c) 2013, PAL Robotics, S.L.
7 | * All rights reserved.
8 | *
9 | * Redistribution and use in source and binary forms, with or without
10 | * modification, are permitted provided that the following conditions
11 | * are met:
12 | *
13 | * * Redistributions of source code must retain the above copyright
14 | * notice, this list of conditions and the following disclaimer.
15 | * * Redistributions in binary form must reproduce the above
16 | * copyright notice, this list of conditions and the following
17 | * disclaimer in the documentation and/or other materials provided
18 | * with the distribution.
19 | * * Neither the name of the Willow Garage nor the names of its
20 | * contributors may be used to endorse or promote products derived
21 | * from this software without specific prior written permission.
22 | *
23 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 | * POSSIBILITY OF SUCH DAMAGE.
35 | *********************************************************************/
36 |
37 | #pragma once
38 |
39 |
40 | #include
41 | #include
42 |
43 | namespace velocity_controllers
44 | {
45 |
46 | /**
47 | * \brief Joint Velocity Controller (linear or angular)
48 | *
49 | * This class passes the commanded velocity down to the joint
50 | *
51 | * \section ROS interface
52 | *
53 | * \param type Must be "JointVelocityController".
54 | * \param joint Name of the joint to control.
55 | *
56 | * Subscribes to:
57 | * - \b command (std_msgs::Float64) : The joint velocity to apply
58 | */
59 | typedef forward_command_controller::ForwardCommandController
60 | JointVelocityController;
61 |
62 | }
63 |
--------------------------------------------------------------------------------
/effort_controllers/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.0.2)
2 | project(effort_controllers)
3 |
4 | # Load catkin and all dependencies required for this package
5 | find_package(catkin REQUIRED COMPONENTS
6 | angles
7 | control_msgs
8 | control_toolbox
9 | controller_interface
10 | forward_command_controller
11 | hardware_interface
12 | pluginlib
13 | realtime_tools
14 | roscpp
15 | std_msgs
16 | urdf
17 | )
18 |
19 | # Declare catkin package
20 | catkin_package(
21 | CATKIN_DEPENDS
22 | control_msgs
23 | control_toolbox
24 | controller_interface
25 | forward_command_controller
26 | hardware_interface
27 | realtime_tools
28 | std_msgs
29 | urdf
30 | LIBRARIES
31 | ${PROJECT_NAME}
32 | INCLUDE_DIRS
33 | include
34 | )
35 |
36 |
37 | ###########
38 | ## Build ##
39 | ###########
40 |
41 | include_directories(include ${catkin_INCLUDE_DIRS})
42 |
43 | add_library(${PROJECT_NAME}
44 | src/joint_effort_controller.cpp
45 | src/joint_group_effort_controller.cpp
46 | src/joint_group_position_controller.cpp
47 | src/joint_position_controller.cpp
48 | src/joint_velocity_controller.cpp
49 | )
50 |
51 | target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES})
52 |
53 |
54 | #############
55 | ## Testing ##
56 | #############
57 |
58 | if(CATKIN_ENABLE_TESTING)
59 | find_package(rostest REQUIRED)
60 | find_package(controller_manager REQUIRED)
61 | find_package(rosgraph_msgs REQUIRED)
62 | find_package(sensor_msgs REQUIRED)
63 |
64 | include_directories(
65 | ${controller_manager_INCLUDE_DIRS}
66 | ${rosgraph_msgs_INCLUDE_DIRS}
67 | ${sensor_msgs_INCLUDE_DIRS}
68 | )
69 |
70 | add_executable(simple_bot_hw test/simple_bot_hw.cpp)
71 | target_link_libraries(simple_bot_hw
72 | ${catkin_LIBRARIES}
73 | ${controller_manager_LIBRARIES}
74 | )
75 | add_dependencies(tests simple_bot_hw)
76 |
77 | add_rostest_gtest(effort_position_controller_test
78 | test/effort_position_controller.test
79 | test/simple_bot_goto_position.cpp
80 | )
81 | target_link_libraries(
82 | effort_position_controller_test
83 | ${catkin_LIBRARIES}
84 | )
85 | endif()
86 |
87 |
88 | #############
89 | ## Install ##
90 | #############
91 |
92 | # Install headers
93 | install(DIRECTORY include/${PROJECT_NAME}/
94 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
95 | )
96 |
97 | # Install targets
98 | install(TARGETS ${PROJECT_NAME}
99 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
100 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
101 | RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
102 | )
103 |
104 | # Install plugins
105 | install(FILES effort_controllers_plugins.xml
106 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
107 | )
108 |
--------------------------------------------------------------------------------
/diff_drive_controller/test/diff_drive_publish_wheel_joint_controller_state_test.cpp:
--------------------------------------------------------------------------------
1 | ///////////////////////////////////////////////////////////////////////////////
2 | // Copyright (C) 2018, PAL Robotics.
3 | //
4 | // Redistribution and use in source and binary forms, with or without
5 | // modification, are permitted provided that the following conditions are met:
6 | // * Redistributions of source code must retain the above copyright notice,
7 | // this list of conditions and the following disclaimer.
8 | // * Redistributions in binary form must reproduce the above copyright
9 | // notice, this list of conditions and the following disclaimer in the
10 | // documentation and/or other materials provided with the distribution.
11 | // * Neither the name of PAL Robotics, Inc. nor the names of its
12 | // contributors may be used to endorse or promote products derived from
13 | // this software without specific prior written permission.
14 | //
15 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 | // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 | // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 | // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 | // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 | // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 | // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 | // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 | // POSSIBILITY OF SUCH DAMAGE.
26 | //////////////////////////////////////////////////////////////////////////////
27 |
28 | /// \author Jeremie Deray
29 |
30 | #include "test_common.h"
31 |
32 | // TEST CASES
33 | TEST_F(DiffDriveControllerTest, testPublishJointTrajectoryControllerStateTopic)
34 | {
35 | // wait for ROS
36 | waitForController();
37 |
38 | EXPECT_TRUE(isPublishingJointTrajectoryControllerState());
39 |
40 | // zero everything before test
41 | geometry_msgs::Twist cmd_vel;
42 | cmd_vel.linear.x = 0.0;
43 | cmd_vel.angular.z = 0.0;
44 | publish(cmd_vel);
45 | ros::Duration(0.1).sleep();
46 |
47 | cmd_vel.linear.x = 0.1;
48 | publish(cmd_vel);
49 | ros::Duration(0.1).sleep();
50 |
51 | EXPECT_TRUE(isPublishingJointTrajectoryControllerState());
52 | }
53 |
54 | int main(int argc, char** argv)
55 | {
56 | testing::InitGoogleTest(&argc, argv);
57 | ros::init(argc, argv, "diff_drive_publish_wheel_joint_controller_state_topic_test");
58 |
59 | ros::AsyncSpinner spinner(1);
60 | spinner.start();
61 | int ret = RUN_ALL_TESTS();
62 | spinner.stop();
63 | ros::shutdown();
64 | return ret;
65 | }
66 |
--------------------------------------------------------------------------------