falco_local_planner is a ROS2 package that implements a local planner for autonomous and manual navigation.
It integrates sensor data, TF transforms, and planning logic to generate feasible local trajectories.
The package is designed to work within the ROS2 navigation stack and can be customized for different robots and environments.
- ROS2 C++ implementation (
rclcpp) - Integration with common ROS2 messages (
sensor_msgs,nav_msgs,geometry_msgs) - Support for TF2 transformations (
tf2,tf2_ros,tf2_geometry_msgs,tf2_sensor_msgs) - Point Cloud Library (PCL) support for 3D perception (
pcl_conversions,pcl_msgs) - Custom ROS2 messages (in
msg/) - Launch files for easy startup (in
launch/)
This package depends on the following ROS2 packages and libraries:
rclcppstd_msgs,sensor_msgs,nav_msgs,geometry_msgstf2,tf2_ros,tf2_sensor_msgs,tf2_geometry_msgspcl_conversions,PCL,pcl_msgsmessage_filtersjoyrosidl_default_generators,rosidl_default_runtime
Make sure you have installed these via your ROS2 distribution.
Clone the package into your ROS2 workspace (src/ folder) and build with colcon:
cd ~/ros2_ws/src
git clone <your-repo-url>
cd ~/ros2_ws
colcon build --packages-select falco_local_planner
source install/setup.bashLaunch files are provided in the launch/ directory:
ros2 launch falco_local_planner local_planner.launch.pyThe planner can be customized by editing the parameters inside the launch files. Some common settings you can adjust include:
-
Vehicle size → define the vehicle’s footprint and dimensions for safe local planning -
Odometry source → select the topic providing odometry information -
Sensor inputs → adjust which LiDAR or camera topics are used -
Planner parameters → tuning parameters such as planning horizon, speed limits, or safety margins
Example: open a launch file in the launch/ directory and modify parameters like:
vehicle_length = 2.5 # meters
vehicle_width = 1.5 # meters
odom_topic = "/odom"This makes it easy to adapt the planner to different robot platforms.
This package defines custom messages located in the msg/ directory. These messages are built automatically when you compile the package. To check available messages:
ros2 interface list | grep falco_local_planner-
Source code: src/ -
Headers: include/ -
Messages: msg/ -
Launch files: launch/ -
Configurations/paths: paths/