Talk:ROS
Packaging
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)
- Please ask this question on the forum. -- Blackteahamburger (talk) 11:29, 26 July 2020 (UTC)
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)
- Here's what I have so far:
- 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;
—This unsigned comment is by Yiuin (talk) 01:16, 16 January 2017 (UTC). Please sign your posts with ~~~~!
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
—This unsigned comment is by Mdhooge (talk) 14:18, 19 April 2019 (UTC). Please sign your posts with ~~~~!
Is ROS2 Crystal still relevant? I managed to compile ROS2 Foxy with the help of `ros2-arch-deps`. I would like to create a package, but have never done this. The install dir contains 316 directories. Should I pack everything in one package or should I take the ros-noetic-* packages as an example? Leuko (talk) 11:10, 26 July 2020 (UTC)
racko fixes
I didn't apply the 3 fixes described on the main page.
- I decided to live without the first one (https://github.com/racko/rviz/commit/added_cmake_project_type)
- The two other fixes were merged.
—This unsigned comment is by Mdhooge (talk) 14:22, 19 April 2019 (UTC). Please sign your posts with ~~~~!
Placing racko fix text here. Removing from main article since I built and ran RViz 2 without them on 30 June 2019 -calvertdw
Apply racko fixes:
$ cd ~/ros2_ws/src/ros2/rviz/ $ git remote add racko https://github.com/racko/rviz.git $ git fetch racko added_cmake_project_type fix_wrong_yaml_cpp $ git cherry-pick racko/added_cmake_project_type racko/fix_wrong_yaml_cpp
—This unsigned comment is by Calvertdw (talk) 06:17, 30 June 2019 (UTC). Please sign your posts with ~~~~!
Restructure
I think this page should be structured into ROS 1 and ROS 2 sections, with Troubleshooting at the end.
Installation sections for most popular ROS releases as well as master.
—This unsigned comment is by Calvertdw (talk) 04:11, 30 June 2019 (UTC). Please sign your posts with ~~~~!