|
wayp_plan_tools repositorycontrol ros pursuit trajectory ros2 waypoint-following waypoint waypoints-creator pure-pursuit sze szenergy ros2-humble |
|
wayp_plan_tools repositorycontrol ros pursuit trajectory ros2 waypoint-following waypoint waypoints-creator pure-pursuit sze szenergy ros2-humble |
|
wayp_plan_tools repositorycontrol ros pursuit trajectory ros2 waypoint-following waypoint waypoints-creator pure-pursuit sze szenergy ros2-humble |
|
wayp_plan_tools repositorycontrol ros pursuit trajectory ros2 waypoint-following waypoint waypoints-creator pure-pursuit sze szenergy ros2-humble |
|
wayp_plan_tools repositorycontrol ros pursuit trajectory ros2 waypoint-following waypoint waypoints-creator pure-pursuit sze szenergy ros2-humble wayp_plan_tools |
Repository Summary
| Description | 🏎 Waypoint and planner tools for ROS 2 with minimal dependencies. |
| Checkout URI | https://github.com/jkk-research/wayp_plan_tools.git |
| VCS Type | git |
| VCS Version | ros2 |
| Last Updated | 2024-09-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | control ros pursuit trajectory ros2 waypoint-following waypoint waypoints-creator pure-pursuit sze szenergy ros2-humble |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| wayp_plan_tools | 0.0.0 |
README
wayp_plan_tools ROS 2 package
Waypoint and planner tools for ROS 2 with minimal dependencies.
Planner / control nodes:
-
single_goal_pursuit: Pure pursuit (for vehicles / robots), a simple cross-track error method -
multiple_goal_pursuit: Multiple goal pursuit for vehicles / robots an implementation of our paper -
stanley_control: Stanley controller, a heading error + cross-track error method -
follow_the_carrot: Follow-the-carrot, the simplest controller
Waypoint nodes:
-
waypoint_saver: saves the waypoints to a csv -
waypoint_loader: loads the waypoints from a csv to a ROS 2 topic -
waypoint_to_target: translates the global waypoint array to local target waypoint(s), thus it makes possible to use the controller nodes in a standalone way
Build
It is assumed that the workspace is ~/ros2_ws/.
Terminal 1 🔴 clone
cd ~/ros2_ws/src
git clone https://github.com/jkk-research/wayp_plan_tools
Terminal 1 🔴 build
cd ~/ros2_ws
colcon build --packages-select wayp_plan_tools --symlink-install
Terminal 2 🔵 run
source ~/ros2_ws/install/setup.bash
ros2 launch wayp_plan_tools waypoint_saver.launch.py
Control nodes
In this project the single_goal_pursuit, the multiple_goal_pursuit, stanley_control and the follow_the_carrot controllers are implemented. A high level overview about the algorithms is visible on the following figure:
single_goal_pursuit node
The “classic” pure pursuit implementation
multiple_goal_pursuit node
Multiple goal pursuit for vehicles / robots, an implementation of our paper
follow_the_carrot node
Follow-the-carrot, the simplest controller
waypoint_to_target node
Reads the waypoint array and speeds, from that it creates single or multiple goal points.
It also provides a /metrics_wayp array topic with the following elements:
| Array element | Meaning | Const |
|---|---|---|
[0] |
current lateral distance to the waypoint (signed, cross-track error) | CUR_LAT_DIST_SIGNED |
[1] |
current lateral distance to the waypoint (absolute value) | CUR_LAT_DIST_ABS |
[2] |
average lateral distance over time | AVG_LAT_DISTANCE |
[3] |
maximum lateral distance over time | MAX_LAT_DISTANCE |
[4] |
current waypoint ID | CUR_WAYPOINT_ID |
[5] |
target waypoint ID | TRG_WAYPOINT_ID |
[6] |
target waypoint longitudinal distance (similar to lookahed distance, but at a waypoint) | TRG_WAY_LON_DIST |
[7] |
actual lookahead distance | ACT_LOOK_DIST |
[8] |
current cross-track error | CUR_CROSS_TRACK |
<img src=”csv/lookahead01.svg” width=60% />
waypoint_saver node
Saves the waypoints to a csv. Important parameters are file_name and file_dir. Set from terminal or from a launch file
ros2 run wayp_plan_tools waypoint_saver --ros-args -p file_name:=tmp1.csv -p file_dir:=/mnt/bag/waypoints
waypoint_loader node
Loads the waypoints from a csv to a ROS 2 topic. Set from terminal or from a launch file
ros2 run wayp_plan_tools waypoint_loader --ros-args -p file_name:=tmp1.csv -p file_dir:=/mnt/bag/waypoints
Usage with a simulator
Please refer to github.com/jkk-research/sim_wayp_plan_tools.

File truncated at 100 lines see the full file
CONTRIBUTING
|
wayp_plan_tools repositorycontrol ros pursuit trajectory ros2 waypoint-following waypoint waypoints-creator pure-pursuit sze szenergy ros2-humble |
|
wayp_plan_tools repositorycontrol ros pursuit trajectory ros2 waypoint-following waypoint waypoints-creator pure-pursuit sze szenergy ros2-humble |
|
wayp_plan_tools repositorycontrol ros pursuit trajectory ros2 waypoint-following waypoint waypoints-creator pure-pursuit sze szenergy ros2-humble |
|
wayp_plan_tools repositorycontrol ros pursuit trajectory ros2 waypoint-following waypoint waypoints-creator pure-pursuit sze szenergy ros2-humble |