2023-07-17 10:15:09 -0500 | received badge | ● Famous Question
(source)
|
2023-05-03 05:44:26 -0500 | received badge | ● Notable Question
(source)
|
2023-05-03 05:44:26 -0500 | received badge | ● Popular Question
(source)
|
2023-04-26 12:42:19 -0500 | asked a question | Package already built in underlay workspace is the current workspace Package already built in underlay workspace is the current workspace
I'm trying to build a library with parsing function |
2022-06-26 09:52:33 -0500 | received badge | ● Famous Question
(source)
|
2022-05-25 08:17:13 -0500 | received badge | ● Notable Question
(source)
|
2022-05-24 12:19:41 -0500 | received badge | ● Popular Question
(source)
|
2022-05-24 04:45:36 -0500 | commented question | Trouble Reading Back Array of Characters I'm using DCCL to encode and decode protobufs, which outputs a string but in practice I've found will sometimes only pas |
2022-05-23 23:08:52 -0500 | asked a question | Trouble Reading Back Array of Characters Trouble Reading Back Array of Characters
In order to accommodate an encoded string that might have a terminal character, |
2022-05-09 01:26:48 -0500 | received badge | ● Notable Question
(source)
|
2022-05-08 14:02:56 -0500 | commented answer | Undefined Reference in Linking Using colcon Thank you so much! Not only did this fix the immediate problem, but your explanation was excellent and helped me underst |
2022-05-08 14:01:24 -0500 | marked best answer | Undefined Reference in Linking Using colcon Background: I work in underwater robotics, and DCCL is a library for encoding of messages to fit within our extremely constrained message sizes based on an original protobuf format. Just for practice before applying this to one of our real messages, I'm modifying the basic publisher/subscriber from the tutorial to encode the message to DCCL before sending. It seems to do just fine with the protobuf library, but I'm getting an undefined reference error on the DCCL library, which I assuming is a linking error. Error: teddybouch@Norby:~/workspace/ros2_ws$ colcon build --packages-select cpp_pubsub
Starting >>> cpp_pubsub
--- stderr: cpp_pubsub
/usr/bin/ld: CMakeFiles/talker.dir/src/publisher_member_function.cpp.o: in function `MinimalPublisher::timer_callback()':
publisher_member_function.cpp:(.text._ZN16MinimalPublisher14timer_callbackEv[_ZN16MinimalPublisher14timer_callbackEv]+0xa2): undefined reference to `dccl::Codec::Codec(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&)'
/usr/bin/ld: publisher_member_function.cpp:(.text._ZN16MinimalPublisher14timer_callbackEv[_ZN16MinimalPublisher14timer_callbackEv]+0xed): undefined reference to `testdccl::NavigationReport::NavigationReport()'
/usr/bin/ld: publisher_member_function.cpp:(.text._ZN16MinimalPublisher14timer_callbackEv[_ZN16MinimalPublisher14timer_callbackEv]+0x1d5): undefined reference to `dccl::Codec::encode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, google::protobuf::Message const&, bool, int)'
/usr/bin/ld: publisher_member_function.cpp:(.text._ZN16MinimalPublisher14timer_callbackEv[_ZN16MinimalPublisher14timer_callbackEv]+0x3b7): undefined reference to `testdccl::NavigationReport::~NavigationReport()'
/usr/bin/ld: publisher_member_function.cpp:(.text._ZN16MinimalPublisher14timer_callbackEv[_ZN16MinimalPublisher14timer_callbackEv]+0x3c6): undefined reference to `dccl::Codec::~Codec()'
/usr/bin/ld: publisher_member_function.cpp:(.text._ZN16MinimalPublisher14timer_callbackEv[_ZN16MinimalPublisher14timer_callbackEv]+0x48b): undefined reference to `testdccl::NavigationReport::~NavigationReport()'
/usr/bin/ld: publisher_member_function.cpp:(.text._ZN16MinimalPublisher14timer_callbackEv[_ZN16MinimalPublisher14timer_callbackEv]+0x4a3): undefined reference to `dccl::Codec::~Codec()'
/usr/bin/ld: CMakeFiles/talker.dir/src/publisher_member_function.cpp.o: in function `void dccl::Codec::load<testdccl::NavigationReport>()':
publisher_member_function.cpp:(.text._ZN4dccl5Codec4loadIN8testdccl16NavigationReportEEEvv[_ZN4dccl5Codec4loadIN8testdccl16NavigationReportEEEvv]+0x11): undefined reference to `testdccl::NavigationReport::descriptor()'
/usr/bin/ld: publisher_member_function.cpp:(.text._ZN4dccl5Codec4loadIN8testdccl16NavigationReportEEEvv[_ZN4dccl5Codec4loadIN8testdccl16NavigationReportEEEvv]+0x28): undefined reference to `dccl::Codec::load(google::protobuf::Descriptor const*, int)'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/talker.dir/build.make:132: talker] Error 1
make[1]: *** [CMakeFiles/Makefile2:82: CMakeFiles/talker.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed <<< cpp_pubsub [0.97s, exited with code 2]
Summary: 0 packages finished [1.16s]
1 package failed: cpp_pubsub
1 package had stderr output: cpp_pubsub
Except for the addition of the proto directory and the protobuf message definition file in it, I think that the only relevant changes are in the CMakeLists.txt and publisher_member_function.cpp, which I'm including below, but if I've missed something or anyone wants all the code for some reason, the whole package is on my Dropbox here. CMakeLists.txt: cmake_minimum_required(VERSION 3.5)
project(cpp_pubsub)
# Default to C99
if(NOT CMAKE_C_STANDARD)
set(CMAKE_C_STANDARD 99)
endif()
# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
# find dependencies
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)
find_package(dccl REQUIRED)
message(STATUS "Using DCCL in ${DCCL_DIR}")
find_package(Protobuf REQUIRED)
if(NOT DEFINED DCCL_INCLUDE_DIR)
#for DCCL 3.0.3 and newer
get_target_property(DCCL_INCLUDE_DIR dccl INTERFACE_INCLUDE_DIRECTORIES)
endif()
if(DCCL_INCLUDE_DIR)
message ... (more) |
2022-05-07 23:20:23 -0500 | received badge | ● Popular Question
(source)
|
2022-05-06 16:10:49 -0500 | asked a question | Undefined Reference in Linking Using colcon Undefined Reference in Linking Using colcon
Background: I work in underwater robotics, and DCCL is a library for encodin |
2021-05-10 09:58:11 -0500 | received badge | ● Famous Question
(source)
|
2020-11-08 15:35:24 -0500 | marked best answer | Invalid Initialization of Parameter Adapter? As an exercise to familiarize myself with ROS, I'm writing what is basically a waypoint driver for the turtlesim. The file that is now giving me trouble compiling is supposed to get waypoints using a service from a separate waypoint server, then use that to navigate the turtle using the Pose and Velocity publish/subscribe interfaces. The service has been tested and works, but it looks like something that I've implemented with regard to the Pose interface is not happy. The error that I'm getting is: In file included from /opt/ros/fuerte/include/ros/subscription_callback_helper.h:35:0,
from /opt/ros/fuerte/include/ros/subscriber.h:33,
from /opt/ros/fuerte/include/ros/node_handle.h:33,
from /opt/ros/fuerte/include/ros/ros.h:45,
from /home/abouchard/ros_workspace/waypoint_follower/src/wp_driver.cpp:1:
/opt/ros/fuerte/include/ros/parameter_adapter.h: In static member function ‘static ros::ParameterAdapter<M>::Parameter ros::ParameterAdapter<M>::getParameter(const Event&) [with M = turtlesim::Pose_<std::allocator<void> >&, ros::ParameterAdapter<M>::Parameter = turtlesim::Pose_<std::allocator<void> >&, ros::ParameterAdapter<M>::Event = ros::MessageEvent<const turtlesim::Pose_<std::allocator<void> > >, typename boost::remove_reference<typename boost::remove_const<M>::type>::type = turtlesim::Pose_<std::allocator<void> >]’:
/opt/ros/fuerte/include/ros/subscription_callback_helper.h:180:5: instantiated from ‘void ros::SubscriptionCallbackHelperT<P, Enabled>::call(ros::SubscriptionCallbackHelperCallParams&) [with P = turtlesim::Pose_<std::allocator<void> >&, Enabled = void]’
/home/abouchard/ros_workspace/waypoint_follower/src/wp_driver.cpp:133:1: instantiated from here
/opt/ros/fuerte/include/ros/parameter_adapter.h:78:30: error: invalid initialization of reference of type ‘ros::ParameterAdapter<turtlesim::Pose_<std::allocator<void> >&>::Parameter {aka turtlesim::Pose_<std::allocator<void> >&}’ from expression of type ‘const turtlesim::Pose_<std::allocator<void> >’
/opt/ros/fuerte/include/ros/parameter_adapter.h:79:3: warning: control reaches end of non-void function [-Wreturn-type]
It looks like the invalid initialization is the problem, but the line called out is the last one in the program and only contains a close bracket. I'm running openSUSE 12.1, and I have all my dependencies and everything else from the troubleshooting checklist squared away. I think that I set the ROS_BOOST_PATH variable correctly as well, but honestly I couldn't find good instructions for that, so I could be wrong. I'm happy to share my code, but it might be a lot for this format, so here is the line where I declare the subscriber; ros::Subscriber sub = n.subscribe("pose", 1, updatePose);
and the related callback function: void updatePose(turtlesim::Pose &msg)
{
veh_x = msg.x;
veh_y = msg.y;
theta = msg.theta;
cout << "Updated position: (" << veh_x << "," << veh_y <<") at heading " << theta << endl;
}
I went through all the tutorials without a problem, so I know that my system configuration will support a subscriber node. Any help would be greatly appreciated. |
2020-09-01 08:17:43 -0500 | received badge | ● Nice Answer
(source)
|
2020-03-30 10:52:02 -0500 | received badge | ● Notable Question
(source)
|
2020-03-30 10:52:02 -0500 | received badge | ● Popular Question
(source)
|
2020-01-31 06:26:50 -0500 | received badge | ● Self-Learner
(source)
|
2020-01-31 06:25:43 -0500 | received badge | ● Famous Question
(source)
|
2019-11-21 13:39:05 -0500 | commented question | hector_mapping map issue I'm having a similar issue - any resolution?
|
2019-11-21 09:31:49 -0500 | commented question | Unstable map on conversion of Turtlebot2 from gmapping to hector_slam Okay - making progress. I ran another test just to see whether I could notice anything, and I realized that the local ma |
2019-11-21 09:15:47 -0500 | commented question | Unstable map on conversion of Turtlebot2 from gmapping to hector_slam After poking around some more, the issue seems to be the map->odom transformation being posted by hector_mapping. As |
2019-11-21 06:41:19 -0500 | received badge | ● Enthusiast
|
2019-11-20 15:16:39 -0500 | asked a question | Unstable map on conversion of Turtlebot2 from gmapping to hector_slam Unstable map on conversion of Turtlebot2 from gmapping to hector_slam
I have the basic Turtlebot tutorials (http://learn |
2019-11-20 13:43:23 -0500 | commented question | Go from gmapping to hector_slam For the record, I'm running into the same issue. Did you ever find a solution? I'm going to keep working on it and I'll |
2019-10-10 07:26:59 -0500 | commented question | rocon interactions fails in pairing yaml objects As an update, I've been able to figure out that the offending file is /turtlebot_bringup/interactions/admin.interactions |
2019-10-10 06:33:32 -0500 | received badge | ● Popular Question
(source)
|
2019-10-09 13:15:13 -0500 | asked a question | rocon interactions fails in pairing yaml objects rocon interactions fails in pairing yaml objects
I'm trying to get an exploration behavior working on a Turtlebot with a |
2019-08-06 02:06:28 -0500 | received badge | ● Notable Question
(source)
|
2019-07-31 06:55:47 -0500 | marked best answer | Trouble Building Messages: Invalid Declaration 'float32' I'm trying to define a simple message for a larger suite of messages that just defines the limits of some attribute by containing a maximum and a minimum value. So I defined the following message as Limits.msg: float32 minimum
float32 maximum
The CMakeLists.txt is very simple right now while I debug this issue: cmake_minimum_required(VERSION 2.8.3)
project(test_msgs)
find_package(catkin REQUIRED
COMPONENTS
std_msgs
message_generation
)
add_message_files(
FILES
Limits.msg
GPSFix.msg
)
generate_messages(
DEPENDENCIES
std_msgs
)
catkin_package(
CATKIN_DEPENDS
std_msgs
)
I'm keeping GPSFix.msg in there because it's another simple message that builds just fine for some reason. In any case, if I catkin_make from the catkin workspace, I get this: ava@3b97b310abf0:~/workspace/test_msgs$ catkin_make
Base path: /home/ava/workspace/test_msgs
Source space: /home/ava/workspace/test_msgs/src
Build space: /home/ava/workspace/test_msgs/build
Devel space: /home/ava/workspace/test_msgs/devel
Install space: /home/ava/workspace/test_msgs/install
####
#### Running command: "cmake /home/ava/workspace/test_msgs/src -DCATKIN_DEVEL_PREFIX=/home/ava/workspace/test_msgs/devel -DCMAKE_INSTALL_PREFIX=/home/ava/workspace/test_msgs/install -G Unix Makefiles" in "/home/ava/workspace/test_msgs/build"
####
-- Using CATKIN_DEVEL_PREFIX: /home/ava/workspace/test_msgs/devel
-- Using CMAKE_PREFIX_PATH: /home/ava/workspace/sci288ava/devel;/home/ava/workspace/ava_ros/devel;/home/ava/workspace/ros_ivp/devel;/opt/ros/kinetic;/home/ava/CMake/Modules/
-- This workspace overlays: /home/ava/workspace/sci288ava/devel;/home/ava/workspace/ava_ros/devel;/home/ava/workspace/ros_ivp/devel;/opt/ros/kinetic
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/ava/workspace/test_msgs/build/test_results
-- Found gmock sources under '/usr/src/gmock': gmock will be built
-- Found gtest sources under '/usr/src/gmock': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.14
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~ traversing 1 packages in topological order:
-- ~~ - test_msgs
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'test_msgs'
-- ==> add_subdirectory(test_msgs/test_msgs)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
/opt/ros/kinetic/share/genmsg/cmake/pkg-genmsg.cmake.em:56: error: <class 'genmsg.base.InvalidMsgSpec'>: /home/ava/workspace/test_msgs/src/test_msgs/test_msgs/msg/Limits.msg: Invalid declaration: float32 minimum
Traceback (most recent call last):
File "/usr/bin/empy", line 3302, in <module>
if __name__ == '__main__': main()
File "/usr/bin/empy", line 3300, in main
invoke(sys.argv[1:])
File "/usr/bin/empy", line 3283, in invoke
interpreter.wrap(interpreter.file, (file, name))
File "/usr/bin/empy", line 2295, in wrap
self.fail(e)
File "/usr/bin/empy", line 2284, in wrap
callable(*args)
File "/usr/bin/empy", line 2359, in file
self.safe(scanner, done, locals)
File "/usr/bin/empy", line 2401, in safe
self.parse(scanner, locals)
File "/usr/bin/empy", line 2421, in parse
token.run(self, locals)
File "/usr/bin/empy", line 1425, in run
interpreter.execute(self.code, locals)
File "/usr/bin/empy", line 2595, in execute
_exec(statements, self.globals, locals)
File "/usr/bin/empy", line 42, in _exec
exec("""exec code in globals""")
File "<string>", line 1, in <module>
File "<string> ... (more) |
2019-07-31 06:55:35 -0500 | received badge | ● Rapid Responder
(source)
|
2019-07-31 06:55:35 -0500 | answered a question | Trouble Building Messages: Invalid Declaration 'float32' Apparently the problem was that I used tabs in my msg file rather than spaces; as soon as I replaced the tabs, it compil |
2019-07-31 01:35:50 -0500 | received badge | ● Popular Question
(source)
|
2019-07-30 14:13:04 -0500 | commented question | invalid declaration Sorry about that and thank you for deleting this... I have no idea how that happened.
|
2019-07-30 13:39:14 -0500 | asked a question | invalid declaration invalid declaration
I'm trying to define a simple message for a larger suite of messages that just defines the limits of |
2019-07-30 13:38:28 -0500 | asked a question | Trouble Building Messages: Invalid Declaration 'float32' Trouble Building Messages: Invalid Declaration 'float32'
I'm trying to define a simple message for a larger suite of mes |