-
Notifications
You must be signed in to change notification settings - Fork 9
Home
The L-CAS build farm generates and provides Ubuntu packages for Ubuntu 16.04 (ROS Kinetic) and Ubuntu 18.04 (ROS Melodic), both for 64 bit architectures (amd64
).
It also offers Continuous Integration services for software developed by L-CAS and affiliated partners and industries.
The 'lcas-rosdistro.setup.bash` script is an easy way to configure a system completely very quickly (does all the steps below):
To make it simple, just copy this and paste in your shell:
-
sudo ls
(this is just to cache you admin password for the next steps) -
sudo apt-get update && sudo apt-get install curl
(curl is required for the next step) -
curl https://raw.githubusercontent.com/LCAS/rosdistro/master/lcas-rosdistro-setup.sh | bash -
(should install everything required)
If the above has worked, there's no need to read any further.
These steps are for a system administrator who wants to install L-CAS' released packages:
-
Enable the generic ROS repositories (here shown for "ROS Kinectic", similar for "ROS Indigo"): Accomplish all the steps under
1. Installation
http://wiki.ros.org/kinetic/Installation/Ubuntu#Installation. -
Enable the L-CAS public repositories:
-
Add the L-CAS public key to verify packages:
curl -s http://lcas.lincoln.ac.uk/repos/public.key | sudo apt-key add -
-
Add the L-CAS repository:
sudo apt-add-repository http://lcas.lincoln.ac.uk/ubuntu/main
-
-
update your index:
sudo apt-get update
-
install any packages you want using
sudo apt-get install <pkg-name>
, e.g.-
sudo apt-get install ros-kinetic-navigation-oru
for the CitiTruck navigation stack of ILIAD project -
sudo apt-get install ros-kinetic-spencer-people-tracking-full
for the person detection and tracking pipeline of SPENCER/ILIAD - read about all our released packages, to find out what options are available.
-
Some packages are not released publicly, but sit in their own restricted repository. That repository can be added in addition to the one above with:
sudo apt-add-repository https://restricted:PASSWORD@lcas.lincoln.ac.uk/ubuntu/restricted
Obviously, PASSWORD
will not be published here, request it from marc@hanheide.net if you believe you should have it. Also, please not you need to have apt-transport-https
installed beforehand, e.g. by sudo apt-get install apt-transport-https
.
DISCLAIMER: If you just want to use L-CAS software, no need to read further than this. You are ready to go! The following is for people who want to develop and release L-CAS software.
We assume the previous steps of installing packages to have completed successfully here.
In order to resolve packages that are not in the official ROS repositories, but in STRANDS' own, you need to make rosdep
aware of this.
- Initialise the rosdep system globally:
sudo rosdep init
- overwrite with L-CAS dependencies:
sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://raw.githubusercontent.com/LCAS/rosdistro/master/rosdep/sources.list.d/20-default.list sudo curl -o /etc/ros/rosdep/sources.list.d/50-lcas.list https://raw.githubusercontent.com/LCAS/rosdistro/master/rosdep/sources.list.d/50-lcas.list
The ROS index plays a vital role in any ROS system. L-CAS uses its own ROS distro configuration, which is the central configuration place listing all packages available for a ROS distribution. Our L-CAS fork of rosdistro is regularly (daily) updated, pulling in changes from the official ROS distro, but has our own packages added.
-
Tell ROS to use L-CAS' own ROS index! Put the following in
~/.config/rosdistro/config.yaml
:index_url: https://raw.github.com/lcas/rosdistro/master/index.yaml
easy one-liner:
mkdir -p ~/.config/rosdistro && echo "index_url: https://raw.github.com/lcas/rosdistro/master/index.yaml" >> ~/.config/rosdistro/config.yaml
-
update your rosdep cache:
rosdep update
-
Prepare you repository (changelogs and tags):
This step involves creating changelogs form git log and then bumping the version and tagging the version (making a git release). More details in this simple guide. Usually this just involves the following steps:
-
catkin_generate_changelog
to generate Debian Changelogs (you may have to add--all
, when no previous changelogs exist) - add all the changelogs to be committed, e.g.
find -name CHANGELOG.rst | xargs git add
-
git commit -m "updated Changelogs"
to commit the new logs -
catkin_prepare_release
to bump the version number and tag the source with it (with--bump {major|minor|patch}
to choose which version part to increase)
-
-
Invoke bloom through the release wizard (which builds the respective Debian control file etc)
- Goto to https://lcas.github.io/rosdistro/, enter the name of your repository (auto-completes for most) and hit release (please leave the answer to the question "Which part of the version string to bump in upstream repository?" at its default, as you have already prepared your upstream repo in step 1.
- You can alternatively run
bloom_release
yourself, see below
The release wizard at https://lcas.github.io/rosdistro/ can also to the first step for you, but only if the system user has write access to your repository. If it has (e.g. because your repo is in the LCAS organisation), then the process can be done entirely through the release wizard, by changing the option to "Which part of the version string to bump in upstream repository?" to what you want it to be.
Better follow the guide above and ignore this part
- Make sure you have configured your system to use the L-CAS ROS index (see above).
- simply follow this simple guide to prepare your upstream repository. Usually this involved the following steps:
-
catkin_generate_changelog
to generate Debian Changelogs fromgit log
-
git commit -a -m "updated Changelogs"
to commit the new logs -
catkin_prepare_release
to bump the version number and tag the source with it (with--bump {major|minor|patch}
to choose which version part to increase) - run
bloom-release
as described here, usually something like this:bloom-release mongodb_store -t kinetic -r kinetic
withkinetic
replaced byindigo
where needed andmongodb_store
replaces with the name of your repository as configured in https://github.com/lcas/rosdistro
Disclaimer: Usually you don't do this, but the software management team will release version that are considered stable to the official repos
Same steps as above, but the bloom-release
command needs another environment variable to be defined:
ROSDISTRO_INDEX_URL=https://raw.github.com/ros/rosdistro/master/index.yaml bloom-release mongodb_store -r indigo -t indigo
-
Home (Using the L-CAS distribution)
- Releasing Packages
- rosdistro index status:
- batch install of L-CAS distribution on a fresh machine
- developer setting
- Cache Job:
- ROS2 Humble (on Ubuntu 22.04LTS, actively developed)
- ROS1 Melodic (on Ubuntu 18.04LTS, no longer developed)