Main concepts:
- Behavior trees for managing multiple robot navigation and arm manipulation actions through Finite State Machines.
- ROS 2 for the navigation and manipulation nodes.
- Nav2 is used for navigation.
- MoveIt 2 is used for manipulation.
Working example of Behavior Tree: https://www.youtube.com/watch?v=NtHkbNBGDB4
How to run:
- For simulation only: After sourcing the
~/colcon_ws
(usual command. install/setup.bash
) in one terminal runros2 launch icclab_summit_xl summit_xl_simulation.launch.py
. - In another similar sourced terminal, run
ros2 launch icclab_summit_xl summit_xl_move_it.launch.py use_sim_time:=true | grep -v moveit_robot_model.robot_model
.use_sim_time:=true
is default for simulation, but when working with the real arm putuse_sim_time:=false
. - For running the Behavior Tree first clone, build and source this GitHub repo in your ROS 2 workspace, for example
~/rap/gaurav_ws$
. Then runros2 launch liquid_pickup liquid_pickup_launch.py
. For simulation and real robot, we should switch betweenuse_sim_time:=true
anduse_sim_time:=false
in the launch file, for example here. - For providing a custom Behavior Tree (BT) XML to the BT node, place your XML file in config directory of this repo. Then this BT Tree could be provided to the BT node parameter via launch, for example here.
- For visualizing the BT install Groot2, and run
./groot2
in the installed directory, for example~/Groot2/bin
.