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

broomstick's profile - activity

2022-04-08 00:26:36 -0500 received badge  Famous Question (source)
2021-07-23 12:55:05 -0500 received badge  Notable Question (source)
2021-07-23 12:55:05 -0500 received badge  Famous Question (source)
2021-07-01 07:40:06 -0500 received badge  Famous Question (source)
2021-06-03 06:52:47 -0500 commented question ros::Rate::sleep() equivalent in rosserial

Nope, sorry. While not ideal, the workaround was good enough for my purposes, and I've not needed to return to it since

2021-05-18 18:57:57 -0500 received badge  Notable Question (source)
2021-05-18 18:57:57 -0500 received badge  Famous Question (source)
2021-05-18 18:57:57 -0500 received badge  Popular Question (source)
2021-05-12 09:41:39 -0500 received badge  Famous Question (source)
2021-02-11 05:55:50 -0500 received badge  Famous Question (source)
2021-01-27 14:36:20 -0500 received badge  Famous Question (source)
2021-01-05 02:25:15 -0500 received badge  Famous Question (source)
2020-12-16 00:35:15 -0500 received badge  Famous Question (source)
2020-12-08 16:56:26 -0500 received badge  Famous Question (source)
2020-10-22 03:57:34 -0500 commented answer cross-compile with research ISA

To follow up on an earlier question from gvdhoom, our first publication involving CHERI and ROS is now public.

2020-10-22 03:57:23 -0500 marked best answer cross-compile with research ISA

I would like to cross-compiling ROS2 onto a research platform with a new ABI and an extension to the RISC-V ISA. I need some help either manually building or making use of the existing cross-compile tools.

My test applications are fairly simple, and I was able to cross-compile ROS[1] applications manually (i.e., avoiding catkin) by converting them to rosserial applications. I eventually built an entire TurtleBot3 for my research platform this way (including teleop).

Now I'm looking to ROS2 for some of its real-time possibilities.

My normal cross-compile invocation for a rosserial application is something like this:

$HOME/cheri/output/sdk/bin/cheri-unknown-freebsd-clang++ \
        $SRC1 $SRC2 -o $BIN \
        -g \
        -I$HOME/ros_lib \
        -mabi=purecap \
        --sysroot=$HOME/cheri/output/sdk/sysroot128 \

I'm not sure I can get this to translate to the docker/QEMU-based cross-compile tool (https://github.com/ros-tooling/cross_...).

Is there a simpler way for me to use colcon or a recommendation for calling cmake directly?

I'm only trying to build a simple talker/listener demo at this point, so we're talking one package, two source files, and one message type.

2020-10-22 03:57:23 -0500 commented answer cross-compile with research ISA

To follow up on an earlier question from @gvdhoom, our first publication involving CHERI and ROS is now public.

2020-10-14 07:47:48 -0500 received badge  Popular Question (source)
2020-09-30 10:49:24 -0500 received badge  Notable Question (source)
2020-09-30 10:49:24 -0500 received badge  Popular Question (source)
2020-09-25 14:57:24 -0500 received badge  Notable Question (source)
2020-09-17 09:46:39 -0500 commented answer Boost errors with ros/console.h

Thanks. I don't have this toolchain set up at the moment, but I'll test it when I spin it back up and accept (or provid

2020-09-02 02:30:14 -0500 received badge  Popular Question (source)
2020-09-02 02:30:14 -0500 received badge  Notable Question (source)
2020-08-29 18:25:47 -0500 received badge  Famous Question (source)
2020-08-29 18:25:47 -0500 received badge  Notable Question (source)
2020-08-23 06:48:48 -0500 received badge  Notable Question (source)
2020-08-19 09:11:42 -0500 received badge  Notable Question (source)
2020-08-05 18:17:31 -0500 received badge  Famous Question (source)
2020-08-03 07:59:17 -0500 received badge  Famous Question (source)
2020-07-28 08:49:20 -0500 marked best answer conditional <exec_depend> in package.xml

I am writing some tests for a research version of FreeBSD. In certain configurations, I have an available library against which I want to build. In other configurations, the library doesn't exist and I need to avoid any dependency on it.

I would like to do this by making the library a conditional dependency based on an argument passed to cmake (via colcon). E.g., if I use --cmake-args -DHAS_LIBRARY=1 then it builds against the library, but otherwise ignores it.

This is fairly straightforward in my CMakeList.txt file, since I can just wrap find_package and ament_target_dependencies in conditional statements.

I don't know how to do this in the package.xml file. Further, I expect this isn't really possible and I'm going about this the wrong way entirely...

What I'd LIKE to do is wrap my <exec_depend>conditional_library_package</exec_depend> statement in a conditional (I recognise I'm mixing and matching semantics here, but it seemed the easiest way to explain what I'm hoping to do).

2020-07-28 06:38:35 -0500 edited question conditional <exec_depend> in package.xml

conditional <exec_depend> in package.xml I am writing some tests for a research version of FreeBSD. In certain co

2020-07-28 06:33:24 -0500 asked a question conditional <exec_depend> in package.xml

conditional <exec_depend> in package.xml I am writing some tests for a research version of FreeBSD. In certain co

2020-07-28 04:07:19 -0500 received badge  Notable Question (source)
2020-07-14 03:47:49 -0500 received badge  Famous Question (source)
2020-07-11 15:10:16 -0500 received badge  Notable Question (source)
2020-07-07 02:17:54 -0500 received badge  Popular Question (source)
2020-06-23 05:10:16 -0500 marked best answer using ament_cmake to build and use a shared library

I am building a shared library for use in another package. I'm using ROS2 dashing.

I followed the instructions of the ament_cmake user documentation, but the client project could not find my library's header files unless I added the ament_export_include_directories(include) and ament_export_libraries(my_library) functions, which the documentation says are superfluous.

Here is the CMakeList.txt for my library:

cmake_minimum_required(VERSION 3.5)
project(macaroons)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  add_compile_options(-Wall -Wextra -Wpedantic)
endif()

find_package(ament_cmake REQUIRED)

add_library(macaroons SHARED
            src/macaroons.cpp
            )

target_include_directories(macaroons PUBLIC
  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  $<INSTALL_INTERFACE:include>)

ament_export_interfaces(export_macaroons HAS_LIBRARY_TARGET)   # <-- documentation prepends export_

install(
  DIRECTORY include/
  DESTINATION include
)

install(
  TARGETS macaroons
  EXPORT export_macaroons     # <-- documentation prepends export_
  ARCHIVE DESTINATION lib
  LIBRARY DESTINATION lib
  RUNTIME DESTINATION bin
  INCLUDES DESTINATION include
)

ament_export_include_directories(include)     # <-- superfluous?
ament_export_libraries(macaroons)             # <-- superfluous?

ament_package()

This places the library in <prefix>/install/macaroons/lib/libmacaroons.so and the API header files in <prefix>/install/macaroons/include/macaroons/macaroons.hpp, which is where I would expect them to be.

If I do not include the "superfluous" commands, then when try to find_packag() and use ament_target_dependencies(), I get fatal error: macaroons/macaroons.hpp: No such file or directory. If I do include them, it builds just fine.

Here is the client project's CMakeList.txt file:

cmake_minimum_required(VERSION 3.5)
project(macaroon_demo)

# 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_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(rclcpp_components REQUIRED)
find_package(std_msgs REQUIRED)
find_package(macaroons REQUIRED)

add_executable(macaroon_demo
              src/macaroon_demo.cpp
              src/talker_node.cpp
              src/listener_node.cpp)
target_include_directories(macaroon_demo PRIVATE
  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  $<INSTALL_INTERFACE:include>)
ament_target_dependencies(macaroon_demo rclcpp rclcpp_components std_msgs macaroons)

install(TARGETS
  macaroon_demo
  DESTINATION lib/${PROJECT_NAME})

ament_package()

I'm grateful that it builds, but I would also be grateful for an explanation of where my library's CMakeList.txt file is incorrect.

2020-06-23 05:07:45 -0500 received badge  Student (source)
2020-06-02 04:31:27 -0500 received badge  Popular Question (source)
2020-06-02 03:11:24 -0500 received badge  Notable Question (source)
2020-06-01 16:24:13 -0500 marked best answer ros2 dds implementations

The ROS2 eloquent installation instructions say the default DDS implementation is eProsima's Fast RTPS. Similarly, the instructions for installing a new DDS implementation state that eProsima's Fast RTPS is the only one bundled with ROS2.

However, in ros2_eloquent/src generated during a vanilla install, I find eclipse_cyclonedds.

The description of different DDS implementations doesn't list cyclonedds anywhere, but the vanilla installation of eloquent does include rmw_cyclonedds_cpp alongside rmw interfaces for the other DDS implementations.

I'm not very clear on the relationship, if any, between eProssima's Fast RTPS and eclipse's cyclonedds. I was under the impression that they are separate DDS implementations.

Is that accurate? I may be missing something pretty fundamental here... Or perhaps cyclonedds and its rmw interface is now sufficiently mature that it's bundled with eloquent, and I am just looking at outdated websites.

2020-05-25 06:14:00 -0500 received badge  Notable Question (source)
2020-05-18 01:57:33 -0500 edited question error with exported yaml library

error with exported yaml library I am cross-compiling ROS2 dashing onto a FreeBSD-based system. I have a CrossToolchain

2020-05-18 01:56:00 -0500 commented question error with exported yaml library

Good. Thanks. I'll leave it then.

2020-05-17 08:43:09 -0500 commented question error with exported yaml library

This seems to be formatting strangely on every browser I use (no word wrapping). Trying to edit doesn't appear to help.

2020-05-17 08:40:33 -0500 commented question export library yaml

Yes. Sorry about that. I had a glitch of some kind when I posted the question. It brought me through a login screen,