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 / 模型权重二进制。
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
from launch import LaunchDescription
|
||||
from launch.actions import DeclareLaunchArgument
|
||||
from launch.conditions import IfCondition, UnlessCondition
|
||||
from launch.substitutions import Command, LaunchConfiguration, PathJoinSubstitution
|
||||
from launch_ros.actions import Node
|
||||
from launch_ros.parameter_descriptions import ParameterValue
|
||||
from launch_ros.substitutions import FindPackageShare
|
||||
|
||||
|
||||
def generate_launch_description():
|
||||
use_gui = LaunchConfiguration('use_gui')
|
||||
use_rviz = LaunchConfiguration('use_rviz')
|
||||
robot_sn = LaunchConfiguration('robot_sn')
|
||||
rizon_type = LaunchConfiguration('rizon_type')
|
||||
load_gripper = LaunchConfiguration('load_gripper')
|
||||
|
||||
urdf_path = PathJoinSubstitution(
|
||||
[FindPackageShare('arm_description'), 'urdf', 'arm.urdf.xacro']
|
||||
)
|
||||
rviz_config = PathJoinSubstitution(
|
||||
[FindPackageShare('flexiv_description'), 'rviz', 'view_rizon.rviz']
|
||||
)
|
||||
|
||||
robot_description = ParameterValue(
|
||||
Command([
|
||||
'xacro ', urdf_path,
|
||||
' robot_sn:=', robot_sn,
|
||||
' rizon_type:=', rizon_type,
|
||||
' load_gripper:=', load_gripper,
|
||||
]),
|
||||
value_type=str,
|
||||
)
|
||||
|
||||
return LaunchDescription([
|
||||
DeclareLaunchArgument('use_gui', default_value='true'),
|
||||
DeclareLaunchArgument('use_rviz', default_value='true'),
|
||||
DeclareLaunchArgument('robot_sn', default_value='Rizon4-063989'),
|
||||
DeclareLaunchArgument('rizon_type', default_value='Rizon4'),
|
||||
DeclareLaunchArgument('load_gripper', default_value='false'),
|
||||
|
||||
Node(
|
||||
package='robot_state_publisher',
|
||||
executable='robot_state_publisher',
|
||||
name='robot_state_publisher',
|
||||
parameters=[{'robot_description': robot_description}],
|
||||
output='screen',
|
||||
),
|
||||
Node(
|
||||
package='joint_state_publisher_gui',
|
||||
executable='joint_state_publisher_gui',
|
||||
name='joint_state_publisher_gui',
|
||||
condition=IfCondition(use_gui),
|
||||
output='screen',
|
||||
),
|
||||
Node(
|
||||
package='joint_state_publisher',
|
||||
executable='joint_state_publisher',
|
||||
name='joint_state_publisher',
|
||||
condition=UnlessCondition(use_gui),
|
||||
output='screen',
|
||||
),
|
||||
Node(
|
||||
package='rviz2',
|
||||
executable='rviz2',
|
||||
name='rviz2',
|
||||
arguments=['-d', rviz_config],
|
||||
condition=IfCondition(use_rviz),
|
||||
output='screen',
|
||||
),
|
||||
])
|
||||
Reference in New Issue
Block a user