From ArchWiki
Revision as of 14:22, 19 April 2019 by Mdhooge (talk | contribs) (ROS2 Crystal — racko fixes)
Jump to navigation Jump to search

Pallegro, here. Hoping we can pool resources.

Does anyone have any ideas for packaging on aur? Should we have ros-$distro-$package or ros-$distro-$variant or just ros-$variant (and track releases)?

Just had the need to install ROS again. I'm trying out mosenle's stacks on a chroot for cross compile and pushing the little fixes I'm needing to do to a fork of his github groovy stack. I'm not sure I'm a fan of such fine-grained packages but that's a small issue. Meanwhile it seems a shame to waste the hard work he has put in. Hauptmech (talk) 14:15, 15 January 2013 (UTC)

  • python/python2: some scripts use #!/usr/bin/python rather than #!/usr/bin/env python, e.g. rosconsole/scripts/ . So we should do {{{for file in $(grep -rl 'bin/python *$' .); do sed -i 's/bin\/python *$/bin\/python2/' $file ;done}}}
  • buff.getvalue().strip().encode('utf-8') : I didn't encounter this. Any idea why this wouldn't be hitting ubuntu? I used catkin_make instead of cmake.
  • ros-base variant (not just ros_comm) builds find for me.
  • robot variant needed two small patches, one of which (collada_urdf) is fixed upstream:

--- collada_urdf/CMakeLists.txt 2013-01-10 12:14:26.551127084 -0400
+++ collada_urdf/CMakeLists.txt 2013-01-10 12:15:21.200339275 -0400
@@ -13,8 +13,8 @@ include_directories(include)
 find_package(Boost REQUIRED COMPONENTS system)
-find_package(assimp QUIET)
-if ( NOT assimp_FOUND )
+find_package(ASSIMP QUIET)
   find_package(PkgConfig REQUIRED)
   pkg_check_modules(ASSIMP assimp)

--- nodelet/CMakeLists.txt      2012-12-27 22:00:51.000000000 -0400
+++ nodelet/CMakeLists.txt      2013-01-09 16:22:23.001660738 -0400
 @@ -47,6 +47,7 @@ add_dependencies(nodeletlib ${PROJECT_NA
 add_executable(nodelet src/nodelet.cpp)
 target_link_libraries(nodelet ${BOOST_LIBRARIES}
+                              uuid
  • pcl needed:
--- common/include/pcl/point_cloud.h
+++ common/include/pcl/point_cloud.h
@@ -649,7 +649,7 @@ namespace pcl
         width (pc.width), height (pc.height), is_dense (pc.is_dense)
         // Copy the obvious
-        properties.acquisition_time   = pc.header.stamp;
+        properties.acquisition_time   = pc.header.stamp.sec;
         properties.sensor_origin      = pc.sensor_origin_;//.head<3> ();
         properties.sensor_orientation = pc.sensor_orientation_;

--- pcl/     2013-01-14 13:49:57.826710380 -0400
+++ pcl/     2013-01-14 13:53:49.900025755 -0400
@@ -266,7 +266,12 @@ macro(find_VTK)
  find_package(VTK ${QUIET_})
-    set(VTK_LIBRARIES vtkCommon vtkRendering vtkHybrid)
+    #set(VTK_LIBRARIES vtkCommon vtkRendering vtkHybrid)
+    unset(VTK_LIBRARIES)
+    foreach(lib "vtkCommon" "vtkRendering" "vtkHybrid")
+      find_library(VTK_${lib} ${lib} "${VTK_LIBRARY_DIRS}" VTK_DIR)
+    endforeach()

Groovy packages

So I've been putting some work into creating a ros-groovy-desktop AUR package. It's not in a working state at the moment, but it compiles without error. The big issue that I'm running into is that the catkin make intall does not like installing to ${pkgdir} without coding all its paths as such (in and other such files). I'm trying to figure out the best approach to fixing this. Any suggestions? I can post my PKGBUILD if anyone wants it. Zootboy (talk) 19:30, 31 March 2013 (UTC)

Any updates on the packaging? If it's not working yet, I'd like to help. Can you post the PKGBUILD? Hanno (talk) 14:16, 17 April 2013 (UTC)
Here's what I have so far: (It may be in some weird state, I tend to comment out chunks of the build function to test it). The biggest issue I've hit is the fact that no matter what settings / directories I adjust in the catkin_make lines, it always ends up with hard-coded references to srcdir and pkgdir. See what you think... Zootboy (talk) 20:18, 17 April 2013 (UTC)
Update: I forked Hauptmech's repository and fixed up the packages. I'm working on posting them all to the AUR, and I updated the main Ros page with links to the packages. I've tried to follow the Ubuntu package naming scheme with the packages as much as possible. Disregard the above PKGBUILD -- it never worked right anyway, and it wasn't the right way to do it. The AUR packages should work much better. Zootboy (talk) 23:18, 24 May 2013 (UTC)
The build process fails with ros-groovy-console-bridge, complaining that "Remote branch release/groovy/console_bridge/0.1.4-1 not found". I edited the PKGBUILD file, and made it just get the "head" branch, which succeeds but then fails with ros-groovy-rosconsole-bridge complaining that console_bridge is not a catkin_package. Any pointers? benguin
Got it to work, addressing the issue crossed out above. Two packages, ros-groovy-rosconsole-bridge and ros-groovy-console-bridge were updated upstream, with a version number bump in each case. The PKGBUILD files were updated to reflect that, and then the build went off without a hitch. For ros-groovy-rosconsole-bridge, the version bump was to 0.2.7, and for ros-groovy-console-bridge, it was 0.2.4-0. benguin
Also, should the git repo point to git:// or git:// I am a bit of a noob on Arch -- my ROS experience has been solely on Ubuntu. benguin(talk) 21:16, 26 June 2013 (UTC).Scratch that. Figured it out -- good as it is :). Thanks!benguin(talk) 18:58, 27 June 2013 (UTC).

Boost Update Script

The provided script didn't work for me :(. I think some things have unlisted dependencies. Instead I had to do this:

   find /opt/ros/indigo/lib -name '*.so*' | while read line; do out=`ldd $line 2>&1 | grep boost | grep -v warning`;  if "$out" != "" ; then new=`pacman -Qo -q $line`; echo $new;  fi; done;

ROS2 Crystal

I managed to compile enough of ROS to be able to create my own package. I just gave up waiting for ros2/rviz to finish to compile.

Here are the notes I took while trying…

sudo pip install colcon-common-extensions lark-parser rosdep vcstool
sudo pacman --needed -S asio tinyxml2

Then I used rosdep to create a list of dependencies.

$ sudo rosdep init
Wrote /etc/ros/rosdep/sources.list.d/20-default.list

$ rosdep install \
  --simulate \
  --from-paths src --ignore-src \
  --rosdistro crystal \
  -y --skip-keys \
  "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 \
  rti-connext-dds-5.3.1 urdfdom_headers"

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
test_launch_ros: No definition of [python3-yaml] for OS [arch]
ament_xmllint: No definition of [libxml2-utils] for OS [arch]
ros1_bridge: No definition of [python3-yaml] for OS [arch]
rosidl_parser: No definition of [python3-lark-parser] for OS [arch]
uncrustify_vendor: No definition of [uncrustify] for OS [arch]
ros2topic: No definition of [python3-yaml] for OS [arch]
ament_pep257: No definition of [pydocstyle] for OS [arch]
ament_flake8: No definition of [python3-flake8] for OS [arch]
rqt_publisher: No definition of [python3-catkin-pkg-modules] for OS [arch]
ros2service: No definition of [python3-yaml] for OS [arch]
rosidl_adapter: No definition of [python3-empy] for OS [arch]
rcl_logging_log4cxx: No definition of [python3-empy] for OS [arch]
rcl_logging_noop: No definition of [python3-empy] for OS [arch]
ament_package: No definition of [python3-flake8] for OS [arch]
rqt_msg: No definition of [python3-catkin-pkg-modules] for OS [arch]
ros2cli: No definition of [python3-pkg-resources] for OS [arch]
rqt_gui: No definition of [python3-catkin-pkg-modules] for OS [arch]
rqt_shell: No definition of [python3-catkin-pkg-modules] for OS [arch]
ros2pkg: No definition of [python3-pkg-resources] for OS [arch]
launch_ros: No definition of [python3-yaml] for OS [arch]
ament_pep8: No definition of [python3-pep8] for OS [arch]
rcutils: No definition of [python3-empy] for OS [arch]
ament_pyflakes: No definition of [pyflakes3] for OS [arch]
ament_cmake_core: No definition of [python3-catkin-pkg-modules] for OS [arch]
rviz_ogre_vendor: No definition of [libfreetype6-dev] for OS [arch]
qt_gui: No definition of [python3-catkin-pkg-modules] for OS [arch]
rqt_plot: No definition of [python3-catkin-pkg-modules] for OS [arch]
ament_clang_format: No definition of [clang-format] for OS [arch]
sros2: No definition of [python3-lxml] for OS [arch]

From that, I extracted the following dependencies:


Which I translated into

sudo pacman --needed -S uncrustify
sudo pip install pydocstyle pyflakes catkin-pkg-modules empy flake8 lark-parser lxml pep8 PyYAML

After running colcon for a first try, I installed log4cxx from AUR. And my final command is:

touch ./src/ros2/rviz/COLCON_IGNORE
colcon build --symlink-install --continue-on-error

with the summarized result:

Failed   <<< qt_gui_cpp [ Exited with code 1 ]
Failed   <<< image_tools        [ Exited with code 1 ]
Failed   <<< intra_process_demo [ Exited with code 1 ]

  Could not find PrismTech OpenSplice - skipping 'rmw_opensplice_cpp'
  Could not find PrismTech OpenSplice - skipping 'rosidl_typesupport_opensplice_c'
  Could not find PrismTech OpenSplice - skipping 'rosidl_typesupport_opensplice_cpp'
  Could not find RTI Connext - skipping 'rmw_connext_cpp'
  Could not find RTI Connext - skipping 'rmw_connext_shared_cpp'
  Could not find RTI Connext - skipping 'rosidl_typesupport_connext_c'
  Could not find RTI Connext - skipping 'rosidl_typesupport_connext_cpp'

  Failed to find ROS 1 roscpp, skipping...

Summary: 218 packages finished [1min 4s]
  3 packages failed: image_tools intra_process_demo qt_gui_cpp
  3 packages had stderr output: image_tools intra_process_demo qt_gui_cpp
  3 packages not processed

racko fixes

I didn't apply the 3 fixes described on the main page.