Hello there,
can somebody explain me why my rosject is not working please? I had everything done and working with foxy but after 2 monthes without touching it didn’t work properly and gave an the fail of the subject of this quote where the only solution is to update to galactic.
The course was in galactic so in principle it had to be easier to do redo it as there aren’t changes to do to adapt the course code like when I did it in foxy.
Here come what I have and the questions are in bold
Localisation part
user:~/ros2_ws$ ros2 launch project_localization localization.launch.py[INFO] [launch]: All log files can be found below /home/user/.ros/log/2023-11-27-16-23-16-863296-2_xterm-6990
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [map_server-1]: process started with pid [7004]
[INFO] [amcl-2]: process started with pid [7007]
[INFO] [lifecycle_manager-3]: process started with pid [7009]
[map_server-1] [INFO] [1701102197.750082165] [map_server]:
[map_server-1] map_server lifecycle node launched.
[map_server-1] Waiting on external lifecycle transitions to activate
[map_server-1] See https://design.ros2.org/articles/node_lifecycle.html for more information.
[map_server-1] [INFO] [1701102197.750207997] [map_server]: Creating
[lifecycle_manager-3] [INFO] [1701102197.759298436] [lifecycle_manager_localization]: Creating
[amcl-2] [INFO] [1701102197.759855358] [amcl]:
[amcl-2] amcl lifecycle node launched.
[amcl-2] Waiting on external lifecycle transitions to activate
[amcl-2] See https://design.ros2.org/articles/node_lifecycle.html for more information.
[amcl-2] [INFO] [1701102197.760064594] [amcl]: Creating
[lifecycle_manager-3] [INFO] [1701102197.834682974] [lifecycle_manager_localization]: Creating and initializing lifecycle service clients
[lifecycle_manager-3] [INFO] [1701102198.031100091] [lifecycle_manager_localization]: Starting managed nodes bringup...
[lifecycle_manager-3] [INFO] [1701102198.031215887] [lifecycle_manager_localization]: Configuring map_server
[map_server-1] [INFO] [1701102198.031697926] [map_server]: Configuring
[map_server-1] [INFO] [map_io]: Loading yaml file: /home/user/ros2_ws/install/project_mapping/share/project_mapping/maps/turtlebot_area.yaml
[map_server-1] [DEBUG] [map_io]: resolution: 0.05
[map_server-1] [DEBUG] [map_io]: origin[0]: -1.26
[map_server-1] [DEBUG] [map_io]: origin[1]: -1.84
[map_server-1] [DEBUG] [map_io]: origin[2]: 0
[map_server-1] [DEBUG] [map_io]: free_thresh: 0.25
[map_server-1] [DEBUG] [map_io]: occupied_thresh: 0.65
[map_server-1] [DEBUG] [map_io]: mode: trinary
[map_server-1] [DEBUG] [map_io]: negate: 0
[map_server-1] [INFO] [map_io]: Loading image_file: /home/user/ros2_ws/install/project_mapping/share/project_mapping/maps/turtlebot_area.pgm
[map_server-1] [DEBUG] [map_io]: Read map /home/user/ros2_ws/install/project_mapping/share/project_mapping/maps/turtlebot_area.pgm: 55 X 50 map @ 0.05 m/cell
[lifecycle_manager-3] [INFO] [1701102198.209938303] [lifecycle_manager_localization]: Configuring amcl
[amcl-2] [INFO] [1701102198.210365662] [amcl]: Configuring
[amcl-2] [INFO] [1701102198.210504575] [amcl]: initTransforms
[amcl-2] [INFO] [1701102198.225461745] [amcl]: initPubSub
[amcl-2] [INFO] [1701102198.230316616] [amcl]: Subscribed to map topic.
[lifecycle_manager-3] [INFO] [1701102198.320123606] [lifecycle_manager_localization]: Activating map_server
[map_server-1] [INFO] [1701102198.320410457] [map_server]: Activating
[map_server-1] [INFO] [1701102198.320618926] [map_server]: Creating bond (map_server) to lifecycle manager.
[amcl-2] [INFO] [1701102198.320627485] [amcl]: Received a 55 X 50 map @ 0.050 m/pix
[lifecycle_manager-3] [INFO] [1701102198.695787606] [lifecycle_manager_localization]: Server map_server connected with bond.
[lifecycle_manager-3] [INFO] [1701102198.695860745] [lifecycle_manager_localization]: Activating amcl
[amcl-2] [INFO] [1701102198.696333494] [amcl]: Activating
[amcl-2] [INFO] [1701102198.696386685] [amcl]: initialPoseReceived
[amcl-2] [INFO] [1701102198.696578734] [amcl]: Setting pose (10.205000): 0.000 0.000 0.000
[amcl-2] [INFO] [1701102198.699812081] [amcl]: Creating bond (amcl) tolifecycle manager.
[amcl-2] [INFO] [1701102198.777399888] [amcl]: createLaserObject
[lifecycle_manager-3] [INFO] [1701102198.968961591] [lifecycle_manager_localization]: Server amcl connected with bond.
[lifecycle_manager-3] [INFO] [1701102198.969034693] [lifecycle_manager_localization]: Managed nodes are active
[lifecycle_manager-3] [INFO] [1701102198.969056540] [lifecycle_manager_localization]: Creating bond timer...
[amcl-2] [INFO] [1701102223.353853967] [amcl]: initialPoseReceived
[amcl-2] [WARN] [1701102223.353994610] [amcl]: Failed to transform initial pose in time (Lookup would require extrapolation into the future.Requested time 1701102223.353592 but the latest data is at time 23.359000, when looking up transform from frame [odom] to frame [base_footprint])
[amcl-2] [INFO] [1701102223.354022751] [amcl]: Setting pose (23.197000): -0.018 0.013 -0.016
is the warning normal? I used to have this warning with a times really close but now it is ridiculously different.
if it isn’t a problem I have the localisation part working properly as you can see in the following pictures.
after launching localization and giving an estimate pose
after spinning
amcl_config.yaml
amcl:
ros__parameters:
use_sim_time: True
alpha1: 0.2
alpha2: 0.2
alpha3: 0.2
alpha4: 0.2
alpha5: 0.2
base_frame_id: "base_footprint"
beam_skip_distance: 0.5
beam_skip_error_threshold: 0.9
beam_skip_threshold: 0.3
do_beamskip: false
global_frame_id: "map"
lambda_short: 0.1
laser_likelihood_max_dist: 2.0
laser_max_range: 100.0
laser_min_range: -1.0
laser_model_type: "likelihood_field"
max_beams: 60
max_particles: 8000
min_particles: 200
odom_frame_id: "odom"
pf_err: 0.05
pf_z: 0.99
recovery_alpha_fast: 0.0
recovery_alpha_slow: 0.0
resample_interval: 1
robot_model_type: "differential"
save_pose_rate: 0.5
sigma_hit: 0.2
tf_broadcast: true
transform_tolerance: 0.5
update_min_a: 0.05
update_min_d: 0.1
z_hit: 0.5
z_max: 0.05
z_rand: 0.5
z_short: 0.05
set_initial_pose: true
initial_pose:
x: 0.0
y: 0.0
yaw: 0.0
localization.launch
import os
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
nav2_yaml = os.path.join(get_package_share_directory('project_localization'), 'config', 'amcl_config.yaml')
map_file = os.path.join(get_package_share_directory('project_mapping'), 'maps', 'turtlebot_area.yaml')
return LaunchDescription([
Node(
package='nav2_map_server',
executable='map_server',
name='map_server',
output='screen',
parameters=[{'use_sim_time': True},
{'yaml_filename':map_file}]
),
Node(
package='nav2_amcl',
executable='amcl',
name='amcl',
output='screen',
parameters=[nav2_yaml]
),
Node(
package='nav2_lifecycle_manager',
executable='lifecycle_manager',
name='lifecycle_manager_localization',
output='screen',
parameters=[{'use_sim_time': True},
{'autostart': True},
{'node_names': ['map_server', 'amcl']}]
)
])
Path planning part
after launching path planning
user:~/ros2_ws$ ros2 launch project_path_planning pathplanner.launch.py[INFO] [launch]: All log files can be found below /home/user/.ros/log/2023-11-27-16-27-14-401088-2_xterm-8533
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [controller_server-1]: process started with pid [8538]
[INFO] [planner_server-2]: process started with pid [8540]
[INFO] [recoveries_server-3]: process started with pid [8547]
[INFO] [bt_navigator-4]: process started with pid [8559]
[INFO] [lifecycle_manager-5]: process started with pid [8562]
[controller_server-1] [INFO] [1701102435.799459925] [controller_server]:
[controller_server-1] controller_server lifecycle node launched.
[controller_server-1] Waiting on external lifecycle transitions to activate
[controller_server-1] See https://design.ros2.org/articles/node_lifecycle.html for more information.
[recoveries_server-3] [INFO] [1701102435.814105312] [recoveries_server]:
[recoveries_server-3] recoveries_server lifecycle node launched.
[recoveries_server-3] Waiting on external lifecycle transitions to activate
[recoveries_server-3] See https://design.ros2.org/articles/node_lifecycle.html for more information.
[planner_server-2] [INFO] [1701102435.816683643] [planner_server]:
[planner_server-2] planner_server lifecycle node launched.
[planner_server-2] Waiting on external lifecycle transitions to activate
[planner_server-2] See https://design.ros2.org/articles/node_lifecycle.html for more information.
[planner_server-2] [INFO] [1701102435.825755782] [planner_server]: Creating
[controller_server-1] [INFO] [1701102435.909379642] [controller_server]: Creating controller server
[planner_server-2] [INFO] [1701102435.923603713] [global_costmap.global_costmap]:
[planner_server-2] global_costmap lifecycle node launched.
[planner_server-2] Waiting on external lifecycle transitions to activate
[planner_server-2] See https://design.ros2.org/articles/node_lifecycle.html for more information.
[planner_server-2] [INFO] [1701102435.925819501] [global_costmap.global_costmap]: Creating Costmap
[bt_navigator-4] [INFO] [1701102435.924430741] [bt_navigator]:
[bt_navigator-4] bt_navigator lifecycle node launched.
[bt_navigator-4] Waiting on external lifecycle transitions to activate
[bt_navigator-4] See https://design.ros2.org/articles/node_lifecycle.html for more information.
[bt_navigator-4] [INFO] [1701102435.924548396] [bt_navigator]: Creating
[lifecycle_manager-5] [INFO] [1701102435.993947820] [lifecycle_manager_pathplanner]: Creating
[lifecycle_manager-5] [INFO] [1701102436.096272393] [lifecycle_manager_pathplanner]: Creating and initializing lifecycle service clients
[controller_server-1] [INFO] [1701102436.102777856] [local_costmap.local_costmap]:
[controller_server-1] local_costmap lifecycle node launched.
[controller_server-1] Waiting on external lifecycle transitions to activate
[controller_server-1] See https://design.ros2.org/articles/node_lifecycle.html for more information.
[lifecycle_manager-5] [INFO] [1701102436.184524920] [lifecycle_manager_pathplanner]: Starting managed nodes bringup...
[lifecycle_manager-5] [INFO] [1701102436.184600092] [lifecycle_manager_pathplanner]: Configuring planner_server
[controller_server-1] [INFO] [1701102436.188041398] [local_costmap.local_costmap]: Creating Costmap
[planner_server-2] [INFO] [1701102436.369151033] [planner_server]: Configuring
[planner_server-2] [INFO] [1701102436.369280253] [global_costmap.global_costmap]: Configuring
[planner_server-2] [INFO] [1701102436.375039772] [global_costmap.global_costmap]: Using plugin "static_layer"
[planner_server-2] [INFO] [1701102436.385998453] [global_costmap.global_costmap]: Subscribing to the map topic (/map) with transient local durability
[planner_server-2] [INFO] [1701102436.388058812] [global_costmap.global_costmap]: Initialized plugin "static_layer"
[planner_server-2] [INFO] [1701102436.388097864] [global_costmap.global_costmap]: Using plugin "inflation_layer"
[planner_server-2] [INFO] [1701102436.390765742] [global_costmap.global_costmap]: Initialized plugin "inflation_layer"
[planner_server-2] [INFO] [1701102436.398182848] [planner_server]: Created global planner plugin GridBased of type nav2_navfn_planner/NavfnPlanner
[planner_server-2] [INFO] [1701102436.398235711] [planner_server]: Configuring plugin GridBased of type NavfnPlanner
[planner_server-2] [INFO] [1701102436.400451179] [planner_server]: Planner Server has GridBased planners available.
[lifecycle_manager-5] [INFO] [1701102436.647213333] [lifecycle_manager_pathplanner]: Configuring controller_server
[planner_server-2] [INFO] [1701102436.648611676] [global_costmap.global_costmap]: StaticLayer: Resizing costmap to 55 X 50 at 0.050000 m/pix
[controller_server-1] [INFO] [1701102436.648635487] [controller_server]: Configuring controller interface
[controller_server-1] [INFO] [1701102436.648837651] [controller_server]: getting goal checker plugins..
[controller_server-1] [INFO] [1701102436.648966931] [controller_server]: Controller frequency set to 10.0000Hz
[controller_server-1] [INFO] [1701102436.648997659] [local_costmap.local_costmap]: Configuring
[controller_server-1] [INFO] [1701102436.653217190] [local_costmap.local_costmap]: Using plugin "voxel_layer"
[controller_server-1] [INFO] [1701102436.659885276] [local_costmap.local_costmap]: Subscribed to Topics: scan
[controller_server-1] [INFO] [1701102436.747897456] [local_costmap.local_costmap]: Initialized plugin "voxel_layer"
[controller_server-1] [INFO] [1701102436.747954145] [local_costmap.local_costmap]: Using plugin "inflation_layer"
[controller_server-1] [INFO] [1701102436.750499778] [local_costmap.local_costmap]: Initialized plugin "inflation_layer"
[controller_server-1] [INFO] [1701102436.758292621] [controller_server]: Created progress_checker : progress_checker of type nav2_controller::SimpleProgressChecker
[controller_server-1] [INFO] [1701102436.855504193] [controller_server]: Created goal checker : general_goal_checker of type nav2_controller::SimpleGoalChecker
[controller_server-1] [INFO] [1701102436.860154062] [controller_server]: Controller Server has general_goal_checker goal checkers available.
[controller_server-1] [INFO] [1701102436.868714756] [controller_server]: Created controller : FollowPath of type dwb_core::DWBLocalPlanner
[controller_server-1] [INFO] [1701102436.872605953] [controller_server]: Setting transform_tolerance to 0.200000
[controller_server-1] [INFO] [1701102436.888424873] [controller_server]: Using critic "RotateToGoal" (dwb_critics::RotateToGoalCritic)
[controller_server-1] [INFO] [1701102436.888835758] [controller_server]: Critic plugin initialized
[controller_server-1] [INFO] [1701102436.888957763] [controller_server]: Using critic "Oscillation" (dwb_critics::OscillationCritic)
[controller_server-1] [INFO] [1701102436.889257870] [controller_server]: Critic plugin initialized
[controller_server-1] [INFO] [1701102436.889369933] [controller_server]: Using critic "BaseObstacle" (dwb_critics::BaseObstacleCritic)
[controller_server-1] [INFO] [1701102436.889554549] [controller_server]: Critic plugin initialized
[controller_server-1] [INFO] [1701102436.889670457] [controller_server]: Using critic "GoalAlign" (dwb_critics::GoalAlignCritic)
[controller_server-1] [INFO] [1701102436.889946694] [controller_server]: Critic plugin initialized
[controller_server-1] [INFO] [1701102436.890056361] [controller_server]: Using critic "PathAlign" (dwb_critics::PathAlignCritic)
[controller_server-1] [INFO] [1701102436.890288849] [controller_server]: Critic plugin initialized
[controller_server-1] [INFO] [1701102436.890396777] [controller_server]: Using critic "PathDist" (dwb_critics::PathDistCritic)
[controller_server-1] [INFO] [1701102436.890580179] [controller_server]: Critic plugin initialized
[controller_server-1] [INFO] [1701102436.890670731] [controller_server]: Using critic "GoalDist" (dwb_critics::GoalDistCritic)
[controller_server-1] [INFO] [1701102436.890843430] [controller_server]: Critic plugin initialized
[controller_server-1] [INFO] [1701102436.890861715] [controller_server]: Controller Server has FollowPath controllers available.
[lifecycle_manager-5] [INFO] [1701102437.027237167] [lifecycle_manager_pathplanner]: Configuring recoveries_server
[recoveries_server-3] [INFO] [1701102437.028001256] [recoveries_server]: Configuring
[recoveries_server-3] [INFO] [1701102437.037816471] [recoveries_server]: Creating recovery plugin spin of type nav2_recoveries/Spin
[recoveries_server-3] [INFO] [1701102437.040002919] [recoveries_server]: Configuring spin
[recoveries_server-3] [INFO] [1701102437.051965433] [recoveries_server]: Creating recovery plugin backup of type nav2_recoveries/BackUp
[recoveries_server-3] [INFO] [1701102437.055387818] [recoveries_server]: Configuring backup
[recoveries_server-3] [INFO] [1701102437.200777436] [recoveries_server]: Creating recovery plugin wait of type nav2_recoveries/Wait
[recoveries_server-3] [INFO] [1701102437.205581307] [recoveries_server]: Configuring wait
[lifecycle_manager-5] [INFO] [1701102437.396370233] [lifecycle_manager_pathplanner]: Configuring bt_navigator
[bt_navigator-4] [INFO] [1701102437.397007433] [bt_navigator]: Configuring
[lifecycle_manager-5] [INFO] [1701102437.670020742] [lifecycle_manager_pathplanner]: Activating planner_server
[planner_server-2] [INFO] [1701102437.670437465] [planner_server]: Activating
[planner_server-2] [INFO] [1701102437.670482921] [global_costmap.global_costmap]: Activating
[planner_server-2] [INFO] [1701102437.670503938] [global_costmap.global_costmap]: Checking transform
[planner_server-2] [INFO] [1701102437.670613441] [global_costmap.global_costmap]: Timed out waiting for transform from base_link to map to become available, tf error: Lookup would require extrapolation into the past. Requested time 129.813000 but the earliest data is at time 129.832000, when looking up transform from frame [base_link] to frame [map]
[planner_server-2] [INFO] [1701102438.235534273] [global_costmap.global_costmap]: start
[planner_server-2] [INFO] [1701102438.328678271] [planner_server]: Activating plugin GridBased of type NavfnPlanner
[planner_server-2] [INFO] [1701102438.328785609] [planner_server]: Creating bond (planner_server) to lifecycle manager.
[lifecycle_manager-5] [INFO] [1701102438.603709558] [lifecycle_manager_pathplanner]: Server planner_server connected with bond.
[lifecycle_manager-5] [INFO] [1701102438.603782237] [lifecycle_manager_pathplanner]: Activating controller_server
[controller_server-1] [INFO] [1701102438.696722346] [controller_server]: Activating
[controller_server-1] [INFO] [1701102438.698826250] [local_costmap.local_costmap]: Activating
[controller_server-1] [INFO] [1701102438.698888468] [local_costmap.local_costmap]: Checking transform
[controller_server-1] [INFO] [1701102438.699014619] [local_costmap.local_costmap]: start
[controller_server-1] [INFO] [1701102438.793968110] [controller_server]: Creating bond (controller_server) to lifecycle manager.
[lifecycle_manager-5] [INFO] [1701102439.088167055] [lifecycle_manager_pathplanner]: Server controller_server connected with bond.
[lifecycle_manager-5] [INFO] [1701102439.088233459] [lifecycle_manager_pathplanner]: Activating recoveries_server
[recoveries_server-3] [INFO] [1701102439.090235490] [recoveries_server]: Activating
[recoveries_server-3] [INFO] [1701102439.090280044] [recoveries_server]: Activating spin
[recoveries_server-3] [INFO] [1701102439.090296042] [recoveries_server]: Activating backup
[recoveries_server-3] [INFO] [1701102439.090311456] [recoveries_server]: Activating wait
[recoveries_server-3] [INFO] [1701102439.090325692] [recoveries_server]: Creating bond (recoveries_server) to lifecycle manager.
[lifecycle_manager-5] [INFO] [1701102439.472177449] [lifecycle_manager_pathplanner]: Server recoveries_server connected with bond.
[lifecycle_manager-5] [INFO] [1701102439.472245153] [lifecycle_manager_pathplanner]: Activating bt_navigator
[bt_navigator-4] [INFO] [1701102439.539512986] [bt_navigator]: Activating
[bt_navigator-4] [PublisherZMQ] Publisher quitting.
[bt_navigator-4] [PublisherZMQ] just died. Exeption Context was terminated
[bt_navigator-4] [INFO] [1701102439.662103554] [bt_navigator]: Creating bond (bt_navigator) to lifecycle manager.
[lifecycle_manager-5] [INFO] [1701102439.916034887] [lifecycle_manager_pathplanner]: Server bt_navigator connected with bond.
[lifecycle_manager-5] [INFO] [1701102439.917419046] [lifecycle_manager_pathplanner]: Managed nodes are active
[lifecycle_manager-5] [INFO] [1701102439.917452188] [lifecycle_manager_pathplanner]: Creating bond timer...
[controller_server-1] [INFO] [1701102448.835714802] [local_costmap.local_costmap_rclcpp_node]: Message Filter dropping message: frame 'base_scan' at time 135.151 for reason 'the timestamp on the message is earlier than all the data in the transform cache'
[controller_server-1] [INFO] [1701102450.336613237] [local_costmap.local_costmap_rclcpp_node]: Message Filter dropping message: frame 'base_scan' at time 135.785 for reason 'the timestamp on the message is earlier than all the data in the transform cache'
[controller_server-1] [INFO] [1701102451.461964470] [local_costmap.local_costmap_rclcpp_node]: Message Filter dropping message: frame 'base_scan' at time 136.195 for reason 'the timestamp on the message is earlier than all the data in the transform cache'
[controller_server-1] [INFO] [1701102458.231295220] [local_costmap.local_costmap_rclcpp_node]: Message Filter dropping message: frame 'base_scan' at time 139.258 for reason 'the timestamp on the message is earlier than all the data in the transform cache'
[controller_server-1] [INFO] [1701102467.348790425] [local_costmap.local_costmap_rclcpp_node]: Message Filter dropping message: frame 'base_scan' at time 143.877 for reason 'the timestamp on the message is earlier than all the data in the transform cache'
[controller_server-1] [INFO] [1701102471.940476429] [local_costmap.local_costmap_rclcpp_node]: Message Filter dropping message: frame 'base_scan' at time 146.544 for reason 'the timestamp on the message is earlier than all the data in the transform cache'
I receive periodically the message filter dropping messages for the local costmap.
Is it normal? does it have an impact on how it works?
after giving a goal pose
it never moves except for spinning. it always says it timed out and does the recovery spin.
What am I doing wrong? Have I missed something passing my code from foxy to galactic?
path planning terminal
[bt_navigator-4] [INFO] [1701102912.039023972] [bt_navigator]: Begin navigating from current location to (0.43, -0.06)
[bt_navigator-4] [WARN] [1701102912.126806438] [bt_navigatornavigate_to_pose_rclcpp_node]: Timed out while waiting for action server to acknowledge goal request for compute_path_to_pose
[planner_server-2] [INFO] [1701102912.127463853] [global_costmap.global_costmap]: Received request to clear entirely the global_costmap
[controller_server-1] [INFO] [1701102912.408027438] [local_costmap.local_costmap_rclcpp_node]: Message Filter dropping message: frame 'base_scan' at time 358.180 for reason 'the timestamp on the message is earlier than all the data in the transform cache'
[bt_navigator-4] [WARN] [1701102912.517361492] [bt_navigatornavigate_to_pose_rclcpp_node]: Timed out while waiting for action server to acknowledge goal request for compute_path_to_pose
[controller_server-1] [INFO] [1701102912.518664443] [local_costmap.local_costmap]: Received request to clear entirely the local_costmap
[planner_server-2] [INFO] [1701102912.691630008] [global_costmap.global_costmap]: Received request to clear entirely the global_costmap
[recoveries_server-3] [INFO] [1701102912.703751736] [recoveries_server]: Attempting spin
[recoveries_server-3] [INFO] [1701102912.703936520] [recoveries_server]: Turning 1.57 for spin recovery.
[bt_navigator-4] [WARN] [1701102912.798021530] [bt_navigatornavigate_to_pose_rclcpp_node]: Timed out while waiting for action server to acknowledge goal request for spin
[bt_navigator-4] [ERROR] [1701102912.889388274] [bt_navigator]: Goal failed
[bt_navigator-4] [WARN] [1701102912.889453132] [bt_navigator]: [navigate_to_pose] [ActionServer] Aborting handle.
Thank you in advance
I put the rest o the elemets in a following answer to alleviate the message.