update: tuned slam and nav2 params for better resolution

This commit is contained in:
Björn Ellensohn 2024-01-22 17:48:42 +01:00
parent d730e71915
commit aa88f66cb7
28 changed files with 515 additions and 651 deletions

View File

@ -1,136 +0,0 @@
FROM scratch
# new image
# instruction set group 1
ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=22.04
ADD file:63d5ab3ef0aab308c0e71cb67292c5467f60deafa9b0418cbb220affcd078444 /
CMD ["/bin/bash"]
# instruction set group 2
RUN echo 'Etc/UTC' > /etc/timezone && \
ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
apt-get update && \
apt-get install -q -y --no-install-recommends tzdata && \
rm -rf /var/lib/apt/lists/*
RUN apt-get update && \
apt-get install -q -y --no-install-recommends dirmngr gnupg2 && \
rm -rf /var/lib/apt/lists/*
RUN echo "deb http://packages.ros.org/ros2/ubuntu jammy main" > /etc/apt/sources.list.d/ros2-latest.list
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
ENV ROS_DISTRO=humble
RUN apt-get update && \
apt-get install -y --no-install-recommends ros-humble-ros-core=0.10.0-1* && \
rm -rf /var/lib/apt/lists/*
COPY file:ec5b16a0e777d7d7d041a72ffc817bf5f7b375662afa0c404f3ca36fad1afb90 /
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["bash"]
RUN apt-get update && \
apt-get install --no-install-recommends -y build-essential git python3-colcon-common-extensions python3-colcon-mixin python3-rosdep python3-vcstool && \
rm -rf /var/lib/apt/lists/*
RUN rosdep init && \
rosdep update --rosdistro $ROS_DISTRO
RUN colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml && \
colcon mixin update && \
colcon metadata add default https://raw.githubusercontent.com/colcon/colcon-metadata-repository/master/index.yaml && \
colcon metadata update
RUN apt-get update && \
apt-get install -y --no-install-recommends ros-humble-ros-base=0.10.0-1* && \
rm -rf /var/lib/apt/lists/*
# instruction set group 3
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV ROS_DISTRO=humble
# buildkit.dockerfile.v0 (a buildkit instruction)
SHELL [/bin/bash -c]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","update base 26.09.2023 - test"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","mkdir","-p","/rmp_ws/src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /rmp_ws/src
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY dependencies.arm64.repos .
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY dependencies.amd64.repos .
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","Hardware platform is: $(uname -m)"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","uname","-a"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","update base 29.08.2023"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","if","[","$(uname -m)","=","x86_64","];","then","echo","Copying files for linux/amd64;","mv","dependencies.amd64.repos","dependencies.repos;","else","echo","Copying files for linux/arm64;","mv","dependencies.arm64.repos","dependencies.repos;","fi"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","import","<","dependencies.repos"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /rmp_ws
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/opt/ros/${ROS_DISTRO}/setup.bash","&&","apt-get","update","-y","&&","apt-get","install","-y","--no-install-recommends","ros-${ROS_DISTRO}-foxglove-bridge","&&","rosdep","install","--from-paths","src","--ignore-src","--rosdistro","${ROS_DISTRO}","-y"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/opt/ros/${ROS_DISTRO}/setup.bash","&&","colcon","build","--symlink-install"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","apt-get","install","-y","--no-install-recommends","ros-${ROS_DISTRO}-rmw-cyclonedds-cpp","ros-${ROS_DISTRO}-xacro","&&","rm","-rf","/var/lib/apt/lists/*"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV UNDERLAY_WS=
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY ./docker/entrypoint.sh /
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","chmod","+x","/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","pull","src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENTRYPOINT ["/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","update overlay 26.09.2023-take-2"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","mkdir","-p","/overlay_ws/src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /overlay_ws/src
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY overlay.repos .
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","import","<","overlay.repos"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /overlay_ws
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV DEBIAN_FRONTEND=noninteractive
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/rmp_ws/install/setup.bash","&&","apt-get","update","&&","DEBIAN_FRONTEND=noninteractive","apt-get","install","nano","ros-humble-robot-localization","ros-humble-joint-state-publisher","ros-humble-laser-filters","-y","&&","rosdep","install","--from-paths","src","--ignore-src","--rosdistro","${ROS_DISTRO}","-y","&&","rm","-rf","/var/lib/apt/lists/*"]
# instruction set group 4
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/rmp_ws/install/setup.bash","&&","colcon","build","--symlink-install"]
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY ./docker/entrypoint.sh /
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","chmod","+x","/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","pull","src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENTRYPOINT ["/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/rmp_ws/install/setup.bash","&&","apt-get","update","&&","apt-get","install","-y","--no-install-recommends","ros-${ROS_DISTRO}-rviz2","&&","rm","-rf","/var/lib/apt/lists/*"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","pull","src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENTRYPOINT ["/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
LABEL org.opencontainers.image.source=https://github.com/bjoernellens1/ros2_rmp
# end of image: ghcr.io/bjoernellens1/ros2_rmp/rmp:guis (id: tags: ghcr.io/bjoernellens1/ros2_rmp/rmp:guis)

View File

@ -1,136 +0,0 @@
FROM scratch
# new image
# instruction set group 1
ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=22.04
ADD file:63d5ab3ef0aab308c0e71cb67292c5467f60deafa9b0418cbb220affcd078444 /
CMD ["/bin/bash"]
# instruction set group 2
RUN echo 'Etc/UTC' > /etc/timezone && \
ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
apt-get update && \
apt-get install -q -y --no-install-recommends tzdata && \
rm -rf /var/lib/apt/lists/*
RUN apt-get update && \
apt-get install -q -y --no-install-recommends dirmngr gnupg2 && \
rm -rf /var/lib/apt/lists/*
RUN echo "deb http://packages.ros.org/ros2/ubuntu jammy main" > /etc/apt/sources.list.d/ros2-latest.list
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
ENV ROS_DISTRO=humble
RUN apt-get update && \
apt-get install -y --no-install-recommends ros-humble-ros-core=0.10.0-1* && \
rm -rf /var/lib/apt/lists/*
COPY file:ec5b16a0e777d7d7d041a72ffc817bf5f7b375662afa0c404f3ca36fad1afb90 /
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["bash"]
RUN apt-get update && \
apt-get install --no-install-recommends -y build-essential git python3-colcon-common-extensions python3-colcon-mixin python3-rosdep python3-vcstool && \
rm -rf /var/lib/apt/lists/*
RUN rosdep init && \
rosdep update --rosdistro $ROS_DISTRO
RUN colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml && \
colcon mixin update && \
colcon metadata add default https://raw.githubusercontent.com/colcon/colcon-metadata-repository/master/index.yaml && \
colcon metadata update
RUN apt-get update && \
apt-get install -y --no-install-recommends ros-humble-ros-base=0.10.0-1* && \
rm -rf /var/lib/apt/lists/*
# instruction set group 3
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV ROS_DISTRO=humble
# buildkit.dockerfile.v0 (a buildkit instruction)
SHELL [/bin/bash -c]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","update base 26.09.2023 - test"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","mkdir","-p","/rmp_ws/src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /rmp_ws/src
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY dependencies.arm64.repos .
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY dependencies.amd64.repos .
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","Hardware platform is: $(uname -m)"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","uname","-a"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","update base 29.08.2023"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","if","[","$(uname -m)","=","x86_64","];","then","echo","Copying files for linux/amd64;","mv","dependencies.amd64.repos","dependencies.repos;","else","echo","Copying files for linux/arm64;","mv","dependencies.arm64.repos","dependencies.repos;","fi"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","import","<","dependencies.repos"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /rmp_ws
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/opt/ros/${ROS_DISTRO}/setup.bash","&&","apt-get","update","-y","&&","apt-get","install","-y","--no-install-recommends","ros-${ROS_DISTRO}-foxglove-bridge","&&","rosdep","install","--from-paths","src","--ignore-src","--rosdistro","${ROS_DISTRO}","-y"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/opt/ros/${ROS_DISTRO}/setup.bash","&&","colcon","build","--symlink-install"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","apt-get","install","-y","--no-install-recommends","ros-${ROS_DISTRO}-rmw-cyclonedds-cpp","ros-${ROS_DISTRO}-xacro","&&","rm","-rf","/var/lib/apt/lists/*"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV UNDERLAY_WS=
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY ./docker/entrypoint.sh /
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","chmod","+x","/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","pull","src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENTRYPOINT ["/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","update overlay 26.09.2023-take-2"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","mkdir","-p","/overlay_ws/src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /overlay_ws/src
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY overlay.repos .
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","import","<","overlay.repos"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /overlay_ws
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV DEBIAN_FRONTEND=noninteractive
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/rmp_ws/install/setup.bash","&&","apt-get","update","&&","DEBIAN_FRONTEND=noninteractive","apt-get","install","nano","ros-humble-robot-localization","ros-humble-joint-state-publisher","ros-humble-laser-filters","-y","&&","rosdep","install","--from-paths","src","--ignore-src","--rosdistro","${ROS_DISTRO}","-y","&&","rm","-rf","/var/lib/apt/lists/*"]
# instruction set group 4
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/rmp_ws/install/setup.bash","&&","colcon","build","--symlink-install"]
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY ./docker/entrypoint.sh /
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","chmod","+x","/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","pull","src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENTRYPOINT ["/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/rmp_ws/install/setup.bash","&&","apt-get","update","&&","apt-get","install","-y","--no-install-recommends","ros-${ROS_DISTRO}-rviz2","&&","rm","-rf","/var/lib/apt/lists/*"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","pull","src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENTRYPOINT ["/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
LABEL org.opencontainers.image.source=https://github.com/bjoernellens1/ros2_rmp
# end of image: ghcr.io/bjoernellens1/ros2_rmp/rmp:guis (id: tags: ghcr.io/bjoernellens1/ros2_rmp/rmp:guis)

View File

@ -1,13 +0,0 @@
FROM scratch
# new image
# instruction set group 1
ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=22.04
ADD file:36d444e2cede3abe58191dcf28890b874c0908f5259bf7e8855338555701c4c5 /
CMD ["/bin/bash"]
# end of image: ubuntu:latest (id: tags: ubuntu:latest)

View File

@ -1,13 +0,0 @@
FROM scratch
# new image
# instruction set group 1
ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=22.04
ADD file:36d444e2cede3abe58191dcf28890b874c0908f5259bf7e8855338555701c4c5 /
CMD ["/bin/bash"]
# end of image: ubuntu:latest (id: tags: ubuntu:latest)

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.pgm

506
config/nav2_params.yaml Normal file
View File

@ -0,0 +1,506 @@
slam_toolbox:
ros__parameters:
# Plugin params
solver_plugin: solver_plugins::CeresSolver
ceres_linear_solver: SPARSE_NORMAL_CHOLESKY
ceres_preconditioner: SCHUR_JACOBI
ceres_trust_strategy: LEVENBERG_MARQUARDT
ceres_dogleg_type: TRADITIONAL_DOGLEG
ceres_loss_function: None
# ROS Parameters
odom_frame: odom
map_frame: map
base_frame: base_footprint
#scan_topic: /scan
scan_topic: /scan_filtered
use_map_saver: true
mode: mapping #localization
# if you'd like to immediately start continuing a map at a given pose
# or at the dock, but they are mutually exclusive, if pose is given
# will use pose
#map_file_name: test_steve
#map_start_pose: [0.0, 0.0, 0.0]
#map_start_at_dock: true
debug_logging: false
throttle_scans: 1
transform_publish_period: 0.02 #if 0 never publishes odometry
map_update_interval: 5.0
resolution: 0.02 # was 0.05 ; resolution equals to how many meters are 1 pixel on the map. So the lower value the higher the resoltion
max_laser_range: 20.0 #for rastering images
minimum_time_interval: 0.5
transform_timeout: 0.2
tf_buffer_duration: 30.
stack_size_to_use: 40000000 #// program needs a larger stack size to serialize large maps
enable_interactive_mode: true
# General Parameters
use_scan_matching: true
use_scan_barycenter: true
minimum_travel_distance: 0.5
minimum_travel_heading: 0.5
scan_buffer_size: 10
scan_buffer_maximum_scan_distance: 10.0
link_match_minimum_response_fine: 0.1
link_scan_maximum_distance: 1.5
loop_search_maximum_distance: 3.0
do_loop_closing: true
loop_match_minimum_chain_size: 10
loop_match_maximum_variance_coarse: 3.0
loop_match_minimum_response_coarse: 0.35
loop_match_minimum_response_fine: 0.45
# Correlation Parameters - Correlation Parameters
correlation_search_space_dimension: 0.5
correlation_search_space_resolution: 0.01
correlation_search_space_smear_deviation: 0.1
# Correlation Parameters - Loop Closure Parameters
loop_search_space_dimension: 8.0
loop_search_space_resolution: 0.05
loop_search_space_smear_deviation: 0.03
# Scan Matcher Parameters
distance_variance_penalty: 0.5
angle_variance_penalty: 1.0
fine_search_angle_offset: 0.00349
coarse_search_angle_offset: 0.349
coarse_angle_resolution: 0.0349
minimum_angle_penalty: 0.9
minimum_distance_penalty: 0.5
use_response_expansion: true
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: 7.0 #was 100.0
laser_min_range: -1.0
laser_model_type: "likelihood_field"
max_beams: 60
max_particles: 2000
min_particles: 500
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: "nav2_amcl::DifferentialMotionModel"
save_pose_rate: 0.5
sigma_hit: 0.2
tf_broadcast: true
transform_tolerance: 1.0
update_min_a: 0.2
update_min_d: 0.25
z_hit: 0.5
z_max: 0.05
z_rand: 0.5
z_short: 0.05
scan_topic: scan_filtered
bt_navigator:
ros__parameters:
use_sim_time: True
global_frame: map
robot_base_frame: base_link
odom_topic: /odometry/filtered
bt_loop_duration: 10
default_server_timeout: 20
# 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults:
# nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml
# nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml
# They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2.
plugin_lib_names:
- nav2_compute_path_to_pose_action_bt_node
- nav2_compute_path_through_poses_action_bt_node
- nav2_smooth_path_action_bt_node
- nav2_follow_path_action_bt_node
- nav2_spin_action_bt_node
- nav2_wait_action_bt_node
- nav2_assisted_teleop_action_bt_node
- nav2_back_up_action_bt_node
- nav2_drive_on_heading_bt_node
- nav2_clear_costmap_service_bt_node
- nav2_is_stuck_condition_bt_node
- nav2_goal_reached_condition_bt_node
- nav2_goal_updated_condition_bt_node
- nav2_globally_updated_goal_condition_bt_node
- nav2_is_path_valid_condition_bt_node
- nav2_initial_pose_received_condition_bt_node
- nav2_reinitialize_global_localization_service_bt_node
- nav2_rate_controller_bt_node
- nav2_distance_controller_bt_node
- nav2_speed_controller_bt_node
- nav2_truncate_path_action_bt_node
- nav2_truncate_path_local_action_bt_node
- nav2_goal_updater_node_bt_node
- nav2_recovery_node_bt_node
- nav2_pipeline_sequence_bt_node
- nav2_round_robin_node_bt_node
- nav2_transform_available_condition_bt_node
- nav2_time_expired_condition_bt_node
- nav2_path_expiring_timer_condition
- nav2_distance_traveled_condition_bt_node
- nav2_single_trigger_bt_node
- nav2_goal_updated_controller_bt_node
- nav2_is_battery_low_condition_bt_node
- nav2_navigate_through_poses_action_bt_node
- nav2_navigate_to_pose_action_bt_node
- nav2_remove_passed_goals_action_bt_node
- nav2_planner_selector_bt_node
- nav2_controller_selector_bt_node
- nav2_goal_checker_selector_bt_node
- nav2_controller_cancel_bt_node
- nav2_path_longer_on_approach_bt_node
- nav2_wait_cancel_bt_node
- nav2_spin_cancel_bt_node
- nav2_back_up_cancel_bt_node
- nav2_assisted_teleop_cancel_bt_node
- nav2_drive_on_heading_cancel_bt_node
- nav2_is_battery_charging_condition_bt_node
bt_navigator_navigate_through_poses_rclcpp_node:
ros__parameters:
use_sim_time: True
bt_navigator_navigate_to_pose_rclcpp_node:
ros__parameters:
use_sim_time: True
# controller_server:
# ros__parameters:
# use_sim_time: True
# controller_frequency: 20.0
# min_x_velocity_threshold: 0.001
# min_y_velocity_threshold: 0.5
# min_theta_velocity_threshold: 0.001
# failure_tolerance: 0.3
# progress_checker_plugin: "progress_checker"
# goal_checker_plugins: ["general_goal_checker"] # "precise_goal_checker"
# controller_plugins: ["FollowPath"]
# # Progress checker parameters
# progress_checker:
# plugin: "nav2_controller::SimpleProgressChecker"
# 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
# general_goal_checker:
# stateful: True
# plugin: "nav2_controller::SimpleGoalChecker"
# xy_goal_tolerance: 0.25
# yaw_goal_tolerance: 0.25
# # DWB parameters
# FollowPath:
# plugin: "dwb_core::DWBLocalPlanner"
# debug_trajectory_details: True
# min_vel_x: -0.1
# min_vel_y: 0.0
# max_vel_x: 0.26
# max_vel_y: 0.0
# max_vel_theta: 1.0
# min_speed_xy: 0.0
# max_speed_xy: 0.26
# min_speed_theta: 0.0
# # Add high threshold velocity for turtlebot 3 issue.
# # https://github.com/ROBOTIS-GIT/turtlebot3_simulations/issues/75
# acc_lim_x: 2.5
# acc_lim_y: 0.0
# acc_lim_theta: 3.2
# decel_lim_x: -2.5
# decel_lim_y: 0.0
# decel_lim_theta: -3.2
# vx_samples: 20
# vy_samples: 5
# vtheta_samples: 20
# sim_time: 1.7
# linear_granularity: 0.05
# angular_granularity: 0.025
# transform_tolerance: 0.2
# xy_goal_tolerance: 0.25
# trans_stopped_velocity: 0.25
# short_circuit_trajectory_evaluation: True
# stateful: True
# critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist", "ObstacleFootprint", "PreferForward"]
# BaseObstacle.scale: 0.02
# PathAlign.scale: 32.0
# PathAlign.forward_point_distance: 0.1
# GoalAlign.scale: 24.0
# GoalAlign.forward_point_distance: 0.1
# PathDist.scale: 32.0
# GoalDist.scale: 24.0
# RotateToGoal.scale: 32.0
# RotateToGoal.slowing_factor: 5.0
# RotateToGoal.lookahead_time: -1.0
controller_server:
ros__parameters:
use_sim_time: True
controller_frequency: 100.0 # was 20.0
min_x_velocity_threshold: 0.001
min_y_velocity_threshold: 0.5
min_theta_velocity_threshold: 0.001
progress_checker_plugins: ["progress_checker"] # progress_checker_plugin: "progress_checker" For Humble and older
goal_checker_plugins: ["goal_checker"]
controller_plugins: ["FollowPath"]
progress_checker:
plugin: "nav2_controller::SimpleProgressChecker"
required_movement_radius: 0.5
movement_time_allowance: 10.0
goal_checker:
plugin: "nav2_controller::SimpleGoalChecker"
xy_goal_tolerance: 0.25 # was 0.25
yaw_goal_tolerance: 0.25 # was 0.25
stateful: True
FollowPath:
plugin: "nav2_regulated_pure_pursuit_controller::RegulatedPurePursuitController"
desired_linear_vel: 0.5
lookahead_dist: 0.6
min_lookahead_dist: 0.3
max_lookahead_dist: 0.9
lookahead_time: 1.5
rotate_to_heading_angular_vel: 1.8
transform_tolerance: 0.1
use_velocity_scaled_lookahead_dist: false
min_approach_linear_velocity: 0.007 # was 0.05
approach_velocity_scaling_dist: 0.6
use_collision_detection: true
max_allowed_time_to_collision_up_to_carrot: 1.0
use_regulated_linear_velocity_scaling: true
use_fixed_curvature_lookahead: false
curvature_lookahead_dist: 0.25
use_cost_regulated_linear_velocity_scaling: false
regulated_linear_scaling_min_radius: 0.9
regulated_linear_scaling_min_speed: 0.25
use_rotate_to_heading: false # was true, cannot be set together with allow_reversing
allow_reversing: true # was false
rotate_to_heading_min_angle: 0.785
max_angular_accel: 3.2
max_robot_pose_search_dist: 10.0
use_interpolation: true # was false
local_costmap:
local_costmap:
ros__parameters:
update_frequency: 5.0
publish_frequency: 2.0
global_frame: odom
robot_base_frame: base_link
use_sim_time: True
rolling_window: true
width: 3
height: 3
resolution: 0.02 # was 0.05 ; this param control the resolution how many meters is 1 pixel on the map
#robot_radius: 0.22
footprint: "[ [0.18, 0.200], [0.18, -0.200], [-0.54, -0.165], [-0.54, 0.165] ]" # gave another points for the polygon "[ [0.18, 0.255], [0.18, -0.255], [-0.54, -0.165], [-0.54, 0.165] ]"
plugins: ["voxel_layer", "inflation_layer"]
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 2.0 # was 3.0 ;exponential rate at which the obstacle cost drops off (default: 10)
inflation_radius: 0.65 # max. distance from an obstacle at which costs are incurred for planning paths.
voxel_layer:
plugin: "nav2_costmap_2d::VoxelLayer"
enabled: True
publish_voxel_map: True
origin_z: 0.0
z_resolution: 0.05
z_voxels: 16
max_obstacle_height: 2.0
mark_threshold: 0
observation_sources: rplidar oakd
rplidar:
topic: /scan_filtered
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
raytrace_max_range: 3.0
raytrace_min_range: 0.0
obstacle_max_range: 2.5
obstacle_min_range: 0.0
oak-d: # no frame set, uses frame from message
topic: /stereo/points
max_obstacle_height: 1.5
min_obstacle_height: 0.02
obstacle_max_range: 3.0
obstacle_min_range: 0.0
raytrace_max_range: 3.2
raytrace_min_range: 0.0
clearing: True
marking: True
data_type: "PointCloud2"
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
always_send_full_costmap: True
global_costmap:
global_costmap:
ros__parameters:
update_frequency: 1.0
publish_frequency: 1.0
global_frame: map
robot_base_frame: base_link
use_sim_time: True
#robot_radius: 0.22
footprint: "[ [0.18, 0.255], [0.18, -0.255], [-0.54, -0.165], [-0.54, 0.165] ]" # gave another points for the polygon
resolution: 0.05
track_unknown_space: true
plugins: ["static_layer", "obstacle_layer", "inflation_layer"]
obstacle_layer:
plugin: "nav2_costmap_2d::ObstacleLayer"
enabled: True
observation_sources: scan
scan:
topic: /scan_filtered
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
raytrace_max_range: 3.0
raytrace_min_range: 0.0
obstacle_max_range: 2.5
obstacle_min_range: 0.0
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 10.0 # was 3.0
inflation_radius: 0.55
always_send_full_costmap: True
map_server:
ros__parameters:
use_sim_time: True
# Overridden in launch by the "map" launch configuration or provided default value.
# To use in yaml, remove the default "map" value in the tb3_simulation_launch.py file & provide full path to map below.
yaml_filename: ""
map_saver:
ros__parameters:
use_sim_time: True
save_map_timeout: 5.0
free_thresh_default: 0.25
occupied_thresh_default: 0.65
map_subscribe_transient_local: True
# planner_server:
# ros__parameters:
# expected_planner_frequency: 20.0
# use_sim_time: True
# planner_plugins: ["GridBased"]
# GridBased:
# plugin: "nav2_navfn_planner/NavfnPlanner"
# tolerance: 0.5
# use_astar: false
# allow_unknown: true
planner_server:
ros__parameters:
planner_plugins: ["GridBased"]
use_sim_time: True
GridBased:
plugin: "nav2_smac_planner/SmacPlanner2D"
tolerance: 0.125 # tolerance for planning if unable to reach exact pose, in meters
downsample_costmap: false # whether or not to downsample the map
downsampling_factor: 1 # multiplier for the resolution of the costmap layer (e.g. 2 on a 5cm costmap would be 10cm)
allow_unknown: true # allow traveling in unknown space
max_iterations: 1000000 # maximum total iterations to search for before failing (in case unreachable), set to -1 to disable
max_on_approach_iterations: 1000 # maximum number of iterations to attempt to reach goal once in tolerance
max_planning_time: 2.0 # max time in s for planner to plan, smooth
cost_travel_multiplier: 2.0 # Cost multiplier to apply to search to steer away from high cost areas. Larger values will place in the center of aisles more exactly (if non-`FREE` cost potential field exists) but take slightly longer to compute. To optimize for speed, a value of 1.0 is reasonable. A reasonable tradeoff value is 2.0. A value of 0.0 effective disables steering away from obstacles and acts like a naive binary search A*.
use_final_approach_orientation: true # Whether to set the final path pose at the goal's orientation to the requested orientation (false) or in line with the approach angle so the robot doesn't rotate to heading (true)
smoother:
max_iterations: 1000
w_smooth: 0.3
w_data: 0.2
tolerance: 0.1
smoother_server:
ros__parameters:
use_sim_time: True
smoother_plugins: ["simple_smoother"]
simple_smoother:
plugin: "nav2_smoother::SimpleSmoother"
tolerance: 1.0e-10
max_its: 1000
do_refinement: True
behavior_server:
ros__parameters:
costmap_topic: local_costmap/costmap_raw
footprint_topic: local_costmap/published_footprint
cycle_frequency: 10.0
behavior_plugins: ["spin", "backup", "drive_on_heading", "assisted_teleop", "wait"]
spin:
plugin: "nav2_behaviors/Spin"
backup:
plugin: "nav2_behaviors/BackUp"
drive_on_heading:
plugin: "nav2_behaviors/DriveOnHeading"
wait:
plugin: "nav2_behaviors/Wait"
assisted_teleop:
plugin: "nav2_behaviors/AssistedTeleop"
global_frame: odom
robot_base_frame: base_link
transform_tolerance: 0.1
use_sim_time: true
simulate_ahead_time: 2.0
max_rotational_vel: 1.0
min_rotational_vel: 0.4
rotational_acc_lim: 3.2
robot_state_publisher:
ros__parameters:
use_sim_time: True
waypoint_follower:
ros__parameters:
use_sim_time: True
loop_rate: 20
stop_on_failure: false
waypoint_task_executor_plugin: "wait_at_waypoint"
wait_at_waypoint:
plugin: "nav2_waypoint_follower::WaitAtWaypoint"
enabled: True
waypoint_pause_duration: 200
velocity_smoother:
ros__parameters:
use_sim_time: True
smoothing_frequency: 20.0
scale_velocities: False
feedback: "CLOSED_LOOP" # was OPEN_LOOP
max_velocity: [0.26, 0.0, 1.0]
min_velocity: [-0.26, 0.0, -1.0]
max_accel: [2.5, 0.0, 3.2]
max_decel: [-2.5, 0.0, -3.2]
odom_topic: "/odometry/filtered"
odom_duration: 0.1 # was 0.1
deadband_velocity: [0.0, 0.0, 0.0]
velocity_timeout: 1.0

View File

@ -59,8 +59,8 @@ services:
# Allows graphical programs in the container.
- /tmp/.X11-unix:/tmp/.X11-unix:rw
- ${XAUTHORITY:-$HOME/.Xauthority}:/root/.Xauthority
- ./customize/entrypoint.sh:/entrypoint.sh
- ./customize/cyclonedds.xml:/cyclonedds.xml
- ./config/entrypoint.sh:/entrypoint.sh
- ./config/cyclonedds.xml:/cyclonedds.xml
# networks: # not using bridging anymore, instead try using all services on macvlan? let's see... shoudl word for now. Bridging does definitely not work because multicast is not supported here.
# rmp:
@ -118,6 +118,7 @@ services:
devices:
- /dev/segway:/dev/ttyUSB0
#- /dev/ttyUSB0:/dev/ttyUSB0
privileged: true
# teleop
teleop:
@ -129,6 +130,7 @@ services:
devices:
- /dev/input/js0:/dev/input/js0
#- /dev/input/by-id/usb-Logitech_Wireless_Gamepad_F710_56679674-joystick:/dev/input/by-id/usb-Logitech_Wireless_Gamepad_F710_56679674-joystick
privileged: true
# lidar
lidar:
@ -198,8 +200,8 @@ services:
- ekf
- oakd
command: >
ros2 launch nav2_bringup bringup_launch.py slam:=False map:=/repo/maps/map_openlabday.yaml use_sim_time:=False use_composition:=True params_file:=/overlay_ws/src/cps_rmp220_support/config/nav2_params.yaml
ros2 launch nav2_bringup bringup_launch.py slam:=True map:=/repo/maps/map.yaml use_sim_time:=False use_composition:=True params_file:=/repo/config/nav2_params.yaml
#maps/map_openlabday.yaml
# bash
bash:
extends: overlay
@ -233,7 +235,7 @@ services:
ros2 launch foxglove_bridge foxglove_bridge_launch.xml port:=8765
# Foxglove Studio Webserver
foxglove_webserver:
foxglove:
image: ghcr.io/foxglove/studio:latest
stdin_open: true
tty: true

View File

@ -1,2 +0,0 @@
JOINCODE=fc94:b01d:1803:8dd8:b293:5c7d:7639:932a/6fYqR5qmsrn3DjvK5KcQQL
HOSTNAME=zenbook-test-1

View File

@ -1,17 +0,0 @@
FROM osrf/ros:galactic-desktop
SHELL ["/bin/bash", "-c"]
WORKDIR /app
# build custom ROS 2 nodes
COPY ./husarnet/ros2_ws ros2_ws/
RUN cd ros2_ws && \
source /opt/ros/galactic/setup.bash && \
colcon build
COPY ./husarnet/ros_entrypoint.sh /
RUN chmod +x /ros_entrypoint.sh
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["bash"]

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
<Domain id="any">
<General>
<NetworkInterfaceAddress>hnet0</NetworkInterfaceAddress>
<AllowMulticast>false</AllowMulticast>
<MaxMessageSize>65500B</MaxMessageSize>
<FragmentSize>4000B</FragmentSize>
<Transport>udp6</Transport>
</General>
<Discovery>
<Peers>
<Peer address="turtlesim"/>
</Peers>
<ParticipantIndex>auto</ParticipantIndex>
</Discovery>
<Internal>
<Watermarks>
<WhcHigh>500kB</WhcHigh>
</Watermarks>
</Internal>
<Tracing>
<Verbosity>severe</Verbosity>
<OutputFile>stdout</OutputFile>
</Tracing>
</Domain>
</CycloneDDS>

View File

@ -1,53 +0,0 @@
#!/usr/bin/env python3
import rclpy
from rclpy.node import Node
from functools import partial
from turtlesim.srv import SetPen
import random
class ColorControllerNode(Node):
def __init__(self):
super().__init__("color_controller")
self.r_ = 100
self.g_ = 100
self.b_ = 100
self.control_loop_timer_ = self.create_timer(1.0, self.control_loop)
def control_loop(self):
self.r_ = random.randint(0, 255)
self.g_ = random.randint(0, 255)
self.b_ = random.randint(0, 255)
self.call_set_pen_server(self.r_, self.g_, self.b_)
def call_set_pen_server(self, r, g, b):
client = self.create_client(SetPen, "/turtle1/set_pen")
while not client.wait_for_service(1.0):
self.get_logger().warn("Waiting for server Set Pen....")
request = SetPen.Request()
request.r = r
request.g = g
request.b = b
request.width = 10
future = client.call_async(request)
future.add_done_callback(partial(self.callback_set_pen, r=r, g=g, b=b))
def callback_set_pen(self, future, r, g, b):
try:
response = future.result()
self.get_logger().info("[" +str(r) + ", " + str(g) + ", " + str(b) + "] SetPen srv response: " + str(response))
except Exception as e:
self.get_logger().error("Service call failed %r" % (e,))
def main(args=None):
rclpy.init(args=args)
node = ColorControllerNode()
rclpy.spin(node)
rclpy.shutdonw()
if __name__ == "__main__":
main()

View File

@ -1,32 +0,0 @@
#!/usr/bin/env python3
import rclpy
from rclpy.node import Node
from geometry_msgs.msg import Twist
import math
class MoveControllerNode(Node):
def __init__(self):
super().__init__("move_controller")
self.cmd_vel_publisher_ = self.create_publisher(
Twist, "turtle1/cmd_vel", 10)
self.control_loop_timer_ = self.create_timer(0.01, self.control_loop)
def control_loop(self):
msg = Twist()
msg.linear.x = 2.0
msg.angular.z =0.3*math.pi
# self.get_logger().info("publishing to turtle1/cmd_vel")
self.cmd_vel_publisher_.publish(msg)
def main(args=None):
rclpy.init(args=args)
node = MoveControllerNode()
rclpy.spin(node)
rclpy.shutdonw()
if __name__ == "__main__":
main()

View File

@ -1,22 +0,0 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>my_demo_pkg</name>
<version>0.0.0</version>
<description>TODO: Package description</description>
<maintainer email="dominik.nwk@gmail.com">dominik</maintainer>
<license>TODO: License declaration</license>
<depend>rclpy</depend>
<depend>geometry_msgs</depend>
<depend>turtlesim</depend>
<test_depend>ament_copyright</test_depend>
<test_depend>ament_flake8</test_depend>
<test_depend>ament_pep257</test_depend>
<test_depend>python3-pytest</test_depend>
<export>
<build_type>ament_python</build_type>
</export>
</package>

View File

@ -1,4 +0,0 @@
[develop]
script-dir=$base/lib/my_demo_pkg
[install]
install-scripts=$base/lib/my_demo_pkg

View File

@ -1,27 +0,0 @@
from setuptools import setup
package_name = 'my_demo_pkg'
setup(
name=package_name,
version='0.0.0',
packages=[package_name],
data_files=[
('share/ament_index/resource_index/packages',
['resource/' + package_name]),
('share/' + package_name, ['package.xml']),
],
install_requires=['setuptools'],
zip_safe=True,
maintainer='dominik',
maintainer_email='dominik.nwk@gmail.com',
description='TODO: Package description',
license='TODO: License declaration',
tests_require=['pytest'],
entry_points={
'console_scripts': [
"move_controller = my_demo_pkg.move_controller:main",
"color_controller = my_demo_pkg.color_controller:main",
],
},
)

View File

@ -1,23 +0,0 @@
# Copyright 2015 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from ament_copyright.main import main
import pytest
@pytest.mark.copyright
@pytest.mark.linter
def test_copyright():
rc = main(argv=['.', 'test'])
assert rc == 0, 'Found errors'

View File

@ -1,25 +0,0 @@
# Copyright 2017 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from ament_flake8.main import main_with_errors
import pytest
@pytest.mark.flake8
@pytest.mark.linter
def test_flake8():
rc, errors = main_with_errors(argv=[])
assert rc == 0, \
'Found %d code style errors / warnings:\n' % len(errors) + \
'\n'.join(errors)

View File

@ -1,23 +0,0 @@
# Copyright 2015 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from ament_pep257.main import main
import pytest
@pytest.mark.linter
@pytest.mark.pep257
def test_pep257():
rc = main(argv=['.', 'test'])
assert rc == 0, 'Found code style errors / warnings'

View File

@ -1,21 +0,0 @@
cmake_minimum_required(VERSION 3.5)
project(my_turtle_bringup)
# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
# find dependencies
find_package(ament_cmake REQUIRED)
install(DIRECTORY
launch
DESTINATION share/${PROJECT_NAME}
)
ament_package()

View File

@ -1,19 +0,0 @@
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
ld = LaunchDescription()
move_controller_node = Node(
package="my_demo_pkg",
executable="move_controller"
)
color_controller_node = Node(
package="my_demo_pkg",
executable="color_controller"
)
ld.add_action(move_controller_node)
ld.add_action(color_controller_node)
return ld

View File

@ -1,25 +0,0 @@
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
ld = LaunchDescription()
turtlesim_node = Node(
package="turtlesim",
executable="turtlesim_node"
)
move_controller_node = Node(
package="my_demo_pkg",
executable="move_controller"
)
color_controller_node = Node(
package="my_demo_pkg",
executable="color_controller"
)
ld.add_action(turtlesim_node)
ld.add_action(move_controller_node)
ld.add_action(color_controller_node)
return ld

View File

@ -1,20 +0,0 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>my_turtle_bringup</name>
<version>0.0.0</version>
<description>TODO: Package description</description>
<maintainer email="dominik.nwk@gmail.com">dominik</maintainer>
<license>TODO: License declaration</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<exec_depend>my_demo_pkg</exec_depend>
<test_depend>ament_lint_auto</test_depend>
<test_depend>ament_lint_common</test_depend>
<export>
<build_type>ament_cmake</build_type>
</export>
</package>

View File

@ -1,7 +0,0 @@
#!/bin/bash
set -e
source /opt/ros/galactic/setup.bash
source /app/ros2_ws/install/setup.bash
exec "$@"

View File

@ -1,4 +1,4 @@
image: map_floor_mainb_full_save.pgm
image: map_floor_mainb_save_retouched.pgm
mode: trinary
resolution: 0.05
origin: [-66.2, -24.5, 0]