sl-firmware fa75c442a7 feat: remove all STM32/Mamba/BlackPill references — ESP32-S3 only
Archive STM32 firmware to legacy/stm32/:
- src/, include/, lib/USB_CDC/, platformio.ini, test stubs, flash_firmware.py
- test/test_battery_adc.c, test_hw_button.c, test_pid_schedule.c, test_vesc_can.c, test_can_watchdog.c
- USB_CDC_BUG.md

Rename: stm32_protocol → esp32_protocol, mamba_protocol → balance_protocol,
  stm32_cmd_node → esp32_cmd_node, stm32_cmd_params → esp32_cmd_params,
  stm32_cmd.launch.py → esp32_cmd.launch.py,
  test_stm32_protocol → test_esp32_protocol, test_stm32_cmd_node → test_esp32_cmd_node

Content cleanup across all files:
- Mamba F722S → ESP32-S3 BALANCE
- BlackPill → ESP32-S3 IO
- STM32F722/F7xx → ESP32-S3
- stm32Mode/Version/Port → esp32Mode/Version/Port
- STM32 State/Mode labels → ESP32 State/Mode
- Jetson Nano → Jetson Orin Nano Super
- /dev/stm32 → /dev/esp32
- stm32_bridge → esp32_bridge
- STM32 HAL → ESP-IDF

docs/SALTYLAB.md:
- Update "Drone FC Details" to describe ESP32-S3 BALANCE board (Waveshare ESP32-S3 Touch LCD 1.28)
- Replace verbose "Self-Balancing Control" STM32 section with brief note pointing to SAUL-TEE-SYSTEM-REFERENCE.md

TEAM.md: Update Embedded Firmware Engineer role to ESP32-S3 / ESP-IDF

No new functionality — cleanup only.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 09:00:38 -04:00

86 lines
3.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
realsense.launch.py — Intel RealSense D435i driver (standalone)
Launches realsense2_camera_node with Jetson Orin Nano Super power-budget settings:
- 640×480 @ 15fps (depth + RGB) — saves ~0.4W vs 30fps
- IMU enabled with linear interpolation (unified /camera/imu topic)
- Depth aligned to color frame
- Point cloud disabled (expensive on Maxwell GPU)
Published topics:
/camera/color/image_raw sensor_msgs/Image 15 Hz
/camera/color/camera_info sensor_msgs/CameraInfo 15 Hz
/camera/depth/image_rect_raw sensor_msgs/Image 15 Hz
/camera/depth/camera_info sensor_msgs/CameraInfo 15 Hz
/camera/aligned_depth_to_color/image_raw sensor_msgs/Image 15 Hz
/camera/imu sensor_msgs/Imu ~200 Hz
Verify:
ros2 topic list | grep camera
ros2 topic hz /camera/color/image_raw
ros2 topic hz /camera/imu
"""
import os
from launch import LaunchDescription
from launch.actions import IncludeLaunchDescription, DeclareLaunchArgument
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import LaunchConfiguration
from ament_index_python.packages import get_package_share_directory
def generate_launch_description():
# Allow overriding camera serial number at launch time (useful with multiple cameras)
serial_no_arg = DeclareLaunchArgument(
'serial_no',
default_value="''",
description='RealSense device serial number (empty = first found)',
)
realsense_share = get_package_share_directory('realsense2_camera')
realsense_launch = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(realsense_share, 'launch', 'rs_launch.py')
),
launch_arguments={
# Camera identity
'serial_no': LaunchConfiguration('serial_no'),
'camera_name': 'camera',
'camera_namespace': 'camera',
# Depth stream — 640×480 @ 15fps saves power on Nano
'depth_module.profile': '640x480x15',
'enable_depth': 'true',
# RGB stream — matched resolution/fps to depth
'rgb_camera.profile': '640x480x15',
'enable_color': 'true',
# IR streams — disabled (not needed for RTAB-Map RGB-D mode)
'enable_infra1': 'false',
'enable_infra2': 'false',
# IMU — enable both sensors, publish unified topic
'enable_gyro': 'true',
'enable_accel': 'true',
# 2 = linear_interpolation: aligns accel+gyro timestamps
'unite_imu_method': '2',
# Align depth to color frame (required for rtabmap_ros RGB-D input)
'align_depth.enable': 'true',
# Point cloud — disabled, too expensive for Maxwell GPU during SLAM
'pointcloud.enable': 'false',
# TF — publish camera→IMU extrinsics
'publish_tf': 'true',
'tf_publish_rate': '0.0', # static only, no redundant updates
}.items(),
)
return LaunchDescription([
serial_no_arg,
realsense_launch,
])