ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

rado0x54's profile - activity

2018-11-16 19:00:10 -0500 received badge  Famous Question (source)
2018-11-16 19:00:10 -0500 received badge  Popular Question (source)
2018-11-16 19:00:10 -0500 received badge  Notable Question (source)
2018-03-29 16:44:14 -0500 received badge  Nice Question (source)
2014-01-28 17:25:28 -0500 marked best answer roslaunch <machine> tag - custom ssh port

Hey,

is there currently any way to specify a custom ssh port on a remote <machine> target? I tried to specify an alias (from .ssh/config) and address="fqdn:port" but none works (cannot resolve host address for machine:port (or ALIAS)).

Thanks!

2014-01-28 17:23:16 -0500 marked best answer IPv6 Support

Hey,

I just wanted to ask the community if there are any plans to make ROS support the IPv6 stack? I think it would make certain setups much easier.

$ rosrun rviz rviz
[ INFO] [1322732482.079127983]: rviz revision number 1.6.7
[ INFO] [1322732482.079207093]: ogre_tools revision number 1.6.2
[ INFO] [1322732482.079243271]: compiled against OGRE version 1.7.3 (Cthugha)
Couldn't find an AF_INET address for [XXXX.ipv6.XXXX.com]
Couldn't find an AF_INET address for [XXXX.ipv6.XXXX.com]

$ rostopic list
ERROR: Unable to communicate with master!

$ ping6 XXXX.ipv6.XXXX.com
PING XXXX.ipv6.XXXX.com(2a01:xxx:xxx:xx::x) 56 data bytes
64 bytes from 2a01:xxx:xxx:xx::x icmp_seq=1 ttl=52 time=32.0 ms
...
2014-01-28 17:23:03 -0500 marked best answer Linking Problems in Ubuntu 11.10

Hi ROS Community,

I think this question could be a little bit off topic, but I since this community has a lot of expertise in building stuff, I think it's a good place to ask.

I'm trying to build a bigger project, which I moved into the ROS build environment. In 11.04 it builds just fine. In 11.10 there it cannot find any(!) dependencies, even though they are all in the call!

ok this is what rosmake generates:

/usr/bin/c++   -O2 -g    -L/home/mriedel/MPI/repos/TeleKyb2/trunk/stacks/telekyb_deps/armadillo_wrapper/lib -Wl,-rpath,/home/mriedel/MPI/repos/TeleKyb2/trunk/stacks/telekyb_deps/armadillo_wrapper/lib -larmadillo -L/home/mriedel/MPI/repos/TeleKyb2/trunk/stacks/telekyb_deps/ace_wrapper/lib -Wl,-rpath,/home/mriedel/MPI/repos/TeleKyb2/trunk/stacks/telekyb_deps/ace_wrapper/lib -lACE -L/home/mriedel/MPI/repos/TeleKyb2/trunk/stacks/telekyb_deps/ois_wrapper/lib -Wl,-rpath,/home/mriedel/MPI/repos/TeleKyb2/trunk/stacks/telekyb_deps/ois_wrapper/lib -lOIS -Wl,-rpath,/opt/ros/electric/stacks/visualization_common/ogre/ogre/lib -L/opt/ros/electric/stacks/visualization_common/ogre/ogre/lib/OGRE -Wl,-rpath,/opt/ros/electric/stacks/visualization_common/ogre/ogre/lib,-rpath,/opt/ros/electric/stacks/visualization_common/ogre/ogre/lib/OGRE -L/opt/ros/electric/stacks/visualization_common/ogre/ogre/lib -lOgreRTShaderSystem -lOgreMain -lpthread -L/home/mriedel/MPI/repos/TeleKyb2/trunk/stacks/telekyb_deps/physx2_wrapper/lib -Wl,-rpath,/home/mriedel/MPI/repos/TeleKyb2/trunk/stacks/telekyb_deps/physx2_wrapper/lib -lNxCharacter -lNxCooking -lPhysXCore -lPhysXLoader CMakeFiles/SwarmSimX.dir/Main.cpp.o CMakeFiles/SwarmSimX.dir/PhysXDebugRenderer/PhysXDebugRenderer.cpp.o CMakeFiles/SwarmSimX.dir/PhysicEnginePhysX/PhysicEnginePhysX.cpp.o CMakeFiles/SwarmSimX.dir/PhysicEnginePhysX/PhysicEnginePhysXErrorStream.cpp.o CMakeFiles/SwarmSimX.dir/PhysicEnginePhysX/PhysicNodePhysX.cpp.o CMakeFiles/SwarmSimX.dir/PhysicEnginePhysX/RayCastAdapter.cpp.o CMakeFiles/SwarmSimX.dir/RenderEngineOGRE3D/RenderEngineOGRE3D.cpp.o CMakeFiles/SwarmSimX.dir/RenderEngineOGRE3D/RootRenderNodeOGRE3D.cpp.o CMakeFiles/SwarmSimX.dir/RenderEngineOGRE3D/VisualRenderNodeOGRE3D.cpp.o CMakeFiles/SwarmSimX.dir/RenderEngineOGRE3D/LightRenderNodeOGRE3D.cpp.o CMakeFiles/SwarmSimX.dir/RenderEngineOGRE3D/CameraRenderNodeOGRE3D.cpp.o CMakeFiles/SwarmSimX.dir/RenderEngineOGRE3D/DrawerOgre3D.cpp.o CMakeFiles/SwarmSimX.dir/RenderEngineOGRE3D/CustomCameraMan.cpp.o CMakeFiles/SwarmSimX.dir/Architect/Architect.cpp.o CMakeFiles/SwarmSimX.dir/Architect/SceneLoader.cpp.o CMakeFiles/SwarmSimX.dir/DriverLoaderService/DriverLoaderService.cpp.o CMakeFiles/SwarmSimX.dir/Utilities/Utilities.cpp.o  -o SwarmSimX -rdynamic -L/opt/ros/electric/stacks/ros_comm/utilities/xmlrpcpp/lib -L/opt/ros/electric/stacks/ros_comm/messages/std_msgs/lib -L/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp_serialization/lib -L/opt/ros/electric/stacks/ros_comm/utilities/cpp_common/lib -L/opt/ros/electric/stacks/ros_comm/utilities/rostime/lib -L/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp_traits/lib -L/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp/lib -L/opt/ros/electric/stacks/ros_comm/tools/rosconsole/lib ../../libraries/libSwarmSim.so -lros -lrosconsole -lroscpp_serialization -lrostime -lXmlRpc -Wl,-rpath,/opt/ros/electric/stacks/ros_comm/utilities/xmlrpcpp/lib:/opt/ros/electric/stacks/ros_comm/messages/std_msgs/lib:/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp_serialization/lib:/opt/ros/electric/stacks/ros_comm/utilities/cpp_common/lib:/opt/ros/electric/stacks/ros_comm/utilities/rostime/lib:/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp_traits/lib:/opt/ros/electric/stacks/ros_comm/clients ...
(more)
2014-01-28 17:22:54 -0500 marked best answer Variable in export of package manifest

Hi,

I have a quick question about the neat wrapping of an external library. I'm wrapping PhysX into a ros package and would need an variable export of a cflag depending of the word-length of the host system.

cpp cflags="-I${prefix}/include/SDKs/Cooking/include -I${prefix}/include/SDKs/Foundation/include -I${prefix}/include/SDKs/NxCharacter/include -I${prefix}/include/SDKs/Physics/include -I${prefix}/include/SDKs/PhysXLoader/include" lflags="-L${prefix}/lib -Wl,-rpath,${prefix}/lib -lNxCharacter -lNxCooking -lPhysXCore -lPhysXLoader"

Now I want to add a flag -DNX32 or -DNX64 bit to the cflags depending on the host system. (The Makefile installs PhysX binaries automatically for 32bit and 64 bit systems into the package).

Any suggestions on how to nicely do this? Thanks.

2014-01-28 17:22:42 -0500 marked best answer ROS & boost 1.47

Hey, did anyone try to build ROS with boost 1.47 yet? I get some errors. 1.46.1 works fine. ROS seems to use some pretty specific stuff. :).

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/usr/include/c++/4.2.1/bits/stl_iterator_base_types.h:133: error: no type named ‘reference’ in ‘class boost::transform_iterator<boost::algorithm::detail::copy_iterator_rangeF<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::algorithm::split_iterator<__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::use_default, boost::use_default>’
  /opt/local/include/boost/type_traits/has_trivial_destructor.hpp: In instantiation of ‘boost::has_trivial_destructor<boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> > >’:
  /opt/local/include/boost/function/function_template.hpp:911:   instantiated from ‘void boost::function2<R, T1, T2>::assign_to(Functor) [with Functor = boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> >, R = boost::iterator_range<__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, T1 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]’
  /opt/local/include/boost/function/function_template.hpp:722:   instantiated from ‘boost::function2<R, T1, T2>::function2(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> >, R = boost::iterator_range<__gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, T1 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]’
  /opt/local/include/boost/algorithm/string/detail/find_iterator.hpp:51:   instantiated from ‘boost::algorithm::detail::find_iterator_base<IteratorT>::find_iterator_base(FinderT, int) [with FinderT = boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> >, IteratorT = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]’
  /opt/local/include/boost/algorithm/string/find_iterator.hpp:260:   instantiated from ‘boost::algorithm::split_iterator<IteratorT>::split_iterator(IteratorT, IteratorT, FinderT) [with FinderT = boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> >, IteratorT = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >]’
  /opt/local/include/boost/algorithm/string/iter_find.hpp:171:   instantiated from ‘SequenceSequenceT& boost::algorithm::iter_split(SequenceSequenceT&, RangeT&, FinderT) [with SequenceSequenceT = 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> > > >, RangeT = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, FinderT = boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> >]’
  /opt/local/include/boost/algorithm/string/split.hpp:149:   instantiated from ‘SequenceSequenceT& boost::algorithm::split(SequenceSequenceT&, RangeT&, PredicateT, boost::algorithm::token_compress_mode_type) [with SequenceSequenceT = ros::package::V_string, RangeT = std::string, PredicateT = boost::algorithm::detail::is_any_ofF<char>]’
  /Users/mriedel/MPI/CrossCompiling/Source/ros_armv6/ros/core/roslib/src/package.cpp:75:   instantiated from here
  /opt/local/include/boost/type_traits/has_trivial_destructor.hpp:36: error: ‘boost::detail::has_trivial_dtor_impl<boost::algorithm::detail::token_finderF<boost::algorithm::detail::is_any_ofF<char> > >::value’ is not a valid ...
(more)
2014-01-28 17:22:42 -0500 marked best answer Design Question. Why *_msgs/*.h and not ros/*_msgs/*.h?

Hey,

I'm currently creating a Framework for Apple's iOS that includes all the roscpp binaries (for arm6/7 and i386) and the ros header files. If done properly a developer can just import the framework and does not have to worry about architecture or Header location. (runs on simulator(x86) and device(arm)). More Info: http://developer.apple.com/library/ma...

Everything works fine, except of the fact that I had to change all includes to message headers, since they cannot be found under ros, but have independent top-level names. Apple's Framework design only allows for includes like <framework_name>/HEADERSTRUCTURE (here: ros/HEADERSTRUCTURE) so for me, there seems to be no solution to include header files that can not be found unter ros/.

I just wanted to know if it's a good design decision to not group all headers underneath of ros (at least if they are part of roscpp).

I'm also open to suggestions how I can keep the framework structure, without having to rename all references to _msgs/.h

Thanks.

2014-01-28 17:22:17 -0500 marked best answer iPhone/iPad .ros configuration directory

Hey, after days of gruesome compiling and recompiling, I was able to build roscpp for the iPhone. I'll try to publish a detailed HowTo soon including finished frameworks for apr, apr-util, log4cxx, expat, boost and ros including armv6/7/i368 architectures.

I feel I'm stuck at a quite trivial problem now, but I don't know how to solve it. After trying to start my first node I get:

terminate called after throwing an instance of 'boost::filesystem3::filesystem_error' what(): boost::filesystem::create_directory: Operation not permitted: "/private/var/mobile/Applications/XXXXX-XXXXX-XXXXX-XXXX-XXXXXXXXXXXX/.ros/"

Which is logical since the iPhone's sandbox doesn't allow writing there. My question would be how to resolve this problem without messing with the roscpp code itself? Do I absolutely need the Configuration Dir? Is there some local/global parameter to influence its location?

Thanks for the help! Martin

2013-06-01 10:32:42 -0500 received badge  Famous Question (source)
2013-03-12 12:25:12 -0500 received badge  Notable Question (source)
2013-03-12 12:25:12 -0500 received badge  Popular Question (source)
2013-01-28 15:00:53 -0500 received badge  Taxonomist
2012-11-12 05:25:39 -0500 commented answer Unexplainable Segfault (double free) in templated Subscriber (polling)

One more question. Could the const T_& not go out of scope (e.g. a new message overwrite the shared_pointer and it frees the space) while an external thread is trying to access it? Thanks.

2012-11-12 05:04:38 -0500 commented answer Unexplainable Segfault (double free) in templated Subscriber (polling)

Also thanks for the other suggestions. I'll implement this right now.

2012-11-12 05:03:57 -0500 received badge  Popular Question (source)
2012-11-12 05:03:57 -0500 received badge  Notable Question (source)
2012-11-12 05:03:57 -0500 received badge  Famous Question (source)
2012-11-12 05:01:38 -0500 commented answer Unexplainable Segfault (double free) in templated Subscriber (polling)

Oh man, I'm so stupid. I actually use a lot of scoped_locks. No idea how I could forget it here and not even see it. Thanks a million.

2012-11-12 03:39:59 -0500 asked a question Unexplainable Segfault (double free) in templated Subscriber (polling)

Hey ROS-Community,

I have a very weird error in the attached templated subscriber class, that happens very(!) seldom but is quite frustrating.

Class:

/*
 * GenericSubscriber.hpp
 *
 *  Created on: Feb 29, 2012
 *      Author: mriedel
 */

#ifndef GENERICSUBSCRIBER_HPP_
#define GENERICSUBSCRIBER_HPP_

#include <telekyb_defines/telekyb_defines.hpp>
#include <boost/thread/mutex.hpp>

#include <ros/node_handle.h>

namespace TELEKYB_NAMESPACE
{

template <class T_>
class GenericSubscriber {
protected:
    T_ lastMsg;
    boost::mutex lastMsgLock;

    // Subscriber
    ros::Subscriber sub;

    void msgCallback(boost::shared_ptr<T_ const> msg) {
        boost::mutex::scoped_lock(lastMsgLock);
        lastMsg = *msg; // copy
    }

public:
    GenericSubscriber(ros::NodeHandle handle, const std::string& topicName, int queue_size) {
        sub = handle.subscribe(topicName, queue_size, &GenericSubscriber<T_>::msgCallback, this);
    }

    virtual ~GenericSubscriber() {};

    T_ getLastMsg() const {
        boost::mutex::scoped_lock(lastMsgLock);
        return lastMsg; // implicit copy. Maybe we can do this more efficient?
    }
};

}

#endif /* GENERICSUBSCRIBER_HPP_ */

This class enables me to receive generic messages and save the last message in a variable and collect the message with getLastMsg() when needed. Very simple.

Of course it's not the most efficient way to do this (copying the message twice), but it's working for our application. However, every once in a while (seldom) my program crashes when calling getLastMsg() (double free). I don't see where the problem could be located (if in my code or the C++ copy constructor of ROS msgs). Any tips and comments are greatly appreciated.

Thanks! Martin

2012-10-10 23:19:17 -0500 received badge  Famous Question (source)
2012-10-10 23:19:17 -0500 received badge  Popular Question (source)
2012-10-10 23:19:17 -0500 received badge  Notable Question (source)
2012-09-15 10:05:53 -0500 received badge  Notable Question (source)
2012-09-15 10:05:53 -0500 received badge  Famous Question (source)
2012-09-03 23:15:11 -0500 received badge  Famous Question (source)