diff --git a/cyberdog_visual/CMakeLists.txt b/cyberdog_visual/CMakeLists.txt index 9faa307..b9e8ed3 100644 --- a/cyberdog_visual/CMakeLists.txt +++ b/cyberdog_visual/CMakeLists.txt @@ -22,7 +22,6 @@ find_package(tf2_eigen REQUIRED) find_package(tf2_geometry_msgs REQUIRED) find_package(tf2_ros REQUIRED) find_package(sensor_msgs REQUIRED) -find_package(gazebo_msgs REQUIRED) find_package(lcm REQUIRED) find_package(urdf REQUIRED) set(dependencies @@ -33,7 +32,6 @@ set(dependencies tf2_geometry_msgs tf2_ros sensor_msgs - gazebo_msgs urdf lcm Eigen3 diff --git a/cyberdog_visual/launch/cyberdog_tf_publish.launch.py b/cyberdog_visual/launch/cyberdog_tf_publish.launch.py new file mode 100644 index 0000000..e120a76 --- /dev/null +++ b/cyberdog_visual/launch/cyberdog_tf_publish.launch.py @@ -0,0 +1,80 @@ +import os +import launch +import xacro +from launch.actions import DeclareLaunchArgument +from launch.actions import OpaqueFunction +from launch.substitutions import Command, LaunchConfiguration, PythonExpression +from launch_ros.actions import Node +from launch_ros.substitutions import FindPackageShare + +def launch_setup(context, *args, **kwargs): + # config + hang_robot = LaunchConfiguration('hang_robot').perform(context) + use_lidar = LaunchConfiguration('use_lidar').perform(context) + rname = LaunchConfiguration('rname').perform(context) + use_sim_time=LaunchConfiguration('use_sim_time') + + # path + description_share = FindPackageShare( + package=rname+'_description').find(rname+'_description') + visual_share = FindPackageShare( + package='cyberdog_visual').find('cyberdog_visual') + + # urdf + xacro_path = os.path.join(description_share, 'xacro/robot.xacro') + urdf_contents = xacro.process_file(xacro_path, mappings={ + 'DEBUG': hang_robot, 'USE_LIDAR': use_lidar}).toprettyxml(indent=' ') + + # joint_state_publisher + joint_state_node = Node( + package='cyberdog_visual', + executable='cyberdog_visual', + name='cyberdog_visual', + output='screen', + parameters=[{ + 'robot_description': urdf_contents, + 'publish_frequency': 50.0, + 'joint_state_topic': 'joint_states', + 'use_sim_time': use_sim_time, + 'use_state_estimator': False + } + ] + ) + + # robot_state_publisher + robot_state_node = Node( + package='robot_state_publisher', + executable='robot_state_publisher', + name='robot_state_publisher', + output='screen', + parameters=[ + { + 'robot_description': urdf_contents, + 'publish_frequency': 50.0, + 'use_sim_time': use_sim_time + } + ] + ) + + return [joint_state_node, robot_state_node] + +def generate_launch_description(): + return launch.LaunchDescription([ + DeclareLaunchArgument( + name='use_sim_time', + default_value='false' + ), + DeclareLaunchArgument( + name='hang_robot', + default_value='false' + ), + DeclareLaunchArgument( + name='use_lidar', + default_value='false' + ), + DeclareLaunchArgument( + name='rname', + default_value='cyberdog' + ), + OpaqueFunction(function=launch_setup) + ]) diff --git a/cyberdog_visual/package.xml b/cyberdog_visual/package.xml index b89aac1..75feafd 100644 --- a/cyberdog_visual/package.xml +++ b/cyberdog_visual/package.xml @@ -14,7 +14,6 @@ tf2_ros tf2_geometry_msgs sensor_msgs - gazebo_msgs urdf