Note
This repo contains codes for paper KCFRC: Kinematic Collision-Aware Foothold Reachability Criteria for Legged Locomotion.
Clone the repository:
# Under catkin_ws
git clone --recursive https://github.com/MasterYip/FLTPlanner.git
mv FLTPlanner src
cd src
git submodule update --init --recursive
Install apt dependencies:
sudo apt install \
ros-$ROS_DISTRO-ros-industrial-cmake-boilerplate \
ros-$ROS_DISTRO-costmap-2d \
libglpk-dev
Install cddlib manually:
# Under catkin_ws/src
cd ./legged_traj_planner/third_party
tar -xvf cddlib-0.94m.tar.gz
cd cddlib-0.94m
./configure
make
sudo make install
Build the package:
# Under catkin_ws/src
catkin build legged_traj_plan_examples legged_traj_search_examples hexapod_robot_assets -DCMAKE_BUILD_TYPE=Release
source ../devel/setup.bash
Perform foothold reachability checks and trajectory optimization using recorded contact sequences or MCTS planner.
roslaunch legged_traj_plan_examples elspider_air_state_sequence_planner.launch \
robot_interface_type:=ElSpiderAirDummy \
sim:=true \
teleop_type:=keyboard \
demo_name:=4_ushape_barrier \
planner_cfg:=flt_cfg_planner_conv
Demos:
1_stairs
, 2_stairs
, 3_quincuncial_piles
,
4_barrier
, 4_ushape_barrier
, 5_channel
, 6_fractal
Planners:
flt_cfg_planner_keypoint
(KCFRC keypoint), flt_cfg_planner_conv
(KCFRC conv),
rrt_cfg_planner
, stomp_cfg_planner
, fec_planner
More configs can be found in:
- Launch Settings (Demos and Planners)
- State Sequence Planner Configs
- Swing Trajectory Planner Configs: In folder
./legged_traj_planner/legged_traj_plan/config/swing_traj_planner
Robot Control:
arrow up
: Move forwardarrow down
: Move backward(not recommended)arrow left
: Turn left(not recommended)arrow right
: Turn right(not recommended)
You can publish
geometry_msgs/Twist
to/cmd_vel
to control the robot too.
Perform trajectory optimization using Raibert heuristic planner.
roslaunch legged_traj_plan_examples elspider_air_raibert_planner.launch \
robot_interface_type:=ElSpiderAirDummy \
sim:=true \
teleop_type:=PS5
roslaunch legged_traj_plan_examples elspider_air_simple_raibert_planner.launch \
robot_interface_type:=ElSpiderAirDummy \
sim:=true \
teleop_type:=PS5
Use Joystick to control the robot.
Examples for algorithm illustration.
![]() |
![]() |
Example List:
- eg_guide_surface_demo
- eg_convoluted_guide_surface_demo
- eg_keypoint_guide_surface_demo
- eg_gcs_barrier_demo
- eg_gcs_barrier_ani_demo
- eg_gcs_rand_corridor_demo
- eg_gcs_rand_map_demo
roslaunch legged_traj_search_examples gcs_example.launch \
example_name:=eg_gcs_barrier_ani_demo