学习了解Transformer深度学习进行目标追踪
使用以下命令启动mircoROS代理,连接底盘
sh start_agent.sh

启动相机、机械臂辅助、雷达融合等基础节点
xxxxxxxxxxros2 launch m3pro_bringup car_base.launch.py
xxxxxxxxxxros2 launch m3pro_bringup super_tracker.launch.py
程序启动后会出现Super Tracker窗口和rviz2界面


在Super Tracker窗口按c进入框选状态,使用鼠标框选出需要追踪的目标物体,回车确定

之后会进入追踪状态,追踪状态下会通过PCL分割出目标物体的点云,可以在rviz中看到


改变追踪物体在画面中的视角时,追踪框也会发生自适应形变

如果追踪过程中目标的置信度过低,追踪框会变成红色,并开始搜寻目标

目标在视野中再次出现时,会自动找回目标

追踪过程中,节点会发布目标物体的ROI边框坐标、置信度在/tracking_bbox话题,可以使用以下命令查看
xxxxxxxxxxros2 topic echo /tracking_bbox

如果需要得到目标物体点云质心的坐标在车机base_link坐标系下的坐标,可以通过以下命令查询
xxxxxxxxxxros2 run tf2_ros tf2_echo base_link roi_object
其中Translation是目标物体点云质心在base_link坐标系下的x,y,z坐标

当需要取消对物体的追踪时,可以请请求服务的方式进行取消:
xxxxxxxxxxros2 service call /cancel_track smart_tracker/srv/CancelTrack "{}"

Important
在【openclaw具身智能实战】章节,将会时用到这里的深度学习追踪进行机械臂追踪目标和机械臂抓取
super_tracker启动文件路径:
xxxxxxxxxx$HOME/M3Pro_ws/src/m3pro_bringup/launch/super_tracker.launch.py
x
import osfrom launch import LaunchDescriptionfrom launch.actions import DeclareLaunchArgumentfrom launch.substitutions import LaunchConfigurationfrom launch_ros.actions import Nodefrom ament_index_python.packages import get_package_share_directorydef generate_launch_description(): commom_param_file=os.path.join(get_package_share_directory('m3pro_bringup'),'config','common.yaml') super_track_model=os.path.join(os.path.expanduser('~'),'MODELS','tracker','super_track_sim.onnx') rviz_config=os.path.join(get_package_share_directory('m3pro_bringup'),'rviz','super_tracker.rviz') declared_arguments = []
declared_arguments.append( DeclareLaunchArgument( "display_windows_only_track", default_value='false', description="", ) ) declared_arguments.append( DeclareLaunchArgument( "display_windows", default_value='true', description="", ) ) # tracker node tracker_node = Node( package='smart_tracker', executable='super_tracker', name='super_tracker', parameters=[{ 'display_windows_only_track': LaunchConfiguration('display_windows_only_track'), 'display_windows': LaunchConfiguration('display_windows'), 'model_path': super_track_model, }], remappings=[('/image_raw', '/camera/color/image_raw') ], output='screen' # prefix='gdb -ex run --args' )
# pcl segment node for roi point cloud segmentation pclsegment_node = Node( package='smart_tracker', executable='pcl_segment', name='pcl_segment', parameters=[commom_param_file], output='screen' ) rviz_node = Node( package = 'rviz2', executable = 'rviz2', name='rviz2', arguments=['-d', rviz_config], output='screen', ) # Create launch description return LaunchDescription([ *declared_arguments, tracker_node, pclsegment_node, rviz_node])
super_tracker功能需要的deb包(附件—deb功能包)和onnx模型文件(附件—模型文件)在教程附件中
功能包:ros-humble-smart-tracker_0.0.0-0jammy_arm64.deb(使用apt install安装)
模型文件:super_track.onnx