Implement SCS/STS serial protocol driver for Waveshare ST3215 servos at 1Mbps daisy-chain configuration. Pan and tilt servos on single UART. Features: - SCSServoBus class: Low-level protocol handler with packet construction - Position write commands with configurable speed (0-1000) - Position and temperature readback from servos - PanTiltNode: ROS2 node with target tracking control loop - Subscribes to /saltybot/target_track for centroid position - Proportional control to keep target centered in D435i FOV - Publishes /pan_tilt/state with angles and temperatures - Publishes /pan_tilt/command for servo position monitoring - 30 Hz control loop, 1 Hz telemetry loop - Configurable servo limits and speeds Servos: 0.24° resolution, 0-4095 position range Camera: 87° × 58° field of view Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
29 lines
930 B
XML
29 lines
930 B
XML
<?xml version="1.0"?>
|
|
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
|
|
<package format="3">
|
|
<name>saltybot_pan_tilt</name>
|
|
<version>0.1.0</version>
|
|
<description>
|
|
Pan/tilt camera head servo control for SaltyBot using Waveshare ST3215 servos.
|
|
SCS/STS serial bus protocol with daisy-chain servo communication.
|
|
</description>
|
|
<maintainer email="sl-controls@saltylab.local">sl-controls</maintainer>
|
|
<license>MIT</license>
|
|
|
|
<depend>rclpy</depend>
|
|
<depend>geometry_msgs</depend>
|
|
<depend>std_msgs</depend>
|
|
<depend>sensor_msgs</depend>
|
|
|
|
<buildtool_depend>ament_python</buildtool_depend>
|
|
|
|
<test_depend>ament_copyright</test_depend>
|
|
<test_depend>ament_flake8</test_depend>
|
|
<test_depend>ament_pep257</test_depend>
|
|
<test_depend>python3-pytest</test_depend>
|
|
|
|
<export>
|
|
<build_type>ament_python</build_type>
|
|
</export>
|
|
</package>
|