项目作者: alifahrri

项目描述 :
kinodynamic motion planning and trajectory tracking for robot soccer
高级语言: Python
项目地址: git://github.com/alifahrri/robosoccer_motion_planning.git
创建时间: 2018-12-20T07:11:32Z
项目社区:https://github.com/alifahrri/robosoccer_motion_planning

开源协议:

下载


Kinodynamic Motion Planning in Dynamic Environment for robot soccer

demo_short.gif viz.gif

click here to view full video. Or here for more videos.

Detailed Description

Read the thesis or paper

You’ll need :

Cloning

do recursive cloning :

  1. git clone --recursive https://github.com/alifahrri/robosoccer_motion_planning.git

Building

standard ROS build, but it is recommended to use only single thread since it will take huge amount of RAM.

  1. catkin_make -j1

Running Unit Tests

run unit test setting from catkin

  1. catkin_make -j1 run_tests

Run Benchmark

use google benchmark settings

  1. rosrun rrtstar rrtstar_benchmark

custom settings (report min, max, mean also prints individual test results)

  1. rosrun rrtstar rrtstar_custom_benchmark

Performance

tested on intel i3 2.0 GHz

computation time solution cost
time_plot.png cost_plot.png
no direct sampling direct sampling with prob = 0.1
direct_sample_disabled_boxplot.png direct_sample_enabled_boxplot.png

Nodes

  • the core of the motion planning algorithm robosoccer_motion_planning/src/robosoccer_motion_planning_node
  • trajectory tracking node for robot soccer robosoccer_trajectory_tracking/scripts/trajectory_cytracker.py
  • control robots with waypoints robosoccer_teleop/scripts/robosoccer_teleop_node.py
  • example of trajectory generator as server node robosoccer_motion_planning/src/trajectory_generator_node
  • example of trajectory generator client node robosoccer_motion_planning/scripts/trajectory_demo.py

Launcher

  • run all necessary nodes (core, trajectory tracking, and teleop) : robosoccer_bringup.launch
  • record necessary messages with rosbag : recorder.launch. Launch it after bringup.
  • play recorded bag files (this will shows visualisation and plotter) : player.launch file:=your_file_full_path.bag