builder: Move to ROS Melodic

This commit is contained in:
sfalexrog
2019-08-21 22:13:08 +03:00
parent 84106ec919
commit a83ef3a9ad
6 changed files with 728 additions and 20 deletions

View File

@@ -18,8 +18,8 @@ Use it to learn how to assemble, configure, pilot and program autonomous CLEVER
Image includes:
* Raspbian Stretch
* ROS Kinetic
* Raspbian Buster
* ROS Melodic
* Configured networking
* OpenCV
* mavros
@@ -30,7 +30,7 @@ API description (in Russian) for autonomous flights is available [on GitBook](ht
## Manual installation
Install ROS Kinetic according to the [documentation](http://wiki.ros.org/kinetic/Installation), then [create a Catkin workspace](http://wiki.ros.org/catkin/Tutorials/create_a_workspace).
Install ROS Melodic according to the [documentation](http://wiki.ros.org/melodic/Installation), then [create a Catkin workspace](http://wiki.ros.org/catkin/Tutorials/create_a_workspace).
Clone this repo to directory `~/catkin_ws/src/clever`:

View File

@@ -0,0 +1,708 @@
catkin:
debian:
buster: ros-melodic-catkin
genmsg:
debian:
buster: ros-melodic-genmsg
gencpp:
debian:
buster: ros-melodic-gencpp
geneus:
debian:
buster: ros-melodic-geneus
genlisp:
debian:
buster: ros-melodic-genlisp
gennodejs:
debian:
buster: ros-melodic-gennodejs
genpy:
debian:
buster: ros-melodic-genpy
bond_core:
debian:
buster: ros-melodic-bond-core
cmake_modules:
debian:
buster: ros-melodic-cmake-modules
class_loader:
debian:
buster: ros-melodic-class-loader
common_msgs:
debian:
buster: ros-melodic-common-msgs
common_tutorials:
debian:
buster: ros-melodic-common-tutorials
cpp_common:
debian:
buster: ros-melodic-cpp-common
desktop:
debian:
buster: ros-melodic-desktop
diagnostics:
debian:
buster: ros-melodic-diagnostics
executive_smach:
debian:
buster: ros-melodic-executive-smach
geometry:
debian:
buster: ros-melodic-geometry
geometry_tutorials:
debian:
buster: ros-melodic-geometry-tutorials
gl_dependency:
debian:
buster: ros-melodic-gl-dependency
image_common:
debian:
buster: ros-melodic-image-common
image_pipeline:
debian:
buster: ros-melodic-image-pipeline
image_transport_plugins:
debian:
buster: ros-melodic-image-transport-plugins
laser_pipeline:
debian:
buster: ros-melodic-laser-pipeline
mavlink:
debian:
buster: ros-melodic-mavlink
media_export:
debian:
buster: ros-melodic-media-export
message_generation:
debian:
buster: ros-melodic-message-generation
message_runtime:
debian:
buster: ros-melodic-message-runtime
mk:
debian:
buster: ros-melodic-mk
nodelet_core:
debian:
buster: ros-melodic-nodelet-core
orocos_kdl:
debian:
buster: ros-melodic-orocos-kdl
perception:
debian:
buster: ros-melodic-perception
perception_pcl:
debian:
buster: ros-melodic-perception-pcl
python_orocos_kdl:
debian:
buster: ros-melodic-python-orocos-kdl
qt_dotgraph:
debian:
buster: ros-melodic-qt-dotgraph
qt_gui:
debian:
buster: ros-melodic-qt-gui
qt_gui_py_common:
debian:
buster: ros-melodic-qt-gui-py-common
qwt_dependency:
debian:
buster: ros-melodic-qwt-dependency
robot:
debian:
buster: ros-melodic-robot
ros:
debian:
buster: ros-melodic-ros
ros_base:
debian:
buster: ros-melodic-ros-base
ros_comm:
debian:
buster: ros-melodic-ros-comm
ros_core:
debian:
buster: ros-melodic-ros-core
ros_environment:
debian:
buster: ros-melodic-ros-environment
ros_tutorials:
debian:
buster: ros-melodic-ros-tutorials
rosapi:
debian:
buster: ros-melodic-rosapi
rosbag_migration_rule:
debian:
buster: ros-melodic-rosbag-migration-rule
rosbash:
debian:
buster: ros-melodic-rosbash
rosboost_cfg:
debian:
buster: ros-melodic-rosboost-cfg
rosbridge_server:
debian:
buster: ros-melodic-rosbridge-server
rosbridge_suite:
debian:
buster: ros-melodic-rosbridge-suite
rosbuild:
debian:
buster: ros-melodic-rosbuild
rosclean:
debian:
buster: ros-melodic-rosclean
roscpp_core:
debian:
buster: ros-melodic-roscpp-core
roscpp_traits:
debian:
buster: ros-melodic-roscpp-traits
roscreate:
debian:
buster: ros-melodic-roscreate
rosgraph:
debian:
buster: ros-melodic-rosgraph
roslang:
debian:
buster: ros-melodic-roslang
roslint:
debian:
buster: ros-melodic-roslint
roslisp:
debian:
buster: ros-melodic-roslisp
rosmake:
debian:
buster: ros-melodic-rosmake
rosmaster:
debian:
buster: ros-melodic-rosmaster
rospack:
debian:
buster: ros-melodic-rospack
roslib:
debian:
buster: ros-melodic-roslib
rosparam:
debian:
buster: ros-melodic-rosparam
rospy:
debian:
buster: ros-melodic-rospy
rosserial:
debian:
buster: ros-melodic-rosserial
rosserial_msgs:
debian:
buster: ros-melodic-rosserial-msgs
rosserial_python:
debian:
buster: ros-melodic-rosserial-python
rosservice:
debian:
buster: ros-melodic-rosservice
rostime:
debian:
buster: ros-melodic-rostime
roscpp_serialization:
debian:
buster: ros-melodic-roscpp-serialization
python_qt_binding:
debian:
buster: ros-melodic-python-qt-binding
roslaunch:
debian:
buster: ros-melodic-roslaunch
rosunit:
debian:
buster: ros-melodic-rosunit
angles:
debian:
buster: ros-melodic-angles
libmavconn:
debian:
buster: ros-melodic-libmavconn
rosconsole:
debian:
buster: ros-melodic-rosconsole
pluginlib:
debian:
buster: ros-melodic-pluginlib
qt_gui_cpp:
debian:
buster: ros-melodic-qt-gui-cpp
resource_retriever:
debian:
buster: ros-melodic-resource-retriever
rosconsole_bridge:
debian:
buster: ros-melodic-rosconsole-bridge
roslz4:
debian:
buster: ros-melodic-roslz4
rosserial_client:
debian:
buster: ros-melodic-rosserial-client
rostest:
debian:
buster: ros-melodic-rostest
rqt_action:
debian:
buster: ros-melodic-rqt-action
rqt_bag:
debian:
buster: ros-melodic-rqt-bag
rqt_bag_plugins:
debian:
buster: ros-melodic-rqt-bag-plugins
rqt_common_plugins:
debian:
buster: ros-melodic-rqt-common-plugins
rqt_console:
debian:
buster: ros-melodic-rqt-console
rqt_dep:
debian:
buster: ros-melodic-rqt-dep
rqt_graph:
debian:
buster: ros-melodic-rqt-graph
rqt_gui:
debian:
buster: ros-melodic-rqt-gui
rqt_logger_level:
debian:
buster: ros-melodic-rqt-logger-level
rqt_moveit:
debian:
buster: ros-melodic-rqt-moveit
rqt_msg:
debian:
buster: ros-melodic-rqt-msg
rqt_nav_view:
debian:
buster: ros-melodic-rqt-nav-view
rqt_plot:
debian:
buster: ros-melodic-rqt-plot
rqt_pose_view:
debian:
buster: ros-melodic-rqt-pose-view
rqt_publisher:
debian:
buster: ros-melodic-rqt-publisher
rqt_py_console:
debian:
buster: ros-melodic-rqt-py-console
rqt_reconfigure:
debian:
buster: ros-melodic-rqt-reconfigure
rqt_robot_dashboard:
debian:
buster: ros-melodic-rqt-robot-dashboard
rqt_robot_monitor:
debian:
buster: ros-melodic-rqt-robot-monitor
rqt_robot_plugins:
debian:
buster: ros-melodic-rqt-robot-plugins
rqt_robot_steering:
debian:
buster: ros-melodic-rqt-robot-steering
rqt_runtime_monitor:
debian:
buster: ros-melodic-rqt-runtime-monitor
rqt_service_caller:
debian:
buster: ros-melodic-rqt-service-caller
rqt_shell:
debian:
buster: ros-melodic-rqt-shell
rqt_srv:
debian:
buster: ros-melodic-rqt-srv
rqt_tf_tree:
debian:
buster: ros-melodic-rqt-tf-tree
rqt_top:
debian:
buster: ros-melodic-rqt-top
rqt_topic:
debian:
buster: ros-melodic-rqt-topic
rqt_web:
debian:
buster: ros-melodic-rqt-web
smach:
debian:
buster: ros-melodic-smach
smclib:
debian:
buster: ros-melodic-smclib
std_msgs:
debian:
buster: ros-melodic-std-msgs
actionlib_msgs:
debian:
buster: ros-melodic-actionlib-msgs
bond:
debian:
buster: ros-melodic-bond
diagnostic_msgs:
debian:
buster: ros-melodic-diagnostic-msgs
geometry_msgs:
debian:
buster: ros-melodic-geometry-msgs
eigen_conversions:
debian:
buster: ros-melodic-eigen-conversions
kdl_conversions:
debian:
buster: ros-melodic-kdl-conversions
nav_msgs:
debian:
buster: ros-melodic-nav-msgs
rosbridge_msgs:
debian:
buster: ros-melodic-rosbridge-msgs
rosgraph_msgs:
debian:
buster: ros-melodic-rosgraph-msgs
rosmsg:
debian:
buster: ros-melodic-rosmsg
rqt_py_common:
debian:
buster: ros-melodic-rqt-py-common
shape_msgs:
debian:
buster: ros-melodic-shape-msgs
smach_msgs:
debian:
buster: ros-melodic-smach-msgs
std_srvs:
debian:
buster: ros-melodic-std-srvs
tf2_msgs:
debian:
buster: ros-melodic-tf2-msgs
tf2:
debian:
buster: ros-melodic-tf2
tf2_eigen:
debian:
buster: ros-melodic-tf2-eigen
trajectory_msgs:
debian:
buster: ros-melodic-trajectory-msgs
control_msgs:
debian:
buster: ros-melodic-control-msgs
urdf_parser_plugin:
debian:
buster: ros-melodic-urdf-parser-plugin
urdfdom_py:
debian:
buster: ros-melodic-urdfdom-py
uuid_msgs:
debian:
buster: ros-melodic-uuid-msgs
geographic_msgs:
debian:
buster: ros-melodic-geographic-msgs
vision_opencv:
debian:
buster: ros-melodic-vision-opencv
visualization_msgs:
debian:
buster: ros-melodic-visualization-msgs
visualization_tutorials:
debian:
buster: ros-melodic-visualization-tutorials
viz:
debian:
buster: ros-melodic-viz
webkit_dependency:
debian:
buster: ros-melodic-webkit-dependency
xmlrpcpp:
debian:
buster: ros-melodic-xmlrpcpp
roscpp:
debian:
buster: ros-melodic-roscpp
bondcpp:
debian:
buster: ros-melodic-bondcpp
bondpy:
debian:
buster: ros-melodic-bondpy
nodelet:
debian:
buster: ros-melodic-nodelet
nodelet_tutorial_math:
debian:
buster: ros-melodic-nodelet-tutorial-math
pluginlib_tutorials:
debian:
buster: ros-melodic-pluginlib-tutorials
roscpp_tutorials:
debian:
buster: ros-melodic-roscpp-tutorials
rosout:
debian:
buster: ros-melodic-rosout
async_web_server_cpp:
debian:
buster: ros-melodic-async-web-server-cpp
camera_calibration:
debian:
buster: ros-melodic-camera-calibration
diagnostic_aggregator:
debian:
buster: ros-melodic-diagnostic-aggregator
diagnostic_updater:
debian:
buster: ros-melodic-diagnostic-updater
diagnostic_common_diagnostics:
debian:
buster: ros-melodic-diagnostic-common-diagnostics
dynamic_reconfigure:
debian:
buster: ros-melodic-dynamic-reconfigure
filters:
debian:
buster: ros-melodic-filters
joint_state_publisher:
debian:
buster: ros-melodic-joint-state-publisher
message_filters:
debian:
buster: ros-melodic-message-filters
rosauth:
debian:
buster: ros-melodic-rosauth
rosbag_storage:
debian:
buster: ros-melodic-rosbag-storage
rosnode:
debian:
buster: ros-melodic-rosnode
rospy_tutorials:
debian:
buster: ros-melodic-rospy-tutorials
rosshow:
debian:
buster: ros-melodic-rosshow
rostopic:
debian:
buster: ros-melodic-rostopic
rqt_gui_cpp:
debian:
buster: ros-melodic-rqt-gui-cpp
rqt_gui_py:
debian:
buster: ros-melodic-rqt-gui-py
self_test:
debian:
buster: ros-melodic-self-test
smach_ros:
debian:
buster: ros-melodic-smach-ros
tf2_py:
debian:
buster: ros-melodic-tf2-py
topic_tools:
debian:
buster: ros-melodic-topic-tools
rosbag:
debian:
buster: ros-melodic-rosbag
actionlib:
debian:
buster: ros-melodic-actionlib
actionlib_tutorials:
debian:
buster: ros-melodic-actionlib-tutorials
diagnostic_analysis:
debian:
buster: ros-melodic-diagnostic-analysis
nodelet_topic_tools:
debian:
buster: ros-melodic-nodelet-topic-tools
roswtf:
debian:
buster: ros-melodic-roswtf
rqt_launch:
debian:
buster: ros-melodic-rqt-launch
sensor_msgs:
debian:
buster: ros-melodic-sensor-msgs
camera_calibration_parsers:
debian:
buster: ros-melodic-camera-calibration-parsers
cv_bridge:
debian:
buster: ros-melodic-cv-bridge
image_geometry:
debian:
buster: ros-melodic-image-geometry
image_transport:
debian:
buster: ros-melodic-image-transport
camera_info_manager:
debian:
buster: ros-melodic-camera-info-manager
compressed_depth_image_transport:
debian:
buster: ros-melodic-compressed-depth-image-transport
compressed_image_transport:
debian:
buster: ros-melodic-compressed-image-transport
image_proc:
debian:
buster: ros-melodic-image-proc
image_publisher:
debian:
buster: ros-melodic-image-publisher
map_msgs:
debian:
buster: ros-melodic-map-msgs
mavros_msgs:
debian:
buster: ros-melodic-mavros-msgs
pcl_msgs:
debian:
buster: ros-melodic-pcl-msgs
pcl_conversions:
debian:
buster: ros-melodic-pcl-conversions
polled_camera:
debian:
buster: ros-melodic-polled-camera
rqt_image_view:
debian:
buster: ros-melodic-rqt-image-view
stereo_msgs:
debian:
buster: ros-melodic-stereo-msgs
image_view:
debian:
buster: ros-melodic-image-view
rosbridge_library:
debian:
buster: ros-melodic-rosbridge-library
stereo_image_proc:
debian:
buster: ros-melodic-stereo-image-proc
tf2_ros:
debian:
buster: ros-melodic-tf2-ros
depth_image_proc:
debian:
buster: ros-melodic-depth-image-proc
mavros:
debian:
buster: ros-melodic-mavros
tf:
debian:
buster: ros-melodic-tf
interactive_markers:
debian:
buster: ros-melodic-interactive-markers
interactive_marker_tutorials:
debian:
buster: ros-melodic-interactive-marker-tutorials
laser_geometry:
debian:
buster: ros-melodic-laser-geometry
laser_assembler:
debian:
buster: ros-melodic-laser-assembler
laser_filters:
debian:
buster: ros-melodic-laser-filters
pcl_ros:
debian:
buster: ros-melodic-pcl-ros
tf2_geometry_msgs:
debian:
buster: ros-melodic-tf2-geometry-msgs
image_rotate:
debian:
buster: ros-melodic-image-rotate
tf2_kdl:
debian:
buster: ros-melodic-tf2-kdl
tf2_web_republisher:
debian:
buster: ros-melodic-tf2-web-republisher
tf_conversions:
debian:
buster: ros-melodic-tf-conversions
theora_image_transport:
debian:
buster: ros-melodic-theora-image-transport
turtlesim:
debian:
buster: ros-melodic-turtlesim
turtle_actionlib:
debian:
buster: ros-melodic-turtle-actionlib
turtle_tf:
debian:
buster: ros-melodic-turtle-tf
turtle_tf2:
debian:
buster: ros-melodic-turtle-tf2
urdf:
debian:
buster: ros-melodic-urdf
kdl_parser:
debian:
buster: ros-melodic-kdl-parser
kdl_parser_py:
debian:
buster: ros-melodic-kdl-parser-py
robot_state_publisher:
debian:
buster: ros-melodic-robot-state-publisher
rviz:
debian:
buster: ros-melodic-rviz
librviz_tutorial:
debian:
buster: ros-melodic-librviz-tutorial
rqt_rviz:
debian:
buster: ros-melodic-rqt-rviz
rviz_plugin_tutorials:
debian:
buster: ros-melodic-rviz-plugin-tutorials
rviz_python_tutorial:
debian:
buster: ros-melodic-rviz-python-tutorial
urdf_tutorial:
debian:
buster: ros-melodic-urdf-tutorial
usb_cam:
debian:
buster: ros-melodic-usb-cam
visualization_marker_tutorials:
debian:
buster: ros-melodic-visualization-marker-tutorials
vl53l1x:
debian:
buster: ros-melodic-vl53l1x
web_video_server:
debian:
buster: ros-melodic-web-video-server
xacro:
debian:
buster: ros-melodic-xacro

View File

@@ -110,7 +110,7 @@ ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} exec ${SCRIPTS_DIR}'/image-network.
# Clever
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/clever.service' '/lib/systemd/system/'
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/roscore.service' '/lib/systemd/system/'
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/kinetic-rosdep-clever.yaml' '/etc/ros/rosdep/'
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/melodic-rosdep-clever.yaml' '/etc/ros/rosdep/'
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/ros_python_paths' '/etc/sudoers.d/'
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/pigpiod.service' '/lib/systemd/system/'
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/launch.nanorc' '/usr/share/nano/'

View File

@@ -68,7 +68,7 @@ my_travis_retry() {
# TODO: 'kinetic-rosdep-clever.yaml' should add only if we use our repo?
echo_stamp "Init rosdep"
my_travis_retry rosdep init
echo "yaml file:///etc/ros/rosdep/kinetic-rosdep-clever.yaml" >> /etc/ros/rosdep/sources.list.d/20-default.list
echo "yaml file:///etc/ros/rosdep/melodic-rosdep-clever.yaml" >> /etc/ros/rosdep/sources.list.d/20-default.list
my_travis_retry rosdep update
echo_stamp "Populate rosdep for ROS user"
@@ -77,7 +77,7 @@ my_travis_retry sudo -u pi rosdep update
resolve_rosdep() {
# TEMPLATE: resolve_rosdep <CATKIN_PATH> <ROS_DISTRO> <OS_DISTRO> <OS_VERSION>
CATKIN_PATH=$1
ROS_DISTRO='kinetic'
ROS_DISTRO='melodic'
OS_DISTRO='debian'
OS_VERSION='buster'
@@ -153,7 +153,7 @@ echo_stamp "Installing CLEVER" \
&& resolve_rosdep $(pwd) \
&& my_travis_retry pip install wheel \
&& my_travis_retry pip install -r /home/pi/catkin_ws/src/clever/clever/requirements.txt \
&& source /opt/ros/kinetic/setup.bash \
&& source /opt/ros/melodic/setup.bash \
&& catkin_make -j2 -DCMAKE_BUILD_TYPE=Release \
&& systemctl enable roscore \
&& systemctl enable clever \
@@ -168,14 +168,14 @@ gitbook build
echo_stamp "Installing additional ROS packages"
apt-get install -y --no-install-recommends \
ros-kinetic-dynamic-reconfigure \
ros-kinetic-compressed-image-transport \
ros-kinetic-rosbridge-suite \
ros-kinetic-rosserial \
ros-kinetic-usb-cam \
ros-kinetic-vl53l1x \
ros-kinetic-ws281x \
ros-kinetic-rosshow
ros-melodic-dynamic-reconfigure \
ros-melodic-compressed-image-transport \
ros-melodic-rosbridge-suite \
ros-melodic-rosserial \
ros-melodic-usb-cam \
ros-melodic-vl53l1x \
ros-melodic-ws281x \
ros-melodic-rosshow
# TODO move GeographicLib datasets to Mavros debian package
echo_stamp "Install GeographicLib datasets (needed for mavros)" \
@@ -191,9 +191,9 @@ echo_stamp "Setup ROS environment"
cat << EOF >> /home/pi/.bashrc
LANG='C.UTF-8'
LC_ALL='C.UTF-8'
ROS_DISTRO='kinetic'
ROS_DISTRO='melodic'
export ROS_HOSTNAME=\`hostname\`.local
source /opt/ros/kinetic/setup.bash
source /opt/ros/melodic/setup.bash
source /home/pi/catkin_ws/devel/setup.bash
EOF

View File

@@ -66,7 +66,7 @@ apt-get update \
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
echo "deb http://packages.ros.org/ros/ubuntu buster main" > /etc/apt/sources.list.d/ros-latest.list
echo "deb http://repo.coex.space/rpi-ros-kinetic-buster buster main" > /etc/apt/sources.list.d/rpi-ros-kinetic.list
echo "deb http://repo.coex.space/rpi-ros-melodic buster main" > /etc/apt/sources.list.d/rpi-ros-melodic.list
# FIXME: We still don't have these packages built for Buster
# FIXME: Check these packages after their installation
echo "deb http://repo.coex.space/clever stretch main" > /etc/apt/sources.list.d/clever.list

View File

@@ -16,9 +16,9 @@ set -ex
echo "Run image tests"
export ROS_DISTRO='kinetic'
export ROS_DISTRO='melodic'
export ROS_IP='127.0.0.1'
source /opt/ros/kinetic/setup.bash
source /opt/ros/melodic/setup.bash
source /home/pi/catkin_ws/devel/setup.bash
cd /home/pi/catkin_ws/src/clever/builder/test/