-
Notifications
You must be signed in to change notification settings - Fork 481
make install script support ROS kinetic and melodic #761
Conversation
Further to this, melodic only works on 18.04 (not 16.04) and my script also needs to be updated to support the latest version FastRTPS |
I merged this, with new script for ROS melodic. Any advice on how to improve it much appreciated! https://github.com/PX4/Devguide/blob/master/build_scripts/ubuntu_sim_ros_melodic.sh |
@hamishwillee the script I provided determines the ubuntu version you have (16.04 or 18.04) and then automatically installs the correct toolchain (melodic for 18.04 or kinetic for 16.04). I would say this is easier than having two separate scripts, right? |
I'm not sure about the fats RTPS stuff. I can just verify that my script correctly installs the regular SITL toolchain. After executing it, I was able to |
Yes. Except that according to @TSC21 we want them to use melodic, which to me meant lets have old script for old version of docs and new script for new version. Nuno, I'm very happy to replace my script with this one, just need to know what you would prefer. |
@baumanta You don't need to worry about the RTPS stuff - that is imported using a dependency script of this (now updated) |
ahh ok, then use whichever you like better :) the RTPS install script could also just return a message if the OS version does not match, such that the RTPS part is not installed under 16.04 and we can still have a single script. Or we can make two script out of it. Personally, I would like it better in one, but if that is hard to do on the RTPS script side, I'm fine to have two as well. |
else echo "$firmware_source" >> ~/.bashrc; fi | ||
eval $firmware_source | ||
|
||
ros_package='export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/tanja/src/Firmware:/home/tanja/src/Firmware/Tools/sitl_gazebo' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we should have hardcoded paths here.
@baumanta @hamishwillee bringing Fast-RTPS into ROS install scripts will only make sense if you also install ROS2. Otherwise, it's not worth to include it on scripts with the sole purpose of installing ROS(1) toolchain. |
As far as I know, we are updating our toolchains to newer versions. Backwards compatibility is always welcomed, though we tend to drop support on older versions as a normal process. |
@TSC21 OK, so as you know FastRTPS was always installed in these scripts - it came as the "common dependency": https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_common_deps.sh Which brings me to point 2. I originally created these devguide install scripts because no one else was and I found it frustrating to type all the bits in. Any advice on how we can get from where we are now, to that state would be appreciated. |
No, not exactly. You need Fast-RTPS installed if you actually want to build PX4 with Fast-RTPS support and run non-ROS Fast-RTPS apps on the machine (as we have documented). What I am saying is that installing this in ROS(1) scripts doesn't really add anything, unless you want to use I am ok that we keep these scripts here on the Devguide, but needs a commitment, as you said, from everyone working with these frameworks and maintaining a code base. |
I'm not. If they aren't in CI then they aren't being tested properly. If they are in devguide I don't believe we will ever get that proper level of commitment. And the fact that it took me 3 reads of this to "think" I understand your point of ROS1 vs ROS2 and RTPS means that it should not be me owning these. |
@TSC21 @baumanta OK. Firstly, lets address this particular PR. I think we should close it. The script(s) in master should reflect the current supported version of ROS on the current supported version of Ubuntu. Let's discuss what needs to happen with scripts going forward in #764 The reason I feel this way is that we now have a versioned devguide. That means there is a snapshot of the devguide (including scripts) in a branch. So users working v1.8 should be offered whatever ROS was flavour of the month when the snapshot was taken (ROS Kinetic). In v1.9, users will be offered ROS Melodic. Now I appreciate that v1.8 will support ROS melodic too, but the docs won't match up with that, and there is no way to be sure or test that. So we're better off offering what we know works for each version. Make sense? This does mean I will have to rename my script back to something generic. |
I was investigating if we could run our avoidance simulation under Ubuntu 18.04 using ROS melodic. I got the setup to work just fine (PX4 fimware, SITL gazebo, avoidance). But in the process I saw that the install script for the basic Toolchain (PX4 SITL gazebo) does not support Ubuntu 18.04. I changed the script such that it can be called either under Ubuntu 16.04 or 18.04.
The script was checked using virtual box and bare installations of Ubuntu 16.04 and 18.04. I seems to work for both.
I also added the paths/sourcing to bashrc automatically.