Code Monkey home page Code Monkey logo

smacc2's Introduction

SMACC2

SMACC2 is an event-driven, asynchronous, behavioral state machine library for real-time ROS 2 (Robotic Operating System) applications written in C++, designed to allow programmers to build robot control applications for multicomponent robots, in an intuitive and systematic manner.

SMACC was inspired by Harel's statecharts and the SMACH ROS package. SMACC is built on top of the Boost StateChart library.

Repository Status, Packages and Documentation

ROS 2 Distro Branch Build status Documentation Released packages
Foxy foxy Foxy Binary Build
Foxy Semi-Binary Build
Doxygen Doc Deployment
Generated Doc
ROS Build Farm
SMACC2
Galactic galactic Galactic Binary Build
Galactic Semi-Binary Build
Doxygen Doc Deployment
Generated Doc
Build Status
SMACC2
Humble humble Humble Binary Build
Humble Semi-Binary Build
Doxygen Deployment
Generated Doc
Build Status
SMACC2
Rolling rolling Rolling Binary Build
Rolling Semi-Binary Build
Doxygen Doc Deployment
Generated Doc
Build Status

NOTE: There are three build stages checking current and future compatibility of the package.

  1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that direct local build is possible.

    Uses repos file: src/SMACC2/.github/SMACC2-not-released.<ros-distro>.repos

  2. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source. Shows that local build with dependencies is possible and if fails there we can expect that after the next package sync we will not be able to build.

    Uses repos file: src/SMACC2/.github/SMACC2.repos

  3. Source build - also core ROS packages are build from source. It shows potential issues in the mid future.

Getting started - ROS Humble

  1. Install ROS 2 Humble.

  2. Make sure that colcon, its extensions and vcs are installed:

    sudo apt install python3-colcon-common-extensions python3-vcstool
    
  3. Create a new ROS 2 workspace if necessary:

    export COLCON_WS=~/workspace/humble_ws
    mkdir -p $COLCON_WS/src
    
  4. Or just navigate to your workspace source folder:

    cd ~/workspace/humble_ws/src
    
  5. Clone the repo:

    git clone https://github.com/robosoft-ai/SMACC2.git
    
  6. Checkout the Humble branch:

    cd ~/workspace/humble_ws/src/SMACC2
    git checkout humble
    
  7. Navigate to the workspace:

    cd ~/workspace/humble_ws
    
  8. Update System:

    sudo apt update
    sudo apt upgrade
    
  9. Source the workspace:

    source /opt/ros/humble/setup.bash
    
  10. Update dependencies:

rosdep update
  1. Pull relevant packages and install dependencies:
vcs import src --skip-existing --input src/SMACC2/.github/SMACC2.humble.repos
rosdep install --ignore-src --from-paths src -y -r
  1. Compile:
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

Getting started - ROS Galactic

  1. Install ROS 2 Galactic.

  2. Make sure that colcon, its extensions and vcs are installed:

    sudo apt install python3-colcon-common-extensions python3-vcstool
    
  3. Create a new ROS 2 workspace if necessary:

    export COLCON_WS=~/workspace/galactic_ws
    mkdir -p $COLCON_WS/src
    
  4. Or just navigate to your workspace source folder:

    cd ~/workspace/galactic_ws/src
    
  5. Clone the repo:

    git clone https://github.com/robosoft-ai/SMACC2.git
    
  6. Checkout the Galactic branch:

    cd ~/workspace/galactic_ws/src/SMACC2
    git checkout galactic
    
  7. Navigate to the workspace:

    cd ~/workspace/galactic_ws
    
  8. Update System:

    sudo apt update
    sudo apt upgrade
    
  9. Source the workspace:

    source /opt/ros/galactic/setup.bash
    
  10. Update dependencies:

rosdep update
  1. Pull relevant packages and install dependencies:
vcs import src --skip-existing --input src/SMACC2/.github/SMACC2.galactic.repos
rosdep install --ignore-src --from-paths src -y -r
  1. Compile:
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

Getting started - ROS Foxy

  1. Install ROS 2 Foxy.

  2. Make sure that colcon, its extensions and vcs are installed:

    sudo apt install python3-colcon-common-extensions python3-vcstool
    
  3. Create a new ROS 2 workspace if necessary:

    export COLCON_WS=~/workspace/foxy_ws
    mkdir -p $COLCON_WS/src
    
  4. Or just navigate to your workspace source folder:

    cd ~/workspace/foxy_ws/src
    
  5. Clone the repo:

    git clone https://github.com/robosoft-ai/SMACC2.git
    
  6. Checkout the Foxy branch:

    cd ~/workspace/foxy_ws/src/SMACC2
    git checkout foxy
    
  7. Navigate to the workspace:

    cd ~/workspace/foxy_ws
    
  8. Update System:

    sudo apt update
    sudo apt upgrade
    
  9. Source the workspace:

    source /opt/ros/foxy/setup.bash
    
  10. Update dependencies:

rosdep update
  1. Pull relevant packages and install dependencies:
vcs import src --skip-existing --input src/SMACC2/.github/SMACC2.foxy.repos
rosdep install --ignore-src --from-paths src -y -r
  1. Compile:
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

Getting started - ROS Rolling

  1. Install ROS 2 Rolling.

  2. Make sure that colcon, its extensions and vcs are installed:

    sudo apt install python3-colcon-common-extensions python3-vcstool
    
  3. Create a new ROS 2 workspace if necessary:

    export COLCON_WS=~/workspace/rolling_ws
    mkdir -p $COLCON_WS/src
    
  4. Or just navigate to your workspace source folder:

    cd ~/workspace/rolling_ws/src
    
  5. Clone the repo:

    git clone https://github.com/robosoft-ai/SMACC2.git
    
  6. Navigate to the workspace:

    cd ~/workspace/rolling_ws
    
  7. Update System:

    sudo apt update
    sudo apt upgrade
    
  8. Source the workspace:

    source /opt/ros/rolling/setup.bash
    
  9. Update dependencies:

    rosdep update
    
  10. Pull relevant packages and install dependencies:

vcs import src --skip-existing --input src/SMACC2/SMACC2-not-released.rolling.repos
rosdep install --ignore-src --from-paths src -y -r
  1. Compile:
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

Features

  • Powered by ROS 2: SMACC2 has been developed specifically to work with ROS 2. It supports ROS 2 topics, services and actions, right out of the box.
  • Written in C++: Until now, ROS 2 has lacked a library to develop task-level behavioral state machines in C++. Although libraries have been developed in scripting languages such as python, these are unsuitable for real-world industrial environments where real-time requirements are demanded.
  • Orthogonals: Originally conceived by David Harel in 1987, orthogonality is absolutely crucial to developing state machines for complex robotic systems. This is because complex robots are always a collection of hardware devices which require communication protocols, start-up determinism, etc. With orthogonals, it is an intuitive and relatively straight forward exercise (at least conceptually;) to code a state machine for a robot comprising a mobile base, a robotic arm, a gripper, two lidar sensors, a gps transceiver and an imu, for instance.
  • Static State Machine Checking: One of the features that SMACC2 inherits from Boost Statechart is that you get compile time validation checking. This benefits developers in that the amount of runtime testing necessary to ship quality software that is both stable and safe is dramatically reduced. Our philosophy is "Wherever possible, let the compiler do it".
  • State Machine Reference Library: With a constantly growing library of out-of-the-box reference state machines, (found in the folder sm_reference_library) guaranteed to compile and run, you can jumpstart your development efforts by choosing a reference machine that is closest to your needs, and then customize and extend to meet the specific requirements of your robotic application. All the while knowing that the library supports advanced functionalities that are practically universal among actual working robots.
  • SMACC2 Client Library: SMACC2 also features a constantly growing library of clients that support ROS 2 Action Servers, Service Servers and other nodes right out-of-the box. The clients within the SMACC2 Client library have been built utilizing a component based architecture that allows for developer to build powerful clients of their own. Current clients of note include MoveBaseZ, a full featured Action Client built to integrate with Nav2, the ros_timer_client, the multi_role_sensor_client, and a keyboard_client used extensively for state machine drafting & debugging.
  • Extensive Documentation: Although many ROS users are familiar with doxygen, our development team has spent a lot of time researching the more advanced features of doxygen such as uml style class diagrams and call graphs, and we've used them to document the SMACC2 library. Have a look to our doxygen sites and we think you'll be blown away at what Doxygen looks like when it's done right and it becomes a powerful tool to research a codebase.
  • SMACC2 Runtime Analyzer: The SMACC2 library works out of the box with the SMACC2 RTA. This allows developers to visualize and runtime debug the state machines they are working on. The SMACC2 RTA is closed source, but is free for individual and academic use. It can be found here.

Repository Structure

  • smacc2 - core library of SMACC2.
  • smacc2_client_library - client libraries for SMACC2, e.g., Navigation2 (nav2z_client), MoveIt2 (moveit2z_client).
  • smacc2_event_generators - ...
  • smacc2_msgs - ROS 2 messages for SMACC2 framework.
  • smacc2_sm_reference_library - libraries with reference implementations of state-machines used for demonstaration and testing of functionalities.
  • ↓smacc2_state_reactor_library - ...
  • smacc2_performance_tools - ...

SMACC2 applications

From it's inception, SMACC2 was written to support the programming of multi-component, complex robots. If your project involves small, solar-powered insect robots, that simply navigate towards a light source, then SMACC2 might not be the right choice for you. But if you are trying to program a robot with a mobile base, a robotic arm, a gripper, two lidar sensors, a gps transceiver and an imu, then you've come to the right place.

Run a State Machine

The easiest way to get started is by selecting one of the state machines in our reference library, and then hacking it to meet your needs.

Each state machine in the reference library comes with it's own README.md file, which contains the appropriate operating instructions, so that all you have to do is simply copy & paste some commands into your terminal.

  • If you are looking for a minimal example, we recommend sm_atomic.

  • If you are looking for a minimal example but with a looping superstate, try sm_three_some.

  • If you want to get started with the ROS Navigation stack right away, try sm_dance_bot.

  • If you want to get started with ROS Navigation and exploring the orthogonal read-write cycle, then try sm_dance_bot_strikes_back.

Operating instructions can be found in each reference state machines readme file.

Writing your State Machines

There is a state machine generator in the reference library. To use it go to the src folder of your ROS 2 workspace and execute:

smacc2/smacc2_sm_reference_library/create-sm-package.bash <name_of_state_machine>

After than compile your workspace and source it to set paths of the new package. Check README.md in new package about instructions to start newly created state machine.

Happy Coding!

Support

If you are interested in getting involved or need a little support, feel free to contact us by emailing [email protected]

smacc2's People

Contributors

brettpac avatar destogl avatar mergify[bot] avatar nuclearsandwich avatar pabloinigoblasco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smacc2's Issues

sm_dance_bot: "Robot is out of bounds of the costmap!" & 3 minute wait time

Describe the bug
A clear and concise description of what the bug is.

When sm_dance_bot launches, it remains still for about 3 minutes and shows this
"Robot is out of bounds of the costmap!" message.
Then the robot begins to move.

To Reproduce
Steps to reproduce the behavior:
launch sm_dance_bot via
ros2 launch sm_dance_bot sm_dance_bot_launch.py

Expected behavior
A clear and concise description of what you expected to happen.

Thought the robot would begin moving sooner after Gazebo opened.

Screenshots
If applicable, add screenshots to help explain your problem.

Screenshot from 2021-10-10 23-54-13

Environment (please complete the following information):

ROS DETAILS:

  • OS: Ubuntu 20.04 LTS
  • Version Rolling

REPO DETAILS:

  • Repository: robosoft-ai/SMACC2
  • Branch: master
  • Commit (First 5 Digits): a5986

BUILDSPACE DETAILS (List all packages):

  • [e.g. ros2_control - 6bbde]
  • [e.g. moveit2 - 6bbde]
  • ...

^where do I go to check this?

BUILD DETAILS

  • Build Command: colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

TEST DETAILS

  • Launch file: ros2 launch sm_dance_bot sm_dance_bot_launch.py

Additional context

  • Anything that may be unusual about your environment

Could be dirty, but unsure.

Add any other context about the problem here, especially include any modifications to smacc2 that relate to this issue.

Error Details
Screenshot from 2021-10-10 23-38-06

Workflow rename

Please change...

Doxygen Doc Deployment to Doxygen Deployment

Purely cosmetic to the Readme

trace_generator.py

Model here is to basically pull all traces (both ros2 and smacc2) and then do all of the analysis in excel, or maybe ms access.

I'm thinking ideal output would be CSV? with the expectation that the CSV file in question gets properly imported into excel, including the first row for headings.

Declan has a spreadsheet he made the other day that can serve as a starting point. I would attach it here, but don't think I can.

┆Issue is synchronized with this Jira Task by Unito

Enable build of disabled packges

  • backward_global_planner
  • backward_local_planner
  • forward_global_planner
  • forward_local_planner
  • move_base_z_planners_common
  • pure_spinning_local_planner
  • undo_path_global_planner
  • move_base_z_client_plugin
  • sm_dance_bot
  • sm_dance_bot_msgs
  • sm_dance_bot_strikes_back

test2

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

ROS DETAILS:

  • OS: [e.g. Ubuntu 20.04 LTS]
  • Version [e.g. Rolling]

REPO DETAILS:

  • Repository: [e.g. robosoft-ai/SMACC2]
  • Branch: [e.g. master]
  • Commit (First 5 Digits): [e.g. 6bade]

BUILDSPACE DETAILS (List all packages):

  • [e.g. ros2_control - 6bbde]
  • [e.g. moveit2 - 6bbde]
  • ...

BUILD DETAILS

  • Build Command: [e.g. colcon build --symlink-install]

TEST DETAILS

  • Launch file: [e.g. ros2 launch sm_dance_bot sm_dance_bot_launch.py]

Additional context

  • Anything that may be unusual about your environment

Add any other context about the problem here, especially include any modifications to smacc2 that relate to this issue.

Error Details

Cut and Paste Here... (e.g. terminal output)

┆Issue is synchronized with this Jira Task by Unito

Adding transition guards?

Hello hello, thanks again for all your great work!

I've had one feature on my mind and I'm very keen to hear your thoughts. That is transition guards. This can partially be achieved with a SrConditional state reactor but I think adding guards to the transition table would be a much tidier, more efficient and more flexible solution...

Example syntax

  // TRANSITION TABLE
  typedef boost::mpl::list<
    Transition<EvSomeEvent<CbSomeClientBehavior, OrSomeOrthogonal>, State1, SUCCESS>
    >reactions;
    
  // TRANSITION TABLE WITH CLASS GUARD SYNTAX??
  typedef boost::mpl::list<
    Transition<EvSomeEvent<CbSomeClientBehavior, OrSomeOrthogonal>, GdSomeGuard, State1, SUCCESS>
    >reactions;

I'm unsure if passing a Gd (guard) class into the template is the best way to achieve this as it probably? doesn't need any lifecycle methods. Nonetheless, I can imagine some niche scenarios where a Gd class provides a convenient state-container for guard-related logic eg) if the guard prevents a transition > N times, do something such as trigger a Client Behavior.

It may might better if it is simple a function:

  • Takes in an Event. This is particularly useful for things like EvTopicMessage which may have msgData which is very useful to a guard.0

  • Some guarding logic - it should have easy access to any state stored in the smacc state, parent state(s) or the configured Orthogonals, Clients or Client Behaviors. Maybe this would mean the guard would need to be added at runtime? This also provides a point to hook into any transition (as there is currently no onTransition hook on the smacc state. This is useful for doing things like sending notifications onto a ROS topic once a transition is triggered.

  • Returns a bool:

    • true - good to transition
    • false - don't transition

Thoughts and comments?

split up base library and examples

Hey. I found project smacc2 merged base library code (smacc2 and smacc2_msgs) and sample code(smacc2_client_library, smacc2_sm_reference_library, smacc2_event_generator_library, etc) and some performance tools code together. It's not good for intergrate this project to others.

Perhaps isolating this project as a base library. And create several repositories for examples, tools and other samples is a good idea.

QUESTION - How to republish data from one orthogonal/topic to another

Hi, sorry to be a bother!

I've looked through all the examples but couldn't quite find what I'm after...

I have an OrSubscriber which subscribes to a ros topic.
I have an OrPublisher which publishes to a ros topic using the CbDefaultPublishLoop behavior.

I want to take each message published to the OrSubscriber transform it in some way based on logic inside a state and then publish it to the CbDefaultPublishLoop behavior. I've managed to hack something together in the update loop but it is maybe not the nicest....

    void update() override
    {
      auto cbSubscriber = this->getOrthogonal<OrSubscriber>()->getClientBehavior<CbSubscriber>();

      auto cbPublisher = this->getOrthogonal<OrPublisher>()->getClientBehavior<CbDefaultPublishLoop>();
      std_msgs::msg::Float32 cbPublisherMsg;
      cbPublisherMsg.data = cbSubscriber.data; // CbSubscriber stores the last message
      cbPublisher->setMessage(cbPublisherMsg);
    }

Is there a canonical way of doing this?
Thanks!

Foxy Ros build farm failure?

I am getting the following flooding emails:

image

It looks to me like smacc2 is not building for foxy. Could we disable that ros build farm case?

memlogger.py

Should also go into performance_tools folder.
Idea is to log memory usage of sm_atomic_24hr.
Options for application and entire system.

Test

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

ROS DETAILS:

  • OS: [e.g. Ubuntu 20.04 LTS]
  • Version [e.g. Rolling]

REPO DETAILS:

  • Repository: [e.g. robosoft-ai/SMACC2]
  • Branch: [e.g. master]
  • Commit (First 5 Digits): [e.g. 6bade]

BUILDSPACE DETAILS (List all packages):

  • [e.g. ros2_control - 6bbde]
  • [e.g. moveit2 - 6bbde]
  • ...

BUILD DETAILS

  • Build Command: [e.g. colcon build --symlink-install]

Additional context

  • Anything that may be unusual about your environment

Add any other context about the problem here, especially include any modifications to smacc2 that relate to this issue.

Error Details

Cut and Paste Here... (e.g. terminal output)

┆Issue is synchronized with this Jira Task by Unito

simple_sm_generator.py

Here is how I make new state machines....

Copy the SM (folder) you're going to use as your base (sm_atomic, sm_threesome, are good choices)
Rename your new SM folder (sm_atomic to sm_my_project)

Go into your config folder...
Change the yaml file name from sm_atomic.yaml to sm_my_project.yaml

Go into your include folder...
Change the name of the folder to sm_my_project.yaml
Change the name of the state machine header file to sm_my_project.hpp

Go into the launch folder...
Change the name of the .launch file to sm_my_project.yaml
Rename the name of the .py file to sm_my_project.py

Go into the src folder...
Change the state machine filename from sm_atomic_node.cpp to sm_my_project_node

Search and Replace
sm_atomic with sm_my_project

Search and Replace
SmAtomic with SmMyProject

And that's it. Compile and Run.

sm_dance_bot: Overshooting goal

Describe the bug
A clear and concise description of what the bug is.

When the robot overshoots a goal it gets stuck and continually outlines a circle.

To Reproduce
Steps to reproduce the behavior:

Changed radial pattern iterations to two for faster testing.
launched sm_dance_bot via ros2 launch sm_dance_bot sm_dance_bot_launch.py

Expected behavior
A clear and concise description of what you expected to happen.

The robot would complete its dance.

Screenshots
If applicable, add screenshots to help explain your problem.

Screenshot from 2021-10-11 14-04-40

Screenshot from 2021-10-11 13-46-39

Screenshot from 2021-10-11 13-57-55

Screenshot from 2021-10-11 14-05-45

Environment (please complete the following information):

ROS DETAILS:

  • OS: Ubuntu 20.04 LTS
  • Version Rolling

REPO DETAILS:

  • Repository: robosoft-ai/SMACC2
  • Commit (First 5 Digits): de618

BUILDSPACE DETAILS (List all packages):

  • [e.g. ros2_control - 6bbde]
  • [e.g. moveit2 - 6bbde]
  • ...

BUILD DETAILS

  • Build Command: [e.g. colcon build --symlink-install]
    -colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

TEST DETAILS

  • Launch file: ros2 launch sm_dance_bot sm_dance_bot_launch.py

Additional context

  • Anything that may be unusual about your environment

Suspect a possibly dirty system but am uncertain.

Add any other context about the problem here, especially include any modifications to smacc2 that relate to this issue.

The only change made to SMACC2 was the number of iterations for the radial patterns to two for faster testing.

Error Details


ros2 launch sm_aws_warehouse_navigation sm_aws_warehouse_navigation.launch

My current result from ros2 launch sm_aws_warehouse_navigation sm_aws_warehouse_navigation.launch

brett@ubuntu:$ source /opt/ros/rolling/setup.bash
brett@ubuntu:
$ source /workspace/rolling_ws/install/setup.bash
brett@ubuntu:
$ ros2 launch sm_aws_warehouse_navigation sm_aws_warehouse_navigation.launch
[INFO] [launch]: All log files can be found below /home/brett/.ros/log/2021-10-04-12-54-42-310509-ubuntu-18070
[INFO] [launch]: Default logging verbosity is set to INFO
Task exception was never retrieved
future: <Task finished name='Task-2' coro=<LaunchService._process_one_event() done, defined at /opt/ros/rolling/lib/python3.8/site-packages/launch/launch_service.py:226> exception=PackageNotFoundError("package 'neo_simulation2' not found, searching: ['/home/brett/workspace/rolling_ws/install/undo_path_global_planner', '/home/brett/workspace/rolling_ws/install/sm_dance_bot_strikes_back', '/home/brett/workspace/rolling_ws/install/sm_dance_bot', '/home/brett/workspace/rolling_ws/install/sm_aws_warehouse_navigation', '/home/brett/workspace/rolling_ws/install/sr_event_countdown', '/home/brett/workspace/rolling_ws/install/sr_conditional', '/home/brett/workspace/rolling_ws/install/sm_three_some', '/home/brett/workspace/rolling_ws/install/sm_respira_1', '/home/brett/workspace/rolling_ws/install/sm_multi_stage_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_c_1', '/home/brett/workspace/rolling_ws/install/sm_advanced_recovery_1', '/home/brett/workspace/rolling_ws/install/sr_all_events_go', '/home/brett/workspace/rolling_ws/install/smacc2_rta', '/home/brett/workspace/rolling_ws/install/sm_ferrari', '/home/brett/workspace/rolling_ws/install/sm_branching', '/home/brett/workspace/rolling_ws/install/sm_atomic_subscribers_performance_test', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_trace_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_b_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_a_2', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_a_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test', '/home/brett/workspace/rolling_ws/install/sm_atomic_24hr', '/home/brett/workspace/rolling_ws/install/sm_atomic', '/home/brett/workspace/rolling_ws/install/ros_timer_client', '/home/brett/workspace/rolling_ws/install/ros_publisher_client', '/home/brett/workspace/rolling_ws/install/multirole_sensor_client', '/home/brett/workspace/rolling_ws/install/move_base_z_client_plugin', '/home/brett/workspace/rolling_ws/install/keyboard_client', '/home/brett/workspace/rolling_ws/install/eg_random_generator', '/home/brett/workspace/rolling_ws/install/eg_conditional_generator', '/home/brett/workspace/rolling_ws/install/smacc2', '/home/brett/workspace/rolling_ws/install/smacc2_msgs', '/home/brett/workspace/rolling_ws/install/sm_dance_bot_msgs', '/home/brett/workspace/rolling_ws/install/nav2_system_tests', '/home/brett/workspace/rolling_ws/install/nav2_bringup', '/home/brett/workspace/rolling_ws/install/slam_toolbox', '/home/brett/workspace/rolling_ws/install/pure_spinning_local_planner', '/home/brett/workspace/rolling_ws/install/navigation2', '/home/brett/workspace/rolling_ws/install/nav2_dwb_controller', '/home/brett/workspace/rolling_ws/install/nav2_controller', '/home/brett/workspace/rolling_ws/install/forward_local_planner', '/home/brett/workspace/rolling_ws/install/backward_global_planner', '/home/brett/workspace/rolling_ws/install/forward_global_planner', '/home/brett/workspace/rolling_ws/install/dwb_plugins', '/home/brett/workspace/rolling_ws/install/dwb_critics', '/home/brett/workspace/rolling_ws/install/dwb_core', '/home/brett/workspace/rolling_ws/install/backward_local_planner', '/home/brett/workspace/rolling_ws/install/nav_2d_utils', '/home/brett/workspace/rolling_ws/install/dwb_msgs', '/home/brett/workspace/rolling_ws/install/nav_2d_msgs', '/home/brett/workspace/rolling_ws/install/nav2_waypoint_follower', '/home/brett/workspace/rolling_ws/install/nav2_theta_star_planner', '/home/brett/workspace/rolling_ws/install/nav2_smac_planner', '/home/brett/workspace/rolling_ws/install/nav2_regulated_pure_pursuit_controller', '/home/brett/workspace/rolling_ws/install/nav2_recoveries', '/home/brett/workspace/rolling_ws/install/nav2_planner', '/home/brett/workspace/rolling_ws/install/nav2_navfn_planner', '/home/brett/workspace/rolling_ws/install/nav2_bt_navigator', '/home/brett/workspace/rolling_ws/install/nav2_core', '/home/brett/workspace/rolling_ws/install/costmap_queue', '/home/brett/workspace/rolling_ws/install/nav2_costmap_2d', '/home/brett/workspace/rolling_ws/install/nav2_voxel_grid', '/home/brett/workspace/rolling_ws/install/nav2_rviz_plugins', '/home/brett/workspace/rolling_ws/install/nav2_map_server', '/home/brett/workspace/rolling_ws/install/nav2_lifecycle_manager', '/home/brett/workspace/rolling_ws/install/nav2_behavior_tree', '/home/brett/workspace/rolling_ws/install/nav2_amcl', '/home/brett/workspace/rolling_ws/install/nav2_util', '/home/brett/workspace/rolling_ws/install/nav2_simple_commander', '/home/brett/workspace/rolling_ws/install/nav2_msgs', '/home/brett/workspace/rolling_ws/install/nav2_common', '/home/brett/workspace/rolling_ws/install/move_base_z_planners_common', '/opt/ros/rolling']")>
Traceback (most recent call last):
File "/opt/ros/rolling/lib/python3.8/site-packages/ament_index_python/packages.py", line 58, in get_package_prefix
content, package_prefix = get_resource('packages', package_name)
File "/opt/ros/rolling/lib/python3.8/site-packages/ament_index_python/resources.py", line 86, in get_resource
raise LookupError(
LookupError: Could not find the resource 'neo_simulation2' of type 'packages'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/launch_service.py", line 228, in _process_one_event
await self.__process_event(next_event)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/launch_service.py", line 248, in __process_event
visit_all_entities_and_collect_futures(entity, self.__context))
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
[Previous line repeated 1 more time]
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 38, in visit_all_entities_and_collect_futures
sub_entities = entity.visit(context)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/action.py", line 108, in visit
return self.execute(context)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/actions/declare_launch_argument.py", line 184, in execute
perform_substitutions(context, self.default_value)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/utilities/perform_substitutions_impl.py", line 26, in perform_substitutions
return ''.join([context.perform_substitution(sub) for sub in subs])
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/utilities/perform_substitutions_impl.py", line 26, in
return ''.join([context.perform_substitution(sub) for sub in subs])
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/launch_context.py", line 197, in perform_substitution
return substitution.perform(self)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch_ros/substitutions/find_package.py", line 79, in perform
result = self.find(package)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch_ros/substitutions/find_package.py", line 112, in find
return get_package_share_directory(package_name)
File "/opt/ros/rolling/lib/python3.8/site-packages/ament_index_python/packages.py", line 80, in get_package_share_directory
path = os.path.join(get_package_prefix(package_name), 'share', package_name)
File "/opt/ros/rolling/lib/python3.8/site-packages/ament_index_python/packages.py", line 60, in get_package_prefix
raise PackageNotFoundError(
ament_index_python.packages.PackageNotFoundError: "package 'neo_simulation2' not found, searching: ['/home/brett/workspace/rolling_ws/install/undo_path_global_planner', '/home/brett/workspace/rolling_ws/install/sm_dance_bot_strikes_back', '/home/brett/workspace/rolling_ws/install/sm_dance_bot', '/home/brett/workspace/rolling_ws/install/sm_aws_warehouse_navigation', '/home/brett/workspace/rolling_ws/install/sr_event_countdown', '/home/brett/workspace/rolling_ws/install/sr_conditional', '/home/brett/workspace/rolling_ws/install/sm_three_some', '/home/brett/workspace/rolling_ws/install/sm_respira_1', '/home/brett/workspace/rolling_ws/install/sm_multi_stage_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_c_1', '/home/brett/workspace/rolling_ws/install/sm_advanced_recovery_1', '/home/brett/workspace/rolling_ws/install/sr_all_events_go', '/home/brett/workspace/rolling_ws/install/smacc2_rta', '/home/brett/workspace/rolling_ws/install/sm_ferrari', '/home/brett/workspace/rolling_ws/install/sm_branching', '/home/brett/workspace/rolling_ws/install/sm_atomic_subscribers_performance_test', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_trace_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_b_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_a_2', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_a_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test', '/home/brett/workspace/rolling_ws/install/sm_atomic_24hr', '/home/brett/workspace/rolling_ws/install/sm_atomic', '/home/brett/workspace/rolling_ws/install/ros_timer_client', '/home/brett/workspace/rolling_ws/install/ros_publisher_client', '/home/brett/workspace/rolling_ws/install/multirole_sensor_client', '/home/brett/workspace/rolling_ws/install/move_base_z_client_plugin', '/home/brett/workspace/rolling_ws/install/keyboard_client', '/home/brett/workspace/rolling_ws/install/eg_random_generator', '/home/brett/workspace/rolling_ws/install/eg_conditional_generator', '/home/brett/workspace/rolling_ws/install/smacc2', '/home/brett/workspace/rolling_ws/install/smacc2_msgs', '/home/brett/workspace/rolling_ws/install/sm_dance_bot_msgs', '/home/brett/workspace/rolling_ws/install/nav2_system_tests', '/home/brett/workspace/rolling_ws/install/nav2_bringup', '/home/brett/workspace/rolling_ws/install/slam_toolbox', '/home/brett/workspace/rolling_ws/install/pure_spinning_local_planner', '/home/brett/workspace/rolling_ws/install/navigation2', '/home/brett/workspace/rolling_ws/install/nav2_dwb_controller', '/home/brett/workspace/rolling_ws/install/nav2_controller', '/home/brett/workspace/rolling_ws/install/forward_local_planner', '/home/brett/workspace/rolling_ws/install/backward_global_planner', '/home/brett/workspace/rolling_ws/install/forward_global_planner', '/home/brett/workspace/rolling_ws/install/dwb_plugins', '/home/brett/workspace/rolling_ws/install/dwb_critics', '/home/brett/workspace/rolling_ws/install/dwb_core', '/home/brett/workspace/rolling_ws/install/backward_local_planner', '/home/brett/workspace/rolling_ws/install/nav_2d_utils', '/home/brett/workspace/rolling_ws/install/dwb_msgs', '/home/brett/workspace/rolling_ws/install/nav_2d_msgs', '/home/brett/workspace/rolling_ws/install/nav2_waypoint_follower', '/home/brett/workspace/rolling_ws/install/nav2_theta_star_planner', '/home/brett/workspace/rolling_ws/install/nav2_smac_planner', '/home/brett/workspace/rolling_ws/install/nav2_regulated_pure_pursuit_controller', '/home/brett/workspace/rolling_ws/install/nav2_recoveries', '/home/brett/workspace/rolling_ws/install/nav2_planner', '/home/brett/workspace/rolling_ws/install/nav2_navfn_planner', '/home/brett/workspace/rolling_ws/install/nav2_bt_navigator', '/home/brett/workspace/rolling_ws/install/nav2_core', '/home/brett/workspace/rolling_ws/install/costmap_queue', '/home/brett/workspace/rolling_ws/install/nav2_costmap_2d', '/home/brett/workspace/rolling_ws/install/nav2_voxel_grid', '/home/brett/workspace/rolling_ws/install/nav2_rviz_plugins', '/home/brett/workspace/rolling_ws/install/nav2_map_server', '/home/brett/workspace/rolling_ws/install/nav2_lifecycle_manager', '/home/brett/workspace/rolling_ws/install/nav2_behavior_tree', '/home/brett/workspace/rolling_ws/install/nav2_amcl', '/home/brett/workspace/rolling_ws/install/nav2_util', '/home/brett/workspace/rolling_ws/install/nav2_simple_commander', '/home/brett/workspace/rolling_ws/install/nav2_msgs', '/home/brett/workspace/rolling_ws/install/nav2_common', '/home/brett/workspace/rolling_ws/install/move_base_z_planners_common', '/opt/ros/rolling']"
brett@ubuntu:~$ ros2 launch sm_aws_warehouse_navigation sm_aws_warehouse_navigation.launch
[INFO] [launch]: All log files can be found below /home/brett/.ros/log/2021-10-04-12-55-15-602038-ubuntu-18072
[INFO] [launch]: Default logging verbosity is set to INFO
Task exception was never retrieved
future: <Task finished name='Task-2' coro=<LaunchService._process_one_event() done, defined at /opt/ros/rolling/lib/python3.8/site-packages/launch/launch_service.py:226> exception=PackageNotFoundError("package 'neo_simulation2' not found, searching: ['/home/brett/workspace/rolling_ws/install/undo_path_global_planner', '/home/brett/workspace/rolling_ws/install/sm_dance_bot_strikes_back', '/home/brett/workspace/rolling_ws/install/sm_dance_bot', '/home/brett/workspace/rolling_ws/install/sm_aws_warehouse_navigation', '/home/brett/workspace/rolling_ws/install/sr_event_countdown', '/home/brett/workspace/rolling_ws/install/sr_conditional', '/home/brett/workspace/rolling_ws/install/sm_three_some', '/home/brett/workspace/rolling_ws/install/sm_respira_1', '/home/brett/workspace/rolling_ws/install/sm_multi_stage_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_c_1', '/home/brett/workspace/rolling_ws/install/sm_advanced_recovery_1', '/home/brett/workspace/rolling_ws/install/sr_all_events_go', '/home/brett/workspace/rolling_ws/install/smacc2_rta', '/home/brett/workspace/rolling_ws/install/sm_ferrari', '/home/brett/workspace/rolling_ws/install/sm_branching', '/home/brett/workspace/rolling_ws/install/sm_atomic_subscribers_performance_test', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_trace_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_b_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_a_2', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_a_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test', '/home/brett/workspace/rolling_ws/install/sm_atomic_24hr', '/home/brett/workspace/rolling_ws/install/sm_atomic', '/home/brett/workspace/rolling_ws/install/ros_timer_client', '/home/brett/workspace/rolling_ws/install/ros_publisher_client', '/home/brett/workspace/rolling_ws/install/multirole_sensor_client', '/home/brett/workspace/rolling_ws/install/move_base_z_client_plugin', '/home/brett/workspace/rolling_ws/install/keyboard_client', '/home/brett/workspace/rolling_ws/install/eg_random_generator', '/home/brett/workspace/rolling_ws/install/eg_conditional_generator', '/home/brett/workspace/rolling_ws/install/smacc2', '/home/brett/workspace/rolling_ws/install/smacc2_msgs', '/home/brett/workspace/rolling_ws/install/sm_dance_bot_msgs', '/home/brett/workspace/rolling_ws/install/nav2_system_tests', '/home/brett/workspace/rolling_ws/install/nav2_bringup', '/home/brett/workspace/rolling_ws/install/slam_toolbox', '/home/brett/workspace/rolling_ws/install/pure_spinning_local_planner', '/home/brett/workspace/rolling_ws/install/navigation2', '/home/brett/workspace/rolling_ws/install/nav2_dwb_controller', '/home/brett/workspace/rolling_ws/install/nav2_controller', '/home/brett/workspace/rolling_ws/install/forward_local_planner', '/home/brett/workspace/rolling_ws/install/backward_global_planner', '/home/brett/workspace/rolling_ws/install/forward_global_planner', '/home/brett/workspace/rolling_ws/install/dwb_plugins', '/home/brett/workspace/rolling_ws/install/dwb_critics', '/home/brett/workspace/rolling_ws/install/dwb_core', '/home/brett/workspace/rolling_ws/install/backward_local_planner', '/home/brett/workspace/rolling_ws/install/nav_2d_utils', '/home/brett/workspace/rolling_ws/install/dwb_msgs', '/home/brett/workspace/rolling_ws/install/nav_2d_msgs', '/home/brett/workspace/rolling_ws/install/nav2_waypoint_follower', '/home/brett/workspace/rolling_ws/install/nav2_theta_star_planner', '/home/brett/workspace/rolling_ws/install/nav2_smac_planner', '/home/brett/workspace/rolling_ws/install/nav2_regulated_pure_pursuit_controller', '/home/brett/workspace/rolling_ws/install/nav2_recoveries', '/home/brett/workspace/rolling_ws/install/nav2_planner', '/home/brett/workspace/rolling_ws/install/nav2_navfn_planner', '/home/brett/workspace/rolling_ws/install/nav2_bt_navigator', '/home/brett/workspace/rolling_ws/install/nav2_core', '/home/brett/workspace/rolling_ws/install/costmap_queue', '/home/brett/workspace/rolling_ws/install/nav2_costmap_2d', '/home/brett/workspace/rolling_ws/install/nav2_voxel_grid', '/home/brett/workspace/rolling_ws/install/nav2_rviz_plugins', '/home/brett/workspace/rolling_ws/install/nav2_map_server', '/home/brett/workspace/rolling_ws/install/nav2_lifecycle_manager', '/home/brett/workspace/rolling_ws/install/nav2_behavior_tree', '/home/brett/workspace/rolling_ws/install/nav2_amcl', '/home/brett/workspace/rolling_ws/install/nav2_util', '/home/brett/workspace/rolling_ws/install/nav2_simple_commander', '/home/brett/workspace/rolling_ws/install/nav2_msgs', '/home/brett/workspace/rolling_ws/install/nav2_common', '/home/brett/workspace/rolling_ws/install/move_base_z_planners_common', '/opt/ros/rolling']")>
Traceback (most recent call last):
File "/opt/ros/rolling/lib/python3.8/site-packages/ament_index_python/packages.py", line 58, in get_package_prefix
content, package_prefix = get_resource('packages', package_name)
File "/opt/ros/rolling/lib/python3.8/site-packages/ament_index_python/resources.py", line 86, in get_resource
raise LookupError(
LookupError: Could not find the resource 'neo_simulation2' of type 'packages'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/launch_service.py", line 228, in _process_one_event
await self.__process_event(next_event)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/launch_service.py", line 248, in __process_event
visit_all_entities_and_collect_futures(entity, self.__context))
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
[Previous line repeated 1 more time]
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 38, in visit_all_entities_and_collect_futures
sub_entities = entity.visit(context)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/action.py", line 108, in visit
return self.execute(context)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/actions/declare_launch_argument.py", line 184, in execute
perform_substitutions(context, self.default_value)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/utilities/perform_substitutions_impl.py", line 26, in perform_substitutions
return ''.join([context.perform_substitution(sub) for sub in subs])
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/utilities/perform_substitutions_impl.py", line 26, in
return ''.join([context.perform_substitution(sub) for sub in subs])
File "/opt/ros/rolling/lib/python3.8/site-packages/launch/launch_context.py", line 197, in perform_substitution
return substitution.perform(self)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch_ros/substitutions/find_package.py", line 79, in perform
result = self.find(package)
File "/opt/ros/rolling/lib/python3.8/site-packages/launch_ros/substitutions/find_package.py", line 112, in find
return get_package_share_directory(package_name)
File "/opt/ros/rolling/lib/python3.8/site-packages/ament_index_python/packages.py", line 80, in get_package_share_directory
path = os.path.join(get_package_prefix(package_name), 'share', package_name)
File "/opt/ros/rolling/lib/python3.8/site-packages/ament_index_python/packages.py", line 60, in get_package_prefix
raise PackageNotFoundError(
ament_index_python.packages.PackageNotFoundError: "package 'neo_simulation2' not found, searching: ['/home/brett/workspace/rolling_ws/install/undo_path_global_planner', '/home/brett/workspace/rolling_ws/install/sm_dance_bot_strikes_back', '/home/brett/workspace/rolling_ws/install/sm_dance_bot', '/home/brett/workspace/rolling_ws/install/sm_aws_warehouse_navigation', '/home/brett/workspace/rolling_ws/install/sr_event_countdown', '/home/brett/workspace/rolling_ws/install/sr_conditional', '/home/brett/workspace/rolling_ws/install/sm_three_some', '/home/brett/workspace/rolling_ws/install/sm_respira_1', '/home/brett/workspace/rolling_ws/install/sm_multi_stage_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_c_1', '/home/brett/workspace/rolling_ws/install/sm_advanced_recovery_1', '/home/brett/workspace/rolling_ws/install/sr_all_events_go', '/home/brett/workspace/rolling_ws/install/smacc2_rta', '/home/brett/workspace/rolling_ws/install/sm_ferrari', '/home/brett/workspace/rolling_ws/install/sm_branching', '/home/brett/workspace/rolling_ws/install/sm_atomic_subscribers_performance_test', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_trace_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_b_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_a_2', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test_a_1', '/home/brett/workspace/rolling_ws/install/sm_atomic_performance_test', '/home/brett/workspace/rolling_ws/install/sm_atomic_24hr', '/home/brett/workspace/rolling_ws/install/sm_atomic', '/home/brett/workspace/rolling_ws/install/ros_timer_client', '/home/brett/workspace/rolling_ws/install/ros_publisher_client', '/home/brett/workspace/rolling_ws/install/multirole_sensor_client', '/home/brett/workspace/rolling_ws/install/move_base_z_client_plugin', '/home/brett/workspace/rolling_ws/install/keyboard_client', '/home/brett/workspace/rolling_ws/install/eg_random_generator', '/home/brett/workspace/rolling_ws/install/eg_conditional_generator', '/home/brett/workspace/rolling_ws/install/smacc2', '/home/brett/workspace/rolling_ws/install/smacc2_msgs', '/home/brett/workspace/rolling_ws/install/sm_dance_bot_msgs', '/home/brett/workspace/rolling_ws/install/nav2_system_tests', '/home/brett/workspace/rolling_ws/install/nav2_bringup', '/home/brett/workspace/rolling_ws/install/slam_toolbox', '/home/brett/workspace/rolling_ws/install/pure_spinning_local_planner', '/home/brett/workspace/rolling_ws/install/navigation2', '/home/brett/workspace/rolling_ws/install/nav2_dwb_controller', '/home/brett/workspace/rolling_ws/install/nav2_controller', '/home/brett/workspace/rolling_ws/install/forward_local_planner', '/home/brett/workspace/rolling_ws/install/backward_global_planner', '/home/brett/workspace/rolling_ws/install/forward_global_planner', '/home/brett/workspace/rolling_ws/install/dwb_plugins', '/home/brett/workspace/rolling_ws/install/dwb_critics', '/home/brett/workspace/rolling_ws/install/dwb_core', '/home/brett/workspace/rolling_ws/install/backward_local_planner', '/home/brett/workspace/rolling_ws/install/nav_2d_utils', '/home/brett/workspace/rolling_ws/install/dwb_msgs', '/home/brett/workspace/rolling_ws/install/nav_2d_msgs', '/home/brett/workspace/rolling_ws/install/nav2_waypoint_follower', '/home/brett/workspace/rolling_ws/install/nav2_theta_star_planner', '/home/brett/workspace/rolling_ws/install/nav2_smac_planner', '/home/brett/workspace/rolling_ws/install/nav2_regulated_pure_pursuit_controller', '/home/brett/workspace/rolling_ws/install/nav2_recoveries', '/home/brett/workspace/rolling_ws/install/nav2_planner', '/home/brett/workspace/rolling_ws/install/nav2_navfn_planner', '/home/brett/workspace/rolling_ws/install/nav2_bt_navigator', '/home/brett/workspace/rolling_ws/install/nav2_core', '/home/brett/workspace/rolling_ws/install/costmap_queue', '/home/brett/workspace/rolling_ws/install/nav2_costmap_2d', '/home/brett/workspace/rolling_ws/install/nav2_voxel_grid', '/home/brett/workspace/rolling_ws/install/nav2_rviz_plugins', '/home/brett/workspace/rolling_ws/install/nav2_map_server', '/home/brett/workspace/rolling_ws/install/nav2_lifecycle_manager', '/home/brett/workspace/rolling_ws/install/nav2_behavior_tree', '/home/brett/workspace/rolling_ws/install/nav2_amcl', '/home/brett/workspace/rolling_ws/install/nav2_util', '/home/brett/workspace/rolling_ws/install/nav2_simple_commander', '/home/brett/workspace/rolling_ws/install/nav2_msgs', '/home/brett/workspace/rolling_ws/install/nav2_common', '/home/brett/workspace/rolling_ws/install/move_base_z_planners_common', '/opt/ros/rolling']"
brett@ubuntu:~$

sm_dance_bot: "Authority undetectable"

Describe the bug
A clear and concise description of what the bug is.

Soon after launching, the robot froze on the first radial pattern. After some time passed (a few minutes) and there was no activity in the terminals, planner_server, sm_dance_bot_node, and the original terminal in which sm_dance_bot was launched from were all filled with a repeating message saying some variant of "Authority undetectable."
Will attach picture below

To Reproduce
Steps to reproduce the behavior:

Iterations of radial patterns were set to two before launching.
Launch sm_dance_bot via ros2 launch sm_dance_bot sm_dance_bot_launch.py
let it run until it stops

(Aside: the tests I have done have been back to back with little to no changes. What causes this variability? It completed all three radial pasterns and the f-pattern before failing last time. Is there something I need to do to ensure the same conditions each test?)

Expected behavior
A clear and concise description of what you expected to happen.

Expected it to make more progress in its dance.

Screenshots
If applicable, add screenshots to help explain your problem.

Screenshot from 2021-10-11 10-08-19

Screenshot from 2021-10-11 10-13-18

Screenshot from 2021-10-11 10-14-39
Environment (please complete the following information):

ROS DETAILS:

  • OS: Ubuntu 20.04 LTS
  • Version Rolling

REPO DETAILS:

  • Repository: robosoft-ai/SMACC2
  • Branch: master
  • Commit (First 5 Digits): b0ba4

BUILDSPACE DETAILS (List all packages):

  • [e.g. ros2_control - 6bbde]
  • [e.g. moveit2 - 6bbde]
  • ...

BUILD DETAILS

  • Build Command: [e.g. colcon build --symlink-install]
  • colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

TEST DETAILS

  • Launch file: ros2 launch sm_dance_bot sm_dance_bot_launch.py

Additional context

  • Anything that may be unusual about your environment
    suspected dirty system after failed NVIDIA driver install and recovery but uncertain.

Add any other context about the problem here, especially include any modifications to smacc2 that relate to this issue.

Only change was the number of iterations in each radial pattern. Set to two for faster testing.

Error Details

Cut and Paste Here... (e.g. terminal output)

rviz2-8] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[rviz2-8] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-8]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[recoveries_server-12] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[recoveries_server-12] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[recoveries_server-12]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[sync_slam_toolbox_node-9] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[sync_slam_toolbox_node-9] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[sync_slam_toolbox_node-9]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[rviz2-8] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[rviz2-8] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-8]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[sync_slam_toolbox_node-9] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[sync_slam_toolbox_node-9] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[sync_slam_toolbox_node-9]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[rviz2-8] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[rviz2-8] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-8]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[recoveries_server-12] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[recoveries_server-12] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[recoveries_server-12]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[rviz2-8] [INFO] [1633972510.959791399] [rviz2]: Message Filter dropping message: frame 'odom' at time 3324.835 for reason 'the timestamp on the message is earlier than all the data in the transform cache'
[rviz2-8] [INFO] [1633972510.959857538] [rviz2]: Message Filter dropping message: frame 'odom' at time 3324.937 for reason 'the timestamp on the message is earlier than all the data in the transform cache'
[rviz2-8] Warning: TF_OLD_DATA ignoring data from the past for frame base_footprint at time 3325.107000 according to authority Authority undetectable
[rviz2-8] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-8]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[rviz2-8] Warning: TF_OLD_DATA ignoring data from the past for frame wheel_left_link at time 3325.107000 according to authority Authority undetectable
[rviz2-8] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-8]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[rviz2-8] Warning: TF_OLD_DATA ignoring data from the past for frame wheel_right_link at time 3325.107000 according to authority Authority undetectable
[rviz2-8] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-8]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[rviz2-8] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[rviz2-8] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-8]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[rviz2-8] Warning: TF_OLD_DATA ignoring data from the past for frame wheel_left_link at time 3325.107000 according to authority Authority undetectable
[rviz2-8] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-8]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[rviz2-8] Warning: TF_OLD_DATA ignoring data from the past for frame wheel_right_link at time 3325.107000 according to authority Authority undetectable
[rviz2-8] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-8]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[recoveries_server-12] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[recoveries_server-12] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[recoveries_server-12]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[sync_slam_toolbox_node-9] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[sync_slam_toolbox_node-9] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[sync_slam_toolbox_node-9]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[recoveries_server-12] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[recoveries_server-12] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[recoveries_server-12]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[sync_slam_toolbox_node-9] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[sync_slam_toolbox_node-9] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[sync_slam_toolbox_node-9]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[rviz2-8] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[rviz2-8] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-8]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[sync_slam_toolbox_node-9] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[sync_slam_toolbox_node-9] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[sync_slam_toolbox_node-9]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[rviz2-8] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[rviz2-8] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-8]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[recoveries_server-12] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[recoveries_server-12] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[recoveries_server-12]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[ERROR] [temperature_sensor_node-5]: process has died [pid 57577, exit code 2, cmd 'xterm -xrm XTerm*scrollBar:  true -xrm xterm*rightScrollBar: true -hold -geometry 1000x600 -sl 10000 -e /home/dec/workspace/rolling_ws/install/sm_dance_bot/lib/sm_dance_bot/temperature_sensor_node --ros-args'].
[ERROR] [lifecycle_manager-15]: process has died [pid 57637, exit code 2, cmd 'xterm -xrm XTerm*scrollBar:  true -xrm xterm*rightScrollBar: true -hold -geometry 1000x600 -sl 10000 -e /home/dec/workspace/rolling_ws/install/nav2_lifecycle_manager/lib/nav2_lifecycle_manager/lifecycle_manager --ros-args --log-level INFO --ros-args -r __node:=lifecycle_manager_navigation --params-file /tmp/launch_params_w028c0sv --params-file /tmp/launch_params_6rjuyr16 --params-file /tmp/launch_params_xlxf27vj'].
[ERROR] [led_action_server_node-6]: process has died [pid 57579, exit code 2, cmd 'xterm -xrm XTerm*scrollBar:  true -xrm xterm*rightScrollBar: true -hold -geometry 1000x600 -sl 10000 -e /home/dec/workspace/rolling_ws/install/sm_dance_bot/lib/sm_dance_bot/led_action_server_node --ros-args'].
[ERROR] [service_node_3.py-4]: process has died [pid 57575, exit code 2, cmd 'xterm -xrm XTerm*scrollBar:  true -xrm xterm*rightScrollBar: true -hold -geometry 1000x600 -sl 10000 -e /home/dec/workspace/rolling_ws/install/sm_dance_bot/lib/sm_dance_bot/service_node_3.py --ros-args --params-file /tmp/launch_params_ta_ogqnv'].
[ERROR] [sm_dance_bot_node-3]: process has died [pid 57573, exit code 2, cmd 'xterm -xrm XTerm*scrollBar:  true -xrm xterm*rightScrollBar: true -hold -geometry 1000x600 -sl 10000 -e /home/dec/workspace/rolling_ws/install/sm_dance_bot/lib/sm_dance_bot/sm_dance_bot_node --ros-args --log-level INFO --ros-args -r __node:=SmDanceBot --params-file /home/dec/workspace/rolling_ws/install/sm_dance_bot/share/sm_dance_bot/params/sm_dance_bot_config.yaml'].
[ERROR] [planner_server-11]: process has died [pid 57603, exit code 2, cmd 'xterm -xrm XTerm*scrollBar:  true -xrm xterm*rightScrollBar: true -hold -geometry 1000x600 -sl 10000 -e /home/dec/workspace/rolling_ws/install/nav2_planner/lib/nav2_planner/planner_server --ros-args --log-level INFO --ros-args -r __node:=planner_server --params-file /tmp/tmp_kivvnl1 -r /tf:=tf -r /tf_static:=tf_static'].
[ERROR] [controller_server-10]: process has died [pid 57589, exit code 2, cmd 'xterm -xrm XTerm*scrollBar:  true -xrm xterm*rightScrollBar: true -hold -geometry 1000x600 -sl 10000 -e /home/dec/workspace/rolling_ws/install/nav2_controller/lib/nav2_controller/controller_server --ros-args --log-level INFO --ros-args --params-file /tmp/tmp3otjbwbt -r /tf:=tf -r /tf_static:=tf_static'].
[ERROR] [bt_navigator-13]: process has died [pid 57619, exit code 2, cmd 'xterm -xrm XTerm*scrollBar:  true -xrm xterm*rightScrollBar: true -hold -geometry 1000x600 -sl 10000 -e /home/dec/workspace/rolling_ws/install/nav2_bt_navigator/lib/nav2_bt_navigator/bt_navigator --ros-args --log-level INFO --ros-args -r __node:=bt_navigator --params-file /tmp/tmp2prom7mo -r /tf:=tf -r /tf_static:=tf_static'].
[waypoint_follower-14] [INFO] [1633972510.996291180] [rclcpp]: signal_handler(signal_value=2)
[waypoint_follower-14] [INFO] [1633972511.000316622] [waypoint_follower]: Destroying
[rviz2-8] [INFO] [1633972510.996367096] [rclcpp]: signal_handler(signal_value=2)
[rviz2-8] [INFO] [1633972510.997104174] [rviz2]: Message Filter dropping message: frame 'odom' at time 3324.801 for reason 'the timestamp on the message is earlier than all the data in the transform cache'
[rviz2-8] [INFO] [1633972510.997216689] [rviz2]: Message Filter dropping message: frame 'odom' at time 3324.971 for reason 'the timestamp on the message is earlier than all the data in the transform cache'
[sync_slam_toolbox_node-9] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[sync_slam_toolbox_node-9] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[sync_slam_toolbox_node-9]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[sync_slam_toolbox_node-9] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[sync_slam_toolbox_node-9] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[sync_slam_toolbox_node-9]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[sync_slam_toolbox_node-9] [INFO] [1633972511.010153220] [rclcpp]: signal_handler(signal_value=2)
[robot_state_publisher-7] [INFO] [1633972511.004338046] [rclcpp]: signal_handler(signal_value=2)
[recoveries_server-12] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[recoveries_server-12] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[recoveries_server-12]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[recoveries_server-12] Warning: TF_OLD_DATA ignoring data from the past for frame odom at time 3325.155000 according to authority Authority undetectable
[recoveries_server-12] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[recoveries_server-12]          at line 355 in /tmp/binarydeb/ros-rolling-tf2-0.18.0/src/buffer_core.cpp
[recoveries_server-12] [INFO] [1633972511.017613156] [rclcpp]: signal_handler(signal_value=2)
[recoveries_server-12] [INFO] [1633972511.025174518] [recoveries_server]: Destroying
[ERROR] [sync_slam_toolbox_node-9]: process has died [pid 57585, exit code -11, cmd '/home/dec/workspace/rolling_ws/install/slam_toolbox/lib/slam_toolbox/sync_slam_toolbox_node --ros-args -r __node:=slam_toolbox --params-file /home/dec/workspace/rolling_ws/install/slam_toolbox/share/slam_toolbox/config/mapper_params_online_sync.yaml --params-file /tmp/launch_params_nkdgze36']



[BUG] Or-Cb must be configured in all leaf states to trigger the transition table in the parent state.

description

there is a need when hmi system shutdown the system off, to let state-machine from MsGuardianAutoMode to StManual
So, I created the transition table and configure or-cb toolchain in MsGuardianAutoMode definition hpp
And THAT'S NOT WORKING

class MsGuardianAutoMode : public smacc2::SmaccState<MsGuardianAutoMode, SmGuardian, StStandby>
{
public:
   using SmaccState::SmaccState;

   typedef mpl::list<

    Transition<EvDriveModeOff<CbHmi, OrHmi>, StManual, SUCCESS>,
    Transition<EvTakeOver<CbScu, OrScu>, StManual, SUCCESS>

    >reactions;

// STATE FUNCTIONS
    static void staticConfigure()
    {
        // configuring or-cb here is not working
        // must configure or-cb in leaf states
        // configure_orthogonal<OrHmi, CbHmi>();
        // configure_orthogonal<OrScu, CbScu>();

        // debug
        // configure_orthogonal<OrTimer, CbTimerCountdownOnce>(2);
    }
};

And when I put the or-cb tool-chain in the leaf state StStandby, The transition defined in MsGuardianAutoMode can be enabled

the StStandby definition is in the below

struct StStandby : smacc2::SmaccState<StStandby, MsGuardianAutoMode>
{
    using SmaccState::SmaccState;

// TRANSITION TABLE
    ...
    // debug
    // Transition<EvTimer<CbTimerCountdownOnce, OrTimer>, SS1::SsApa, SUCCESS>
    >reactions;


// STATE FUNCTIONS
    static void staticConfigure()
    {
...

        // top
        configure_orthogonal<OrHmi, CbHmi>();
        configure_orthogonal<OrScu, CbScu>();

        // debug
        // configure_orthogonal<OrTimer, CbTimerCountdownOnce>(5);
    }

};

question

Must Or-Cb be configured in leaf states?

┆Issue is synchronized with this Jira Task by Unito
┆Link To Issue: https://robosoft-ai.atlassian.net/browse/SMACC2-19

Difference between using SMACC2 and QP/C++ framework?

I am relatively new to ROS and come from an embedded background. A well-known framework for Hierarchical state machines is the QP/C++ framework.

I would like to know from the ROS perspective, what are the out-of-the-box advantages that SMACC2 has when developing an event-driven state machine in comparison to using a HSM framework (such as QP) and integrating the ROS SDK directly.

Kind regards,
Victor

Code optimization discussion

When analyzing code with Valgrind and looking into it in detail, I found the following (potential) issues. These comments are regarding sm_atomic_performance_test package, but maybe be also present in the other packages.

Code issues:

  1. There is no header file guarding in state files — adding #pragma once solves this.
  2. States are forward-declared in the main .hpp file as classes, but later as struct in their respective files, State1, State2. This could lead to linking issues on windows.
  • The struct/class issue it would be nice to solve it, but lets follow the priorities on the pending tasks because does not look critical.
  • The pragma once guard for states, sounds good but I am not sure if that would work everywhere. In general I have to say that the state files are only referenced once in the main header file, nowhere else.

State Reactors Template Names Change

In smacc_state_machine_info.cpp,

All the Orthogonals are like this...
getOrthogonalName()
TOrthogonal TSource

But the Reactors are like this...
TObjectTag TDerived

I can't remember if we decided to go with TStateReactor TSource, or TStateReactor TParentState.

┆Issue is synchronized with this Jira Task by Unito

improve the precision on undo-motions

Describe the bug
A clear and concise description of what the bug is.

sm_dance_bot_strikes_back_node will on occasion output a "Incorrect odom clearing motion" message when returning from a radial endpoint.
The robot continues as normal once returning to the origin of the radial pattern.

To Reproduce
Steps to reproduce the behavior:

  1. launch sm_dance_bot_strikes_back via ros2 launch sm_dance_bot_strikes_back sm_dance_bot_strikes_back_launch.py

  2. monitor sm_dance_bot_strikes_back_node for the message (seems to appear on the 15th, and sometimes 7th, iteration)

Expected behavior
A clear and concise description of what you expected to happen.

The robot was behaving as expected within RViz and Gazebo. Didn't expect this message and wanted to note it.

Screenshots
If applicable, add screenshots to help explain your problem.
Screenshot from 2021-11-04 10-40-35

Environment (please complete the following information):

ROS DETAILS:

  • OS: Ubuntu 20.04 LTS
  • Version Rolling

REPO DETAILS:

  • Repository: robosoft-ai/SMACC2
  • Branch: feature/sm_dance_bot_strikes_back_refactoring
  • Commit (First 5 Digits): e653c

BUILDSPACE DETAILS (List all packages):

  • [e.g. ros2_control - 6bbde]
  • [e.g. moveit2 - 6bbde]
  • ...

BUILD DETAILS

  • Build Command: colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

TEST DETAILS

  • Launch file: ros2 launch sm_dance_bot_strikes_back sm_dance_bot_strikes_back_launch.py

Additional context

  • Anything that may be unusual about your environment

Add any other context about the problem here, especially include any modifications to smacc2 that relate to this issue.

Error Details

Cut and Paste Here... (e.g. terminal output)

[BUG] std_srvs/srv/empty.hpp: No such file or directory.

Describe the bug
cannot find header files.

To Reproduce
Steps to reproduce the behavior:

  1. colcon build

Expected behavior
compile success

Screenshots
If applicable, add screenshots to help explain your problem.

image

Environment (please complete the following information):

ROS DETAILS:

  • OS: Ubuntu 22.04 LTS
  • Version: Humble

REPO DETAILS:

  • Repository: robosoft-ai/SMACC2
  • Branch: galactic
  • Commit (First 5 Digits): 193a8a3

BUILDSPACE DETAILS (List all packages):

  • ...

BUILD DETAILS

  • Build Command: colcon build --symlink-install

Additional context

  • Anything that may be unusual about your environment

Add any other context about the problem here, especially include any modifications to smacc2 that relate to this issue.

Error Details

smacc2_sm_reference_library/sm_atomic_services/include/sm_atomic_services/clients/cl_service_server.hpp:17:10: fatal error: std_srvs/srv/empty.hpp: No such file or directory
   17 | #include <std_srvs/srv/empty.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

┆Issue is synchronized with this Jira Task by Unito

Logging output optimizations

I realized the following "issues" when testing new Node/Logger structure to increase performance:

  1. ----------- PRINT STATE MACHINE STRUCTURE ------------------- is printed twice, where the first time one state exist in the state machine. Is this intended? Maybe it would make sense to print this only when a complete state machine is created to avoid confusion. Example output:
[smacc_sm_test_node-1] [INFO] [1635924424.339026880] [SmaccSmTest]: ----------- PRINT STATE MACHINE STRUCTURE -------------------
[smacc_sm_test_node-1] **** State: smacc_sm_test::State1
[smacc_sm_test_node-1] Index: 0
[smacc_sm_test_node-1] StateLevel: 
[smacc_sm_test_node-1]  Childstates:
[smacc_sm_test_node-1]  Transitions:
[smacc_sm_test_node-1]  - Transition.  
[smacc_sm_test_node-1]       - Index: 0
[smacc_sm_test_node-1]       - Transition Name: Transition_0
[smacc_sm_test_node-1]       - Transition Type: smacc2::default_transition_tags::DEFAULT
[smacc_sm_test_node-1]       - Event Type :smacc2::default_events::EvStateRequestFinish
[smacc_sm_test_node-1]       - Event Source: smacc_sm_test::State1
[smacc_sm_test_node-1]       - Event ObjectTag: 
[smacc_sm_test_node-1]       - Event Label: 
[smacc_sm_test_node-1]       - Destiny State: smacc_sm_test::State2
[smacc_sm_test_node-1]       - Owner State: smacc_sm_test::State2
[smacc_sm_test_node-1]       - Is History Node: 0
[smacc_sm_test_node-1]       - TransitionC++Type: smacc2::Transition<smacc2::default_events::EvStateRequestFinish<smacc_sm_test::State1>, smacc_sm_test::State2, smacc2::default_transition_tags::default_transition_name, boost::statechart::detail::no_context<smacc2::default_events::EvStateRequestFinish<smacc_sm_test::State1> >, &boost::statechart::detail::no_context<smacc2::default_events::EvStateRequestFinish<smacc_sm_test::State1> >::no_function>
[smacc_sm_test_node-1]       - EventC++Type: smacc2::default_events::EvStateRequestFinish<smacc_sm_test::State1>
[smacc_sm_test_node-1]  Orthogonals:
[smacc_sm_test_node-1]  State event generators:
[smacc_sm_test_node-1]  State reactors:
[smacc_sm_test_node-1] - NO STATE REACTORS - 
[smacc_sm_test_node-1] ----------------------------------------------------------
[smacc_sm_test_node-1] 
[smacc_sm_test_node-1] [INFO] [1635924424.339069392] [SmaccSmTest]: ----------- PRINT STATE MACHINE STRUCTURE -------------------
[smacc_sm_test_node-1] **** State: smacc_sm_test::State1
[smacc_sm_test_node-1] Index: 0
[smacc_sm_test_node-1] StateLevel: 
[smacc_sm_test_node-1]  Childstates:
[smacc_sm_test_node-1]  Transitions:
[smacc_sm_test_node-1]  - Transition.  
[smacc_sm_test_node-1]       - Index: 0
[smacc_sm_test_node-1]       - Transition Name: Transition_0
[smacc_sm_test_node-1]       - Transition Type: smacc2::default_transition_tags::DEFAULT
[smacc_sm_test_node-1]       - Event Type :smacc2::default_events::EvStateRequestFinish
[smacc_sm_test_node-1]       - Event Source: smacc_sm_test::State1
[smacc_sm_test_node-1]       - Event ObjectTag: 
[smacc_sm_test_node-1]       - Event Label: 
[smacc_sm_test_node-1]       - Destiny State: smacc_sm_test::State2
[smacc_sm_test_node-1]       - Owner State: smacc_sm_test::State2
[smacc_sm_test_node-1]       - Is History Node: 0
[smacc_sm_test_node-1]       - TransitionC++Type: smacc2::Transition<smacc2::default_events::EvStateRequestFinish<smacc_sm_test::State1>, smacc_sm_test::State2, smacc2::default_transition_tags::default_transition_name, boost::statechart::detail::no_context<smacc2::default_events::EvStateRequestFinish<smacc_sm_test::State1> >, &boost::statechart::detail::no_context<smacc2::default_events::EvStateRequestFinish<smacc_sm_test::State1> >::no_function>
[smacc_sm_test_node-1]       - EventC++Type: smacc2::default_events::EvStateRequestFinish<smacc_sm_test::State1>
[smacc_sm_test_node-1]  Orthogonals:
[smacc_sm_test_node-1]  State event generators:
[smacc_sm_test_node-1]  State reactors:
[smacc_sm_test_node-1] - NO STATE REACTORS - 
[smacc_sm_test_node-1] ----------------------------------------------------------
[smacc_sm_test_node-1] **** State: smacc_sm_test::State2
[smacc_sm_test_node-1] Index: 1
[smacc_sm_test_node-1] StateLevel: 
[smacc_sm_test_node-1]  Childstates:
[smacc_sm_test_node-1]  Transitions:
[smacc_sm_test_node-1]  - Transition.  
[smacc_sm_test_node-1]       - Index: 0
[smacc_sm_test_node-1]       - Transition Name: Transition_0
[smacc_sm_test_node-1]       - Transition Type: smacc2::default_transition_tags::DEFAULT
[smacc_sm_test_node-1]       - Event Type :smacc2::default_events::EvStateRequestFinish
[smacc_sm_test_node-1]       - Event Source: smacc_sm_test::State2
[smacc_sm_test_node-1]       - Event ObjectTag: 
[smacc_sm_test_node-1]       - Event Label: 
[smacc_sm_test_node-1]       - Destiny State: smacc_sm_test::State1
[smacc_sm_test_node-1]       - Owner State: smacc_sm_test::State1
[smacc_sm_test_node-1]       - Is History Node: 0
[smacc_sm_test_node-1]       - TransitionC++Type: smacc2::Transition<smacc2::default_events::EvStateRequestFinish<smacc_sm_test::State2>, smacc_sm_test::State1, smacc2::default_transition_tags::default_transition_name, boost::statechart::detail::no_context<smacc2::default_events::EvStateRequestFinish<smacc_sm_test::State2> >, &boost::statechart::detail::no_context<smacc2::default_events::EvStateRequestFinish<smacc_sm_test::State2> >::no_function>
[smacc_sm_test_node-1]       - EventC++Type: smacc2::default_events::EvStateRequestFinish<smacc_sm_test::State2>
[smacc_sm_test_node-1]  Orthogonals:
[smacc_sm_test_node-1]  State event generators:
[smacc_sm_test_node-1]  State reactors:
[smacc_sm_test_node-1] - NO STATE REACTORS - 
[smacc_sm_test_node-1] ----------------------------------------------------------
  1. Please check the output from the new logger from a state. Maybe this could be optimized a bit.

┆Issue is synchronized with this Jira Task by Unito

How to trigger an event from a message on a topic?

I would like to trigger an event on message reception on a topic with an empty message type.

I have than created a client:
cl_empty_subscriber.hpp

#pragma once
#include <smacc2/client_bases/smacc_subscriber_client.hpp>
#include <std_msgs/msg/empty.hpp>

namespace sm_sub_example
{
namespace cl_empty_subscriber
{
class ClEmptySubscriber : public smacc2::client_bases::SmaccSubscriberClient<std_msgs::msg::Empty>
{
public:
  ClEmptySubscriber(const std::string& _topic_name)
  : smacc2::client_bases::SmaccSubscriberClient<std_msgs::msg::Empty>(_topic_name)
  {
  }
};
}  // namespace cl_empty_subscriber
}  // namespace sm_sub_example

Then a client behavior that do nothing special because as I understand, SmaccSubscriberClient already triggers an EvTopicMessage:
cb_empty_subscriber_behavior.hpp

#pragma once
#include "sm_sub_example/clients/cl_empty_subscriber/cl_empty_subscriber.hpp"

namespace sm_sub_example
{
namespace cl_empty_subscriber
{
class CbEmptySubscriberBehavior : public smacc2::SmaccClientBehavior
{
public:
  typedef std_msgs::msg::Empty TMessageType;

  void onEntry() { }
};
}  // namespace cl_empty_subscriber
}  // namespace sm_sub_example

Now, an orthogonal that set the topic:
or_empty_subscriber.hpp

#pragma once
#include <smacc2/smacc.hpp>
#include "sm_sub_example/clients/cl_empty_subscriber/cl_empty_subscriber.hpp"

namespace sm_sub_example
{
class OrEmptySubscriber : public smacc2::Orthogonal<OrEmptySubscriber>
{
public:
  void onInitialize() override { auto client = this->createClient<cl_empty_subscriber::ClEmptySubscriber>("/next"); }
};
}  // namespace sm_sub_example

In the state machine declaration (from sm_atomic example), I only add the creation of the orthogonal:

this->createOrthogonal<OrEmptySubscriber>();

And in the st_state_1.hpp, I add the transition and the configure_orthogonal statements:

#pragma once
#include <smacc2/smacc.hpp>

namespace sm_sub_example
{
using namespace cl_empty_subscriber;
using namespace smacc2::default_transition_tags;

struct State1 : smacc2::SmaccState<State1, SmAtomic>
{
  using SmaccState::SmaccState;

  typedef mpl::list<

    Transition<EvTopicMessage<CbEmptySubscriberBehavior, OrEmptySubscriber>, State2, SUCCESS>

    >reactions;


  static void staticConfigure()
  {
    configure_orthogonal<OrEmptySubscriber, CbEmptySubscriberBehavior>();
  }

  void runtimeConfigure() {}

  void onEntry() { RCLCPP_INFO(getLogger(), "On Entry!"); }

  void onExit() { RCLCPP_INFO(getLogger(), "On Exit!"); }
};
}  // namespace sm_sub_example

Am I missing something?

When I run this simple example, I get a Segmentation Fault that looks like #259

Output
$ ros2 run sm_sub_example sm_sub_example_node
1646937059.280354 [0] sm_sub_exa: selected interface "lo" is not multicast-capable: disabling multicast
[INFO] [1646937059.284953181] [SmAtomic]: Creating State Machine Base: /SmAtomic
[INFO] [1646937059.285102664] [SmAtomic]: [sm_sub_example::OrTimer] creating client object, type:'cl_ros_timer::ClRosTimer' object tag: 'sm_sub_example::OrTimer'
[INFO] [1646937059.285158359] [SmAtomic]: sm_sub_example::OrTimer Orthogonal is created
[INFO] [1646937059.285179008] [SmAtomic]: [sm_sub_example::OrEmptySubscriber] creating client object, type:'sm_sub_example::cl_empty_subscriber::ClEmptySubscriber' object tag: 'sm_sub_example::OrEmptySubscriber'
[INFO] [1646937059.285206713] [SmAtomic]: [smacc2::ClientHandler<sm_sub_example::OrEmptySubscriber, sm_sub_example::cl_empty_subscriber::ClEmptySubscriber>] Subscribing to topic: /next
[INFO] [1646937059.285652758] [SmAtomic]: sm_sub_example::OrEmptySubscriber Orthogonal is created
[INFO] [1646937059.285678535] [SmAtomic]: [SmaccStateMachine] Introspecting state machine via typeWalker
[INFO] [1646937059.285710092] [SmAtomic]: Creating State Info: sm_sub_example::State1
[INFO] [1646937059.285750100] [SmAtomic]: EXECUTING ONDEFINITION: sm_sub_example::State1
[INFO] [1646937059.286240445] [static]: [states walking] State State1client behavior count: 1
[INFO] [1646937059.286253281] [SmAtomic]: State N14sm_sub_example6State1E Walker has transition list
[WARN] [1646937059.306842751] [SmAtomic]:
[INFO] [1646937059.306972472] [SmAtomic]: State sm_sub_example::State1 Walker transition: smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > >
[INFO] [1646937059.307012790] [SmAtomic]: State sm_sub_example::State1 Walker transition: smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > >
[INFO] [1646937059.307036157] [SmAtomic]: Transition tag: smacc2::default_transition_tags::SUCCESS
[INFO] [1646937059.307072050] [SmAtomic]: Creating State Info: sm_sub_example::State2
[INFO] [1646937059.307113725] [SmAtomic]: EXECUTING ONDEFINITION: sm_sub_example::State2
[INFO] [1646937059.307628383] [static]: [states walking] State State2client behavior count: 1
[INFO] [1646937059.307641225] [SmAtomic]: State N14sm_sub_example6State2E Walker has transition list
[INFO] [1646937059.313064223] [SmAtomic]: State sm_sub_example::State2 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_sub_example::OrTimer>
[INFO] [1646937059.313089327] [SmAtomic]: State sm_sub_example::State2 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_sub_example::OrTimer>
[INFO] [1646937059.313110395] [SmAtomic]: Transition tag: smacc2::default_transition_tags::SUCCESS
Backtrace
#0  0x0000555555695ab8 in __gnu_cxx::__normal_iterator<std::shared_ptr<smacc2::introspection::TypeInfo>*, std::vector<std::shared_ptr<smacc2::introspection::TypeInfo>, std::allocator<std::shared_ptr<smacc2::introspection::TypeInfo> > > >::__normal_iterator (this=0x7ffff5256bc0, __i=<error reading variable>) at /usr/include/c++/9/bits/stl_iterator.h:807
#1  0x00005555556912bc in std::vector<std::shared_ptr<smacc2::introspection::TypeInfo>, std::allocator<std::shared_ptr<smacc2::introspection::TypeInfo> > >::begin (this=0x0) at /usr/include/c++/9/bits/stl_vector.h:809
#2  0x000055555568dc23 in std::vector<std::shared_ptr<smacc2::introspection::TypeInfo>, std::allocator<std::shared_ptr<smacc2::introspection::TypeInfo> > >::front (this=0x0) at /usr/include/c++/9/bits/stl_vector.h:1121
#3  0x000055555568943a in smacc2::introspection::SmaccStateInfo::declareTransition<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > > (this=0x7ffff007e490,
    dstState=std::shared_ptr<smacc2::introspection::SmaccStateInfo> (use count 4, weak count 1) = {...}, transitionTag="smacc2::default_transition_tags::SUCCESS", transitionType="smacc2::default_transition_tags::SUCCESS", history=false, transitionTypeInfo=std::shared_ptr<smacc2::introspection::TypeInfo> (empty) = {...})
    at /home/rre/victor_ws/install/smacc2/include/smacc2/introspection/smacc_state_machine_info.hpp:263
#4  0x0000555555684213 in smacc2::introspection::processTransitionAux<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > >, sm_sub_example::State2, smacc2::default_transition_tags::SUCCESS> (
    sourceState=std::shared_ptr<smacc2::introspection::SmaccStateInfo> (use count 5, weak count 1) = {...}, history=false, transitionTypeInfo=std::shared_ptr<smacc2::introspection::TypeInfo> (empty) = {...}) at /home/rre/victor_ws/install/smacc2/include/smacc2/introspection/smacc_state_machine_info.hpp:226
#5  0x000055555567ec2e in smacc2::introspection::processTransition<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > >, sm_sub_example::State2, smacc2::default_transition_tags::SUCCESS> (t=0x0,
    sourceState=std::shared_ptr<smacc2::introspection::SmaccStateInfo> (use count 5, weak count 1) = {...}) at /home/rre/victor_ws/install/smacc2/include/smacc2/introspection/smacc_state_machine_info.hpp:190
#6  0x0000555555678421 in smacc2::introspection::processTransitions<smacc2::Transition<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > >, sm_sub_example::State2, smacc2::default_transition_tags::SUCCESS, boost::statechart::detail::no_context<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > >, &boost::statechart::detail::no_context<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > >::no_function> > (sourceState=std::shared_ptr<smacc2::introspection::SmaccStateInfo> (use count 5, weak count 1) = {...}) at /home/rre/victor_ws/install/smacc2/include/smacc2/introspection/smacc_state_machine_info.hpp:344
#7  0x0000555555671a93 in smacc2::introspection::AddTransition::operator()<smacc2::introspection::type_<smacc2::Transition<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > >, sm_sub_example::State2, smacc2::default_transition_tags::SUCCESS, boost::statechart::detail::no_context<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > >, &boost::statechart::detail::no_context<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > >::no_function> > > (this=0x7ffff5258070) at /home/rre/victor_ws/install/smacc2/include/smacc2/introspection/smacc_state_machine_info.hpp:416
#8  0x000055555566cba7 in boost::mpl::aux::for_each_impl<false>::execute<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<1l>, smacc2::introspection::type_<smacc2::Transition<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > >, sm_sub_example::State2, smacc2::default_transition_tags::SUCCESS, boost::statechart::detail::no_context<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > >, &boost::statechart::detail::no_context<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > >::no_function> >, boost::mpl::l_end> >, boost::mpl::l_iter<boost::mpl::l_end>, boost::mpl::identity<mpl_::na>, smacc2::introspection::AddTransition> (f=...) at /usr/include/boost/mpl/for_each.hpp:78
#9  0x0000555555667efa in boost::mpl::for_each<boost::mpl::l_item<mpl_::long_<1l>, smacc2::introspection::type_<smacc2::Transition<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > >, sm_sub_example::State2, smacc2::default_transition_tags::SUCCESS, boost::statechart::detail::no_context<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > >, &boost::statechart::detail::no_context<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > >::no_function> >, boost::mpl::l_end>, boost::mpl::identity<mpl_::na>, smacc2::introspection::AddTransition> (f=...) at /usr/include/boost/mpl/for_each.hpp:105
#10 0x0000555555662ca9 in boost::mpl::for_each<boost::mpl::l_item<mpl_::long_<1l>, smacc2::introspection::type_<smacc2::Transition<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > >, sm_sub_example::State2, smacc2::default_transition_tags::SUCCESS, boost::statechart::detail::no_context<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > >, &boost::statechart::detail::no_context<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > >::no_function> >, boost::mpl::l_end>, smacc2::introspection::AddTransition> (f=...) at /usr/include/boost/mpl/for_each.hpp:118
#11 0x000055555565e904 in smacc2::introspection::processTransitions<boost::mpl::list<smacc2::Transition<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > >, sm_sub_example::State2, smacc2::default_transition_tags::SUCCESS, boost::statechart::detail::no_context<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > >, &boost::statechart::detail::no_context<smacc2::default_events::EvTopicMessage<sm_sub_example::cl_empty_subscriber::CbEmptySubscriberBehavior, sm_sub_example::OrEmptySubscriber, std_msgs::msg::Empty_<std::allocator<void> > > >::no_function>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na> > (
    sourceState=std::shared_ptr<smacc2::introspection::SmaccStateInfo> (use count 5, weak count 1) = {...}) at /home/rre/victor_ws/install/smacc2/include/smacc2/introspection/smacc_state_machine_info.hpp:168
#12 0x000055555565a2ec in smacc2::introspection::WalkStatesExecutor<sm_sub_example::State1>::walkStates (parentState=std::shared_ptr<smacc2::introspection::SmaccStateInfo> (use count 5, weak count 1) = {...}, rootInitialNode=true) at /home/rre/victor_ws/install/smacc2/include/smacc2/introspection/smacc_state_machine_info.hpp:461
#13 0x0000555555657c87 in smacc2::introspection::SmaccStateMachineInfo::buildStateMachineInfo<sm_sub_example::State1> (this=0x7ffff007ef40) at /home/rre/victor_ws/install/smacc2/include/smacc2/introspection/smacc_state_machine_info.hpp:470
#14 0x0000555555656c82 in smacc2::ISmaccStateMachine::buildStateMachineInfo<sm_sub_example::State1> (this=0x7ffff0000b60) at /home/rre/victor_ws/install/smacc2/include/smacc2/impl/smacc_state_machine_impl.hpp:601
#15 0x00005555556554b9 in smacc2::SmaccStateMachineBase<sm_sub_example::SmAtomic, sm_sub_example::State1>::initiate_impl (this=0x7ffff0000b60) at /home/rre/victor_ws/install/smacc2/include/smacc2/smacc_state_machine_base.hpp:75
#16 0x000055555563e18b in boost::statechart::event_processor<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> > >::initiate (this=0x7ffff0000e40) at /usr/include/boost/statechart/event_processor.hpp:44
#17 0x0000555555637d9a in boost::statechart::processor_container<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >, boost::function0<void>, std::allocator<boost::statechart::none> >::initiate_processor_impl (this=0x7fffffffcfa8, processor=...)
    at /usr/include/boost/statechart/processor_container.hpp:397
#18 0x000055555564e12c in boost::_mfi::mf1<void, boost::statechart::processor_container<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >, boost::function0<void>, std::allocator<boost::statechart::none> >, boost::weak_ptr<std::auto_ptr<boost::statechart::event_processor<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> > > > > const&>::operator() (this=0x5555557a39d0, p=0x7fffffffcfa8, a1=...) at /usr/include/boost/bind/mem_fn_template.hpp:165
#19 0x000055555564b79a in boost::_bi::list2<boost::_bi::value<boost::statechart::processor_container<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >, boost::function0<void>, std::allocator<boost::statechart::none> >*>, boost::_bi::value<boost::weak_ptr<std::auto_ptr<boost::statechart::event_processor<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> > > > > > >::operator()<boost::_mfi::mf1<void, boost::statechart::processor_container<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >, boost::function0<void>, std::allocator<boost::statechart::none> >, boost::weak_ptr<std::auto_ptr<boost::statechart::event_processor<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> > > > > const&>, boost::_bi::list0> (this=0x5555557a39e0, f=..., a=...) at /usr/include/boost/bind/bind.hpp:319
#20 0x0000555555648788 in boost::_bi::bind_t<void, boost::_mfi::mf1<void, boost::statechart::processor_container<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >, boost::function0<void>, std::allocator<boost::statechart::none> >, boost::weak_ptr<std::auto_ptr<boost::statechart::event_processor<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> > > > > const&>, boost::_bi::list2<boost::_bi::value<boost::statechart::processor_container<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >, boost::function0<void>, std::allocator<boost::statechart::none> >*>, boost::_bi::value<boost::weak_ptr<std::auto_ptr<boost::statechart::event_processor<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> > > > > > > >::operator() (this=0x5555557a39d0) at /usr/include/boost/bind/bind.hpp:1294
#21 0x0000555555643fe1 in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, boost::_mfi::mf1<void, boost::statechart::processor_container<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >, boost::function0<void>, std::allocator<boost::statechart::none> >, boost::weak_ptr<std::auto_ptr<boost::statechart::event_processor<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> > > > > const&>, boost::_bi::list2<boost::_bi::value<boost::statechart::processor_container<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >, boost::function0<void>, std::allocator<boost::statechart::none> >*>, boost::_bi::value<boost::weak_ptr<std::auto_ptr<boost::statechart::event_processor<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> > > > > > > >, void>::invoke (function_obj_ptr=...) at /usr/include/boost/function/function_template.hpp:158
#22 0x0000555555621fbb in boost::function0<void>::operator() (this=0x7ffff52594d0) at /usr/include/boost/function/function_template.hpp:763
#23 0x0000555555631211 in boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >::operator() (this=0x7fffffffcfd8, maxItemCount=0) at /usr/include/boost/statechart/fifo_worker.hpp:134
#24 0x000055555562b9b3 in boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >::operator() (this=0x7fffffffcfa0, maxEventCount=0) at /usr/include/boost/statechart/fifo_scheduler.hpp:187
#25 0x0000555555658688 in boost::_mfi::mf1<unsigned long, boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >, unsigned long>::operator() (this=0x5555557c9ca8, p=0x7fffffffcfa0, a1=0) at /usr/include/boost/bind/mem_fn_template.hpp:165
#26 0x00005555556573d5 in boost::_bi::list2<boost::_bi::value<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >*>, boost::_bi::value<int> >::operator()<unsigned long, boost::_mfi::mf1<unsigned long, boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >, unsigned long>, boost::_bi::list0> (this=0x5555557c9cb8, f=..., a=...) at /usr/include/boost/bind/bind.hpp:309
#27 0x0000555555655e96 in boost::_bi::bind_t<unsigned long, boost::_mfi::mf1<unsigned long, boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >, unsigned long>, boost::_bi::list2<boost::_bi::value<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >*>, boost::_bi::value<int> > >::operator() (this=0x5555557c9ca8) at /usr/include/boost/bind/bind.hpp:1294
#28 0x0000555555653b6a in boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf1<unsigned long, boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >, unsigned long>, boost::_bi::list2<boost::_bi::value<boost::statechart::fifo_scheduler<boost::statechart::fifo_worker<std::allocator<boost::statechart::none> >, std::allocator<boost::statechart::none> >*>, boost::_bi::value<int> > > >::run (this=0x5555557c9b70) at /usr/include/boost/thread/detail/thread.hpp:120
#29 0x00007ffff78cc43b in ?? () from /lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
#30 0x00007ffff794a609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#31 0x00007ffff75e8293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

test3

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

ROS DETAILS:

  • OS: [e.g. Ubuntu 20.04 LTS]
  • Version [e.g. Rolling]

REPO DETAILS:

  • Repository: [e.g. robosoft-ai/SMACC2]
  • Branch: [e.g. master]
  • Commit (First 5 Digits): [e.g. 6bade]

BUILDSPACE DETAILS (List all packages):

  • [e.g. ros2_control - 6bbde]
  • [e.g. moveit2 - 6bbde]
  • ...

BUILD DETAILS

  • Build Command: [e.g. colcon build --symlink-install]

Additional context

  • Anything that may be unusual about your environment

Add any other context about the problem here, especially include any modifications to smacc2 that relate to this issue.

Error Details

Cut and Paste Here... (e.g. terminal output)

┆Issue is synchronized with this Jira Task by Unito

sm_dance_bot: Extrapolation error

Describe the bug
A clear and concise description of what the bug is.

sm_dance_bot gets stuck on south-west wall and output a message about it not being able to extrapolate into the past. Will include image from terminal.

To Reproduce
Steps to reproduce the behavior:

set iterations of radial patterns to 2 for faster tesing.
launch sm_dance_bot via ros2 launch sm_dance_bot sm_dance_bot_launch.py
ran sm_dance_bot until it got stuck on that wall.

Expected behavior
A clear and concise description of what you expected to happen.

it would navigate around the wall

Screenshots
If applicable, add screenshots to help explain your problem.

Screenshot from 2021-10-11 09-50-45

Screenshot from 2021-10-11 09-43-33

Environment (please complete the following information):

ROS DETAILS:

  • OS: Ubuntu 20.04 LTS
  • Version Rolling

REPO DETAILS:

  • Repository: robosoft-ai/SMACC2
  • Branch: master
  • Commit (First 5 Digits): b0ba4

BUILDSPACE DETAILS (List all packages):

  • [e.g. ros2_control - 6bbde]
  • [e.g. moveit2 - 6bbde]
  • ...

BUILD DETAILS

  • Build Command: [e.g. colcon build --symlink-install]
    colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

TEST DETAILS

  • Launch file: ros2 launch sm_dance_bot sm_dance_bot_launch.py

Additional context

  • Anything that may be unusual about your environment

suspected to be dirty

Add any other context about the problem here, especially include any modifications to smacc2 that relate to this issue.

The only modification that was made to the code was changing the number of iterations of the radial patterns.

Error Details

Cut and Paste Here... (e.g. terminal output)

sm_three_some example not running on galactic

Describe the bug
I am currently investigating the SMACC2 usage for a project.
I need subscribers to generate events so I have taken a look at examples using subscribers.
I have tried to run the sm_three_some example but there is an error about a topic without name but then, the state machine structure is not printed as for the other examples and after some logs, the node exits with return code 245.

To Reproduce
Steps to reproduce the behavior:

  1. Clone the galactic branch
  2. Follow the README to build (vcs import and rosdep install)
  3. colcon build
  4. source install/setup.bash
  5. ros2 run sm_three_some sm_three_some_node

Expected behavior
The state machine running

Output

console output
$ ros2 run sm_three_some sm_three_some_node 
1646932441.267087 [0] sm_three_s: selected interface "lo" is not multicast-capable: disabling multicast
[INFO] [1646932441.272365375] [SmThreeSome]: Creating State Machine Base: /SmThreeSome
[INFO] [1646932441.272556170] [SmThreeSome]: [sm_three_some::OrTimer] creating client object, type:'cl_ros_timer::ClRosTimer' object tag: 'sm_three_some::OrTimer'
[INFO] [1646932441.272622045] [SmThreeSome]: sm_three_some::OrTimer Orthogonal is created
[INFO] [1646932441.272673740] [SmThreeSome]: [sm_three_some::OrUpdatablePublisher] creating client object, type:'cl_ros_publisher::ClRosPublisher' object tag: 'sm_three_some::OrUpdatablePublisher'
[INFO] [1646932441.272713190] [SmThreeSome]: sm_three_some::OrUpdatablePublisher Orthogonal is created
[INFO] [1646932441.272746011] [SmThreeSome]: [sm_three_some::OrKeyboard] creating client object, type:'cl_keyboard::ClKeyboard' object tag: 'sm_three_some::OrKeyboard'
[INFO] [1646932441.272790118] [SmThreeSome]: [smacc2::ClientHandler<sm_three_some::OrKeyboard, cl_keyboard::ClKeyboard>] Subscribing to topic: /keyboard_unicode
[INFO] [1646932441.273203678] [SmThreeSome]: sm_three_some::OrKeyboard Orthogonal is created
[INFO] [1646932441.273235649] [SmThreeSome]: [sm_three_some::OrSubscriber] creating client object, type:'sm_three_some::cl_subscriber::ClSubscriber' object tag: 'sm_three_some::OrSubscriber'
[ERROR] [1646932441.273276577] [SmThreeSome]: topic client with no topic name set. Skipping subscribing
[INFO] [1646932441.273293049] [SmThreeSome]: sm_three_some::OrSubscriber Orthogonal is created
[INFO] [1646932441.273306483] [SmThreeSome]: [SmaccStateMachine] Introspecting state machine via typeWalker
[INFO] [1646932441.273324766] [SmThreeSome]: Creating State Info: sm_three_some::MsRun
[INFO] [1646932441.273369956] [SmThreeSome]: static OnDefinition: dont exist for sm_three_some::MsRun
[INFO] [1646932441.273392567] [SmThreeSome]: Creating State Info: sm_three_some::StState1
[WARN] [1646932441.273422261] [SmThreeSome]: Real parent state> sm_three_some::MsRun
[INFO] [1646932441.273441264] [SmThreeSome]: EXECUTING ONDEFINITION: sm_three_some::StState1
[INFO] [1646932441.273960627] [static]: [states walking] State StState1client behavior count: 1
[INFO] [1646932441.274002710] [static]: [states walking] State StState1client behavior count: 2
[INFO] [1646932441.274034218] [static]: [states walking] State StState1client behavior count: 3
[INFO] [1646932441.274061452] [static]: [states walking] State StState1client behavior count: 4
[INFO] [1646932441.274070888] [SmThreeSome]: State N13sm_three_some8StState1E Walker has transition list
[INFO] [1646932441.279404674] [SmThreeSome]: State sm_three_some::StState1 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.279432887] [SmThreeSome]: State sm_three_some::StState1 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.279459664] [SmThreeSome]: Transition tag: sm_three_some::StState1::TIMEOUT
[INFO] [1646932441.279482231] [SmThreeSome]: Creating State Info: sm_three_some::StState2
[INFO] [1646932441.279506551] [SmThreeSome]: EXECUTING ONDEFINITION: sm_three_some::StState2
[INFO] [1646932441.279989362] [static]: [states walking] State StState2client behavior count: 1
[INFO] [1646932441.280016353] [static]: [states walking] State StState2client behavior count: 2
[INFO] [1646932441.280039820] [static]: [states walking] State StState2client behavior count: 3
[INFO] [1646932441.280068287] [static]: [states walking] State StState2client behavior count: 4
[INFO] [1646932441.283668636] [SmThreeSome]: State N13sm_three_some8StState2E Walker has transition list
[INFO] [1646932441.288629471] [SmThreeSome]: State sm_three_some::StState2 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.288672206] [SmThreeSome]: State sm_three_some::StState2 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.288709286] [SmThreeSome]: Transition tag: sm_three_some::StState2::TIMEOUT
[INFO] [1646932441.288722180] [SmThreeSome]: Creating State Info: sm_three_some::StState3
[INFO] [1646932441.288816230] [SmThreeSome]: EXECUTING ONDEFINITION: sm_three_some::StState3
[INFO] [1646932441.289371514] [static]: [states walking] State StState3client behavior count: 1
[INFO] [1646932441.289415750] [static]: [states walking] State StState3client behavior count: 2
[INFO] [1646932441.289498967] [static]: [states walking] State StState3client behavior count: 3
[INFO] [1646932441.289543580] [static]: [states walking] State StState3client behavior count: 4
[INFO] [1646932441.289554102] [SmThreeSome]: State N13sm_three_some8StState3E Walker has transition list
[INFO] [1646932441.294809550] [SmThreeSome]: State sm_three_some::StState3 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.294832302] [SmThreeSome]: State sm_three_some::StState3 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.294854379] [SmThreeSome]: Transition tag: sm_three_some::StState3::TIMEOUT
[INFO] [1646932441.294879303] [SmThreeSome]: Creating State Info: sm_three_some::SS1::Ss1
[INFO] [1646932441.294896876] [SmThreeSome]: EXECUTING ONDEFINITION: sm_three_some::SS1::Ss1
[INFO] [1646932441.294919424] [SmThreeSome]: Creating State Info: sm_three_some::SS1::sm_three_some::inner_states::StiState1
[WARN] [1646932441.294948100] [SmThreeSome]: Real parent state> sm_three_some::SS1::Ss1
[INFO] [1646932441.294971401] [SmThreeSome]: EXECUTING ONDEFINITION: sm_three_some::SS1::sm_three_some::inner_states::StiState1
[INFO] [1646932441.294989487] [SmThreeSome]: State N13sm_three_some3SS113sm_three_some12inner_states9StiState1E Walker has transition list
[INFO] [1646932441.302469996] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState1 Walker transition: smacc2::default_events::EvLoopContinue<sm_three_some::SS1::sm_three_some::inner_states::StiState1>
[INFO] [1646932441.302514783] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState1 Walker transition: smacc2::default_events::EvLoopContinue<sm_three_some::SS1::sm_three_some::inner_states::StiState1>
[INFO] [1646932441.302551390] [SmThreeSome]: Transition tag: smacc2::default_transition_tags::CONTINUELOOP
[INFO] [1646932441.302598906] [SmThreeSome]: Creating State Info: sm_three_some::SS1::sm_three_some::inner_states::StiState2
[INFO] [1646932441.302636957] [SmThreeSome]: EXECUTING ONDEFINITION: sm_three_some::SS1::sm_three_some::inner_states::StiState2
[INFO] [1646932441.303445770] [static]: [states walking] State StiState2client behavior count: 1
[INFO] [1646932441.303493883] [static]: [states walking] State StiState2client behavior count: 2
[INFO] [1646932441.303581065] [static]: [states walking] State StiState2client behavior count: 3
[INFO] [1646932441.303645894] [static]: [states walking] State StiState2client behavior count: 4
[INFO] [1646932441.303660595] [SmThreeSome]: State N13sm_three_some3SS113sm_three_some12inner_states9StiState2E Walker has transition list
[INFO] [1646932441.312233315] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState2 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.312313930] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState2 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.312349887] [SmThreeSome]: Transition tag: sm_three_some::SS1::sm_three_some::inner_states::StiState2::TIMEOUT
[INFO] [1646932441.312369406] [SmThreeSome]: Creating State Info: sm_three_some::SS1::sm_three_some::inner_states::StiState3
[INFO] [1646932441.312428383] [SmThreeSome]: EXECUTING ONDEFINITION: sm_three_some::SS1::sm_three_some::inner_states::StiState3
[INFO] [1646932441.313207704] [static]: [states walking] State StiState3client behavior count: 1
[INFO] [1646932441.313283246] [static]: [states walking] State StiState3client behavior count: 2
[INFO] [1646932441.313333219] [static]: [states walking] State StiState3client behavior count: 3
[INFO] [1646932441.313392904] [static]: [states walking] State StiState3client behavior count: 4
[INFO] [1646932441.313407595] [SmThreeSome]: State N13sm_three_some3SS113sm_three_some12inner_states9StiState3E Walker has transition list
[WARN] [1646932441.315174879] [SmThreeSome]: Signal detector frequency (ros param signal_detector_loop_freq): 20.000000
[INFO] [1646932441.315298238] [SmThreeSome]: [SignalDetector] loop rate hz:20
[INFO] [1646932441.321869439] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState3 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.321917786] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState3 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.321936883] [SmThreeSome]: Transition tag: sm_three_some::SS1::sm_three_some::inner_states::StiState3::TIMEOUT
[INFO] [1646932441.330363360] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState3 Walker transition: cl_keyboard::EvKeyPressP<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.330420668] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState3 Walker transition: cl_keyboard::EvKeyPressP<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.330471375] [SmThreeSome]: Transition tag: sm_three_some::SS1::sm_three_some::inner_states::StiState3::PREVIOUS
[INFO] [1646932441.339324147] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState3 Walker transition: cl_keyboard::EvKeyPressN<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.339392640] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState3 Walker transition: cl_keyboard::EvKeyPressN<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.339434453] [SmThreeSome]: Transition tag: sm_three_some::SS1::sm_three_some::inner_states::StiState3::NEXT
[INFO] [1646932441.347417561] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState2 Walker transition: cl_keyboard::EvKeyPressN<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.347451051] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState2 Walker transition: cl_keyboard::EvKeyPressN<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.347470901] [SmThreeSome]: Transition tag: sm_three_some::SS1::sm_three_some::inner_states::StiState2::NEXT
[INFO] [1646932441.355732515] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState2 Walker transition: cl_keyboard::EvKeyPressP<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.355778584] [SmThreeSome]: State sm_three_some::SS1::sm_three_some::inner_states::StiState2 Walker transition: cl_keyboard::EvKeyPressP<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.355818017] [SmThreeSome]: Transition tag: sm_three_some::SS1::sm_three_some::inner_states::StiState2::PREVIOUS
[INFO] [1646932441.355881547] [SmThreeSome]: State N13sm_three_some3SS13Ss1E Walker has transition list
[INFO] [1646932441.362370123] [SmThreeSome]: State sm_three_some::SS1::Ss1 Walker transition: smacc2::default_events::EvLoopEnd<sm_three_some::SS1::sm_three_some::inner_states::StiState1>
[INFO] [1646932441.362421726] [SmThreeSome]: State sm_three_some::SS1::Ss1 Walker transition: smacc2::default_events::EvLoopEnd<sm_three_some::SS1::sm_three_some::inner_states::StiState1>
[INFO] [1646932441.362448286] [SmThreeSome]: Transition tag: smacc2::default_transition_tags::ENDLOOP
[INFO] [1646932441.362505519] [SmThreeSome]: Creating State Info: sm_three_some::SS2::Ss2
[INFO] [1646932441.362532319] [SmThreeSome]: EXECUTING ONDEFINITION: sm_three_some::SS2::Ss2
[INFO] [1646932441.362604876] [SmThreeSome]: Creating State Info: sm_three_some::SS2::sm_three_some::inner_states::StiState1
[WARN] [1646932441.362634963] [SmThreeSome]: Real parent state> sm_three_some::SS2::Ss2
[INFO] [1646932441.362662879] [SmThreeSome]: EXECUTING ONDEFINITION: sm_three_some::SS2::sm_three_some::inner_states::StiState1
[INFO] [1646932441.362680426] [SmThreeSome]: State N13sm_three_some3SS213sm_three_some12inner_states9StiState1E Walker has transition list
[INFO] [1646932441.370129096] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState1 Walker transition: smacc2::default_events::EvLoopContinue<sm_three_some::SS2::sm_three_some::inner_states::StiState1>
[INFO] [1646932441.370152959] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState1 Walker transition: smacc2::default_events::EvLoopContinue<sm_three_some::SS2::sm_three_some::inner_states::StiState1>
[INFO] [1646932441.370168043] [SmThreeSome]: Transition tag: smacc2::default_transition_tags::CONTINUELOOP
[INFO] [1646932441.370199680] [SmThreeSome]: Creating State Info: sm_three_some::SS2::sm_three_some::inner_states::StiState2
[INFO] [1646932441.370255836] [SmThreeSome]: EXECUTING ONDEFINITION: sm_three_some::SS2::sm_three_some::inner_states::StiState2
[INFO] [1646932441.371143617] [static]: [states walking] State StiState2client behavior count: 1
[INFO] [1646932441.371173889] [static]: [states walking] State StiState2client behavior count: 2
[INFO] [1646932441.371197725] [static]: [states walking] State StiState2client behavior count: 3
[INFO] [1646932441.371249234] [static]: [states walking] State StiState2client behavior count: 4
[INFO] [1646932441.371277887] [SmThreeSome]: State N13sm_three_some3SS213sm_three_some12inner_states9StiState2E Walker has transition list
[INFO] [1646932441.379001048] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState2 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.379040190] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState2 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.379077597] [SmThreeSome]: Transition tag: sm_three_some::SS2::sm_three_some::inner_states::StiState2::TIMEOUT
[INFO] [1646932441.379121175] [SmThreeSome]: Creating State Info: sm_three_some::SS2::sm_three_some::inner_states::StiState3
[INFO] [1646932441.379190030] [SmThreeSome]: EXECUTING ONDEFINITION: sm_three_some::SS2::sm_three_some::inner_states::StiState3
[INFO] [1646932441.379977848] [static]: [states walking] State StiState3client behavior count: 1
[INFO] [1646932441.380010456] [static]: [states walking] State StiState3client behavior count: 2
[INFO] [1646932441.380062597] [static]: [states walking] State StiState3client behavior count: 3
[INFO] [1646932441.380095948] [static]: [states walking] State StiState3client behavior count: 4
[INFO] [1646932441.380108153] [SmThreeSome]: State N13sm_three_some3SS213sm_three_some12inner_states9StiState3E Walker has transition list
[INFO] [1646932441.388188779] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState3 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.388230131] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState3 Walker transition: cl_ros_timer::EvTimer<cl_ros_timer::CbTimerCountdownOnce, sm_three_some::OrTimer>
[INFO] [1646932441.388323974] [SmThreeSome]: Transition tag: sm_three_some::SS2::sm_three_some::inner_states::StiState3::TIMEOUT
[INFO] [1646932441.396376878] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState3 Walker transition: cl_keyboard::EvKeyPressP<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.396416954] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState3 Walker transition: cl_keyboard::EvKeyPressP<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.396461251] [SmThreeSome]: Transition tag: sm_three_some::SS2::sm_three_some::inner_states::StiState3::PREVIOUS
[INFO] [1646932441.404829414] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState3 Walker transition: cl_keyboard::EvKeyPressN<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.404897798] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState3 Walker transition: cl_keyboard::EvKeyPressN<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.404924450] [SmThreeSome]: Transition tag: sm_three_some::SS2::sm_three_some::inner_states::StiState3::NEXT
[INFO] [1646932441.412548370] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState2 Walker transition: cl_keyboard::EvKeyPressN<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.412591676] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState2 Walker transition: cl_keyboard::EvKeyPressN<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.412610481] [SmThreeSome]: Transition tag: sm_three_some::SS2::sm_three_some::inner_states::StiState2::NEXT
[INFO] [1646932441.420510104] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState2 Walker transition: cl_keyboard::EvKeyPressP<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.420552711] [SmThreeSome]: State sm_three_some::SS2::sm_three_some::inner_states::StiState2 Walker transition: cl_keyboard::EvKeyPressP<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.420596271] [SmThreeSome]: Transition tag: sm_three_some::SS2::sm_three_some::inner_states::StiState2::PREVIOUS
[INFO] [1646932441.420659395] [SmThreeSome]: State N13sm_three_some3SS23Ss2E Walker has transition list
[INFO] [1646932441.426876830] [SmThreeSome]: State sm_three_some::SS2::Ss2 Walker transition: smacc2::default_events::EvLoopEnd<sm_three_some::SS2::sm_three_some::inner_states::StiState1>
[INFO] [1646932441.426917935] [SmThreeSome]: State sm_three_some::SS2::Ss2 Walker transition: smacc2::default_events::EvLoopEnd<sm_three_some::SS2::sm_three_some::inner_states::StiState1>
[INFO] [1646932441.426954208] [SmThreeSome]: Transition tag: smacc2::default_transition_tags::ENDLOOP
[INFO] [1646932441.426991877] [SmThreeSome]: Creating State Info: sm_three_some::StState4
[INFO] [1646932441.427020152] [SmThreeSome]: EXECUTING ONDEFINITION: sm_three_some::StState4
[INFO] [1646932441.427637944] [static]: [states walking] State StState4client behavior count: 1
[INFO] [1646932441.427651499] [SmThreeSome]: State N13sm_three_some8StState4E Walker has transition list
[INFO] [1646932441.432992059] [SmThreeSome]: State sm_three_some::StState3 Walker transition: cl_keyboard::EvKeyPressP<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.433032353] [SmThreeSome]: State sm_three_some::StState3 Walker transition: cl_keyboard::EvKeyPressP<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.433068455] [SmThreeSome]: Transition tag: sm_three_some::StState3::PREVIOUS
[INFO] [1646932441.438236313] [SmThreeSome]: State sm_three_some::StState3 Walker transition: cl_keyboard::EvKeyPressN<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.438277984] [SmThreeSome]: State sm_three_some::StState3 Walker transition: cl_keyboard::EvKeyPressN<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.438326380] [SmThreeSome]: Transition tag: sm_three_some::StState3::NEXT
[INFO] [1646932441.444537234] [SmThreeSome]: State sm_three_some::StState2 Walker transition: smacc2::state_reactors::EvAllGo<smacc2::state_reactors::SrAllEventsGo, smacc2::state_reactors::EmptyObjectTag>
[INFO] [1646932441.444558754] [SmThreeSome]: State sm_three_some::StState2 Walker transition: smacc2::state_reactors::EvAllGo<smacc2::state_reactors::SrAllEventsGo, smacc2::state_reactors::EmptyObjectTag>
[INFO] [1646932441.444579681] [SmThreeSome]: Transition tag:
[INFO] [1646932441.450062618] [SmThreeSome]: State sm_three_some::StState2 Walker transition: cl_keyboard::EvKeyPressP<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.450116362] [SmThreeSome]: State sm_three_some::StState2 Walker transition: cl_keyboard::EvKeyPressP<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.450133452] [SmThreeSome]: Transition tag: sm_three_some::StState2::PREVIOUS
[INFO] [1646932441.455257538] [SmThreeSome]: State sm_three_some::StState2 Walker transition: cl_keyboard::EvKeyPressN<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.455334946] [SmThreeSome]: State sm_three_some::StState2 Walker transition: cl_keyboard::EvKeyPressN<cl_keyboard::CbDefaultKeyboardBehavior, sm_three_some::OrKeyboard>
[INFO] [1646932441.455364601] [SmThreeSome]: Transition tag: sm_three_some::StState2::NEXT
[WARN] [1646932441.472024905] [SmThreeSome]:
[INFO] [1646932441.472157442] [SmThreeSome]: State sm_three_some::StState1 Walker transition: smacc2::default_events::EvTopicMessage<sm_three_some::cl_subscriber::ClSubscriber, sm_three_some::OrSubscriber, std_msgs::msg::UInt16_<std::allocator<void> > >
[INFO] [1646932441.472202114] [SmThreeSome]: State sm_three_some::StState1 Walker transition: smacc2::default_events::EvTopicMessage<sm_three_some::cl_subscriber::ClSubscriber, sm_three_some::OrSubscriber, std_msgs::msg::UInt16_<std::allocator<void> > >
[INFO] [1646932441.472226347] [SmThreeSome]: Transition tag: sm_three_some::StState1::TIMEOUT
$

Environment:

ROS DETAILS:

  • OS: Ubuntu 20.04 LTS
  • Version: Galactic

REPO DETAILS:

  • Repository: robosoft-ai/SMACC2
  • Branch: galactic
  • Commit: 8ad830

BUILD DETAILS

  • Build Command: colcon build

TEST DETAILS

  • Command: ros2 run sm_three_some sm_three_some_node
  • Launch file:ros2 launch sm_three_some sm_three_some.launch

Make all formatters working - task list

  • ament_cppcheck - done in #24

    • rename *.h files into *.hpp files
    • enable in pre-commit config
    • enable in ROS-linters
  • ament_cpplint

    • exchange #pragma once if #ifndef ... header guard (needs discussion)
      • remove build/header_guard flag from the ament_cpplint configuration
      • remove from ROS-linters
    • Use " instead <> around private headers (needs discussion) - already used in some places, e.g., smacc_updatable.h
      • remove build/include_order flag from config
      • remove from ROS-linters
    • Do not use namespace using-directives. Use using-declarations instead.
      • remove build/namespaces flag from config
      • remove from ROS-linters
    • Replace use of unsigned long with something else (uint64?)
      • remove runtime/int flag from config
      • remove from ROS-linters

cpulogger.py

Also goes in performance_tools folder.
Will work with sm_atomic_24hr.

sm_dance_bot_strikes_back extrapolation error

Describe the bug
A clear and concise description of what the bug is.

Before s-pattern and at the end of the course, the planner terminal reads, "Extrapolation Error looking up target frame: Lookup would require extrapolation into the past."

To Reproduce
Steps to reproduce the behavior:

  1. Launch sm_dance_bot_strikes_back
  2. monitor planner_server until error appears in the stated locations
    (Happens reliably at those locations)

Expected behavior
A clear and concise description of what you expected to happen.

No errors thrown.

Screenshots
If applicable, add screenshots to help explain your problem.

Screenshot from 2021-11-04 12-54-41
Screenshot from 2021-11-04 13-05-37
Environment (please complete the following information):

ROS DETAILS:

  • OS: Ubuntu 20.04 LTS
  • Version: Rolling

REPO DETAILS:

  • Repository: robosoft-ai/SMACC2
  • Branch: master
  • Commit (First 5 Digits): 6bba1
    BUILDSPACE DETAILS (List all packages):
  • [e.g. ros2_control - 6bbde]
  • [e.g. moveit2 - 6bbde]
  • ...

BUILD DETAILS

  • Build Command: colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release

TEST DETAILS

  • Launch file: ros2 launch sm_dance_bot_strikes_back sm_dance_bot_strikes_back_launch.py

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.