Files
ros_contorl/config/fastdds_visual_servo.xml
T
arm_dev 6edb8d39ab chore: 框架科学优化前的完整基线
在开始'设备契约层 + 目录重构 + 通止规装配'改造之前,先钉住当前可运行状态,
使后续任何删除/重构都可回退。

本基线包含:
- 现有 ROS 2 工作区全部源码(arm_application / arm_control / arm_bringup 等)
- 官方 flexiv_ros2 栈(含 flexiv_hardware / flexiv_controllers 等符号链接)
- 设备契约层 src/arm_interfaces(新增,46 项单测通过)
- devices/ 设备选型与品牌清单(新增)
- scripts/gen_site_example.py 与由它生成的 config/site.example.yaml

按 .gitignore 排除:build/ / install/ / log/ / config/site.yaml / 模型权重二进制。
2026-09-23 10:53:06 +08:00

85 lines
2.5 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<!--
FastDDS profile for visual-servo hard paths (Ubuntu 22.04 / Humble default RMW).
Use:
export FASTRTPS_DEFAULT_PROFILES_FILE=~/ros2/config/fastdds_visual_servo.xml
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
Goals:
- Prefer UDP unicast for low-latency control topics
- Shrink discovery / participant lease so late joiners do not stall 100 Hz
- Keep history shallow so subscribers never chase a backlog
-->
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">
<transport_descriptors>
<transport_descriptor>
<transport_id>udp_transport</transport_id>
<type>UDPv4</type>
<!-- Avoid shared-memory backlog stalls between heavy perception and servo -->
<maxMessageSize>65500</maxMessageSize>
</transport_descriptor>
</transport_descriptors>
<participant profile_name="visual_servo_participant" is_default_profile="true">
<rtps>
<userTransports>
<transport_id>udp_transport</transport_id>
</userTransports>
<useBuiltinTransports>false</useBuiltinTransports>
<builtin>
<discovery_config>
<!-- Faster discovery; reduce lease so dead peers drop quickly -->
<leaseDuration>
<sec>10</sec>
<nanosec>0</nanosec>
</leaseDuration>
<leaseAnnouncement>
<sec>3</sec>
<nanosec>0</nanosec>
</leaseAnnouncement>
<initialAnnouncements>
<count>5</count>
<period>
<sec>0</sec>
<nanosec>100000000</nanosec>
</period>
</initialAnnouncements>
</discovery_config>
</builtin>
</rtps>
</participant>
<!-- Perception image topics: BEST_EFFORT + KEEP_LAST (drop old frames) -->
<data_reader profile_name="sensor_best_effort">
<qos>
<reliability>
<kind>BEST_EFFORT</kind>
</reliability>
<history>
<kind>KEEP_LAST</kind>
<depth>5</depth>
</history>
<durability>
<kind>VOLATILE</kind>
</durability>
</qos>
</data_reader>
<!-- /visual_servo/cmd_vel: always only the newest Twist -->
<data_writer profile_name="cmd_vel_latest">
<qos>
<reliability>
<kind>RELIABLE</kind>
</reliability>
<history>
<kind>KEEP_LAST</kind>
<depth>1</depth>
</history>
<durability>
<kind>VOLATILE</kind>
</durability>
</qos>
</data_writer>
</profiles>