echo 'KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666", GROUP:="dialout", SYMLINK+="rplidar"' | sudo tee /etc/udev/rules.d/rplidar.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
import launch
from launch_ros.actions import Node
from launch.actions import DeclareLaunchArgument
from launch.substitutions import LaunchConfiguration
def generate_launch_description():
use_sim_time = LaunchConfiguration('use_sim_time', default='false')
rplidar_node = Node(
package='rplidar_ros',
executable='rplidar_node',
name='rplidar_node',
parameters=[{
'serial_port': '/dev/rplidar',
'serial_baudrate': 115200,
'frame_id': 'laser',
'inverted': False,
'angle_compensate': True,
'scan_mode': 'Standard'
}],
output='screen'
)
slam_toolbox_node = Node(
package='slam_toolbox',
executable='async_slam_toolbox_node',
name='slam_toolbox',
output='screen',
parameters=[{
'use_sim_time': use_sim_time,
'map_frame': 'map',
'odom_frame': 'odom',
'base_frame': 'base_link',
'scan_topic': '/scan',
'mode': 'mapping',
'resolution': 0.05,
'max_laser_range': 12.0
}]
)
static_tf_laser = Node(
package='tf2_ros',
executable='static_transform_publisher',
name='static_transform_publisher_laser',
arguments=['0', '0', '0.1', '0', '0', '0', 'base_link', 'laser']
)
static_tf_odom = Node(
package='tf2_ros',
executable='static_transform_publisher',
name='static_transform_publisher_odom',
arguments=['0', '0', '0', '0', '0', '0', 'odom', 'base_link']
)
return launch.LaunchDescription([
DeclareLaunchArgument('use_sim_time', default_value='false'),
rplidar_node,
static_tf_laser,
static_tf_odom,
slam_toolbox_node,
])