Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/ieiauto/autodrrt.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-30 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
Trajectory Follower Nodes
Purpose
Generate control commands to follow a given Trajectory.
Design
This is a node of the functionalities implemented in the controller class derived from trajectory_follower_base package. It has instances of those functionalities, gives them input data to perform calculations, and publishes control commands.
By default, the controller instance with the Controller
class as follows is used.
@startuml
package trajectory_follower_base {
abstract class LateralControllerBase {
longitudinal_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LongitudinalSyncData)
reset()
}
abstract class LongitudinalControllerBase {
lateral_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LateralSyncData)
reset()
}
struct InputData {
trajectory
odometry
steering
accel
}
struct LongitudinalSyncData {
is_steer_converged
}
struct LateralSyncData {
}
}
package mpc_lateral_controller {
class MPCLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pure_pursuit {
class PurePursuitLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pid_longitudinal_controller {
class PIDLongitudinalController {
isReady(InputData) override
run(InputData) override
}
}
package trajectory_follower_node {
class Controller {
longitudinal_controller_
lateral_controller_
onTimer()
createInputData(): InputData
}
}
MPCLateralController --|> LateralControllerBase
PurePursuitLateralController --|> LateralControllerBase
PIDLongitudinalController --|> LongitudinalControllerBase
LateralSyncData --> LongitudinalControllerBase
LateralSyncData --> LateralControllerBase
LongitudinalSyncData --> LongitudinalControllerBase
LongitudinalSyncData --> LateralControllerBase
InputData ..> LateralControllerBase
InputData ..> LongitudinalControllerBase
LateralControllerBase --o Controller
LongitudinalControllerBase --o Controller
InputData ..> Controller
@enduml
The process flow of Controller
class is as follows.
```cpp // 1. create input data const auto input_data = createInputData(*get_clock()); if (!input_data) { return; }
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simple_trajectory_follower.launch.xml
-
- use_external_target_vel [default: true]
- external_target_vel [default: 5.0]
- lateral_deviation [default: 0.0]
Messages
Services
Plugins
Recent questions tagged trajectory_follower_node at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/ieiauto/autodrrt.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-30 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
Trajectory Follower Nodes
Purpose
Generate control commands to follow a given Trajectory.
Design
This is a node of the functionalities implemented in the controller class derived from trajectory_follower_base package. It has instances of those functionalities, gives them input data to perform calculations, and publishes control commands.
By default, the controller instance with the Controller
class as follows is used.
@startuml
package trajectory_follower_base {
abstract class LateralControllerBase {
longitudinal_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LongitudinalSyncData)
reset()
}
abstract class LongitudinalControllerBase {
lateral_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LateralSyncData)
reset()
}
struct InputData {
trajectory
odometry
steering
accel
}
struct LongitudinalSyncData {
is_steer_converged
}
struct LateralSyncData {
}
}
package mpc_lateral_controller {
class MPCLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pure_pursuit {
class PurePursuitLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pid_longitudinal_controller {
class PIDLongitudinalController {
isReady(InputData) override
run(InputData) override
}
}
package trajectory_follower_node {
class Controller {
longitudinal_controller_
lateral_controller_
onTimer()
createInputData(): InputData
}
}
MPCLateralController --|> LateralControllerBase
PurePursuitLateralController --|> LateralControllerBase
PIDLongitudinalController --|> LongitudinalControllerBase
LateralSyncData --> LongitudinalControllerBase
LateralSyncData --> LateralControllerBase
LongitudinalSyncData --> LongitudinalControllerBase
LongitudinalSyncData --> LateralControllerBase
InputData ..> LateralControllerBase
InputData ..> LongitudinalControllerBase
LateralControllerBase --o Controller
LongitudinalControllerBase --o Controller
InputData ..> Controller
@enduml
The process flow of Controller
class is as follows.
```cpp // 1. create input data const auto input_data = createInputData(*get_clock()); if (!input_data) { return; }
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simple_trajectory_follower.launch.xml
-
- use_external_target_vel [default: true]
- external_target_vel [default: 5.0]
- lateral_deviation [default: 0.0]
Messages
Services
Plugins
Recent questions tagged trajectory_follower_node at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/ieiauto/autodrrt.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-30 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
Trajectory Follower Nodes
Purpose
Generate control commands to follow a given Trajectory.
Design
This is a node of the functionalities implemented in the controller class derived from trajectory_follower_base package. It has instances of those functionalities, gives them input data to perform calculations, and publishes control commands.
By default, the controller instance with the Controller
class as follows is used.
@startuml
package trajectory_follower_base {
abstract class LateralControllerBase {
longitudinal_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LongitudinalSyncData)
reset()
}
abstract class LongitudinalControllerBase {
lateral_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LateralSyncData)
reset()
}
struct InputData {
trajectory
odometry
steering
accel
}
struct LongitudinalSyncData {
is_steer_converged
}
struct LateralSyncData {
}
}
package mpc_lateral_controller {
class MPCLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pure_pursuit {
class PurePursuitLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pid_longitudinal_controller {
class PIDLongitudinalController {
isReady(InputData) override
run(InputData) override
}
}
package trajectory_follower_node {
class Controller {
longitudinal_controller_
lateral_controller_
onTimer()
createInputData(): InputData
}
}
MPCLateralController --|> LateralControllerBase
PurePursuitLateralController --|> LateralControllerBase
PIDLongitudinalController --|> LongitudinalControllerBase
LateralSyncData --> LongitudinalControllerBase
LateralSyncData --> LateralControllerBase
LongitudinalSyncData --> LongitudinalControllerBase
LongitudinalSyncData --> LateralControllerBase
InputData ..> LateralControllerBase
InputData ..> LongitudinalControllerBase
LateralControllerBase --o Controller
LongitudinalControllerBase --o Controller
InputData ..> Controller
@enduml
The process flow of Controller
class is as follows.
```cpp // 1. create input data const auto input_data = createInputData(*get_clock()); if (!input_data) { return; }
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simple_trajectory_follower.launch.xml
-
- use_external_target_vel [default: true]
- external_target_vel [default: 5.0]
- lateral_deviation [default: 0.0]
Messages
Services
Plugins
Recent questions tagged trajectory_follower_node at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/ieiauto/autodrrt.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-30 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
Trajectory Follower Nodes
Purpose
Generate control commands to follow a given Trajectory.
Design
This is a node of the functionalities implemented in the controller class derived from trajectory_follower_base package. It has instances of those functionalities, gives them input data to perform calculations, and publishes control commands.
By default, the controller instance with the Controller
class as follows is used.
@startuml
package trajectory_follower_base {
abstract class LateralControllerBase {
longitudinal_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LongitudinalSyncData)
reset()
}
abstract class LongitudinalControllerBase {
lateral_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LateralSyncData)
reset()
}
struct InputData {
trajectory
odometry
steering
accel
}
struct LongitudinalSyncData {
is_steer_converged
}
struct LateralSyncData {
}
}
package mpc_lateral_controller {
class MPCLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pure_pursuit {
class PurePursuitLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pid_longitudinal_controller {
class PIDLongitudinalController {
isReady(InputData) override
run(InputData) override
}
}
package trajectory_follower_node {
class Controller {
longitudinal_controller_
lateral_controller_
onTimer()
createInputData(): InputData
}
}
MPCLateralController --|> LateralControllerBase
PurePursuitLateralController --|> LateralControllerBase
PIDLongitudinalController --|> LongitudinalControllerBase
LateralSyncData --> LongitudinalControllerBase
LateralSyncData --> LateralControllerBase
LongitudinalSyncData --> LongitudinalControllerBase
LongitudinalSyncData --> LateralControllerBase
InputData ..> LateralControllerBase
InputData ..> LongitudinalControllerBase
LateralControllerBase --o Controller
LongitudinalControllerBase --o Controller
InputData ..> Controller
@enduml
The process flow of Controller
class is as follows.
```cpp // 1. create input data const auto input_data = createInputData(*get_clock()); if (!input_data) { return; }
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simple_trajectory_follower.launch.xml
-
- use_external_target_vel [default: true]
- external_target_vel [default: 5.0]
- lateral_deviation [default: 0.0]
Messages
Services
Plugins
Recent questions tagged trajectory_follower_node at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/ieiauto/autodrrt.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-30 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
Trajectory Follower Nodes
Purpose
Generate control commands to follow a given Trajectory.
Design
This is a node of the functionalities implemented in the controller class derived from trajectory_follower_base package. It has instances of those functionalities, gives them input data to perform calculations, and publishes control commands.
By default, the controller instance with the Controller
class as follows is used.
@startuml
package trajectory_follower_base {
abstract class LateralControllerBase {
longitudinal_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LongitudinalSyncData)
reset()
}
abstract class LongitudinalControllerBase {
lateral_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LateralSyncData)
reset()
}
struct InputData {
trajectory
odometry
steering
accel
}
struct LongitudinalSyncData {
is_steer_converged
}
struct LateralSyncData {
}
}
package mpc_lateral_controller {
class MPCLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pure_pursuit {
class PurePursuitLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pid_longitudinal_controller {
class PIDLongitudinalController {
isReady(InputData) override
run(InputData) override
}
}
package trajectory_follower_node {
class Controller {
longitudinal_controller_
lateral_controller_
onTimer()
createInputData(): InputData
}
}
MPCLateralController --|> LateralControllerBase
PurePursuitLateralController --|> LateralControllerBase
PIDLongitudinalController --|> LongitudinalControllerBase
LateralSyncData --> LongitudinalControllerBase
LateralSyncData --> LateralControllerBase
LongitudinalSyncData --> LongitudinalControllerBase
LongitudinalSyncData --> LateralControllerBase
InputData ..> LateralControllerBase
InputData ..> LongitudinalControllerBase
LateralControllerBase --o Controller
LongitudinalControllerBase --o Controller
InputData ..> Controller
@enduml
The process flow of Controller
class is as follows.
```cpp // 1. create input data const auto input_data = createInputData(*get_clock()); if (!input_data) { return; }
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simple_trajectory_follower.launch.xml
-
- use_external_target_vel [default: true]
- external_target_vel [default: 5.0]
- lateral_deviation [default: 0.0]
Messages
Services
Plugins
Recent questions tagged trajectory_follower_node at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/ieiauto/autodrrt.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-30 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
Trajectory Follower Nodes
Purpose
Generate control commands to follow a given Trajectory.
Design
This is a node of the functionalities implemented in the controller class derived from trajectory_follower_base package. It has instances of those functionalities, gives them input data to perform calculations, and publishes control commands.
By default, the controller instance with the Controller
class as follows is used.
@startuml
package trajectory_follower_base {
abstract class LateralControllerBase {
longitudinal_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LongitudinalSyncData)
reset()
}
abstract class LongitudinalControllerBase {
lateral_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LateralSyncData)
reset()
}
struct InputData {
trajectory
odometry
steering
accel
}
struct LongitudinalSyncData {
is_steer_converged
}
struct LateralSyncData {
}
}
package mpc_lateral_controller {
class MPCLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pure_pursuit {
class PurePursuitLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pid_longitudinal_controller {
class PIDLongitudinalController {
isReady(InputData) override
run(InputData) override
}
}
package trajectory_follower_node {
class Controller {
longitudinal_controller_
lateral_controller_
onTimer()
createInputData(): InputData
}
}
MPCLateralController --|> LateralControllerBase
PurePursuitLateralController --|> LateralControllerBase
PIDLongitudinalController --|> LongitudinalControllerBase
LateralSyncData --> LongitudinalControllerBase
LateralSyncData --> LateralControllerBase
LongitudinalSyncData --> LongitudinalControllerBase
LongitudinalSyncData --> LateralControllerBase
InputData ..> LateralControllerBase
InputData ..> LongitudinalControllerBase
LateralControllerBase --o Controller
LongitudinalControllerBase --o Controller
InputData ..> Controller
@enduml
The process flow of Controller
class is as follows.
```cpp // 1. create input data const auto input_data = createInputData(*get_clock()); if (!input_data) { return; }
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simple_trajectory_follower.launch.xml
-
- use_external_target_vel [default: true]
- external_target_vel [default: 5.0]
- lateral_deviation [default: 0.0]
Messages
Services
Plugins
Recent questions tagged trajectory_follower_node at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/ieiauto/autodrrt.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-30 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
Trajectory Follower Nodes
Purpose
Generate control commands to follow a given Trajectory.
Design
This is a node of the functionalities implemented in the controller class derived from trajectory_follower_base package. It has instances of those functionalities, gives them input data to perform calculations, and publishes control commands.
By default, the controller instance with the Controller
class as follows is used.
@startuml
package trajectory_follower_base {
abstract class LateralControllerBase {
longitudinal_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LongitudinalSyncData)
reset()
}
abstract class LongitudinalControllerBase {
lateral_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LateralSyncData)
reset()
}
struct InputData {
trajectory
odometry
steering
accel
}
struct LongitudinalSyncData {
is_steer_converged
}
struct LateralSyncData {
}
}
package mpc_lateral_controller {
class MPCLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pure_pursuit {
class PurePursuitLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pid_longitudinal_controller {
class PIDLongitudinalController {
isReady(InputData) override
run(InputData) override
}
}
package trajectory_follower_node {
class Controller {
longitudinal_controller_
lateral_controller_
onTimer()
createInputData(): InputData
}
}
MPCLateralController --|> LateralControllerBase
PurePursuitLateralController --|> LateralControllerBase
PIDLongitudinalController --|> LongitudinalControllerBase
LateralSyncData --> LongitudinalControllerBase
LateralSyncData --> LateralControllerBase
LongitudinalSyncData --> LongitudinalControllerBase
LongitudinalSyncData --> LateralControllerBase
InputData ..> LateralControllerBase
InputData ..> LongitudinalControllerBase
LateralControllerBase --o Controller
LongitudinalControllerBase --o Controller
InputData ..> Controller
@enduml
The process flow of Controller
class is as follows.
```cpp // 1. create input data const auto input_data = createInputData(*get_clock()); if (!input_data) { return; }
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simple_trajectory_follower.launch.xml
-
- use_external_target_vel [default: true]
- external_target_vel [default: 5.0]
- lateral_deviation [default: 0.0]
Messages
Services
Plugins
Recent questions tagged trajectory_follower_node at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/ieiauto/autodrrt.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-30 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
Trajectory Follower Nodes
Purpose
Generate control commands to follow a given Trajectory.
Design
This is a node of the functionalities implemented in the controller class derived from trajectory_follower_base package. It has instances of those functionalities, gives them input data to perform calculations, and publishes control commands.
By default, the controller instance with the Controller
class as follows is used.
@startuml
package trajectory_follower_base {
abstract class LateralControllerBase {
longitudinal_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LongitudinalSyncData)
reset()
}
abstract class LongitudinalControllerBase {
lateral_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LateralSyncData)
reset()
}
struct InputData {
trajectory
odometry
steering
accel
}
struct LongitudinalSyncData {
is_steer_converged
}
struct LateralSyncData {
}
}
package mpc_lateral_controller {
class MPCLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pure_pursuit {
class PurePursuitLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pid_longitudinal_controller {
class PIDLongitudinalController {
isReady(InputData) override
run(InputData) override
}
}
package trajectory_follower_node {
class Controller {
longitudinal_controller_
lateral_controller_
onTimer()
createInputData(): InputData
}
}
MPCLateralController --|> LateralControllerBase
PurePursuitLateralController --|> LateralControllerBase
PIDLongitudinalController --|> LongitudinalControllerBase
LateralSyncData --> LongitudinalControllerBase
LateralSyncData --> LateralControllerBase
LongitudinalSyncData --> LongitudinalControllerBase
LongitudinalSyncData --> LateralControllerBase
InputData ..> LateralControllerBase
InputData ..> LongitudinalControllerBase
LateralControllerBase --o Controller
LongitudinalControllerBase --o Controller
InputData ..> Controller
@enduml
The process flow of Controller
class is as follows.
```cpp // 1. create input data const auto input_data = createInputData(*get_clock()); if (!input_data) { return; }
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simple_trajectory_follower.launch.xml
-
- use_external_target_vel [default: true]
- external_target_vel [default: 5.0]
- lateral_deviation [default: 0.0]
Messages
Services
Plugins
Recent questions tagged trajectory_follower_node at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.0.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/ieiauto/autodrrt.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-05-30 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
Trajectory Follower Nodes
Purpose
Generate control commands to follow a given Trajectory.
Design
This is a node of the functionalities implemented in the controller class derived from trajectory_follower_base package. It has instances of those functionalities, gives them input data to perform calculations, and publishes control commands.
By default, the controller instance with the Controller
class as follows is used.
@startuml
package trajectory_follower_base {
abstract class LateralControllerBase {
longitudinal_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LongitudinalSyncData)
reset()
}
abstract class LongitudinalControllerBase {
lateral_sync_data_
virtual isReady(InputData)
virtual run(InputData)
sync(LateralSyncData)
reset()
}
struct InputData {
trajectory
odometry
steering
accel
}
struct LongitudinalSyncData {
is_steer_converged
}
struct LateralSyncData {
}
}
package mpc_lateral_controller {
class MPCLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pure_pursuit {
class PurePursuitLateralController {
isReady(InputData) override
run(InputData) override
}
}
package pid_longitudinal_controller {
class PIDLongitudinalController {
isReady(InputData) override
run(InputData) override
}
}
package trajectory_follower_node {
class Controller {
longitudinal_controller_
lateral_controller_
onTimer()
createInputData(): InputData
}
}
MPCLateralController --|> LateralControllerBase
PurePursuitLateralController --|> LateralControllerBase
PIDLongitudinalController --|> LongitudinalControllerBase
LateralSyncData --> LongitudinalControllerBase
LateralSyncData --> LateralControllerBase
LongitudinalSyncData --> LongitudinalControllerBase
LongitudinalSyncData --> LateralControllerBase
InputData ..> LateralControllerBase
InputData ..> LongitudinalControllerBase
LateralControllerBase --o Controller
LongitudinalControllerBase --o Controller
InputData ..> Controller
@enduml
The process flow of Controller
class is as follows.
```cpp // 1. create input data const auto input_data = createInputData(*get_clock()); if (!input_data) { return; }
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/simple_trajectory_follower.launch.xml
-
- use_external_target_vel [default: true]
- external_target_vel [default: 5.0]
- lateral_deviation [default: 0.0]