Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dddmobilerobot/dddmr_local_planner
DDDMR local planner is the integration of trajectory generator, model critics and recovery behaviors.
https://github.com/dddmobilerobot/dddmr_local_planner
local-planner mobile-robot model-predictive-control model-predictive-controller robot-controller ros2 trajectory-generation trajectory-prediction
Last synced: 19 days ago
JSON representation
DDDMR local planner is the integration of trajectory generator, model critics and recovery behaviors.
- Host: GitHub
- URL: https://github.com/dddmobilerobot/dddmr_local_planner
- Owner: dddmobilerobot
- License: bsd-3-clause
- Created: 2024-07-27T10:59:34.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-10-17T10:45:44.000Z (2 months ago)
- Last Synced: 2024-10-19T14:27:25.772Z (2 months ago)
- Topics: local-planner, mobile-robot, model-predictive-control, model-predictive-controller, robot-controller, ros2, trajectory-generation, trajectory-prediction
- Language: C++
- Homepage:
- Size: 110 KB
- Stars: 4
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dddmr_local_planner
DDDmobileRobot local planner including following plugined-based features:
- Trajectory generator
- Critics
- Recovery behaviorsOur local planner is similar as Nav2 DWB planner but differentiate from following perspectives:
- Our local planner is for 3D navigation, the collision and trajectory rating are computed in 3D perspective. For example, the collision check in 2D is by checking a point in a polygon, however, in 3D we check collision by checking a point cloud in a cuboid.
- Our local planner enable each trajectory generator to have seperated critics and weights, which allowing users to setup flexibility behaviors for the robot.
- Our (differential drive) dd_simple_trajectory_generator_theory consider motor constraint for the trajectory generation.
- When maximum linear speed is set as the maximum speed of the motor, the robot is no longer capable of executing any angular speed. Consider this example: say the maximum speed of motor is 100 rpm which is corespond to 1 m/s, when the robot reach 1 m/s, it will also generate trajectories using 1 m/s and 0.1 rad/s whatever, that will require more than 100 rpm on the right wheel. We introduce motor constraint setup to trajectory generation for maximizing the motor capibility.
## Run The Demo
### 1. Create docker image
The package runs in the docker, so we need to build the image first. We support both x64 (tested in intel NUC) and arm64 (tested in nvidia jetson jpack6).
```
cd ~
git clone https://github.com/dddmobilerobot/dddmr_navigation.git
cd ~/dddmr_navigation && git submodule init && git submodule update
cd ~/dddmr_navigation/dddmr_docker/docker_file && ./build.bash
```
### 2. Run demo
#### Create a docker container
> [!NOTE]
> The following command will create an interactive docker container using the image we built. The we can launch the demo in the container.
```
cd ~/dddmr_navigation/dddmr_docker && ./run_demo.bash
```
#### Launch local planner play ground
```
cd ~/dddmr_navigation && source /opt/ros/humble/setup.bash && colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
source install/setup.bash
ros2 launch local_planner local_planner_play_ground.launch
```
#### Use Publish Point on Rviz2
Use Publish Point to give a goal to the local planner, and it will generate a prune plan to the goal you provide.