Skip to content

Commit

Permalink
Merge pull request #13 from lucasw/robot_state_publisher
Browse files Browse the repository at this point in the history
Robot state publisher, rtabmap, plotjuggler updates
  • Loading branch information
lucasw authored Aug 31, 2023
2 parents feaa325 + 3e23098 commit 0fdc1a0
Show file tree
Hide file tree
Showing 8 changed files with 225 additions and 204 deletions.
148 changes: 72 additions & 76 deletions .github/workflows/ubuntu_22_04.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,17 @@ on:
push:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
ubuntu2204:
strategy:
fail-fast: false
matrix:
build_type: [install, devel]

runs-on: ubuntu-22.04
# env:
steps:
Expand Down Expand Up @@ -55,6 +64,7 @@ jobs:
sudo apt-get install -yqq libyaml-cpp-dev
sudo apt-get install -yqq cython3
sudo apt-get install -yqq libapriltag-dev
sudo apt-get install -yqq libfmt-dev
sudo apt-get install -yqq libzmq3-dev
- name: apt sdl installs
Expand Down Expand Up @@ -146,133 +156,119 @@ jobs:
which catkin
catkin --version
### BASE DEVEL BUILD ###
- name: setup base_catkin_ws
run: |
mkdir -p base_catkin_ws/src
cd base_catkin_ws/src
mkdir -p ${{ matrix.build_type }}_base_catkin_ws/src
cd ${{ matrix.build_type }}_base_catkin_ws/src
ln -s ../../other/src/ros_from_src/ubuntu_2204/base_repos.yaml
# need https instead of git@github
sed -i 's/[email protected]:/https:\/\/github.com\//' base_repos.yaml
ls -l
vcs import --shallow < base_repos.yaml
# ignore repos that aren't yet building in 22.04
../../other/src/ros_from_src/ubuntu_2204/ignore.sh
cd ..
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release -Wno-deprecated
- name: build joint_trajectory_controller
run: |
cd base_catkin_ws
catkin build --no-status joint_trajectory_controller
source devel/setup.bash
- name: test joint_trajectory_controller
- name: devel setup
if: ${{ matrix.build_type == 'devel' }}
run: |
cd base_catkin_ws
source devel/setup.bash
catkin build joint_trajectory_controller --no-status --no-deps --catkin-make-args tests
rostest joint_trajectory_controller joint_trajectory_controller.test
# catkin test --no-status joint_trajectory_controller
- name: build plotjuggler
run: |
cd base_catkin_ws
source devel/setup.bash
# Does building plotjuggler before plotjuggler_ros mess up in install?
# catkin build --no-status plotjuggler
catkin build --no-status plotjuggler_ros
source devel/setup.bash
cd ${{ matrix.build_type }}_base_catkin_ws
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release -Wno-deprecated
- name: build rviz
- name: install setup
if: ${{ matrix.build_type == 'install' }}
run: |
cd base_catkin_ws
source devel/setup.bash
catkin build --no-status rviz
source devel/setup.bash
cd ${{ matrix.build_type }}_base_catkin_ws
catkin config --install --cmake-args -DCMAKE_BUILD_TYPE=Release -Wno-deprecated
- name: build jsk_rviz_plugins
# back to devel build
- name: build fiducials
run: |
cd base_catkin_ws
source devel/setup.bash
catkin build --no-status jsk_rviz_plugins
cd ${{ matrix.build_type }}_base_catkin_ws
catkin build --no-status fiducials
source ${{ matrix.build_type }}/setup.bash
- name: build fuse
- name: build grid_map
run: |
cd base_catkin_ws
source devel/setup.bash
catkin build --no-status fuse_models fuse_optimizers
cd ${{ matrix.build_type }}_base_catkin_ws
source ${{ matrix.build_type }}/setup.bash
catkin build --no-status grid_map*
- name: build rest of base_catkin_ws
- name: build qt_gui_core
run: |
cd base_catkin_ws
source devel/setup.bash
catkin build --no-status
cd ${{ matrix.build_type }}_base_catkin_ws
source ${{ matrix.build_type }}/setup.bash
catkin build --no-status qt_gui_core
### BASE INSTALL BUILD ###
- name: setup base_catkin_ws
- name: build rtabmap_ros
run: |
mkdir install_base_catkin_ws
cd install_base_catkin_ws
ln -s ../base_catkin_ws/src
catkin config --install --cmake-args -DCMAKE_BUILD_TYPE=Release -Wno-deprecated
cd ${{ matrix.build_type }}_base_catkin_ws
source ${{ matrix.build_type }}/setup.bash
catkin build --no-status rtabmap_ros
- name: build joint_trajectory_controller
run: |
cd install_base_catkin_ws
cd ${{ matrix.build_type }}_base_catkin_ws
source ${{ matrix.build_type }}/setup.bash
catkin build --no-status joint_trajectory_controller
source install/setup.bash
- name: test joint_trajectory_controller
if: ${{ matrix.build_type == 'devel' }}
run: |
cd install_base_catkin_ws
source install/setup.bash
cd ${{ matrix.build_type }}_base_catkin_ws
source ${{ matrix.build_type }}/setup.bash
catkin build joint_trajectory_controller --no-status --no-deps --catkin-make-args tests
rostest joint_trajectory_controller joint_trajectory_controller.test
# catkin test --no-status joint_trajectory_controller
- name: test install joint_trajectory_controller
if: ${{ matrix.build_type == 'install' }}
run: |
cd ${{ matrix.build_type }}_base_catkin_ws
source ${{ matrix.build_type }}/setup.bash
catkin test --no-status joint_trajectory_controller
- name: build plotjuggler
run: |
cd install_base_catkin_ws
source install/setup.bash
catkin build --no-status plotjuggler
source install/setup.bash
cd ${{ matrix.build_type }}_base_catkin_ws
source ${{ matrix.build_type }}/setup.bash
# Does building plotjuggler before plotjuggler_ros mess up in install?
# catkin build --no-status plotjuggler
catkin build --no-status plotjuggler_ros
- name: build jsk_common_msgs
run: |
cd install_base_catkin_ws
source install/setup.bash
catkin build --no-status jsk_common_msgs
source ${{ matrix.build_type }}/setup.bash
- name: build rviz
run: |
cd install_base_catkin_ws
source install/setup.bash
cd ${{ matrix.build_type }}_base_catkin_ws
source ${{ matrix.build_type }}/setup.bash
catkin build --no-status rviz
source ${{ matrix.build_type }}/setup.bash
- name: build jsk_rviz_plugins
- name: build jsk
run: |
cd install_base_catkin_ws
source install/setup.bash
catkin build --no-status jsk_rviz_plugins
cd ${{ matrix.build_type }}_base_catkin_ws
source ${{ matrix.build_type }}/setup.bash
catkin build --no-status jsk*
- name: build fuse
run: |
cd install_base_catkin_ws
source install/setup.bash
cd ${{ matrix.build_type }}_base_catkin_ws
source ${{ matrix.build_type }}/setup.bash
catkin build --no-status fuse_models fuse_optimizers
- name: build rest of base packages
- name: build rest of ${{ matrix.build_type }}_base_catkin_ws
run: |
cd install_base_catkin_ws
source install/setup.bash
cd ${{ matrix.build_type }}_base_catkin_ws
source ${{ matrix.build_type }}/setup.bash
catkin build --no-status
- name: tar up install_catkin_ws
if: ${{ matrix.build_type == 'install' }}
run: |
tar cvzf install_catkin_ws_2204.tgz install_base_catkin_ws/install
tar cvzf install_catkin_ws_2204.tgz ${{ matrix.build_type }}_base_catkin_ws/install
ls -l
- name: update install_catkin_ws_2204.tgz
if: ${{ matrix.build_type == 'install' }}
uses: actions/upload-artifact@v2
with:
name: install_catkin_ws_2204
Expand Down
80 changes: 16 additions & 64 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,28 +12,9 @@ RUN apt-get update
RUN apt-get install -y apt-utils

# apt installs
RUN apt-get install -y build-essential
RUN apt-get install -y bzip2 libbz2-dev
RUN apt-get install -y cmake
RUN apt-get install -y git
RUN apt-get install -y libboost-dev
RUN apt-get install -y libboost-filesystem-dev
RUN apt-get install -y libboost-program-options-dev
RUN apt-get install -y libboost-regex-dev
RUN apt-get install -y libboost-thread-dev
RUN apt-get install -y libgpgme-dev
RUN apt-get install -y libgtest-dev
RUN apt-get install -y liblog4cxx-dev
RUN apt-get install -y liblz4-dev lz4
RUN apt-get install -y libpoco-dev
RUN apt-get install -y libtinyxml2-dev
RUN apt-get install -y mawk coreutils
RUN apt-get install -y python-is-python3
RUN apt-get install -y python3
RUN apt-get install -y python3-dev
RUN apt-get install -y python3-empy
RUN apt-get install -y python3-setuptools
RUN apt-get install -y python3-yaml
# TODO(lucasw) used to do these on separate layers but github actions has a layer limit?
# it was failing later with 'ERROR: failed to solve: failed to prepare...max depth exceeded'
RUN apt-get install -y build-essential bzip2 libbz2-dev cmake git libboost-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev libboost-thread-dev libfmt-dev libgpgme-dev libgtest-dev liblog4cxx-dev liblz4-dev lz4 libpoco-dev libtinyxml2-dev mawk coreutils python-is-python3 python3 python3-dev python3-empy python3-setuptools python3-yaml

ENV SRC=/src
RUN mkdir $SRC -p
Expand All @@ -44,24 +25,18 @@ RUN mkdir $WS -p

ENV DEST=/opt/ros/noetic

# TODO(lucasw) this doesn't work in 20.04 because of log
# --build-args ROSCONSOLE=https://github.com/ros-o/rosconsole
ARG ROSCONSOLE=https://github.com/ros-o/rosconsole
# ENV ROSCONSOLE=$ROSCONSOLE
RUN echo $ROSCONSOLE

# packages that need to be cmake installed, and are ros packages in a catkin workspace
WORKDIR $WS
RUN git clone https://github.com/ros/catkin
RUN git clone https://github.com/ros/console_bridge
RUN git clone https://github.com/ros/cmake_modules
RUN git clone https://github.com/ros-o/class_loader
RUN git clone https://github.com/ros/rospack
RUN git clone https://github.com/ros/genmsg
RUN git clone https://github.com/ros/ros

# pure python
WORKDIR $SRC
RUN git clone https://github.com/ros-infrastructure/catkin_pkg
RUN git clone https://github.com/osrf/osrf_pycommon
RUN git clone https://github.com/catkin/catkin_tools

# cmake installs
RUN git clone https://github.com/ros-o/ros_environment
RUN mkdir $SRC/ros_from_src -p
WORKDIR /
COPY git_clone.sh $SRC/ros_from_src
# WORKDIR $SRC/ros_from_src
RUN ROS_CONSOLE=$ROSCONSOLE $SRC/ros_from_src/git_clone.sh

# python installs

Expand All @@ -80,6 +55,7 @@ RUN echo $PYTHONPATH

# catkin_pkg
WORKDIR $SRC/catkin_pkg
RUN pwd
RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed
RUN ls -l $OPT_PYTHONPATH
RUN ls -l $OPT_PYTHONPATH/catkin_pkg
Expand Down Expand Up @@ -179,41 +155,17 @@ RUN apt-get install -y python3-distro

# ros packages, regular catkin build only for these
WORKDIR $WS
RUN git clone https://github.com/ros/ros_comm
RUN git clone https://github.com/ros/roscpp_core
RUN git clone https://github.com/ros/ros_comm_msgs
RUN git clone https://github.com/ros/message_generation
RUN git clone https://github.com/ros/gencpp
RUN git clone https://github.com/jsk-ros-pkg/geneus
RUN git clone https://github.com/RethinkRobotics-opensource/gennodejs
RUN git clone https://github.com/ros/genlisp
RUN git clone https://github.com/ros/genpy
RUN git clone https://github.com/ros/std_msgs
RUN git clone https://github.com/ros/message_runtime
RUN git clone https://github.com/ros-o/pluginlib

# TODO(lucasw) this doesn't work in 20.04 because of log
# --build-args ROSCONSOLE=https://github.com/ros-o/rosconsole
ARG ROSCONSOLE=https://github.com/ros-o/rosconsole
# ENV ROSCONSOLE=$ROSCONSOLE
RUN echo $ROSCONSOLE
RUN git clone $ROSCONSOLE

# runtime dependencies
# rosbuild
WORKDIR $SRC
RUN git clone https://github.com/ros/rospkg
WORKDIR $SRC/rospkg
RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed

WORKDIR $SRC
RUN git clone https://github.com/ros-infrastructure/rosdistro
WORKDIR $SRC/rosdistro
RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed

WORKDIR $SRC
# can be sudo in docker, but otherwise want git clone https://github.com/lucasw/rosdep --branch disable_root_etc_ros
RUN git clone https://github.com/ros-infrastructure/rosdep
WORKDIR $SRC/rosdep
RUN python3 setup.py install --prefix=$DEST --record install_manifest.txt --single-version-externally-managed
RUN rosdep init
Expand Down Expand Up @@ -241,7 +193,7 @@ RUN catkin build
# rospack list won't work by itself
RUN source devel/setup.bash && rospack list

RUN apt install python3-netifaces
RUN apt-get install python3-netifaces

WORKDIR $WS/..
# TODO(lucasw) run tests
1 change: 1 addition & 0 deletions dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ apt-get install -y libboost-filesystem-dev
apt-get install -y libboost-program-options-dev
apt-get install -y libboost-regex-dev
apt-get install -y libboost-thread-dev
apt-get install -y libfmt-dev
apt-get install -y libgpgme-dev
apt-get install -y libgtest-dev
apt-get install -y liblog4cxx-dev
Expand Down
1 change: 1 addition & 0 deletions git_clone.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ WS=`pwd`/catkin_ws/src
echo $WS
mkdir $WS -p

# TODO(lucasw) replace these git clones with vcs
# packages that need to be cmake installed, and are ros packages in a catkin workspace
cd $WS
git clone https://github.com/ros/catkin
Expand Down
12 changes: 3 additions & 9 deletions ubuntu_2204/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,7 @@ RUN apt-get install -y apt-utils
# apt installs
RUN apt install -y git
RUN apt install -y ros-*
RUN apt install -y catkin-lint cython3 libapriltag-dev libceres-dev libfrei0r-ocaml-dev
RUN apt install -y libgeographic-dev libgmock-dev libgoogle-glog-dev libgst-dev
RUN apt install -y libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
RUN apt install -y libimage-view-dev liborocos-bfl-dev libpcl-ros-dev libqt5svg5-dev libqt5websockets5-dev
RUN apt install -y libqt5x11extras5-dev libqwt-qt5-dev libsdl-image1.2-dev
RUN apt install -y libspnav-dev liburdfdom-dev libuvc-dev libv4l-dev libyaml-cpp-dev
RUN apt install -y python-is-python3 python3-tf2-geometry-msgs python3-venv vim curl jq
RUN apt install -y catkin-lint cython3 libapriltag-dev libceres-dev libfmt-dev libfrei0r-ocaml-dev libgeographic-dev libgmock-dev libgoogle-glog-dev libgst-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libimage-view-dev liborocos-bfl-dev libpcl-ros-dev libqt5svg5-dev libqt5websockets5-dev libqt5x11extras5-dev libqwt-qt5-dev libsdl-image1.2-dev libspnav-dev liburdfdom-dev libuvc-dev libv4l-dev libyaml-cpp-dev python-is-python3 python3-tf2-geometry-msgs python3-venv vim curl jq

ENV DEST=/other/install
RUN mkdir $DEST -p
Expand Down Expand Up @@ -84,7 +78,7 @@ WORKDIR $WS/..
RUN catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release -Wno-deprecated
# split these up so can take advantage of docker layers, otherwise one failure
# means a huge rebuild
RUN catkin build --no-status -j1 fuse_core
# RUN catkin build --no-status -j1 fuse_core
# disabling this because it is too slow to build
# RUN catkin build --no-status -j1 rtabmap_ros
RUN catkin build --no-status -j1 jsk_rviz_plugins
Expand All @@ -93,7 +87,7 @@ RUN catkin build --no-status -j1 plotjuggler
RUN catkin build --no-status -j1 rqt
RUN catkin build --no-status -j1 octomap_server
RUN catkin build --no-status -j1 libuvc_camera
RUN catkin build --no-status -j1 fuse_constraints
# RUN catkin build --no-status -j1 fuse_constraints
RUN catkin build --no-status -j1 people_tracking_filter
RUN catkin build --no-status -j1 laser_assembler
RUN catkin build --no-status -j1 catkin_virtualenv
Expand Down
Loading

0 comments on commit 0fdc1a0

Please sign in to comment.