mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-04 16:57:46 +08:00
* Updating examples and README * updated main readme * odom: Added always_check_imu_tf parameter. sync: increased default sync_queue_size from 2 to 5 (to be more flexible to different hardware), added input and output diagnostics. rtabmap_viz: fixed node with same name redeclared warning. * update readme * Added husky demo * converted demo_robot_mapping.launch to ros2 * Converted stereo_outdoor demo from ros1 to ros2 * Converted multi-session demo to ros2 * Converted demo_find_object launch to ros2 * renamed files * uniformized default qos, increased sync_queue_size default to 10 * Added vlp16 + imu example * Added husky 3D lidar demos * moved demos in subdir * Added vlp16+zed example * rtabmap_viz: ignore odom update if tf not ready when not using topic (to avoid showing red screen). Added champ VSLAM demo. * forwarded camera_model arg for zed examples, removed qos for turtlebot4 demo * pointcloud_to_depthimage: added more error logs, removed output camera_info published twice and match ros1 namespaces * Created two base general examples for 3D lidar usage, then create hardware specific examples on top of them. * Added isaac sim demo * Final update of all demos. Fixed MapCloud rviz plugin crashing when floor/ceiling filtering is used and resulting cloud is empty. * Fixed 2d scan deskewing output frame, moved nav2 params under "params" folder, added number of topics processed/dropped for odometry, added icp_odometry option for turtlebot3 scan-only demo. * rtabmap_demos: added README with examples * Added TOC * bump version to 0.21.9
101 lines
3.4 KiB
Python
101 lines
3.4 KiB
Python
# Example:
|
|
#
|
|
# Bringup turtlebot3:
|
|
# $ export TURTLEBOT3_MODEL=waffle
|
|
# $ export LDS_MODEL=LDS-01
|
|
# $ ros2 launch turtlebot3_bringup robot.launch.py
|
|
#
|
|
# SLAM:
|
|
# $ ros2 launch rtabmap_demos turtlebot3_scan.launch.py
|
|
#
|
|
# Navigation (install nav2_bringup package):
|
|
# $ ros2 launch nav2_bringup navigation_launch.py
|
|
# $ ros2 launch nav2_bringup rviz_launch.py
|
|
#
|
|
# Teleop:
|
|
# $ ros2 run turtlebot3_teleop teleop_keyboard
|
|
|
|
from launch import LaunchDescription
|
|
from launch.actions import DeclareLaunchArgument, OpaqueFunction
|
|
from launch.substitutions import LaunchConfiguration
|
|
from launch.conditions import IfCondition, UnlessCondition
|
|
from launch_ros.actions import Node
|
|
|
|
def launch_setup(context, *args, **kwargs):
|
|
use_sim_time = LaunchConfiguration('use_sim_time')
|
|
localization = LaunchConfiguration('localization').perform(context)
|
|
localization = localization == 'True' or localization == 'true'
|
|
icp_odometry = LaunchConfiguration('icp_odometry').perform(context)
|
|
icp_odometry = icp_odometry == 'True' or icp_odometry == 'true'
|
|
|
|
parameters={
|
|
'frame_id':'base_footprint',
|
|
'use_sim_time':use_sim_time,
|
|
'subscribe_depth':False,
|
|
'subscribe_rgb':False,
|
|
'subscribe_scan':True,
|
|
'approx_sync':True,
|
|
'use_action_for_goal':True,
|
|
'Reg/Strategy':'1',
|
|
'Reg/Force3DoF':'true',
|
|
'RGBD/NeighborLinkRefining':'True',
|
|
'Grid/RangeMin':'0.2', # ignore laser scan points on the robot itself
|
|
'Optimizer/GravitySigma':'0' # Disable imu constraints (we are already in 2D)
|
|
}
|
|
arguments = []
|
|
if localization:
|
|
parameters['Mem/IncrementalMemory'] = 'False'
|
|
parameters['Mem/InitWMWithAllNodes'] = 'True'
|
|
else:
|
|
arguments.append('-d') # This will delete the previous database (~/.ros/rtabmap.db)
|
|
|
|
remappings=[
|
|
('scan', '/scan')]
|
|
if icp_odometry:
|
|
remappings.append(('odom', 'icp_odom'))
|
|
|
|
return [
|
|
# Nodes to launch
|
|
|
|
# ICP odometry (optional)
|
|
Node(
|
|
condition=IfCondition(LaunchConfiguration('icp_odometry')),
|
|
package='rtabmap_odom', executable='icp_odometry', output='screen',
|
|
parameters=[parameters,
|
|
{'odom_frame_id':'icp_odom',
|
|
'guess_frame_id':'odom'}],
|
|
remappings=remappings),
|
|
|
|
# SLAM:
|
|
Node(
|
|
package='rtabmap_slam', executable='rtabmap', output='screen',
|
|
parameters=[parameters],
|
|
remappings=remappings,
|
|
arguments=arguments),
|
|
|
|
# Visualization
|
|
Node(
|
|
package='rtabmap_viz', executable='rtabmap_viz', output='screen',
|
|
parameters=[parameters],
|
|
remappings=remappings),
|
|
]
|
|
|
|
def generate_launch_description():
|
|
return LaunchDescription([
|
|
|
|
# Launch arguments
|
|
DeclareLaunchArgument(
|
|
'use_sim_time', default_value='true',
|
|
description='Use simulation (Gazebo) clock if true'),
|
|
|
|
DeclareLaunchArgument(
|
|
'localization', default_value='false',
|
|
description='Launch in localization mode.'),
|
|
|
|
DeclareLaunchArgument(
|
|
'icp_odometry', default_value='false',
|
|
description='Launch ICP odometry on top of wheel odometry.'),
|
|
|
|
OpaqueFunction(function=launch_setup)
|
|
])
|