diff --git a/src/ezbot_robot/CMakeLists.txt b/src/ezbot_robot/CMakeLists.txt index 993f9d8..5b23c17 100644 --- a/src/ezbot_robot/CMakeLists.txt +++ b/src/ezbot_robot/CMakeLists.txt @@ -33,13 +33,13 @@ if(BUILD_TESTING) endif() install( - DIRECTORY config description launch worlds meshes media + DIRECTORY config description launch worlds meshes media maps DESTINATION share/${PROJECT_NAME} ) install( - DIRECTORY media/ - DESTINATION $ENV{HOME}/.gazebo/media/ + DIRECTORY maps/ + DESTINATION $ENV{HOME}/ros2maps/ ) install( @@ -47,6 +47,8 @@ install( DESTINATION $ENV{HOME}/.gazebo/media/ ) + + install(PROGRAMS launch/camerapubsub.py DESTINATION lib/${PROJECT_NAME}) diff --git a/src/ezbot_robot/config/nav2_params.yaml b/src/ezbot_robot/config/nav2_params.yaml index b373900..1453901 100644 --- a/src/ezbot_robot/config/nav2_params.yaml +++ b/src/ezbot_robot/config/nav2_params.yaml @@ -69,11 +69,11 @@ controller_server: ros__parameters: controller_frequency: 20.0 min_x_velocity_threshold: 0.001 - min_y_velocity_threshold: 0.5 + min_y_velocity_threshold: 0.001 min_theta_velocity_threshold: 0.001 failure_tolerance: 0.3 progress_checker_plugins: ["progress_checker"] - goal_checker_plugins: ["general_goal_checker"] # "precise_goal_checker" + goal_checker_plugins: ["precise_goal_checker"] # "precise_goal_checker" controller_plugins: ["FollowPath"] use_realtime_priority: false @@ -83,11 +83,11 @@ controller_server: required_movement_radius: 0.5 movement_time_allowance: 10.0 # Goal checker parameters - #precise_goal_checker: - # plugin: "nav2_controller::SimpleGoalChecker" - # xy_goal_tolerance: 0.25 - # yaw_goal_tolerance: 0.25 - # stateful: True + precise_goal_checker: + plugin: "nav2_controller::SimpleGoalChecker" + xy_goal_tolerance: 0.02 + yaw_goal_tolerance: 0.02 + stateful: True general_goal_checker: stateful: True plugin: "nav2_controller::SimpleGoalChecker" diff --git a/src/ezbot_robot/description/gazebo_control.xacro b/src/ezbot_robot/description/gazebo_control.xacro index 8aa9391..5aa2531 100644 --- a/src/ezbot_robot/description/gazebo_control.xacro +++ b/src/ezbot_robot/description/gazebo_control.xacro @@ -7,6 +7,7 @@ roue_gauche_joint roue_arriere_joint roue_droite_joint + /omnidirectional_controller/cmd_vel_unstamped 0.25 0.06 diff --git a/src/ezbot_robot/description/lidar.xacro b/src/ezbot_robot/description/lidar.xacro index e66db3c..fd32c92 100644 --- a/src/ezbot_robot/description/lidar.xacro +++ b/src/ezbot_robot/description/lidar.xacro @@ -57,7 +57,7 @@ 0.055 0 0.03 0 0 0 - false + true 10 @@ -74,7 +74,7 @@ - ~/out:=scan + ~/out:=lidar/ldlidar_node/scan sensor_msgs/LaserScan base_laser diff --git a/src/ezbot_robot/description/robot.urdf.xacro b/src/ezbot_robot/description/robot.urdf.xacro index 3a1fae4..232aa38 100644 --- a/src/ezbot_robot/description/robot.urdf.xacro +++ b/src/ezbot_robot/description/robot.urdf.xacro @@ -4,9 +4,7 @@ - + \ No newline at end of file diff --git a/src/ezbot_robot/launch/map_server.launch.py b/src/ezbot_robot/launch/map_server.launch.py new file mode 100644 index 0000000..586c632 --- /dev/null +++ b/src/ezbot_robot/launch/map_server.launch.py @@ -0,0 +1,51 @@ +import os +import yaml +from ament_index_python.packages import get_package_share_directory +from launch import LaunchDescription +from launch_ros.actions import Node +from launch.actions import ExecuteProcess +from launch.substitutions import LaunchConfiguration +import launch_ros.actions + + +def generate_launch_description(): + + ld = LaunchDescription() + + # map file + map_file_path = os.path.join( + get_package_share_directory('ezbot_robot'), + 'maps', + 'testMap', + 'testMap.yaml' + ) + + map_server_cmd = Node( + package='nav2_map_server', + executable='map_server', + output='screen', + namespace='map', + parameters=[{'yaml_filename': map_file_path}, + {'frame_id': 'map'}], + remappings=[('/map/map', '/map')] + ) + + + lifecycle_nodes = ['map_server'] + autostart = True + + start_lifecycle_manager_cmd = launch_ros.actions.Node( + package='nav2_lifecycle_manager', + executable='lifecycle_manager', + name='lifecycle_manager', + namespace='map', + output='screen', + emulate_tty=True, # https://github.com/ros2/launch/issues/188 + parameters=[{'autostart': autostart}, + {'node_names': lifecycle_nodes}]) + + + ld.add_action(map_server_cmd) + ld.add_action(start_lifecycle_manager_cmd) + + return ld diff --git a/src/ezbot_robot/maps/testMap/blackandwhite.jpg b/src/ezbot_robot/maps/testMap/blackandwhite.jpg new file mode 100644 index 0000000..8e6db41 Binary files /dev/null and b/src/ezbot_robot/maps/testMap/blackandwhite.jpg differ diff --git a/src/ezbot_robot/maps/testMap/blackandwhite.pgm b/src/ezbot_robot/maps/testMap/blackandwhite.pgm new file mode 100644 index 0000000..212521d Binary files /dev/null and b/src/ezbot_robot/maps/testMap/blackandwhite.pgm differ diff --git a/src/ezbot_robot/maps/testMap/testMap.yaml b/src/ezbot_robot/maps/testMap/testMap.yaml new file mode 100644 index 0000000..16693fa --- /dev/null +++ b/src/ezbot_robot/maps/testMap/testMap.yaml @@ -0,0 +1,7 @@ +yaml_filename: "yaml_filename" +image: blackandwhite.jpg +resolution: 0.0100 +origin: [1.0, 2.0, 0.0] +negate: 0 +occupied_thresh: 0.65 +free_thresh: 0.196