add agv_pro_gazebo
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
import os
|
||||
from launch import LaunchDescription
|
||||
from launch.actions import IncludeLaunchDescription
|
||||
from launch.launch_description_sources import PythonLaunchDescriptionSource
|
||||
from launch.substitutions import Command
|
||||
from launch_ros.actions import Node
|
||||
from launch_ros.parameter_descriptions import ParameterValue
|
||||
from ament_index_python.packages import get_package_share_directory
|
||||
|
||||
def generate_launch_description():
|
||||
pkg_name = 'agv_pro_description'
|
||||
pkg_dir = get_package_share_directory(pkg_name)
|
||||
|
||||
xacro_file = os.path.join(pkg_dir, 'urdf', 'agv_pro.xacro')
|
||||
world_file = os.path.join(pkg_dir, 'worlds', 'empty.world')
|
||||
rviz_config = os.path.join(pkg_dir, 'rviz', 'agvpro_display.rviz')
|
||||
|
||||
robot_description_content = ParameterValue(
|
||||
Command(['xacro ', xacro_file]),
|
||||
value_type=str
|
||||
)
|
||||
robot_description = {'robot_description': robot_description_content}
|
||||
|
||||
return LaunchDescription([
|
||||
# Launch Gazebo
|
||||
IncludeLaunchDescription(
|
||||
PythonLaunchDescriptionSource(
|
||||
os.path.join(get_package_share_directory('gazebo_ros'), 'launch', 'gazebo.launch.py')
|
||||
),
|
||||
launch_arguments={'world': world_file}.items()
|
||||
),
|
||||
|
||||
# Spawn robot into Gazebo
|
||||
Node(
|
||||
package='gazebo_ros',
|
||||
executable='spawn_entity.py',
|
||||
arguments=['-topic', 'robot_description',
|
||||
'-entity', 'agv_pro'],
|
||||
output='screen'
|
||||
),
|
||||
|
||||
# State publisher
|
||||
Node(
|
||||
package='robot_state_publisher',
|
||||
executable='robot_state_publisher',
|
||||
name='robot_state_publisher',
|
||||
output='screen',
|
||||
parameters=[robot_description]
|
||||
),
|
||||
|
||||
Node(
|
||||
package='joint_state_publisher',
|
||||
executable='joint_state_publisher',
|
||||
name='joint_state_publisher',
|
||||
output='screen',
|
||||
),
|
||||
|
||||
# Optional: RViz
|
||||
Node(
|
||||
package='rviz2',
|
||||
executable='rviz2',
|
||||
name='rviz2',
|
||||
output='screen',
|
||||
arguments=['-d', rviz_config],
|
||||
),
|
||||
])
|
||||
Reference in New Issue
Block a user