Difference between revisions of "Talk:ROS"

From ArchWiki
Jump to navigation Jump to search
m (GPereira moved page Talk:Ros to Talk:ROS: Name is an acronym)
(ROS2 Crystal: new section)
Line 90: Line 90:
  
 
     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;
 
     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.
 +
 +
{{bc|
 +
$ 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:
 +
 +
clang-format
 +
libfreetype6-dev
 +
libxml2-utils
 +
pydocstyle
 +
pyflakes3
 +
python3-catkin-pkg-modules
 +
python3-empy
 +
python3-flake8
 +
python3-lark-parser
 +
python3-lxml
 +
python3-pep8
 +
python3-pkg-resources
 +
python3-yaml
 +
uncrustify
 +
 +
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:
 +
 +
{{bc|
 +
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
 +
}}

Revision as of 14:18, 19 April 2019

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)

www.ros.org/wiki/groovy/Installation/Arch

  • python/python2: some scripts use #!/usr/bin/python rather than #!/usr/bin/env python, e.g. rosconsole/scripts/generate_macros.py . So we should do {{{for file in $(grep -rl 'bin/python *$' .); do sed -i 's/bin\/python *$/bin\/python2/' $file ;done}}}
  • genmsg.py 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)
 include_directories(${Boost_INCLUDE_DIR})
 
-find_package(assimp QUIET)
-if ( NOT assimp_FOUND )
+find_package(ASSIMP QUIET)
+if ( NOT ASSIMP_FOUND )
   find_package(PkgConfig REQUIRED)
   pkg_check_modules(ASSIMP assimp)
 endif()

--- 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}
                               ${catkin_LIBRARIES}
+                              uuid
                               nodeletlib
 )
  • 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/PCLConfig.cmake.in     2013-01-14 13:49:57.826710380 -0400
+++ pcl/PCLConfig.cmake.in     2013-01-14 13:53:49.900025755 -0400
@@ -266,7 +266,12 @@ macro(find_VTK)
   endif(PCL_ALL_IN_ONE_INSTALLER)
  find_package(VTK ${QUIET_})
  if (VTK_FOUND AND NOT ANDROID_NDK)
-    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)
+      LIST(APPEND VTK_LIBRARIES "${VTK_${lib}}")
+    endforeach()
   endif(VTK_FOUND AND NOT ANDROID_NDK)
 endmacro(find_VTK)

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 env.sh 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: http://mastermind.rh.rit.edu/ros-groovy-desktop-1.0.0-1.src.tar.gz (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://github.com/ros-gbp/ or git://github.com/ros? 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:

clang-format
libfreetype6-dev
libxml2-utils
pydocstyle
pyflakes3
python3-catkin-pkg-modules
python3-empy
python3-flake8
python3-lark-parser
python3-lxml
python3-pep8
python3-pkg-resources
python3-yaml
uncrustify

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