update: tuned slam and nav2 params for better resolution
This commit is contained in:
parent
d730e71915
commit
aa88f66cb7
@ -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)
|
@ -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)
|
@ -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,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
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.pgm
|
506
config/nav2_params.yaml
Normal file
506
config/nav2_params.yaml
Normal 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
|
@ -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
|
||||
|
@ -1,2 +0,0 @@
|
||||
JOINCODE=fc94:b01d:1803:8dd8:b293:5c7d:7639:932a/6fYqR5qmsrn3DjvK5KcQQL
|
||||
HOSTNAME=zenbook-test-1
|
@ -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"]
|
@ -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>
|
@ -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()
|
@ -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()
|
@ -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>
|
@ -1,4 +0,0 @@
|
||||
[develop]
|
||||
script-dir=$base/lib/my_demo_pkg
|
||||
[install]
|
||||
install-scripts=$base/lib/my_demo_pkg
|
@ -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",
|
||||
],
|
||||
},
|
||||
)
|
@ -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'
|
@ -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)
|
@ -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'
|
@ -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()
|
@ -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
|
@ -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
|
@ -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>
|
@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
source /opt/ros/galactic/setup.bash
|
||||
source /app/ros2_ws/install/setup.bash
|
||||
|
||||
exec "$@"
|
@ -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]
|
||||
|
Loading…
Reference in New Issue
Block a user