Git Product home page Git Product logo

ros's Introduction

Robot Operating System (ROS)
===============================================================================

ROS is a meta-operating system for your robot.  It provides
language-independent and network-transparent communication for a
distributed robot control system.

Installation Notes
------------------

For full installation instructions, including system prerequisites and
platform-specific help, see:

  http://wiki.ros.org/ROS/Installation

ros's People

Contributors

130s avatar billyjov avatar cwecht avatar de-vri-es avatar dirk-thomas avatar evenator avatar gerkey avatar hershwg avatar jacobperron avatar jbohren avatar jleibs-test avatar kejxu avatar kopp avatar kwc avatar mikaelarguedas avatar mikepurvis avatar mmwise avatar moesenle avatar mvollrath avatar pjreed avatar seanyen avatar sloretz avatar stonier avatar sztupi avatar tfoote avatar timonegk avatar tkruse avatar v4hn avatar vrabaud avatar wkentaro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ros's Issues

roslib: Python call in hook

On Arch Linux, the default Python version is Python 3, and we currently use Python 2 for ROS Groovy/Hydro. I recently had to patch the hook in roslib since it relies on python calls:

# scrub old ROS bin dirs, to avoid accidentally finding the wrong executables
export PATH="`python -c \"import os; print(os.pathsep.join([x for x in \\\"$PATH\\\".split(os.pathsep) if not any([d for d in ['cturtle', 'diamondback', 'electric', 'fuerte'] if d in x])]))\"`"
...
export ROS_PACKAGE_PATH="`python -c \"$PYTHON_CODE_BUILD_ROS_PACKAGE_PATH\"`"

Indeed, on a fresh Arch install, Python 2 will be installed by the package manager when dealing with dependencies (since we rely on it), but python (i.e. Python 3's /usr/bin/python) might not be, as reported by an Arch user here. It took me a while to detect that since I added a symlink ~/bin/python ---> /usr/bin/python2, but this kind of things may happen on other Linux distributions as well.

I guess adding CATKIN_PYTHON_EXECUTABLE (or any other more suitable name) to catkin's /opt/ros/hydro/share/catkin/cmake/templates/env-hook.context.py.in could solve this.

gtest XML output lacks namespace

For repos with many packages, like ros_comm, the output as displayed by Jenkins can be a real jumble, with no clarity at all about where the different tests are coming from. The python tests are all listed somewhat by package in the base test results view, eg:

http://build.ros.org/job/Kdev__ros_comm__ubuntu_xenial_amd64/64/testReport/

But all the gtests are listed in (root) organized by the fixture/suite name, eg:

http://build.ros.org/job/Kdev__ros_comm__ubuntu_xenial_amd64/64/testReport/(root)/

Looking at one case in particular, the CheckMaster.checkMaster test is defined here:

https://github.com/ros/ros_comm/blob/kinetic-devel/test/test_roscpp/test/src/check_master.cpp#L49-L52

The result shows up here:

http://build.ros.org/job/Kdev__ros_comm__ubuntu_xenial_amd64/64/testReport/(root)/CheckMaster/checkMaster/

And the result XML looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<testsuites tests="1" failures="0" disabled="0" errors="0" time="0.002" name="AllTests">
  <testsuite name="CheckMaster" tests="1" failures="0" disabled="0" errors="0" time="0.002">
    <testcase name="checkMaster" status="run" time="0.002" classname="CheckMaster" />
  </testsuite>
</testsuites>

IMO, the classname in this instance should be changed to be prefixed with the package name, so test_roscpp.CheckMaster. It appears that there's some preexisting junit xml mangle logic here, but it looks like it maybe runs as part of a summarizing script rather than as a post-step to every gtest run.

Thoughts on if there's some reasonable way forward here?

rosunit should allow simultaneous XML output and text output

Right now we are executing unit tests using make test in our buildfarm.

Fixing an unexpected failure or a crash on a unit test in the buildfarm is an almost impossible task since we have no logs and the XML output only reports a crash and zero useful logs.

Example of XML output on the case of a crash:

test [serial_driver_test] did not generate test results
File "/usr/lib/python2.7/unittest/case.py", line 331, in run
testMethod()
File "/opt/ros/indigo/lib/python2.7/dist-packages/rostest/runner.py", line 164, in fn
self.assert_(os.path.isfile(test_file), "test [%s] did not generate test results"%test_name)
File "/usr/lib/python2.7/unittest/case.py", line 424, in assertTrue
raise self.failureException(msg)

It would be very helpful to have alll std output as part of the XML report, if it cannot be made visible in the terminal running the tests.

Can't build catkin_workspace on Sierra OS

when running ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release

Shell exits on error,

==> Processing catkin package: 'eigen_stl_containers'
==> Building with env: '/Users/haoyu/ros_catkin_ws/install_isolated/env.sh'
==> cmake /Users/haoyu/ros_catkin_ws/src/eigen_stl_containers -DCATKIN_DEVEL_PREFIX=/Users/haoyu/ros_catkin_ws/devel_isolated/eigen_stl_containers -DCMAKE_INSTALL_PREFIX=/Users/haoyu/ros_catkin_ws/install_isolated -DCMAKE_BUILD_TYPE=Release -G Unix Makefiles in '/Users/haoyu/ros_catkin_ws/build_isolated/eigen_stl_containers'
-- Using CATKIN_DEVEL_PREFIX: /Users/haoyu/ros_catkin_ws/devel_isolated/eigen_stl_containers
-- Using CMAKE_PREFIX_PATH: /Users/haoyu/ros_catkin_ws/install_isolated
-- This workspace overlays: /Users/haoyu/ros_catkin_ws/install_isolated
-- Using PYTHON_EXECUTABLE: /usr/local/bin/python
-- Using default Python package layout
-- Using empy: /usr/local/lib/python2.7/site-packages/em.pyc
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /Users/haoyu/ros_catkin_ws/build_isolated/eigen_stl_containers/test_results
-- Found gtest: gtests will be built
-- nosetests not found, Python tests can not be run (try installing package 'python-nose')
-- catkin 0.7.4
CMake Error at CMakeLists.txt:8 (find_package):
  By not providing "FindEigen3.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Eigen3", but
  CMake did not find one.

  Could not find a package configuration file provided by "Eigen3" with any
  of the following names:

    Eigen3Config.cmake
    eigen3-config.cmake

  Add the installation prefix of "Eigen3" to CMAKE_PREFIX_PATH or set
  "Eigen3_DIR" to a directory containing one of the above files.  If "Eigen3"
  provides a separate development package or SDK, be sure it has been
  installed.


-- Configuring incomplete, errors occurred!
See also "/Users/haoyu/ros_catkin_ws/build_isolated/eigen_stl_containers/CMakeFiles/CMakeOutput.log".
<== Failed to process package 'eigen_stl_containers': 
  Command '['/Users/haoyu/ros_catkin_ws/install_isolated/env.sh', 'cmake', '/Users/haoyu/ros_catkin_ws/src/eigen_stl_containers', '-DCATKIN_DEVEL_PREFIX=/Users/haoyu/ros_catkin_ws/devel_isolated/eigen_stl_containers', '-DCMAKE_INSTALL_PREFIX=/Users/haoyu/ros_catkin_ws/install_isolated', '-DCMAKE_BUILD_TYPE=Release', '-G', 'Unix Makefiles']' returned non-zero exit status 1

Reproduce this error by running:
==> cd /Users/haoyu/ros_catkin_ws/build_isolated/eigen_stl_containers && /Users/haoyu/ros_catkin_ws/install_isolated/env.sh cmake /Users/haoyu/ros_catkin_ws/src/eigen_stl_containers -DCATKIN_DEVEL_PREFIX=/Users/haoyu/ros_catkin_ws/devel_isolated/eigen_stl_containers -DCMAKE_INSTALL_PREFIX=/Users/haoyu/ros_catkin_ws/install_isolated -DCMAKE_BUILD_TYPE=Release -G 'Unix Makefiles'

warning with cmake 2.8.12.2: Argument not separated from preceding token by whitespace

Filled by @dpinol at ros/catkin#586:

When compiling a dry package with cmake 2.8.12.2, I get this warning
You can try it with: https://github.com/dpinol/ros_tests/tree/master/cmake_policy

The fix consists in quoting the second argument of the add_custom_target call (escaping the echo's quotes)

~/svn/catkin_ws/ros_tests/cmake_policy$ make
mkdir -p bin
cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=/opt/ros/hydro/share/ros/core/rosbuild/rostoolchain.cmake  ..
-- The C compiler identification is GNU 4.6.3
-- The CXX compiler identification is GNU 4.6.3
-- Check for working C compiler: /home/dani/bin/cc
-- Check for working C compiler: /home/dani/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /home/dani/branches_svn/scm/bin/utils/developer_utils/g++
-- Check for working CXX compiler: /home/dani/branches_svn/scm/bin/utils/developer_utils/g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found PythonInterp: /usr/bin/python (found version "2.7.3") 
CMake Warning (dev) at /opt/ros/hydro/share/ros/core/rosbuild/rosbuild.cmake:40 (include):
  Syntax Warning in cmake code at

    /opt/ros/hydro/share/ros/core/rosbuild/public.cmake:330:140

  Argument not separated from preceding token by whitespace.
Call Stack (most recent call first):
  CMakeLists.txt:2 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

[rosbuild] Building package cmake_policy

Want to back this issue? Place a bounty on it! We accept bounties via Bountysource.

d19b7cd breaks roscore

Hi,

since the last update my roscore is no longer working:

user@host:~> roscore                                                                                                                                                                                                                                                  0
... logging to /home/user/.ros/log/6bbc2caa-75c7-11e5-af44-0024d7aab6b8/roslaunch-host-6065.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://host:37425/
ros_comm version 1.11.15


SUMMARY
========

PARAMETERS
 * /rosdistro: indigo
 * /rosversion: 1.11.15

NODES

auto-starting new master
process[master]: started with pid [6586]
ROS_MASTER_URI=http://host:11311/

setting /run_id to 6bbc2caa-75c7-11e5-af44-0024d7aab6b8
Traceback (most recent call last):
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/__init__.py", line 298, in main
    p.start()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/parent.py", line 271, in start
    self.runner.launch()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/launch.py", line 646, in launch
    self._setup()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/launch.py", line 623, in _setup
    self._launch_core_nodes()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/launch.py", line 498, in _launch_core_nodes
    name, success = self.launch_node(node, core=True)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/launch.py", line 526, in launch_node
    process = create_node_process(self.run_id, node, master.uri)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/nodeprocess.py", line 131, in create_node_process
    args = create_local_process_args(node, machine)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/node_args.py", line 251, in create_local_process_args
    matches = roslib.packages.find_node(node.package, node.type, rospack=rospack)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslib/packages.py", line 400, in find_node
    return find_resource(pkg, node_type, filter_fn=_executable_filter, rospack=rospack)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslib/packages.py", line 497, in find_resource
    source_path_to_packages = rospack.get_custom_cache('source_path_to_packages', {})
AttributeError: 'RosPack' object has no attribute 'get_custom_cache'
[master] killing on exit

ros has been compiled from source.

Eclipse C++ project incorrectly generated

When following the step to create an Eclispe project using catkin on ros.org/IDEs, it is said that I need to execute

catkin_make --force-cmake -G"Eclipse CDT4 - Unix Makefiles"

This indeed generates an Eclipse project, which can be imported in Eclipse.

But, this command does not modify the .project file using eclipse.awk as is done by the eclipse-project target of cmake.mk, so the required environment variables are not set (and need to be set manually, and get overridden each the time project is (re)created).

In my opinion there are two way of tackling this issue:

  • the Eclipse project generation command needs to be fixed to include the environment variables (again).
  • The ros.org/IDEs page needs to be updated, telling users to use make -f $(rospack find mk)/cmake.mk eclipse-project (from the workspace build directory) in order to create a project including the environment variables.

Cannot build jade roslib with OS X Yosemite

There is a indigo installation in /opt/ros/indigo, but its not sourced and I logged in again...
Can someone help?


cd /Users/tatsch/ros_jade_ws/build_isolated/roslib && /opt/ros/jade/env.sh cmake /Users/tatsch/ros_jade_ws/src/ros/roslib -DCATKIN_DEVEL_PREFIX=/Users/tatsch/ros_jade_ws/devel_isolated/roslib -DCMAKE_INSTALL_PREFIX=/opt/ros/jade -DCMAKE_BUILD_TYPE=Release -G 'Unix Makefiles'
-- Using CATKIN_DEVEL_PREFIX: /Users/tatsch/ros_jade_ws/devel_isolated/roslib
-- Using CMAKE_PREFIX_PATH: /opt/ros/jade;/Users/tatsch/ros_catkin_ws/devel;/opt/ros/indigo;/usr/local
-- This workspace overlays: /opt/ros/jade;/Users/tatsch/ros_catkin_ws/devel;/opt/ros/indigo
-- Using PYTHON_EXECUTABLE: /usr/local/bin/python
-- Using default Python package layout
-- Using empy: /usr/local/lib/python2.7/site-packages/em.pyc
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /Users/tatsch/ros_jade_ws/build_isolated/roslib/test_results
-- Found gtest: gtests will be built
-- Using Python nosetests: /usr/local/bin/nosetests-2.7
-- catkin 0.6.14
Traceback (most recent call last):
File "/Users/tatsch/ros_jade_ws/build_isolated/roslib/catkin_generated/generate_cached_setup.py", line 22, in
code = generate_environment_script('/Users/tatsch/ros_jade_ws/devel_isolated/roslib/env.sh')
File "/opt/ros/jade/lib/python2.7/site-packages/catkin/environment_cache.py", line 62, in generate_environment_script
env_after = ast.literal_eval(output.decode('utf8'))
File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 49, in literal_eval
node_or_string = parse(node_or_string, mode='eval')
File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 37, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "", line 1
ROS_DISTRO was set to 'indigo' before. Please make sure that the environment does not mix paths from different distributions.
^
SyntaxError: invalid syntax
CMake Error at /opt/ros/jade/share/catkin/cmake/safe_execute_process.cmake:11 (message):
execute_process(/usr/local/bin/python
"/Users/tatsch/ros_jade_ws/build_isolated/roslib/catkin_generated/generate_cached_setup.py")
returned error code 1
Call Stack (most recent call first):
/opt/ros/jade/share/catkin/cmake/all.cmake:186 (safe_execute_process)
/opt/ros/jade/share/catkin/cmake/catkinConfig.cmake:20 (include)
CMakeLists.txt:3 (find_package)

-- Configuring incomplete, errors occurred!
See also "/Users/tatsch/ros_jade_ws/build_isolated/roslib/CMakeFiles/CMakeOutput.log".

dh_auto_test/rosbuild issue

I have experienced an issue on Ubuntu 14.04/Indigo with dh_auto_test and rosbuild.
At the end of the dh_auto_test step, a clean test result is done by calling a file build.make like this: CMakeFiles/rosbuild_clean-test-results.dir/build. This build.make generate this error:
make[4]: Entering directory `/var/lib/jenkins/workspace/........./obj-x86_64-linux-gnu'
if ! rm -rf /home/xxxx/.ros/test_results/xxxx; then echo "WARNING:\ failed\ to\ remove\ test-results\ directory"; fi
/bin/sh: 1: Syntax error: end of file unexpected (expecting "fi")

If you look at the error, you can see that after "directory" there is a "". This "" need to be removed. I found that build.make is generated from a ros cmake file: "/opt/ros/indigo/share/ros/core/rosbuild/public.cmake". So, in order to fix this issue, you need to modify the line 365 of /opt/ros/indigo/share/ros/core/rosbuild/public.cmake by replacing directory"\ by directory".

I know that rosbuild is not the recommended build for ROS but could you fix this issue in the next release?

i can't install ROS Groovy!!

i have follow the steps in the guide installation and i have some problems:

  • i have this message when i open the terminal bash: /opt/ros/groovy/setup.bash: Aucun fichier ou dossier de ce type.
  • he didn't know this command sudo rosdep init .in the terminal they write command not found
    -when i use this sudo apt-get install ros-groovy-desktop in the terminal:the said that there some backages are not authenticated put i have tray to have them when i choise yes i have this msg :Impossible de récupérer http://172.29.112.190/ubuntu/pool/main/liba/libav/ffmpeg_0.8.6-0ubuntu0.12.04.1_all.deb Impossible de se connecter à 172.29.112.190:http:
    -i haven't find a folder of ROS in my home folder.
    iam beginner with linux, i am using ubuntu 12.04

rosunit fails to generate XML for a unit test that throws an exception

For example, an easy way to test this is to make a C++ unit test that intentionally causes a segmentation fault and does not catch it.

The output from such a test looks like so:

-- run_tests.py: execute commands
  /opt/ros/indigo/share/rostest/cmake/../../../bin/rostest --pkgdir=/home/preed/src/test/src/test_project --package=test_project --results-filename test_test_project_test.xml --results-base-dir /home/preed/src/test/build/test_project/test_results /home/preed/src/test/src/test_project/test/test_project_test.test 
... logging to /home/preed/.ros/log/rostest-regulus-113281.log
[ROSUNIT] Outputting test results to /home/preed/src/test/build/test_project/test_results/test_project/rostest-test_test_project_test.xml
Traceback (most recent call last):
  File "/opt/ros/indigo/share/rostest/cmake/../../../bin/rostest", line 36, in <module>
    rostestmain()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rostest/__init__.py", line 268, in rostestmain
    _main()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rostest/rostest_main.py", line 171, in rostestmain
    result = xml_runner.run(suite)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosunit/xmlrunner.py", line 263, in run
    result.print_report(stream, time_taken, out_s, err_s)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosunit/xmlrunner.py", line 190, in print_report
    stream.write(ET.tostring(self.xml(time_taken, out, err).getroot(), encoding='utf-8', method='xml'))
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosunit/xmlrunner.py", line 176, in xml
    test_suite.append(info.xml())
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosunit/xmlrunner.py", line 70, in xml
    self._print_error(testcase, 'failure', self._failure)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosunit/xmlrunner.py", line 102, in _print_error
    error.set('type', str(error[0].__name__))
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 266, in __getitem__
    return self._children[index]
IndexError: list index out of range
-- run_tests.py: verify result "/home/preed/src/test/build/test_project/test_results/test_project/rostest-test_test_project_test.xml"
Invalid XML in result file '/home/preed/src/test/build/test_project/test_resultstest_project/rostest-test_test_project_test.xml' (even after trying to tidy it): no element found: line 2, column 0 
make[3]: Leaving directory `/home/preed/src/test/build/test_project'

There are two problems in the _TestInfo._print_error method. The first is that it creates a local variable named "error" that hides the "error" argument passed into it, so attempts to access the argument are actually accessing the local variable instead. The second is that it tries to call a method named "error.text", but error.text is actually a value that should be assigned.

I've got a fix for this but am having a little difficulty figuring out how to make a unit test that reasonably demonstrates the problem, since I observed it by having a separate, standalone C++ test that was segfaulting...

roslib undefined reference to ros::package::getPlugins

I'm seeing a link error when I try to link against the image_transport package:

/opt/ros/hydro/lib/libimage_transport.so: undefined reference to `ros::package::getPlugins(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, bool)'

This is coming from libraries that I have installed from binaries, so I don't think it's isolated to my system. It also looks like JSK may be having a similar issue: jsk-ros-pkg/jsk_common#463

It looks like 494bc0b changed the roslib ABI, and it's causing linking errors downstream for some reason.

roscd behaviour without input is different between rosbash and roszsh

Hi,

The rosbash version of roscd checks CMAKE_PREFIX_PATH, while the roszsh version does not. As a result, after source'ing (setup.[bash|zsh], depending on the shell I use) the bash behaviour of roscd without parameters goes to /path/to/workspace/devel, while the zsh behavior is the following error:
No ROS_WORKSPACE set. Please set ROS_WORKSPACE to use roscd with no arguments.

Is there a specific reason for this difference in behaviour?

roslaunch: feature request: remap service name

In the documentation, remapping only works for ros topic and parameter. I don't know if there is some particular reason not to remapping service name. If not, could we have the feature in the future?

[rosbash] zsh completion error

I recently updated all my ROS packages to 1.11.8, I started having issues with command completion in zsh. Trying to rosrun a program (package = mipex_sensor, program = "mipex_node"), I type rosrun mip, which autocompletes the package to mipex_sensor as expected, then I type mip again and I get :

rosrun mipex_sensor mipfind: `[my catkin workspace]/devel/lib/mipex_sensor\n[my catkin workspace]/devel/lib/mipex_sensor': No such file or directory

I can see the error comes from the completion script executing find with a would-be-multiline argument which ends up single-line because the \n is uninterpreted. After fiddling around I find the source of the issue : /opt/ros/indigo/share/rosbash/roszsh, _roscomplete_search_dir(), line 329 :

opts=`find $pkgdir $catkin_package_libexec_dir ${=1} -print0 | tr '\000' '\n' | sed -e "s/.*\/\(.*\)/\1/g"`

with some debugging, I find that the problem comes from $catkin_package_libexec_dir. Strangely enough, echo'ing it shows a newline, but when passed as arg to find, the newline turns back into a \n. Or maybe it's correctly passed with a newline but still as a single string (as if quoted) ? I'm not sure. Regardless, I came up with this workaround :

opts=`find $pkgdir $( echo -en "$catkin_package_libexec_dir" ) ${=1} -print0 | tr '\000' '\n' | sed -e "s/.*\/\(.*\)/\1/g"`

Hope that helps :p. Keep up the awesome work

Distro: Arch Linux
Version: 1.11.8

Deprecated use of "find"

rosbash uses "+111" as a -perm argument to find, and I'm pretty sure +111 is used in a few other places as well.

Using "+" in perm has been deprecated in find for over 8 years, and was completely removed in new versions of find. (see man find)

This causes rosrun to not function AT ALL in Fedora 19+.

Might I suggest using "-111" instead?

Build and install ROS from source from scratch...

Hi, all:

ros wiki has already shown one method for installing everything from source
http://wiki.ros.org/indigo/Installation/Source#Installing_from_source

However, those special commands including
rosinstall_generator
wstool
rosdep
etc.
make the compilation even more obscure.
Users like me still prefer using traditional
./configure
./make
./make install
to have everything built from scratch.

Should there be such a manual for ROS installation from source, instead of this wiki page
http://wiki.ros.org/indigo/Installation/Source#Installing_from_source ????

Best Regards
Pei

rosrun completion incorrect for files with spaces

When tab-completing a filename with spaces with rosrun, the space in the filename is not escaped properly.

For example:

touch 'foo bar'
rosrun roscpp_tutorials talker foo<TAB>

Completes to:

rosrun roscpp_tutorials talker foo bar

Instead, it should complete with the space escaped:

 rosrun roscpp_tutorials talker foo\ bar

(obviously the talker node doesn't take files as arguments, but the example serves to demonstrate how tab-completion is incorrect).

ROS_LANG_DISABLE no longer works for rosbuild

I noticed that ROS_LANG_DISABLE no longer disables message generation.

This is easy to duplicate using a simple package with some messages. Just use "roscreate-pkg" to make a package, and add a message file to it.

Set ROS_LANG_DISABLE=roslisp:rosjava

When you type "make", messages will be built for the roslisp client.

It looks like CMAKE exports from roscpp, rospy and roslisp are being included by either "roslang.cmake" in roslang or "public.cmake" in rosbuild.

These tools should check ROS_LANG_DISABLE and disable message generation accordingly.

roslib dependency to rospack not exported corretly to CMake?

ROS version: Indigo
Operating system: Ubuntu Trusty (14.04)
roslib package version: ros-indigo-roslib 1.11.13-0trusty-20160627-161857-0700

We notice a compilation issue in our environment.
The error happens in the case where we invoke CMake directly (not via catkin) and that the environment (setup.bash) is not sourced.
When building a node that depends on roslib (indirectly), we get a linker error:

ld: warning: librospack.so, needed by /opt/ros/indigo/lib/libroslib.so, not found (try using -rpath or -rpath-link)                                                                                    
/opt/ros/indigo/lib/libroslib.so: undefined reference to `rospack::ROSPack::run(std::string const&)'                                                                                     
collect2: error: ld returned 1 exit status                                                                          

Looking at the CMake config for roslib, the error makes sense:

$ grep "set(libraries" /opt/ros/indigo/share/roslib/cmake/roslibConfig.cmake
set(libraries "roslib")

Without going too deep in the roslib package I would expect to have:

set(libraries "roslib;rospack")

Or even:

set(libraries "rospack")

I wanted to propose a patch to add the dependency to the CMakeLists.txt and package.xml, however the information is already present:

Any idea why the roslibConfig.cmake does not list the dependencies of the CMakeLists.txt/package.xml?
I do not have a deep understanding of how the whole build is working so I may have made a few wrong assumptions.

download_checkmd5.py cannot be found through rospack find in groovy

With a recent switch to groovy some of our dry 3rd libraries which download and extract tarballs before compilation broke. All Makefiles contain and break at the following line:

rospack find rosbuild/bin/download_checkmd5.py $(TARBALL_URL) $(TARBALL)

with rosmake complaining that it cannot find download_checkmd5.py. On my system with groovy installed via aptitude 'rospack find rosbuild' ends up in /opt/ros/groovy/share/rosbuild whereas the script is located in '/opt/ros/groovy/share/ros/core/rosbuild/bin'.

Is this behavior intended or a bug in rosbuild? In case it is desired behavior, what is the suggested way of finding and using download_checkmd5.py? Thanks a lot for your support!

rosboost_cfg can't find boost::system on Indigo

As seen on ROS Answers: http://answers.ros.org/question/187492/xv_11_laser_driver-build-error/

CMake Error at /opt/ros/indigo/share/ros/core/rosbuild/public.cmake:847 (message):
  [rosboost-cfg --libs system] failed with error: Traceback (most recent call
  last):

    File "/opt/ros/indigo/bin/rosboost-cfg", line 35, in <module>
      rosboost_cfg.main()
    File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 359, in main
      output = lflags(ver, options.lflags.split(','))
    File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 278, in lflags
      s += lib_flags(ver, lib) + " "
    File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 268, in lib_flags
      lib = find_lib(ver, name)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 238, in find_lib
      raise BoostError('Could not locate library [%s], version %s'%(name, ver))

  rosboost_cfg.rosboost_cfg.BoostError: "Could not locate library [system],
  version (1, 54, 0, '/usr', '/usr/include', True, True)"

Call Stack (most recent call first):
  CMakeLists.txt:29 (rosbuild_link_boost)

`rosboost-cfg --lflags thread` fails on standard ubuntu 14.04

This problem is already known and was more or less repaired within rosbuild by #63.

However, this commit still doesn't repair the simple and well-established
command line rosboost-cfg --lflags thread that is used in older manifest.xml files to export cflags.

$ rosboost-cfg --ldflags thread
Usage: rosboost-cfg [options]

rosboost-cfg: error: no such option: --ldflags
robot@robot10:~/ros/indigo/muffin-dry/mobman/calvin_navigation$ rosboost-cfg --lflags thread
Traceback (most recent call last):
  File "/opt/ros/indigo/bin/rosboost-cfg", line 35, in <module>
    rosboost_cfg.main()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 362, in main
    output = lflags(ver, options.lflags.split(','))
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 280, in lflags
    s += lib_flags(ver, lib) + " "
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 270, in lib_flags
    lib = find_lib(ver, name)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosboost_cfg/rosboost_cfg.py", line 240, in find_lib
    raise BoostError('Could not locate library [%s], version %s'%(name, ver))
rosboost_cfg.rosboost_cfg.BoostError: "Could not locate library [thread], version (1, 54, 0, '/usr', '/usr/include', True, True)"

"test" target reserved in cmake

Heya,

I just hit this cmake warning with cmake 3.0.0

CMake Warning (dev) at ~/ros/indigo/core/share/ros/core/rosbuild/public.cmake:320 (add_custom_target):
  Policy CMP0037 is not set: Target names should not be reserved and should
  match a validity pattern.  Run "cmake --help-policy CMP0037" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.
  The target name "test" is reserved or not valid for certain CMake features,
  such as generator expressions, and may result in undefined behavior.
Call Stack (most recent call first):
  CMakeLists.txt:13 (rosbuild_init)
This warning is for project developers.  Use -Wno-dev to suppress it.

The relevant policy section states:

Target names reserved by one or more CMake generators are not allowed.
Among others these include "all", "help" and "test".

The OLD behavior for this policy is to allow creating targets with
reserved names or which do not match the validity pattern.

The NEW behavior for this policy is to report an error
if an add_* command is used with an invalid target name.
This policy was introduced in CMake version 3.0.  CMake version
3.0.0 warns when the policy is not set and uses OLD behavior.  Use
the cmake_policy command to set it to OLD or NEW explicitly.

I'm not sure what you'll want to do here.
Either you rename the target throughout the project (I don't know what needs to be changed in this case) or set the policy explicitly to OLD.
I strongly favor the first option, but I'm not sure whether this is official (and stable) API..

roslaunch: feature request: remap service

In the documentation, remapping only works for topic and parameter. I don't know if there is some particular reason not to remapping service. If not, could we have the feature in the future?

rossrv md5 and gendeps --md5 differs in groovy

HI,

the reuslt of rossrv md5 and gendeps --md5 differs in groovy, which produces same value in fuerte.

$ rossrv md5 object_manipulation_msgs/GraspPlanning
01a11c1cdea613dd8705f368e1dc93dc
$ rosrun roslib gendeps --md5 rospack find object_manipulation_msgs/srv/GraspPlanning.srv
db313b83432c8e8e7bc948bf53911e92

rospython: ability to choose python shell

It would be nice to have ability to choose python shell, for example ipython instead of pure python. As I understand ipython supposed to be a drop-in replacement, thus command-line interface should be compatible.

Something like ROS_PYTHON_SHELL environment variable, which defaults to python, would be sufficient I guess.

Video Stream is not happening in ARDRONE

Hi I am trying to get the video output of ARDRONE and process the images.

I used the default code given by ROS. It's not displaying now. Where am I wrong here ? Launch file as well as my code is also perfect.

This issue is not addressed including ROS answers and SO. Feeling so demotivated.


#!/usr/bin/env python
from __future__ import print_function
import roslib
import sys
import rospy
import cv2
from std_msgs.msg import String
from sensor_msgs.msg import Image
from cv_bridge import CvBridge, CvBridgeError
 


class image_converter:
 
  def __init__(self):
     self.image_pub = rospy.Publisher("image_topic_2",Image,queue_size=10)
   
     self.bridge = CvBridge()
     self.image_sub = rospy.Subscriber("image_topic",Image,self.callback)
   
  def callback(self,data):
     try:
       cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8")
     except CvBridgeError as e:
       print(e)
      
     (rows,cols,channels) = cv_image.shape
     if cols > 60 and rows > 60 :
        cv2.circle(cv_image, (50,50), 10, 255)
   
     cv2.imshow("Image window", cv_image)
     cv2.waitKey(3)

def main(args):
    ic = image_converter()
    rospy.init_node('image_converter', anonymous=True)
    try:
      rospy.spin()
    except KeyboardInterrupt:
      print("Shutting down")
    cv2.destroyAllWindows()
  
if __name__ == '__main__':
    main(sys.argv)



Should I have to change any image topics here or what is the issue ?
Please refer this for further info. http://answers.ros.org/question/252593/video-stream-needed-for-ardrone/

rosunit Incorrectly Serializes CDATA

rosunit outputs the stdout and stderr using CDATA tags. However, the CDATA tags are incorrectly escaped by the XML serializer like so:

<testsuite errors="0" failures="0" name="unittest.suite.TestSuite" tests="1" time="0.000">
<testcase classname="test.test_xmlrunner.TestTest" name="test_foo" time="0.000" />
<system-out><![CDATA[
Foo &gt; Bar
]]></system-out>
<system-err>&lt;![CDATA[
Baz
]]&gt;</system-err></testsuite>

Correctly serialized XML would look like:

<testsuite errors="0" failures="0" name="unittest.suite.TestSuite" tests="1" time="0.000">
<testcase classname="test.test_xmlrunner.TestTest" name="test_foo" time="0.000" />
<system-out><![CDATA[
Foo > Bar
]]></system-out>
<system-err><![CDATA[
Baz
]]></system-err></testsuite>

make test using rosbuild does not work on groovy?

I have trouble on make test for rosbuild package on groovy.
I'm not sure if this is the problem of rosbuild, but if we use rosbulid with 1.9.45, it wokrs, but with the rosbulid 1.9.49, it says

Running tests...
Test project /var/lib/jenkins/workspace/hrpsys-ros-bridge-quick-test/ros/groovy/rtm-ros-robotics/rtmros_common/hironx_ros_bridge/build

No tests were found!!!

If you have test code for make test in rosbuild package, let me know. I'd like to check them.

package source code is available here:
https://code.google.com/p/rtm-ros-robotics/source/browse/#svn%2Ftrunk%2Frtmros_common%2Fhrpsys_tutorials%2Flaunch

make log is available here:
http://jenkins.jsk.imi.i.u-tokyo.ac.jp:8080/job/hrpsys-ros-bridge-quick-test/342/consoleFull

Man pages

Please, could you write a man page for the following programs:

  • binary-without-manpage usr/bin/rosmake
  • binary-without-manpage usr/bin/roscreate-pkg
  • binary-without-manpage usr/bin/rosboost-cfg
  • binary-without-manpage usr/bin/rosunit
  • binary-without-manpage usr/bin/rosrun
  • binary-without-manpage usr/bin/rosclean

Although is not mandatory, it's a good practice in unix system, specially in debian and derivatives that every binary has its own manpage.

rosbash: zsh auto-completion issues

  • roslaunch: good
  • rosrun:
    • package auto-completes
    • executable does not autocomplete for installed executables
    • executable autocompletes git hooks in addition to executables
  • roscd: good
  • rostopic pub:
    • topic name auto-completes
    • message type auto-completes (but it would be nice if this was determined automatically if the topic is already subscribed to)
    • message cmd-line YAML does not autocomplete

roslib does not provide ros::package::getPath equivalents for catkin

In rosbuild, it was possible to use rosbuild_download_data to download data into the source directory, and then get the path to that data with ros::package::getPath().

In catkin, it's no longer recommended to download data into the source directory, so we download it into the package's share directory instead. Unfortunately, there isn't a matching ros::package function to get the share path for our package, so it's much more difficult to find files downloaded there.

tl;dr: please add ros::package::getSharePath() or similar to roslib

how to add or use tfx python module for catkin?

i download a repository [ https://github.com/simon0793/pr2_simu... ] i am using catkin_workplace when ever i run python code

python simulation_one_motion_queue.py

every time error comes tfx not found as;

raise ResourceNotFound(name, ros_paths=self._ros_paths)
rospkg.common.ResourceNotFound: tfx
ROS path [0]=/opt/ros/indigo/share/ros
ROS path [1]=/home/mudasser/p/src
ROS path [2]=/opt/ros/indigo/share
ROS path [3]=/opt/ros/indigo/stacks

ROS_ROOT set incorrectly in ROS Groovy

In the latest debian packages for ROS Groovy (as of 2013-10-2) the environment variable ROS_ROOT is set incorrectly to /share/ros when it should be set to /opt/ros/groovy/share/ros. This breaks tab-completion for all ROS tools.

Failure processing 'collada_parser' while building catkin workspace. ROS indigo on Rasberry Pi Jessie.

For the past couple of days I have been following This guide to install ROS indigo on my Raspberry Pi 2 with debian Jessie. I followed the guide without encountering any difficulties... until I started building the Catkin workspace. While processing the 87th package, it threw me an error saying:
Failed to process package 'collada_parser'

I have looked around multiple forums and tried some potential solutions including
ldconfig -v
But none seem to work.

There is one part of the guide which I didn't follow which was to patch collada_urdf. I'm not sure if this is the cause of this error since I am getting a failure with 'collada_parser' and not 'collada_urdf'.

The output pertaining to the collada_parser failure is as follows:

/home/pi/ros_catkin_ws/src/robot_model/collada_parser/src/collada_parser.cpp:1168:47: error: ‘class urdf::Link’ has no member named ‘visual’
/home/pi/ros_catkin_ws/src/robot_model/collada_parser/src/collada_parser.cpp:1169:18: error: ‘class urdf::Link’ has no member named ‘collision’
/home/pi/ros_catkin_ws/src/robot_model/collada_parser/src/collada_parser.cpp:1169:47: error: ‘class urdf::Link’ has no member named ‘visual’
/home/pi/ros_catkin_ws/src/robot_model/collada_parser/src/collada_parser.cpp: In member function ‘void urdf::ColladaModelReader::_ExtractRobotAttachedActuators(ColladaDOM150::domArticulated_systemRef)’:
/home/pi/ros_catkin_ws/src/robot_model/collada_parser/src/collada_parser.cpp:2039:40: error: ‘class urdf::Joint’ has no member named ‘limits’
/home/pi/ros_catkin_ws/src/robot_model/collada_parser/src/collada_parser.cpp:2040:37: error: ‘class urdf::Joint’ has no member named ‘limits’
/home/pi/ros_catkin_ws/src/robot_model/collada_parser/src/collada_parser.cpp:2041:29: error: ‘class urdf::Joint’ has no member named ‘limits’
/home/pi/ros_catkin_ws/src/robot_model/collada_parser/src/collada_parser.cpp: In member function ‘boost::shared_ptrurdf::Joint urdf::ColladaModelReader::_getJointFromRef(xsToken, daeElementRef)’:
/home/pi/ros_catkin_ws/src/robot_model/collada_parser/src/collada_parser.cpp:2434:29: error: request for member ‘find’ in ‘((urdf::ColladaModelReader*)this)->urdf::ColladaModelReader::model.boost::shared_ptr::operator->urdf::ModelInterface()->urdf::ModelInterface::joints’, which is of non-class type ‘int’
/home/pi/ros_catkin_ws/src/robot_model/collada_parser/src/collada_parser.cpp:2434:59: error: request for member ‘end’ in ‘((urdf::ColladaModelReader*)this)->urdf::ColladaModelReader::model.boost::shared_ptr::operator->urdf::ModelInterface()->urdf::ModelInterface::joints’, which is of non-class type ‘int’
/home/pi/ros_catkin_ws/src/robot_model/collada_parser/src/collada_parser.cpp:2437:38: error: request for member ‘find’ in ‘((urdf::ColladaModelReader*)this)->urdf::ColladaModelReader::model.boost::shared_ptr::operator->urdf::ModelInterface()->urdf::ModelInterface::joints’, which is of non-class type ‘int’
CMakeFiles/collada_parser.dir/build.make:62: recipe for target 'CMakeFiles/collada_parser.dir/src/collada_parser.cpp.o' failed
make[2]: *** [CMakeFiles/collada_parser.dir/src/collada_parser.cpp.o] Error 1
CMakeFiles/Makefile2:387: recipe for target 'CMakeFiles/collada_parser.dir/all' failed
make[1]: *** [CMakeFiles/collada_parser.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
<== Failed to process package 'collada_parser':
Command '['/opt/ros/indigo/env.sh', 'make', '-j4', '-l4']' returned non-zero exit status 2

Reproduce this error by running:
==> cd /home/pi/ros_catkin_ws/build_isolated/collada_parser && /opt/ros/indigo/env.sh make -j4 -l4

Command failed, exiting.

Any help would be greatly appreciated, thank you.

escaping ROS_PACKAGE_NAME fails when setting cmake version in custom rosconfig file

Moved from ros/catkin#584 filled by @dpinol:

Related to ros/roscomm#245 :

Please try this:

  1. Create a "/opt/ros/hydro/share/ros/rosconfig.cmake" file with only this contents
cmake_minimum_required(VERSION 2.8.3)
  1. Create a dry package which uses a rosconsole macro and compile it (eg. https://github.com/dpinol/ros_tests/tree/master/cmake_policy) with "make VERBOSE=1". You'll see that it has the wrong scaping for the package name: -DROS_PACKAGE_NAME="'"cmake_policy"'"
    Compilation will fail.

Build failure: UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 35: ordinal not in range(128)

I upgraded from hydro to indigo and when running rosmake I now get the following exceptions:

Exception in thread 2: sicktoolbox2: 0.1 sec ] [ hokuyo_node: 0.0 sec ]                                                                               [ 2 Active 44/47 Complete ]
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosmake/parallel_build.py", line 160, in run
    (result, result_string) = self.rosmakeall.build(pkg, self.argument, self.build_queue.robust_build)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosmake/engine.py", line 415, in build
    (returncode, pstd_out) = self._build_package(p, argument)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rosmake/engine.py", line 394, in _build_package
    return (command_line.returncode, pstd_out.decode())
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 35: ordinal not in range(128)

This effectively prevents a successful build.

The solution is easy: Change line 394 in file /opt/ros/indigo/lib/python2.7/dist-packages/rosmake/engine.py:

Replace

return (command_line.returncode, pstd_out.decode())

with

if isinstance(pstd_out, str):
   return (command_line.returncode, pstd_out)
else:
    return (command_line.returncode, pstd_out.decode())

Once replaced builds succeed again.

Bug entry in catkin (though I experience it with rosmake)
ros-infrastructure/catkin_pkg#51

Related:
http://answers.ros.org/question/31915/i-cant-create-a-package/

rosrun doesn't handle file permission correctly

In hydro 'rosrun' ignores all executables, if you're not using 'darwin', which do not have all executable bits set.
This is due to line 38 in the 'rosrun' script, where the permission mask is set for the subsequent 'find' command. I believe 'rosrun' should be able to execute a file for me, if I am the owner of said file and have executable rights without giving executable rights to group members or other users.
The behavior can be reproduced easily if you've an executable which can be executed via 'rosrun' at the moment and remove for exemple the group executable rights via 'chmod'.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.