@@ -23,16 +23,16 @@ applies a PWM command to the hardware interface.
23
23
The output should resemble:
24
24
25
25
``` bash
26
- integral_sliding_mode_controller[ velocity_controllers/IntegralSlidingModeController] active
27
- thruster_allocation_matrix_controller[ thruster_allocation_matrix_controller/ThrusterAllocationMatrixController] active
28
- thruster_1_controller[ thruster_controllers/PolynomialThrustCurveController] active
29
- thruster_2_controller[ thruster_controllers/PolynomialThrustCurveController] active
30
- thruster_3_controller[ thruster_controllers/PolynomialThrustCurveController] active
31
- thruster_4_controller[ thruster_controllers/PolynomialThrustCurveController] active
32
- thruster_5_controller[ thruster_controllers/PolynomialThrustCurveController] active
33
- thruster_6_controller[ thruster_controllers/PolynomialThrustCurveController] active
34
- thruster_7_controller[ thruster_controllers/PolynomialThrustCurveController] active
35
- thruster_8_controller[ thruster_controllers/PolynomialThrustCurveController] active
26
+ adaptive_integral_terminal_sliding_mode_controller velocity_controllers/AdaptiveIntegralTerminalSlidingModeController active
27
+ thruster_allocation_matrix_controller thruster_allocation_matrix_controller/ThrusterAllocationMatrixController active
28
+ thruster_8_controller thruster_controllers/PolynomialThrustCurveController active
29
+ thruster_7_controller thruster_controllers/PolynomialThrustCurveController active
30
+ thruster_6_controller thruster_controllers/PolynomialThrustCurveController active
31
+ thruster_5_controller thruster_controllers/PolynomialThrustCurveController active
32
+ thruster_4_controller thruster_controllers/PolynomialThrustCurveController active
33
+ thruster_3_controller thruster_controllers/PolynomialThrustCurveController active
34
+ thruster_2_controller thruster_controllers/PolynomialThrustCurveController active
35
+ thruster_1_controller thruster_controllers/PolynomialThrustCurveController active
36
36
```
37
37
38
38
3 . Verify that the hardware interfaces have been properly loaded by opening
@@ -46,57 +46,51 @@ applies a PWM command to the hardware interface.
46
46
47
47
``` bash
48
48
command interfaces
49
- integral_sliding_mode_controller /rx/velocity [available] [unclaimed]
50
- integral_sliding_mode_controller /ry/velocity [available] [unclaimed]
51
- integral_sliding_mode_controller /rz/velocity [available] [unclaimed]
52
- integral_sliding_mode_controller /x/velocity [available] [unclaimed]
53
- integral_sliding_mode_controller /y/velocity [available] [unclaimed]
54
- integral_sliding_mode_controller /z/velocity [available] [unclaimed]
55
- thruster_1_controller/thruster_1_joint/effort [available] [claimed]
56
- thruster_1_joint/effort [available] [claimed]
57
- thruster_2_controller/thruster_2_joint/effort [available] [claimed]
58
- thruster_2_joint/effort [available] [claimed]
59
- thruster_3_controller/thruster_3_joint/effort [available] [claimed]
60
- thruster_3_joint/effort [available] [claimed]
61
- thruster_4_controller/thruster_4_joint/effort [available] [claimed]
62
- thruster_4_joint/effort [available] [claimed]
63
- thruster_5_controller/thruster_5_joint/effort [available] [claimed]
64
- thruster_5_joint/effort [available] [claimed]
65
- thruster_6_controller/thruster_6_joint/effort [available] [claimed]
66
- thruster_6_joint/effort [available] [claimed]
67
- thruster_7_controller/thruster_7_joint/effort [available] [claimed]
68
- thruster_7_joint/effort [available] [claimed]
69
- thruster_8_controller/thruster_8_joint/effort [available] [claimed]
70
- thruster_8_joint/effort [available] [claimed]
71
- thruster_allocation_matrix_controller/rx/effort [available] [claimed]
72
- thruster_allocation_matrix_controller/ry/effort [available] [claimed]
73
- thruster_allocation_matrix_controller/rz/effort [available] [claimed]
74
- thruster_allocation_matrix_controller/x/effort [available] [claimed]
75
- thruster_allocation_matrix_controller/y/effort [available] [claimed]
76
- thruster_allocation_matrix_controller/z/effort [available] [claimed]
49
+ adaptive_integral_terminal_sliding_mode_controller /rx/velocity [available] [unclaimed]
50
+ adaptive_integral_terminal_sliding_mode_controller /ry/velocity [available] [unclaimed]
51
+ adaptive_integral_terminal_sliding_mode_controller /rz/velocity [available] [unclaimed]
52
+ adaptive_integral_terminal_sliding_mode_controller /x/velocity [available] [unclaimed]
53
+ adaptive_integral_terminal_sliding_mode_controller /y/velocity [available] [unclaimed]
54
+ adaptive_integral_terminal_sliding_mode_controller /z/velocity [available] [unclaimed]
55
+ thruster_1_controller/thruster_1_joint/effort [available] [claimed]
56
+ thruster_1_joint/pwm [available] [claimed]
57
+ thruster_2_controller/thruster_2_joint/effort [available] [claimed]
58
+ thruster_2_joint/pwm [available] [claimed]
59
+ thruster_3_controller/thruster_3_joint/effort [available] [claimed]
60
+ thruster_3_joint/pwm [available] [claimed]
61
+ thruster_4_controller/thruster_4_joint/effort [available] [claimed]
62
+ thruster_4_joint/pwm [available] [claimed]
63
+ thruster_5_controller/thruster_5_joint/effort [available] [claimed]
64
+ thruster_5_joint/pwm [available] [claimed]
65
+ thruster_6_controller/thruster_6_joint/effort [available] [claimed]
66
+ thruster_6_joint/pwm [available] [claimed]
67
+ thruster_7_controller/thruster_7_joint/effort [available] [claimed]
68
+ thruster_7_joint/pwm [available] [claimed]
69
+ thruster_8_controller/thruster_8_joint/effort [available] [claimed]
70
+ thruster_8_joint/pwm [available] [claimed]
71
+ thruster_allocation_matrix_controller/rx/effort [available] [claimed]
72
+ thruster_allocation_matrix_controller/ry/effort [available] [claimed]
73
+ thruster_allocation_matrix_controller/rz/effort [available] [claimed]
74
+ thruster_allocation_matrix_controller/x/effort [available] [claimed]
75
+ thruster_allocation_matrix_controller/y/effort [available] [claimed]
76
+ thruster_allocation_matrix_controller/z/effort [available] [claimed]
77
77
state interfaces
78
- rx/velocity
79
- ry/velocity
80
- rz/velocity
81
- x/velocity
82
- y/velocity
83
- z/velocity
84
78
```
85
79
86
- 4 . State feedback can be provided to ISMC using the controller's state
80
+ 4 . State feedback can be provided to AITSMC using the controller's state
87
81
interfaces or a topic. To demonstrate the topic-based interface, run the
88
82
following command:
89
83
90
84
``` bash
91
- ros2 topic pub /integral_sliding_mode_controller /system_state nav_msgs/msg/Odometry
85
+ ros2 topic pub /adaptive_integral_terminal_sliding_mode_controller /system_state nav_msgs/msg/Odometry
92
86
```
93
87
94
- 5 . The ISMC accepts reference commands sent over a topic or a reference
88
+ 5 . The AITSMC accepts reference commands sent over a topic or a reference
95
89
interface. Run the following command in a separate terminal to provide the
96
90
controller with a dummy reference input:
97
91
98
92
``` bash
99
- ros2 topic pub /integral_sliding_mode_controller /reference geometry_msgs/msg/Twist " {linear: {x: 0.5, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.2}}"
93
+ ros2 topic pub /adaptive_integral_terminal_sliding_mode_controller /reference geometry_msgs/msg/Twist " {linear: {x: 0.5, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.2}}"
100
94
```
101
95
102
96
6 . Each of the implemented controllers publishes controller state information to
@@ -111,23 +105,23 @@ applies a PWM command to the hardware interface.
111
105
``` bash
112
106
header:
113
107
stamp:
114
- sec: 1710818346
115
- nanosec: 252453476
108
+ sec: 1748936962
109
+ nanosec: 907678344
116
110
frame_id: ' '
117
111
dof_state:
118
112
name: thruster_2_joint
119
- reference: -39.79632414479818
113
+ reference: -63.32823451272053
120
114
feedback: 0.0
121
115
feedback_dot: 0.0
122
116
error: 0.0
123
117
error_dot: 0.0
124
- time_step: 0.033380572
118
+ time_step: 0.033281545
125
119
output: 1134.0
126
120
```
127
121
128
122
This output indicates that the controller chaining was successful. In
129
123
particular, we can see that the velocity commands sent to the
130
- ` integral_sliding_mode_controller ` are converted to thrust values, which is
124
+ ` adaptive_integral_terminal_sliding_mode_controller ` are converted to thrust values, which is
131
125
reflected in the ` thruster_controller ` output.
132
126
133
127
## Files used for this demo
@@ -136,14 +130,15 @@ applies a PWM command to the hardware interface.
136
130
- [ chaining.launch.py] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/blob/main/auv_control_demos/chained_controllers/launch/chaining.launch.py )
137
131
138
132
- Controllers:
139
- - [ Integral Sliding Mode Controller] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/tree/main/velocity_controllers )
133
+ - [ Adaptive Integral Terminal Sliding Mode Controller] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/tree/main/velocity_controllers )
140
134
- [ Thruster Allocation Matrix Controller] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/tree/main/thruster_allocation_matrix_controller )
141
135
- [ Polynomial Thrust Curve Controller] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/tree/main/thruster_controllers )
142
136
143
137
- Controller Config:
144
- - [ chained_controllers .yaml] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/blob/main/auv_control_demos/chained_controllers/config/chained_controllers.yaml )
138
+ - [ chained.controllers .yaml] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/blob/main/auv_control_demos/chained_controllers/config/chained_controllers.yaml )
145
139
146
140
- Xacro Files:
147
- - [ chained_config.xacro] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/blob/main/auv_control_demos/chained_controllers/xacro/chained_config.xacro )
148
- - [ chained_ros2_control.xacro] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/blob/main/auv_control_demos/chained_controllers/xacro/chained_ros2_control.xacro )
149
- - [ chained_urdf.xacro] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/blob/main/auv_control_demos/chained_controllers/xacro/chained_urdf.xacro )
141
+ - [ chained.config.xacro] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/blob/main/auv_control_demos/chained_controllers/xacro/chained.config.xacro )
142
+ - [ chained.ros2_control.xacro] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/blob/main/auv_control_demos/chained_controllers/xacro/chained.ros2_control.xacro )
143
+ - [ chained.urdf.xacro] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/blob/main/auv_control_demos/chained_controllers/xacro/chained.urdf.xacro )
144
+ - [ chained.model.xacro] ( https://github.com/Robotic-Decision-Making-Lab/auv_controllers/blob/main/auv_control_demos/chained_controllers/xacro/chained.urdf.xacro )
0 commit comments