ros / ros Goto Github PK
View Code? Open in Web Editor NEWCore ROS packages
Home Page: www.ros.org
License: BSD 3-Clause "New" or "Revised" License
Core ROS packages
Home Page: www.ros.org
License: BSD 3-Clause "New" or "Revised" License
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
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/
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...
This will require use to make a hydro-devel branch, update roslib, and release it into hydro.
Please, could you write a man page for the following programs:
Although is not mandatory, it's a good practice in unix system, specially in debian and derivatives that every binary has its own manpage.
since mk/download_unpack_build.mk internally uses rosbuild/ file, I think mk should depends on rosbuild. Is it correct?
[1] https://github.com/ros/ros/blob/indigo-devel/core/mk/download_unpack_build.mk#L40
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.
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.
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.
There are numerous uses of the python2 print statement in rosunit.
It should use the new print() function with from __future__ import print_function
for python2 compatibility.
This needs to be fixed in hydro-devel.
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.
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
Any chance we can get a --quiet and a --y option for rosclean so it can be scripted?
trac data:
i have follow the steps in the guide installation and i have some problems:
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
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
Moved from ros/catkin#584 filled by @dpinol:
Related to ros/roscomm#245 :
Please try this:
cmake_minimum_required(VERSION 2.8.3)
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?
To support a work around for #3927
A quick fix is to comment out the call to rosdep.
trac data:
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.
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.
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.
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?
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.
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/
Moved from ros-infrastructure/rospkg#39.
By invoking cmake in the root of a package all build files are generated there (instead of under build
as commonly the case). The major problem with that is that the build will generate a CATKIN_IGNORE
marker file in that folder which makes the package not findable anymore due to recent updates to rospkg.
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".
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
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?
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'
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?
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)
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).
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:
The result shows up here:
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?
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
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!
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.
rosmake should use both argument with N (similar as ros/catkin#326).
Running test_junitxml.py on Precise fails:
$ python3 test/test_junitxml.py
File "test/test_junitxml.py", line 80
f.write(u"""<?xml version="1.0" encoding="UTF-8"?>""")
^
SyntaxError: invalid syntax
This is because python 3.2 in Precise does not support u'string' syntax.
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
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 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
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
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'.
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)"
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 > Bar
]]></system-out>
<system-err><![CDATA[
Baz
]]></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>
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:
make -f $(rospack find mk)/cmake.mk eclipse-project
(from the workspace build directory) in order to create a project including the environment variables.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.
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..
This package install a script that does not start with the #! sequence that marks interpreted scripts.
at http://wiki.ros.org/action/login/ROS/Tutorials/NavigatingTheFilesystem
you can now change
/opt/ros/hydro/share/roscpp
to
/opt/ros/indigo/share/roscpp
and
/opt/ros/indigo/base/install/share:/opt/ros/indigo/base/install/stacks
to
/opt/ros/indigo/base/install/share:/opt/ros/indigo/base/install/stacks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.