apolloauto / apollo-platform Goto Github PK
View Code? Open in Web Editor NEWCollections of Apollo Platform Software
Collections of Apollo Platform Software
I built Apollo-platform by using build.sh build. (OS Ubuntu 16.04)
But I failed to start the roscore.
the logs were below:
Traceback (most recent call last):
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/bin/roscore", line 36, in
from rosmaster.master_api import NUM_WORKERS
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rosmaster/init.py", line 35, in
from .main import rosmaster_main
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rosmaster/main.py", line 43, in
import rosmaster.master
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rosmaster/master.py", line 45, in
import rosgraph.xmlrpc
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rosgraph/init.py", line 36, in
from . masterapi import Master, MasterFailure, MasterError, MasterException
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rosgraph/masterapi.py", line 49, in
from rospy.impl.broadcast_manager import BroadcastManager
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/init.py", line 49, in
from .client import spin, myargv, init_node,
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/client.py", line 60, in
import rospy.impl.init
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/init.py", line 54, in
from .tcpros import init_tcpros
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/tcpros.py", line 45, in
import rospy.impl.tcpros_service
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 65, in
from broadcast_manager import BroadcastManager
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/broadcast_manager.py", line 58, in
from rospy.impl import participant
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/participant.py", line 28, in
_participant = swig_import_helper()
File "/home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/participant.py", line 20, in swig_import_helper
import _participant
ImportError: /home/allen/test/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/_participant.so: undefined symbol: _ZN3ros11Participant8read_msgEv
I thought about this for a couple of days, but I can not solve this problem.
Any idea? Thanks!
when I run roscore after source compile, some one met same problem?
Traceback (most recent call last):
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/bin/roscore", line 36, in <module>
from rosmaster.master_api import NUM_WORKERS
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rosmaster/__init__.py", line 35, in <module>
from .main import rosmaster_main
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rosmaster/main.py", line 43, in <module>
import rosmaster.master
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rosmaster/master.py", line 45, in <module>
import rosgraph.xmlrpc
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rosgraph/__init__.py", line 36, in <module>
from . masterapi import Master, MasterFailure, MasterError, MasterException
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rosgraph/masterapi.py", line 49, in <module>
from rospy.impl.broadcast_manager import BroadcastManager
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/__init__.py", line 49, in <module>
from .client import spin, myargv, init_node, \
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/client.py", line 60, in <module>
import rospy.impl.init
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/init.py", line 54, in <module>
from .tcpros import init_tcpros
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/tcpros.py", line 45, in <module>
import rospy.impl.tcpros_service
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 65, in <module>
from broadcast_manager import BroadcastManager
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/broadcast_manager.py", line 58, in <module>
from rospy.impl import participant
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/participant.py", line 28, in <module>
_participant = swig_import_helper()
File "/home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/participant.py", line 20, in swig_import_helper
import _participant
ImportError: /home/bailiqun/apollo-platform-2.1.2/ros/install/ros_x86_64/lib/_participant.so: undefined symbol: _ZN3ros11Participant8read_msgEv
在 docker(apolloauto/apollo:dev-x86_64-20180413_2000) 的 ros 之上运行一个多线程 node,ros 报错:
Program received signal SIGILL, Illegal instruction.
[Switching to Thread 0x7fffb4ed0700 (LWP 3918)]
0x00007ffff5f2b1bd in boost::gregorian::date::date(boost::gregorian::greg_year, boost::gregorian::greg_month, boost::gregorian::greg_day) ()
from /usr/local/lib/libpcl_common.so.1.7
在gdb下查看堆栈信息:
(gdb) bt
#0 0x00007ffff5f2b1bd in boost::gregorian::date::date(boost::gregorian::greg_year, boost::gregorian::greg_month, boost::gregorian::greg_day) ()
from /usr/local/lib/libpcl_common.so.1.7
#1 0x00007ffff57618b5 in create_time (converter=
0x7ffff56da7f0 <boost::date_time::c_time::gmtime(long const*, tm*)>)
at /usr/include/boost/date_time/microsec_time_clock.hpp:103
#2 universal_time ()
at /usr/include/boost/date_time/microsec_time_clock.hpp:76
#3 sharedmem_transport::SharedMemorySegment::read_data (this=0x7fffaeed4118,
msg=..., last_read_index=@0x7fffb4ecfb60: 1,
descriptors_sub=descriptors_sub@entry=0x7fffaeed4d18,
addr_sub=addr_sub@entry=0x7fffc00009e0, helper=..., topic="/imu",
header_ptr=...)
at /apollo/apollo-platform/ros/ros_comm/roscpp/src/libros/sharedmem_transport/sharedmem_segment.cpp:217
#4 0x00007ffff575c5b6 in operator() (__closure=0x7fffc0000d90)
at /apollo/apollo-platform/ros/ros_comm/roscpp/src/libros/shm_manager.cpp:242
#5 _M_invoke<> (this=0x7fffc0000d90) at /usr/include/c++/4.8/functional:1732
#6 operator() (this=0x7fffc0000d90) at /usr/include/c++/4.8/functional:1720
#7 std::thread::_Impl<std::_Bind_simpleros::ShmManager::threadFunc()::__lambda1() >::_M_run(void) (this=0x7fffc0000d78) at /usr/include/c++/4.8/thread:115
#8 0x00007ffff4b035b0 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#9 0x00007ffff6673184 in start_thread (arg=0x7fffb4ed0700)
at pthread_create.c:312
#10 0x00007ffff428affd in clone ()
at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
可以看到引起错误的代码在sharedmem_transport::SharedMemorySegment::read_data 的这句代码中:
boost::posix_time::ptime max_wait =
boost::posix_time::microsec_clock::universal_time() +
boost::posix_time::seconds(ROS_SHM_BLOCK_MUTEX_TIMEOUT_SEC);
根据这里,boost::gregorian本身不是线程安全的。那么,apollo ros下是否可运行多线程 结点?或者如果需要在apollo ros下运行多线程结点,需要做什么工作?
设置了ROS_MASTER_SNAPSHOT=1环境变量,运行时无论kill掉roscore还是talker还是listener,在$ROS_ROOT下都找不到snapshot文件.
按文档 里的设置了:
No parameters are recovered after ROS master restarts?
A: To enable recovery from the snapshot, you need to setup ROS_MASTER_SNAPSHOT, which is disabled as default.
Where is the snapshot file?
A: $ROS_ROOT/.master_snapshot.
前提: 这里仅讨论使用ShareMemory的场景
mutex释放、reader_count不减问题。Subscribe端获取Manager中的mutex后,读ShareMemory内存慢会导致Block被占住。如果这样的subscriber如果占住所有block, 或者有subscriber异常退出没有释放导致block中的reader_count 不减,Publisher一端将无法写入问题, 且会在找可用block的循环逻辑里面,导致CPU 100%。
TOPIC ShareMemory重置问题。 当需要publish的新消息长度超过计算出来的消息长度时,会丢弃对用Topic里面的数据, 哪怕数据没有被其他端消费。且重建ShareMemory的逻辑导致了整体代码过于复杂。
丢消息问题。Publisher 通过Signal唤醒Subscribers收取数据, 但是如果Subscriber没有及时收走数, 而Publisher publish速度较快, 会导致Subscriber拿到的智能是wrote_num对应的数据, 而不能取到当前Subscriber last_index -> wrote_num 之间的数据
麻烦开发者帮我确认一下, 先谢了。
In apollo-platform/ros/pb_msgs_example/CMakeLists.txt, there is a line:
include_directories(${CATKIN_INCLUDE_DIRS})
I had to change it into
include_directories(${catkin_INCLUDE_DIRS})
to make build work. Otherwise, the path to dependant header files is not added to the compile command line (-I flag) for this package.
I have been trying to cross-compile one apollo module onto qnx. Most of ROS packages in this repo (except a few python ros packages which do not matter for the moment) are already x-compiled onto QNX. The compilation errors are as the following:
In file included from /home/cdgros/baidu_ws/qnx/install/opt/ros/autonomoose/include/ros/publisher.h:34:0,
from /home/cdgros/baidu_ws/qnx/install/opt/ros/autonomoose/include/ros/node_handle.h:32,
from /home/cdgros/apollo_stage/ros/include/ros/ros.h:45,
from /home/cdgros/code/avic/baidu/apollo/modules/../modules/canbus/canbus.h:29,
from /home/cdgros/code/avic/baidu/apollo/modules/canbus/canbus.cc:17:
/home/cdgros/baidu_ws/qnx/install/opt/ros/autonomoose/include/ros/serialization.h: In instantiation of 'static uint32_t ros::serialization::Serializer<T, Enable>::serializedLength(typename boost::call_traits<T>::param_type) [with T = apollo::canbus::Chassis; Enable = void; uint32_t = unsigned int; typename boost::call_traits<T>::param_type = const apollo::canbus::Chassis&]':
/home/cdgros/baidu_ws/qnx/install/opt/ros/autonomoose/include/ros/serialization.h:173:41: required from 'uint32_t ros::serialization::serializationLength(const T&) [with T = apollo::canbus::Chassis; uint32_t = unsigned int]'
/home/cdgros/baidu_ws/qnx/install/opt/ros/autonomoose/include/ros/serialization.h:849:37: required from 'ros::SerializedMessage ros::serialization::serializeMessage(const M&) [with M = apollo::canbus::Chassis]'
/home/cdgros/baidu_ws/qnx/install/opt/ros/autonomoose/include/ros/publisher.h:123:26: required from 'void ros::Publisher::publish(const M&) const [with M = apollo::canbus::Chassis]'
/home/cdgros/code/avic/baidu/apollo/modules/../modules/common/adapters/adapter_manager.h:238:3: required from here
/home/cdgros/baidu_ws/qnx/install/opt/ros/autonomoose/include/ros/serialization.h:145:34: error: 'const class apollo::canbus::Chassis' has no member named 'serializationLength'
return t.serializationLength();
^
compilation terminated due to -Wfatal-errors.
How does this customized ROS know whether it is a standard ros msg or a protobuf defined msg? Does ros publisher treat these two msgs differently? As my understanding, it make senses that 'const class apollo::canbus::Chassis' has no member named 'serializationLength' since it is generated by 'protoc'.
in this file apollo-platform/ros/ros_comm/roscpp/include/ros/publisher.h it includes "roscpp/SharedMemoryHeader.h" , but I can`t find SharedMemoryHeader.h in the source code? where is this file?
我按照apollo的思路将protocbuffer移植到ros jade上,并且运行pb_msg_example,talker和listener已经可以通信了,但是我确信这个通信仍然是在本地回环进行的,我尝试将etc/transport_mode.yaml复制到jade中,并没有起到任何效果,etc/transport_mode.yaml的内容正常:
transport_mode:0
topic_white_list: ["/shm_sample1", "/shm_sample2"]
我认为是这个文件没有被读取或采用,有哪位朋友做过类似的行为吗,希望能够给我一些提示
I build the apollo-platform in Ubuntu 16.04, and it passed.
But when I run roscore, it outputs the error like below:
Traceback (most recent call last):
File "/home/apollo/Apollo/apollo-platform/install_isolated/bin/rosmaster", line 34, in <module>
import rosmaster
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rosmaster/__init__.py", line 35, in <module>
from .main import rosmaster_main
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rosmaster/main.py", line 43, in <module>
import rosmaster.master
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rosmaster/master.py", line 45, in <module>
import rosgraph.xmlrpc
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rosgraph/__init__.py", line 36, in <module>
from . masterapi import Master, MasterFailure, MasterError, MasterException
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rosgraph/masterapi.py", line 49, in <module>
from rospy.impl.broadcast_manager import BroadcastManager
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rospy/__init__.py", line 49, in <module>
from .client import spin, myargv, init_node, \
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rospy/client.py", line 60, in <module>
import rospy.impl.init
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rospy/impl/init.py", line 54, in <module>
from .tcpros import init_tcpros
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rospy/impl/tcpros.py", line 45, in <module>
import rospy.impl.tcpros_service
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 65, in <module>
from broadcast_manager import BroadcastManager
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rospy/impl/broadcast_manager.py", line 58, in <module>
from rospy.impl import participant
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rospy/impl/participant.py", line 28, in <module>
_participant = swig_import_helper()
File "/home/apollo/Apollo/apollo-platform/install_isolated/lib/python2.7/dist-packages/rospy/impl/participant.py", line 20, in swig_import_helper
import _participant
ImportError: /home/apollo/Apollo/apollo-platform/install_isolated/lib/_participant.so: undefined symbol: _ZN3ros11Participant8read_msgEv
Should I solve this problem?
I find the issue like #52 #19
But I can not find a solution for this.
I'm trying to build ros:I want to know the yaml-cpp version.
here I using yaml-cpp 0.5.3 I got:
==> Processing catkin package: 'audio_capture'
==> Building with env: '/apollo/data/apollo-platform/ros/install/ros_x86_64/env.sh'
Makefile exists, skipping explicit cmake invocation...
==> make cmake_check_build_system in '/apollo/data/apollo-platform/ros/build_isolated/audio_capture'
==> make -j8 -l8 in '/apollo/data/apollo-platform/ros/build_isolated/audio_capture'
[ 0%] Built target roscpp_generate_messages_lisp
[ 0%] Built target roscpp_generate_messages_py
[ 0%] Built target audio_common_msgs_generate_messages_cpp
[ 0%] Built target std_msgs_generate_messages_lisp
[ 0%] Built target std_msgs_generate_messages_py
[ 0%] Built target rosgraph_msgs_generate_messages_lisp
[ 0%] Built target rosgraph_msgs_generate_messages_cpp
[ 0%] Built target audio_common_msgs_generate_messages_lisp
[ 0%] Built target rosgraph_msgs_generate_messages_py
[ 0%] Built target std_msgs_generate_messages_cpp
[ 0%] Built target audio_common_msgs_generate_messages_py
[ 0%] Built target roscpp_generate_messages_cpp
[ 50%] Linking CXX executable /apollo/data/apollo-platform/ros/devel_isolated/audio_capture/lib/audio_capture/audio_capture
/apollo/data/apollo-platform/ros/install/ros_x86_64/lib/libroscpp.so: undefined reference to `YAML::detail::node_data::empty_scalar[abi:cxx11]'
/apollo/data/apollo-platform/ros/install/ros_x86_64/lib/libroscpp.so: undefined reference to `YAML::detail::node_data::set_scalar(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/apollo/data/apollo-platform/ros/install/ros_x86_64/lib/libroscpp.so: undefined reference to `YAML::LoadFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
CMakeFiles/audio_capture.dir/build.make:120: recipe for target '/apollo/data/apollo-platform/ros/devel_isolated/audio_capture/lib/audio_capture/audio_capture' failed
make[2]: *** [/apollo/data/apollo-platform/ros/devel_isolated/audio_capture/lib/audio_capture/audio_capture] Error 1
CMakeFiles/Makefile2:206: recipe for target 'CMakeFiles/audio_capture.dir/all' failed
make[1]: *** [CMakeFiles/audio_capture.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
<== Failed to process package 'audio_capture':
Command '['/apollo/data/apollo-platform/ros/install/ros_x86_64/env.sh', 'make', '-j8', '-l8']' returned non-zero exit status 2
Reproduce this error by running:
==> cd /apollo/data/apollo-platform/ros/build_isolated/audio_capture && /apollo/data/apollo-platform/ros/install/ros_x86_64/env.sh make -j8 -l8
Command failed, exiting.
============================
[ERROR] Build ros failed!
@quning78
In my opinion, one segment contains many blocks, by why the size of segment is 1.5 times the size of block?
const uint64_t ROS_SHM_BLOCK_SIZE = 2000000; // Block size, Bit
const uint64_t ROS_SHM_SEGMENT_SIZE = 3000000; // Segment size, Bit
in file shardmem_block.h
我将apollo的ros indigo提取出来部署在一台没有docker的x86 ubuntu14的pc上,关掉所有网卡,只保留lo正在工作,这时我启动roscore,再使用rostopic list或者echo,都会什么都看不到,没有任何消息。
反过来如果我打开wlan0,并且连接一个wifi,甚至只是设置一个ip,再重启roscore,消息就可以正常工作。
这些现象在原版的ros中没有发生过,并且如果我在这台PC上安装了docker,,即使不使用apollo的docker,仅使用apollo的ros indigo,这个问题也会恢复正常。
另外,我在/etc/network/interface里面给eth0设置固定IP,这样虽然IP有效,但是ros的消息依然无效,然而如果我再将wlan0的IP也在这里设置好,ros的消息就有效了。
也就是说apollo的ros indigo似乎依赖于网卡和ip地址的一些关系,但是我现在不想使用docker,并且网络环境确实不允许随意设定IP,因此我想请问开发者们,你们对这个现象有没有什么见解,或者解决方案
what is the ROS_DOMAIN_ID env? if it's not the same in two terminal, rostopic has no msg
I am trying to install diagnostic_updater using apt-get. It gets installed in /opt/ros/indigo/ and not in /home/tmp/ros.
I am doing this action in the docker container, and apollo_base.sh has been sourced. Please help, I need this dependency to build another package.
我将pb_msgs_example从apollo-platform中单独提取出来了,并且在apollo-dev docker环境下使用catkin_make单独编译,通过后用rosrun运行pb_talker和pb_listener,通信成功,但我想使用rostopic echo查看的时候却不能查看成功,提示:
/use_sim_time is not set, will not subscribe to simulated time [/clock] topic
ERROR: Cannot load message class for [pb_msgs/Counter]. Are your messages built?
这个是因为什么呢
I call publish in multi thread, then coredump, I use gdb finding coredump in ros::Publisher::publish.
./build.sh build
result:
<== Finished processing package [231 of 231]: 'xacro'
============================
[ OK ] Build ros succeed!
============================
run roscore
Traceback (most recent call last):
File "/home/westeast/git/indigo/src/install/ros_x86_64/bin/roscore", line 36, in <module>
from rosmaster.master_api import NUM_WORKERS
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rosmaster/__init__.py", line 35, in <module>
from .main import rosmaster_main
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rosmaster/main.py", line 43, in <module>
import rosmaster.master
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rosmaster/master.py", line 45, in <module>
import rosgraph.xmlrpc
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rosgraph/__init__.py", line 36, in <module>
from . masterapi import Master, MasterFailure, MasterError, MasterException
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rosgraph/masterapi.py", line 49, in <module>
from rospy.impl.broadcast_manager import BroadcastManager
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rospy/__init__.py", line 49, in <module>
from .client import spin, myargv, init_node, \
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rospy/client.py", line 60, in <module>
import rospy.impl.init
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/init.py", line 54, in <module>
from .tcpros import init_tcpros
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/tcpros.py", line 45, in <module>
import rospy.impl.tcpros_service
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 65, in <module>
from broadcast_manager import BroadcastManager
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/broadcast_manager.py", line 58, in <module>
from rospy.impl import participant
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/participant.py", line 28, in <module>
_participant = swig_import_helper()
File "/home/westeast/git/indigo/src/install/ros_x86_64/lib/python2.7/dist-packages/rospy/impl/participant.py", line 20, in swig_import_helper
import _participant
ImportError: /home/westeast/git/indigo/src/install/ros_x86_64/lib/_participant.so: undefined symbol: _ZN3ros11Participant8read_msgEv
my compiler log is:
In file included from /usr/include/eigen3/Eigen/Core:254:0,
from /disk9/charles.gcj/third_party/apollo-platform/ros/geometry/eigen_conversions/include/eigen_conversions/eigen_msg.h:46,
from /disk9/charles.gcj/third_party/apollo-platform/ros/geometry/eigen_conversions/src/eigen_msg.cpp:31:
/usr/include/eigen3/Eigen/src/Geometry/Transform.h: In instantiation of ‘Eigen::Transform<Scalar, Dim, Mode, _Options>::Transform(const Eigen::Transform<_Scalar, Dim, OtherMode, OtherOptions>&) [with int OtherMode = 2; int OtherOptions = 0; _Scalar = double; int _Dim = 3; int _Mode = 1; int Options = 0]’:
/disk9/charles.gcj/third_party/apollo-platform/ros/geometry/eigen_conversions/src/eigen_msg.cpp:53:7: required from ‘void tf::{anonymous}::poseMsgToEigenImpl(const Pose&, T&) [with T = Eigen::Transform<double, 3, 1>; geometry_msgs::Pose = geometry_msgs::Pose<std::allocator >]’
/disk9/charles.gcj/third_party/apollo-platform/ros/geometry/eigen_conversions/src/eigen_msg.cpp:120:26: required from here
/usr/include/eigen3/Eigen/src/Geometry/Transform.h:313:5: error: ‘YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION’ is not a member of ‘Eigen::internal::static_assertion’
EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(OtherMode==int(Affine)||OtherMode==int(AffineCompact), Mode!=int(Isometry)),
^
make[2]: *** [CMakeFiles/eigen_conversions.dir/src/eigen_msg.cpp.o] Error 1
make[1]: *** [CMakeFiles/eigen_conversions.dir/all] Error 2
make: *** [all] Error 2
<== Failed to process package 'eigen_conversions':
Command '['/disk9/charles.gcj/third_party/apollo-platform/ros/install/ros_x86_64/env.sh', 'make', '-j24', '-l24']' returned non-zero exit status 2
and i installed
ii libeigen3-dev 3.0.5-1 lightweight C++ template library for linear algebra
Line 39 in perception.cc is ros::waitForShutdown();. As stated in ROS tutorial, this line will keep the node blocked until the node is shut down. Thus, how the lines below this line can be excuted?
This gtest case will find a deadlock issue of ros-platform:
./devel_isolated/actionlib/lib/actionlib/actionlib-server_goal_handle_destruction
How to correct it ?
Hi community! I have an issue while link ros-1.5.1/lib/libroscpp.so from ros-indigo-apollo-1.5.1-aarch64.tar.gz
.
Host pc running Ubuntu 16.04, g++ version
aarch64-gnu-linux-g++ (GCC) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Target platform is 64 bit ARM, Ubuntu version is 16.04.
I have a simple test code:
#include <../../ros-1.5.1/include/ros/ros.h>
#include <../../ros-1.5.1/include/std_msgs/String.h>
int main(int argc, char** argv) {
ros::init(argc, argv, "talker");
ros::NodeHandle n;
ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
ros::Rate loop_rate(10);
int count = 0;
while (ros::ok()) {
std_msgs::String msg;
std::stringstream ss;
ss << "hello world " << count;
msg.data = ss.str();
ROS_INFO("%s", msg.data.c_str());
chatter_pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
++count;
}
return 0;
}
While linking libroscpp.so
, the error message came out:
CMakeFiles/camera_ros_server.dir/src/main.cpp.o: In function `main':
main.cpp:(.text.startup+0x68): undefined reference to `ros::init(int&, char**, std::string const&, unsigned int)'
main.cpp:(.text.startup+0xbc): undefined reference to `ros::NodeHandle::NodeHandle(std::string const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&)'
main.cpp:(.text.startup+0x79c): undefined reference to `ros::console::initializeLogLocation(ros::console::LogLocation*, std::string const&, ros::console::levels::Level)'
collect2: error: ld returned 1 exit status
src/camera_ros_server/CMakeFiles/camera_ros_server.dir/build.make:148: recipe for target 'devel/lib/camera_ros_server/camera_ros_server' failed
make[2]: *** [devel/lib/camera_ros_server/camera_ros_server] Error 1
make[2]: Leaving directory '/home/yuan/build'
CMakeFiles/Makefile2:1564: recipe for target 'src/camera_ros_server/CMakeFiles/camera_ros_server.dir/all' failed
make[1]: *** [src/camera_ros_server/CMakeFiles/camera_ros_server.dir/all] Error 2
make[1]: Leaving directory '/home/yuan/build'
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2
However, I use command objdump -TC libroscpp.so
to dump symbols.
I run command objdump -TC ros-1.5.1/lib/libroscpp.so | grep -i 'init('
, the output is:
0000000000000000 DF *UND* 0000000000000000 MD5::init()
0000000000000000 DF *UND* 0000000000000000 ros::Time::init()
0000000000000000 DF *UND* 0000000000000000 GLIBCXX_3.4.11 std::ctype<char>::_M_widen_init() const
0000000000000000 DF *UND* 0000000000000000 GLIBCXX_3.4 std::basic_ios<char, std::char_traits<char> >::init(std::basic_streambuf<char, std::char_traits<char> >*)
0000000000000000 DF *UND* 0000000000000000 GLIBCXX_3.4 std::ios_base::Init::Init()
0000000000000000 DF *UND* 0000000000000000 GLIBCXX_3.4 std::ios_base::Init::~Init()
0000000000137fe0 g DF .text 0000000000000f8c Base ros::file_log::init(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
0000000000116550 g DF .text 00000000000003a8 Base ros::StatisticsLogger::init(boost::shared_ptr<ros::SubscriptionCallbackHelper> const&)
00000000000d6d68 g DF .text 0000000000000dcc Base ros::param::init(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
00000000000fc7d8 g DF .text 00000000000003a0 Base ros::names::init(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
000000000015d828 g DF .text 00000000000001e0 Base ros::init(std::vector<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)
00000000000bab20 g DF .text 00000000000003cc Base ros::master::init(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
000000000015d208 g DF .text 000000000000061c Base ros::init(int&, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)
000000000015c1a8 g DF .text 0000000000000174 Base ros::init(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)
0000000000181758 g DF .text 0000000000000630 Base ros::this_node::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, unsigned int)
00000000000c1390 g DF .text 00000000000007f8 Base ros::network::init(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
00000000001b01c0 g DF .text 0000000000002378 Base ros::Participant::init(std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)
Then I run, objdump -TC /home/yuan/isee_px2/ros-1.5.1/lib/libroscpp.so | grep -i 'NodeHandle'
The output is:
000000000012ee30 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, bool> > >&) const
000000000012d248 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<float, std::allocator<float> > const&) const
000000000012d4e8 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > > const&) const
00000000000c3188 w DF .text 0000000000000150 Base boost::detail::sp_if_not_array<ros::NodeHandle>::type boost::make_shared<ros::NodeHandle, ros::NodeHandle const&>(ros::NodeHandle const&)
000000000012df10 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> >&) const
000000000012ef10 g DF .text 000000000000039c Base ros::NodeHandle::initRemappings(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
000000000012cd10 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, XmlRpc::XmlRpcValue const&) const
000000000012e070 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&) const
00000000001309f0 g DF .text 00000000000002e4 Base ros::NodeHandle::subscribe(ros::SubscribeOptions&)
000000000020fe68 w DO .data.rel.ro 0000000000000018 Base typeinfo for boost::detail::sp_counted_impl_pd<ros::NodeHandle*, boost::detail::sp_ms_deleter<ros::NodeHandle> >
0000000000130248 g DF .text 00000000000001f0 Base ros::NodeHandle::NodeHandle(ros::NodeHandle const&)
000000000012fcc0 g DF .text 000000000000023c Base ros::NodeHandle::NodeHandle(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
000000000012eac0 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<bool, std::allocator<bool> >&) const
000000000012bc20 g DF .text 0000000000000124 Base ros::NodeHandle::resolveName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const
000000000012f828 g DF .text 0000000000000100 Base ros::NodeHandle::~NodeHandle()
000000000012c008 g DF .text 00000000000003f0 Base ros::NodeHandle::createTimer(ros::Duration, boost::function<void (ros::TimerEvent const&)> const&, bool, bool) const
000000000012b868 g DF .text 00000000000003b4 Base ros::NodeHandle::resolveName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, ros::NodeHandle::no_validate) const
000000000012d8e0 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, XmlRpc::XmlRpcValue&) const
00000000001b6530 w DO .rodata 0000000000000052 Base typeinfo name for boost::detail::sp_counted_impl_pd<ros::NodeHandle*, boost::detail::sp_ms_deleter<ros::NodeHandle> >
000000000012d398 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<bool, std::allocator<bool> > const&) const
000000000012d990 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) const
000000000012ec20 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > >&) const
00000000000c2e38 w DF .text 0000000000000008 Base boost::detail::sp_counted_impl_pd<ros::NodeHandle*, boost::detail::sp_ms_deleter<ros::NodeHandle> >::get_untyped_deleter()
000000000012bd48 g DF .text 0000000000000238 Base ros::NodeHandle::remapName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
000000000012c880 g DF .text 0000000000000490 Base ros::NodeHandle::shutdown()
000000000012dc50 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool&) const
000000000012da40 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double&) const
000000000012daf0 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, float&) const
00000000000c2e48 w DF .text 0000000000000060 Base boost::detail::sp_counted_impl_pd<ros::NodeHandle*, boost::detail::sp_ms_deleter<ros::NodeHandle> >::get_deleter(std::type_info const&)
000000000012dba0 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int&) const
00000000000c3188 w DF .text 0000000000000150 Base boost::detail::sp_if_not_array<ros::NodeHandle>::type boost::make_shared<ros::NodeHandle, ros::NodeHandle const&>(ros::NodeHandle const&)
0000000000130438 g DF .text 0000000000000200 Base ros::NodeHandle::NodeHandle(ros::NodeHandle const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
00000000000fcbc8 g DF .text 00000000000001d0 Base ros::topic::waitForMessageImpl(ros::SubscribeOptions&, boost::function<bool ()> const&, ros::NodeHandle&, ros::Duration)
000000000012fcc0 g DF .text 000000000000023c Base ros::NodeHandle::NodeHandle(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
000000000012d788 g DF .text 00000000000000a4 Base ros::NodeHandle::hasParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
00000000001189f8 w DF .text 0000000000000800 Base ros::Publisher ros::NodeHandle::advertise<rosgraph_msgs::TopicStatistics_<std::allocator<void> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, bool)
00000000000c2f30 w DF .text 0000000000000040 Base boost::detail::sp_counted_impl_pd<ros::NodeHandle*, boost::detail::sp_ms_deleter<ros::NodeHandle> >::~sp_counted_impl_pd()
000000000012f4b0 g DF .text 0000000000000374 Base ros::NodeHandle::destruct()
000000000012e120 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > >&) const
000000000012ddb0 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<double, std::allocator<double> >&) const
000000000012d8d8 g DF .text 0000000000000008 Base ros::NodeHandle::getParamNames(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) const
00000000000c2f08 w DF .text 0000000000000028 Base boost::detail::sp_counted_impl_pd<ros::NodeHandle*, boost::detail::sp_ms_deleter<ros::NodeHandle> >::~sp_counted_impl_pd()
000000000012ce60 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) const
000000000012e490 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) const
000000000012ea10 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> >&) const
000000000012f2b0 g DF .text 0000000000000200 Base ros::NodeHandle::searchParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) const
0000000000130638 g DF .text 00000000000003b4 Base ros::NodeHandle::advertise(ros::AdvertiseOptions&)
000000000012d830 g DF .text 00000000000000a4 Base ros::NodeHandle::deleteParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
000000000012e3e0 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, XmlRpc::XmlRpcValue&) const
000000000012d638 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > const&) const
000000000012bf80 g DF .text 0000000000000088 Base ros::NodeHandle::createTimer(ros::TimerOptions&) const
00000000000c2bb8 g DF .text 000000000000027c Base ros::Subscriber::Subscriber(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ros::NodeHandle const&, boost::shared_ptr<ros::SubscriptionCallbackHelper> const&)
000000000012ff00 g DF .text 0000000000000154 Base ros::NodeHandle::operator=(ros::NodeHandle const&)
000000000012d2f0 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&) const
00000000000f0bc8 g DF .text 00000000000002dc Base ros::Publisher::Publisher(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ros::NodeHandle const&, boost::shared_ptr<ros::SubscriberCallbacks> const&, unsigned int const&)
000000000012de60 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<float, std::allocator<float> >&) const
000000000012e1d0 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, float, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, float> > >&) const
000000000012dd00 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) const
000000000020fec0 w DO .data.rel.ro 0000000000000040 Base vtable for boost::detail::sp_counted_impl_pd<ros::NodeHandle*, boost::detail::sp_ms_deleter<ros::NodeHandle> >
00000000000e0648 g DF .text 0000000000000280 Base ros::ServiceServer::ServiceServer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ros::NodeHandle const&)
00000000000f0bc8 g DF .text 00000000000002dc Base ros::Publisher::Publisher(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ros::NodeHandle const&, boost::shared_ptr<ros::SubscriberCallbacks> const&, unsigned int const&)
000000000012b860 g DF .text 0000000000000008 Base ros::NodeHandle::setCallbackQueue(ros::CallbackQueueInterface*)
000000000012f828 g DF .text 0000000000000100 Base ros::NodeHandle::~NodeHandle()
0000000000130058 g DF .text 00000000000001f0 Base ros::NodeHandle::NodeHandle(ros::NodeHandle const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
00000000000e0648 g DF .text 0000000000000280 Base ros::ServiceServer::ServiceServer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ros::NodeHandle const&)
000000000012eb70 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&) const
0000000000130058 g DF .text 00000000000001f0 Base ros::NodeHandle::NodeHandle(ros::NodeHandle const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
000000000012cdb8 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
0000000000130cd8 g DF .text 00000000000002dc Base ros::NodeHandle::advertiseService(ros::AdvertiseServiceOptions&)
000000000012e330 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, bool> > >&) const
0000000000130fb8 g DF .text 0000000000000298 Base ros::NodeHandle::serviceClient(ros::ServiceClientOptions&)
000000000012d590 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<c0000000000000000 DF *UND* 0000000000000000 ros::console::initializeLogLocation(ros::console::LogLocation*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ros::console::levels::Level)har>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, float, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, float> > > const&) const
000000000012ed80 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >&) const
000000000012dfc0 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<bool, std::allocator<bool> >&) const
000000000012d050 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) const
000000000012cf08 g DF .text 000000000000009c Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double) const
000000000012cfa8 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) const
000000000012e750 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool&) const
000000000012e540 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double&) const
000000000012e5f0 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, float&) const
000000000012e6a0 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int&) const
000000000012e8b0 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<double, std::allocator<double> >&) const
0000000000130438 g DF .text 0000000000000200 Base ros::NodeHandle::NodeHandle(ros::NodeHandle const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&)
000000000012d440 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&) const
000000000012d6e0 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, bool> > > const&) const
00000000001b6468 w DO .rodata 0000000000000033 Base typeinfo name for boost::detail::sp_ms_deleter<ros::NodeHandle>
000000000012e280 g DF .text 00000000000000ac Base ros::NodeHandle::getParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >&) const
000000000012d1a0 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<double, std::allocator<double> > const&) const
00000000000c2f08 w DF .text 0000000000000028 Base boost::detail::sp_counted_impl_pd<ros::NodeHandle*, boost::detail::sp_ms_deleter<ros::NodeHandle> >::~sp_counted_impl_pd()
000000000012e800 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) const
000000000012ecd0 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, float, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, float> > >&) const
00000000000c2bb8 g DF .text 000000000000027c Base ros::Subscriber::Subscriber(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ros::NodeHandle const&, boost::shared_ptr<ros::SubscriptionCallbackHelper> const&)
000000000012c488 g DF .text 00000000000003f0 Base ros::NodeHandle::createWallTimer(ros::WallDuration, boost::function<void (ros::WallTimerEvent const&)> const&, bool, bool) const
0000000000130248 g DF .text 00000000000001f0 Base ros::NodeHandle::NodeHandle(ros::NodeHandle const&)
000000000012f928 g DF .text 0000000000000394 Base ros::NodeHandle::construct(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)
000000000012eee0 g DF .text 000000000000002c Base ros::NodeHandle::ok() const
000000000012c400 g DF .text 0000000000000088 Base ros::NodeHandle::createWallTimer(ros::WallTimerOptions&) const
000000000012e960 g DF .text 00000000000000ac Base ros::NodeHandle::getParamCached(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<float, std::allocator<float> >&) const
000000000012d0f8 g DF .text 00000000000000a4 Base ros::NodeHandle::setParam(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const
00000000000c2f70 w DF .text 0000000000000038 Base boost::detail::sp_counted_impl_pd<ros::NodeHandle*, boost::detail::sp_ms_deleter<ros::NodeHandle> >::dispose()
I run command, objdump -TC /home/yuan/isee_px2/ros-1.5.1/lib/libroscpp.so | grep -i 'ros::console::initializeLogLocation('
The output:
0000000000000000 DF *UND* 0000000000000000 ros::console::initializeLogLocation(ros::console::LogLocation*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ros::console::levels::Level)
您好!我在使用apollo-platform时发现,如果级联的节点较多,节点在发布消息时会被阻塞。例如:A->B->C->D->...,其中A是起始节点,向B pub消息,B在回调函数中将收到的消息pub给C,以此类推。我们发现,对普通字符串消息而言,节点D在收到C的消息再pub时,被阻塞,即一直停留在publish函数上。
附件中是我的测试程序:
test_pub.tar.gz
=======================
另外,如果发布的消息内容较大(例如图片),这个现象则更加明显。对于480p分辨率的图片,只能级联发布两个节点;720p图片,只能级联发布一个节点;而1080p图片,则从起始节点都发不出去。
与此相比,ROS则不存在这个问题,它支持多层节点的级联发布,无论普通字符串消息还是图片消息。我猜测是不是apollo-platform分配共享内存时出现了问题。
我的实验环境是原生的apollo docker,分别实验了apollo 2.0版本的apolloauto/apollo:dev-x86_64-20171103_2113和1.0版本的apolloauto/apollo:dev-x86_64-20171103_2113,我分别采用了以下两种方式使用apollo-platform:
(1)直接source /home/tmp/setup.sh,然后编译我的测试程序,运行;
(2)从源代码编译apollo-platform,然后编译我的测试程序,运行。
但两种方式均出现消息发布被阻塞的现象。我不确定是环境配置所导致,还是apollo-platform自身的问题。望解答,谢谢!
rostopic list 有时没有消息显示,有时连rosout rosout_agg都没有,有时有消息,但是rostopic echo不出来,也不知道怎么查这个bug,消息应该是有publish出来的, 我在ubuntu 14.04上用的,
SHM, PTSP, proto, do apollo-platform team have specific change documents? The source code or, function? thanks .@westeast
In the build shell of ros, why delete all pyc files, can u explain?
Hi developers,
Thanks for your work.
I was wondering if I want to modified the codes from roscpp_tutorials like listener.cpp and talker.cpp, how could I recompile the code and rerun it?
For example, I try to write an image transportation function. After I complete my code, what command should I type?
specific which tag of ros_comm was using for apollo would be great. That we could compare the difference between decentralized version and shm mechanism. Thanks in advance!
初步看代码,人为每一个topic对应一个shared_memory,而且大小是fixed=queue_size*first_msg_size+etc,如果msg每次数据大小不断变化,而且变化很大是不是会存不下queue_size个msg了?
`==> Processing catkin package: 'pb_msgs'
==> Building with env: '/home/liupp/workplace/apollo-platform/ros/install/ros_x86_64/env.sh'
Makefile exists, skipping explicit cmake invocation...
==> make cmake_check_build_system in '/home/liupp/workplace/apollo-platform/ros/build_isolated/pb_msgs'
==> make -j3 -l3 in '/home/liupp/workplace/apollo-platform/ros/build_isolated/pb_msgs'
[ 0%] Built target pb_msgs_generate_messages_lisp
[ 25%] Generating Python from proto pb_msgs/time.proto
[ 50%] make[2]: PROTOBUF_PROTOC_EXECUTABLE-NOTFOUND: Command not found
make[2]: *** [/home/liupp/workplace/apollo-platform/ros/install/ros_x86_64/share/ros/../../lib/python2.7/dist-packages/pb_msgs/msg/time_pb2.py] Error 127
[ 75%] make[1]: *** [CMakeFiles/pb_msgs_generate_messages_py.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Generating C++ code from pb_msgs/time.proto
make[2]: PROTOBUF_PROTOC_EXECUTABLE-NOTFOUND: Command not found
make[2]: *** [/home/liupp/workplace/apollo-platform/ros/devel_isolated/pb_msgs/include/pb_msgs/../time.pb.h] Error 127
make[1]: *** [CMakeFiles/pb_msgs_proto.dir/all] Error 2
Generating C++ code from pb_msgs/time.proto
make[2]: PROTOBUF_PROTOC_EXECUTABLE-NOTFOUND: Command not found
make[2]: *** [/home/liupp/workplace/apollo-platform/ros/devel_isolated/pb_msgs/include/pb_msgs/../time.pb.h] Error 127
make[1]: *** [CMakeFiles/pb_msgs_generate_messages_cpp.dir/all] Error 2
make: *** [all] Error 2
<== Failed to process package 'pb_msgs':
Command '['/home/liupp/workplace/apollo-platform/ros/install/ros_x86_64/env.sh', 'make', '-j3', '-l3']' returned non-zero exit status 2
Reproduce this error by running:
==> cd /home/liupp/workplace/apollo-platform/ros/build_isolated/pb_msgs && /home/liupp/workplace/apollo-platform/ros/install/ros_x86_64/env.sh make -j3 -l3
`
hi
I want to add other ros package from git repository.
do you support rosinstall_generator or other suggestion how-to?
In apollo docker, I followed the ros tutorial, run:
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make
nian@in_dev_docker:~/catkin_ws$ catkin_make
Base path: /home/nian/catkin_ws
Source space: /home/nian/catkin_ws/src
Build space: /home/nian/catkin_ws/build
Devel space: /home/nian/catkin_ws/devel
Install space: /home/nian/catkin_ws/install
Creating symlink "/home/nian/catkin_ws/src/CMakeLists.txt" pointing to "/opt/ros/indigo/share/catkin/cmake/toplevel.cmake"
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at CMakeLists.txt:20 (message):
Search for 'catkin' in workspace failed (catkin_find_pkg catkin
/home/nian/catkin_ws/src): Traceback (most recent call last):
File "/usr/local/bin/catkin_find_pkg", line 9, in <module>
load_entry_point('catkin-pkg==0.3.6', 'console_scripts', 'catkin_find_pkg')()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 351, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2363, in load_entry_point
return ep.load()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2088, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
Does anyone have a clue? Thanks!
阿波罗是如何考虑 sharememroy在构建过程(boost的内置的锁) , 修改 _wrote_num_mutex 等锁定后进程被kill后的 无法重新使用的问题的。
Where is the source code for ros_comm/roscpp/lib/_participant.so?
I only come across to this issue on QNX. Basically all running nodes do not see each other (cannot be discovered) because every participant has the same participant ID. The related file is "apollo-platform/ros/ros_comm/roscpp/src/libros/discovery/participant.cpp". Here is the diff of a possible fix:
diff --git a/ros/ros_comm/roscpp/src/libros/discovery/participant.cpp b/ros/ros_comm/roscpp/src/libros/discovery/participant.cpp
index b987738..83a1608 100644
--- a/ros/ros_comm/roscpp/src/libros/discovery/participant.cpp
+++ b/ros/ros_comm/roscpp/src/libros/discovery/participant.cpp
@@ -102,6 +102,8 @@ bool Participant::init(user_callback cb)
}
}
+ srand(time(NULL));
+
eprosima::fastrtps::ParticipantAttributes participant_param;
participant_param.rtps.defaultSendPort = 50000;
participant_param.rtps.use_IP6_to_send = false;
@@ -112,6 +114,7 @@ bool Participant::init(user_callback cb)
participant_param.rtps.builtin.domainId = domain_id;
participant_param.rtps.builtin.leaseDuration = c_TimeInfinite;
participant_param.rtps.builtin.leaseDuration_announcementperiod.seconds = 3;
+ participant_param.rtps.participantID = rand % 100 + 1;
participant_param.rtps.setName(_name.c_str());
大家好,我想把apollo-platform移植到kinetic上,不在docker环境下,需要改动哪些文件呢?我尝试着移植,源码编译kinetic,当我启动pb_msgs_example/pb_talker时,还是提示我rosmaster未启动,当我启动roscore后,pb_talker可以正常运行。
Is your apollo-kernel necessary for this ros?
Can I use normal ubuntu kernel to use your platform?
What is the difference when use apollo-kernel and normal ubuntu kernel?
It influences the performance?
I know apollo-kernel is a real time linux.
https://github.com/ApolloAuto/apollo-platform/blob/master/ros/docs/design/shm_transport.md
how about I put it in '/apollo-platform/blob/master/ros/docs/design/shm_transport_cn.md' ?
Ros支持Node和Nodelet两种节点组织方式。对于 node节点, pub/sub服务是基于 socket通信的,因为每一个结点都是一个独立的进程。对于nodelet结点,pub/sub服务是基于共享内存的,不同的 nodelet是在同一进程内的不同的线程。
在自动驾驶领域,用 ROS的原生设计,我们遇到了如下的一系列问题:
因此我们提出了共享内存的 ROS消息传递层, 这种方式可以降低node节点间的消息通信延迟和内存占用. 基于次我们支持下面的特性 :
查看 Example talker and listener来了解如何使用此特性。
此特性对应用层透明吗?
A: 是的,应用层使用方法各原生ros一样.
如果两个结点在不同的机器上会怎么?
A: ROS会根据部署环境自动选择使用哪种消息通信机制。如果两个节点在不同的机器上,会自动选择基于socket的消息通信机制。
使用nodelet的会怎么样?
A: Nodelet已经是在传递指针了, 它和这个特性是兼容的。
Python节点是否支持?
A: Python节点暂时还不支持这个特性. Python在节点间消息通信的时候仍然使用socket.
如何关闭基于内存的消息通信机制?
A: 查看如下配置文件 config file. 也可以找到"etc/ros/transport_mode.yaml"这个路径来查看配置文件。
apollo-platform是基于indigo的哪个commit 后修改的,怎么知道apollo-platform相对于原始的ros修改了哪些代码 ?
/usr/bin/cmake -E cmake_progress_report /home/nvxx/software/apollo/apollo-platform-master/ros/build_isolated/audio_capture/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec4110979644.dir/CheckSymbolExists.c.o
/usr/bin/cc -o CMakeFiles/cmTryCompileExec4110979644.dir/CheckSymbolExists.c.o -c /home/nvxx/software/apollo/apollo-platform-master/ros/build_isolated/audio_captur
e/CMakeFiles/CMakeTmp/CheckSymbolExists.c
Linking C executable cmTryCompileExec4110979644
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4110979644.dir/link.txt --verbose=1
/usr/bin/cc CMakeFiles/cmTryCompileExec4110979644.dir/CheckSymbolExists.c.o -o cmTryCompileExec4110979644 -rdynamic
CMakeFiles/cmTryCompileExec4110979644.dir/CheckSymbolExists.c.o:在函数‘main’中:
CheckSymbolExists.c:(.text+0x16):对‘pthread_create’未定义的引用
collect2: error: ld returned 1 exit status
make[1]:正在离开目录 `/home/nvxx/software/apollo/apollo-platform-master/ros/build_isolated/audio_capture/CMakeFiles/CMakeTmp'
make[1]: *** [cmTryCompileExec4110979644] 错误 1
make: *** [cmTryCompileExec4110979644/fast] 错误 2
File /home/nvxx/software/apollo/apollo-platform-master/ros/build_isolated/audio_capture/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>
int main(int argc, char** argv)
{
(void)argv;
#ifndef pthread_create
return ((int*)(&pthread_create))[argc];
#else
(void)argc;
return 0;
#endif
}
Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/nvxx/software/apollo/apollo-platform-master/ros/build_isolated/audio_capture/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make "cmTryCompileExec1707986552/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec1707986552.dir/build.make CMakeFiles/cmTryCompileExec1707986552.dir/build
make[1]: 正在进入目录 `/home/nvxx/software/apollo/apollo-platform-master/ros/build_isolated/audio_capture/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report /home/nvxx/software/apollo/apollo-platform-master/ros/build_isolated/audio_capture/CMakeFiles/CMakeTmp/CMakeFiles 1
Building C object CMakeFiles/cmTryCompileExec1707986552.dir/CheckFunctionExists.c.o
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTryCompileExec1707986552.dir/CheckFunctionExists.c.o -c /usr/share/cmake-2.8/Modules/CheckFunction
Exists.c
Linking C executable cmTryCompileExec1707986552
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1707986552.dir/link.txt --verbose=1
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTryCompileExec1707986552.dir/CheckFunctionExists.c.o -o cmTryCompileExec1707986552 -rdynamic -lpthrea
ds
/usr/bin/ld: 找不到 -lpthreads
collect2: error: ld returned 1 exit status
I have a few questions about the usage of FastRTPS in this repo.
discovery
portion of ros_comm
actually using FastRTPS.Thanks!
我编译完apollo-platform之后把rqt和rviz相关的packages加入进去,然后编译通过。但是使用rqt的topic monitor看不到topic的内容(可以显示频率)。我要使用rqt和rviz要做什么样的修改呢?
Hi, I do some test about share memory performance.
I write a publish demo and a subscriber demo, send data and record the run time to compare share memory performance and socket performance. but run time is almost the some.
I select different mode by edit $ROS_ETC_DIR/transport_mode.yaml
send size of each time | Number of frames | run time of share memory | run time of socket |
---|---|---|---|
30M | 1024 | 83s | 84s |
20M | 1024 | 53.5s | 53s |
15M | 1024 | 39.4s | 44.4s |
10M | 1024 | 26.4s | 26.4s |
5M | 1024 | 13s | 13s |
系统开机自启,多个应用程序会自启动。存在概率性死锁问题。
通过添加打印,发现程序:
一方面:"BuiltinProtocols::initBuiltinProtocols ---> WLP::initWL --> WLP::createEndpoints --> RTPSParticipantImpl::createAndAssociateReceiverswithEndpoint --> RTPSParticipantImpl::assignEndpoint2LocatorList-->MessageReceiver::associateEndpoint " and can not get the mtx locker.
同时另一个线程调用 MessageReceiver::processCDRMsg call MessageReceiver::proc_Submsg_Data but this function not return.
We installed LI-USB30-AR023ZWDR USB 3.0 camera. The driver successfully built in docker with : sudo bash apollo.sh build_usbcam. When we run in docker : roslaunch usb_cam start_leopard.launch , we find the following issue. The topics:
/apollo/sensor/camera/traffic/image_short
/apollo/sensor/camera/traffic/image_short/camera_info
/camera_long/camera_nodelet_manager/bond
/camera_short/camera_nodelet_manager/bond
If we record ROS bag the bag is empty.
Error:
[rosout-1] process has finished cleanly
log file: /home/vdjapic/.ros/log/c9253b76-3d06-11e8-9137-d46a6aafd44d/rosout-1*.log
[rosout-1] restarting process
process[rosout-1]: started with pid [6139]
/apollo/rrrrrr/apollo-platform/ros/ros_comm/roscpp/src/libros/broadcast_manager.cpp:239 BroadcastManager::commonCallback() [ERROR] [1523396236.426661286]: Shutdown! Another node registered with same name
#19 is the issue not fixed but closed anyway.
runtime error :
system/indigo/src/install/ros_x86_64/lib/rosout/rosout: symbol lookup error: system/indigo/src/install/ros_x86_64/lib/librosconsole_log4cxx.so: undefined symbol: ZN7log4cxx16AppenderSkeleton9setOptionERKSsS2
the error will jump out when i build apollo-platform with boost 1.58.0 .
root cause : build.sh will copy librosconsole_log4cxx.so under third_party/lib directory to install directory, for the existed librosconsole_log4cxx.so under third_party/lib was built with boost-1.54.0.
it will print error message when you run any binary use with librosconsole_log4xx.so.
the fix here is easy, just ignore librosconsole_log4cxx.so copy action ,let the catkin_make_isolate install it for you.
BTW, the swig wrapper script is really a trifle when run building . i integrate swig-wrapper build to the build.sh #
when I installed the apollo_platform_master on a ubuntu 16.04, I got the error, what is the problem, does it need some dependence or someelse.Thank you very much.
==> Processing catkin package: 'pb_msgs'
==> Building with env: '/home/fire/program/Apollo/apollo-platform-master/ros/install/ros_x86_64/env.sh'
Makefile exists, skipping explicit cmake invocation...
==> make cmake_check_build_system in '/home/fire/program/Apollo/apollo-platform-master/ros/build_isolated/pb_msgs'
==> make -j8 -l8 in '/home/fire/program/Apollo/apollo-platform-master/ros/build_isolated/pb_msgs'
[ 20%] Generating C++ code from pb_msgs/time.proto
make[2]: PROTOBUF_PROTOC_EXECUTABLE-NOTFOUND: Command not found
CMakeFiles/pb_msgs_proto.dir/build.make:61: recipe for target '/home/fire/program/Apollo/apollo-platform-master/ros/devel_isolated/pb_msgs/include/time.pb.h' failed
make[2]: *** [/home/fire/program/Apollo/apollo-platform-master/ros/devel_isolated/pb_msgs/include/time.pb.h] Error 127
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/pb_msgs_proto.dir/all' failed
make[1]: *** [CMakeFiles/pb_msgs_proto.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 40%] Generating C++ code from pb_msgs/time.proto
[ 40%] Built target pb_msgs_generate_messages_lisp
make[2]: PROTOBUF_PROTOC_EXECUTABLE-NOTFOUND: Command not found
CMakeFiles/pb_msgs_generate_messages_cpp.dir/build.make:60: recipe for target '/home/fire/program/Apollo/apollo-platform-master/ros/devel_isolated/pb_msgs/include/time.pb.h' failed
make[2]: *** [/home/fire/program/Apollo/apollo-platform-master/ros/devel_isolated/pb_msgs/include/time.pb.h] Error 127
CMakeFiles/Makefile2:200: recipe for target 'CMakeFiles/pb_msgs_generate_messages_cpp.dir/all' failed
make[1]: *** [CMakeFiles/pb_msgs_generate_messages_cpp.dir/all] Error 2
[ 60%] Generating Python from proto pb_msgs/time.proto
make[2]: PROTOBUF_PROTOC_EXECUTABLE-NOTFOUND: Command not found
CMakeFiles/pb_msgs_generate_messages_py.dir/build.make:60: recipe for target '/home/fire/program/Apollo/apollo-platform-master/ros/install/ros_x86_64/lib/python2.7/dist-packages/pb_msgs/msg/time_pb2.py' failed
make[2]: *** [/home/fire/program/Apollo/apollo-platform-master/ros/install/ros_x86_64/lib/python2.7/dist-packages/pb_msgs/msg/time_pb2.py] Error 127
CMakeFiles/Makefile2:168: recipe for target 'CMakeFiles/pb_msgs_generate_messages_py.dir/all' failed
make[1]: *** [CMakeFiles/pb_msgs_generate_messages_py.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
<== Failed to process package 'pb_msgs':
Command '['/home/fire/program/Apollo/apollo-platform-master/ros/install/ros_x86_64/env.sh', 'make', '-j8', '-l8']' returned non-zero exit status 2
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.