Complete autonomous navigation stack for SaltyBot: - SLAM Toolbox: online_async 2D LIDAR SLAM from RPLIDAR A1M8 - RealSense D435i: depth → pointcloud → costmap obstacle layer - Nav2 stack: controllers, planners, behavior server, lifecycle management - DWB planner: tuned for 20km/h (5.5 m/s) max velocity operation - VESC odometry bridge: motor telemetry → nav_msgs/Odometry - Costmap integration: LIDAR + depth for global + local costmaps - TF tree: complete setup with base_link→laser, camera_link, odom - Goal interface: /navigate_to_pose action for autonomous goals Configuration: - slam_toolbox_params: loop closure, scan matching, fine/coarse search - nav2_params: AMCL, controllers, planners, behavior trees, lifecycle - Global costmap: static layer + LIDAR obstacle layer + inflation - Local costmap: rolling window + LIDAR + RealSense depth + inflation - DWB planner: 20 vx samples, 40 theta samples, 1.7s horizon Nodes and launch files: - vesc_odometry_bridge: integrates motor RPM to wheel odometry - nav2_slam_bringup: main integrated launch entry point - depth_to_costmap: RealSense depth processing pipeline - odometry_bridge: VESC telemetry bridge Hardware support: - RPLIDAR A1M8: 5.5 Hz, 12m range, 360° omnidirectional - RealSense D435i: 15 Hz RGB-D, 200 Hz IMU, depth range 5m - VESC Flipsky FSESC 4.20: dual motor control via UART - SaltyBot 2-wheel balancer: 0.35m radius, hoverboard motors Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
from setuptools import setup
|
|
|
|
package_name = "saltybot_nav2_slam"
|
|
|
|
setup(
|
|
name=package_name,
|
|
version="0.1.0",
|
|
packages=[package_name],
|
|
data_files=[
|
|
("share/ament_index/resource_index/packages", [f"resource/{package_name}"]),
|
|
(f"share/{package_name}", ["package.xml"]),
|
|
(f"share/{package_name}/launch", [
|
|
"launch/nav2_slam_bringup.launch.py",
|
|
"launch/nav2_slam_integrated.launch.py",
|
|
"launch/depth_to_costmap.launch.py",
|
|
"launch/odometry_bridge.launch.py",
|
|
]),
|
|
(f"share/{package_name}/config", [
|
|
"config/nav2_params.yaml",
|
|
"config/slam_toolbox_params.yaml",
|
|
"config/costmap_common_params.yaml",
|
|
"config/global_costmap_params.yaml",
|
|
"config/local_costmap_params.yaml",
|
|
"config/dwb_local_planner_params.yaml",
|
|
]),
|
|
],
|
|
install_requires=["setuptools"],
|
|
zip_safe=True,
|
|
maintainer="sl-controls",
|
|
maintainer_email="sl-controls@saltylab.local",
|
|
description="Nav2 SLAM integration with RPLIDAR + RealSense for autonomous navigation",
|
|
license="MIT",
|
|
tests_require=["pytest"],
|
|
entry_points={
|
|
"console_scripts": [
|
|
"vesc_odometry_bridge = saltybot_nav2_slam.vesc_odometry_bridge:main",
|
|
],
|
|
},
|
|
)
|