├── .codespell-ignore-words.txt ├── .github └── workflows │ ├── CI.yaml │ ├── bloom_release.yml │ ├── code_quality.yml │ └── doxygen.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .vscode └── launch.json ├── LICENSE.txt ├── README.md ├── documentation ├── Dance_Bot FlowchartX.odp ├── Dance_Bot FlowchartX.v2.odp ├── ReelSmacc.v2.odp ├── SMACC-Containers-2.jpg ├── SMACC-Containers-3.jpg ├── SMACC-Node-Map-2-2-1.jpg ├── action_result_transition.png ├── custom_reaction.png ├── orthogonal_lines.png ├── radial_motion_example.png ├── radial_motion_example_statechart.png ├── shared_resource.png ├── shared_resources.png └── simpleStateMachine.png ├── smacc ├── CHANGELOG.rst ├── CMakeLists.txt ├── include │ └── smacc │ │ ├── callback_counter_semaphore.h │ │ ├── client_base_components │ │ ├── cp_ros_control_interface.h │ │ └── cp_topic_subscriber.h │ │ ├── client_bases │ │ ├── smacc_action_client.h │ │ ├── smacc_action_client_base.h │ │ ├── smacc_publisher_client.h │ │ ├── smacc_service_client.h │ │ ├── smacc_service_server_client.h │ │ └── smacc_subscriber_client.h │ │ ├── client_behavior_bases │ │ ├── cb_service_server_callback_base.h │ │ └── cb_subscription_callback_base.h │ │ ├── common.h │ │ ├── component.h │ │ ├── impl │ │ ├── smacc_asynchronous_client_behavior_impl.h │ │ ├── smacc_client_behavior_impl.h │ │ ├── smacc_client_impl.h │ │ ├── smacc_component_impl.h │ │ ├── smacc_event_generator_impl.h │ │ ├── smacc_orthogonal_impl.h │ │ ├── smacc_state_impl.h │ │ ├── smacc_state_machine_impl.h │ │ └── smacc_state_reactor_impl.h │ │ ├── introspection │ │ ├── introspection.h │ │ ├── smacc_state_info.h │ │ ├── smacc_state_machine_info.h │ │ ├── state_traits.h │ │ └── string_type_walker.h │ │ ├── smacc.h │ │ ├── smacc_asynchronous_client_behavior.h │ │ ├── smacc_client.h │ │ ├── smacc_client_behavior.h │ │ ├── smacc_client_behavior_base.h │ │ ├── smacc_default_events.h │ │ ├── smacc_event_generator.h │ │ ├── smacc_fifo_scheduler.h │ │ ├── smacc_fifo_worker.h │ │ ├── smacc_orthogonal.h │ │ ├── smacc_signal.h │ │ ├── smacc_signal_detector.h │ │ ├── smacc_state.h │ │ ├── smacc_state_base.h │ │ ├── smacc_state_machine.h │ │ ├── smacc_state_machine_base.h │ │ ├── smacc_state_reactor.h │ │ ├── smacc_transition.h │ │ ├── smacc_types.h │ │ └── smacc_updatable.h ├── package.xml ├── rosdoc.yaml ├── smacc_client_behavior_base.h ├── src │ └── smacc │ │ ├── callback_counter_semaphore.cpp │ │ ├── client.cpp │ │ ├── client_bases │ │ └── smacc_action_client.cpp │ │ ├── common.cpp │ │ ├── components │ │ └── cp_ros_control_interface.cpp │ │ ├── introspection │ │ ├── reflection.cpp │ │ └── string_type_walker.cpp │ │ ├── orthogonal.cpp │ │ ├── signal_detector.cpp │ │ ├── smacc_client_async_behavior.cpp │ │ ├── smacc_client_behavior.cpp │ │ ├── smacc_client_behavior_base.cpp │ │ ├── smacc_component.cpp │ │ ├── smacc_event_generator.cpp │ │ ├── smacc_state.cpp │ │ ├── smacc_state_info.cpp │ │ ├── smacc_state_machine.cpp │ │ ├── smacc_state_machine_info.cpp │ │ ├── smacc_updatable.cpp │ │ └── state_reactor.cpp └── test │ └── type_info_unit_test.cpp ├── smacc_ci ├── .gitignore ├── Doxyfile ├── docker │ ├── ros_kinetic_ubuntu_16.04 │ │ ├── Dockerfile │ │ ├── build.sh │ │ ├── examples │ │ │ └── run_sm_atomic.sh │ │ └── run_bash.sh │ ├── ros_melodic_ubuntu_18.04 │ │ ├── Dockerfile │ │ ├── build.sh │ │ ├── examples │ │ │ └── run_sm_atomic.sh │ │ └── run_bash.sh │ └── ros_noetic_ubuntu_20.04 │ │ ├── Dockerfile │ │ ├── build.sh │ │ ├── examples │ │ └── run_sm_atomic.sh │ │ └── run_bash.sh ├── gh-pages.sh ├── packagecloud_docker │ ├── .gitignore │ ├── Dockerfile │ ├── build_ubuntu_16_04_kinetic.sh │ ├── build_ubuntu_18_04_melodic.sh │ ├── build_ubuntu_20_04_noetic.sh │ ├── generate_debs.py │ ├── generate_smacc_debs.bash │ ├── local_build_18_04_melodic.sh │ └── local_build_20_04_noetic.sh ├── rosdep_kinetic.yaml ├── rosdep_melodic.yaml └── rosdep_noetic.yaml ├── smacc_client_library ├── battery_monitor_client │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── include │ │ └── battery_monitor_client │ │ │ └── cl_battery_monitor.h │ ├── package.xml │ ├── server │ │ └── battery_monitor_node.py │ └── src │ │ └── battery_monitor_client │ │ └── cl_battery_monitor.cpp ├── keyboard_client │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── include │ │ └── keyboard_client │ │ │ ├── cl_keyboard.h │ │ │ └── client_behaviors │ │ │ └── cb_default_keyboard_behavior.h │ ├── package.xml │ ├── server │ │ └── keyboard_server_node │ │ │ └── keyboard_server_node.py │ └── src │ │ └── keyboard_client │ │ └── cl_keyboard.cpp ├── move_base_z_client │ ├── README.md │ ├── custom_planners │ │ ├── backward_global_planner │ │ │ ├── CHANGELOG.rst │ │ │ ├── CMakeLists.txt │ │ │ ├── bgp_plugin.xml │ │ │ ├── include │ │ │ │ └── backward_global_planner │ │ │ │ │ └── backward_global_planner.h │ │ │ ├── package.xml │ │ │ ├── rosdoc.yaml │ │ │ └── src │ │ │ │ └── backward_global_planner.cpp │ │ ├── backward_local_planner │ │ │ ├── CHANGELOG.rst │ │ │ ├── CMakeLists.txt │ │ │ ├── blp_plugin.xml │ │ │ ├── cfg │ │ │ │ └── BackwardLocalPlanner.cfg │ │ │ ├── include │ │ │ │ └── backward_local_planner │ │ │ │ │ └── backward_local_planner.h │ │ │ ├── package.xml │ │ │ ├── rosdoc.yaml │ │ │ └── src │ │ │ │ └── backward_local_planner.cpp │ │ ├── forward_global_planner │ │ │ ├── CHANGELOG.rst │ │ │ ├── CMakeLists.txt │ │ │ ├── fgp_plugin.xml │ │ │ ├── include │ │ │ │ └── forward_global_planner │ │ │ │ │ ├── forward_global_planner.h │ │ │ │ │ └── move_base_z_client_tools.h │ │ │ ├── package.xml │ │ │ ├── rosdoc.yaml │ │ │ └── src │ │ │ │ ├── forward_global_planner.cpp │ │ │ │ └── path_tools.cpp │ │ ├── forward_local_planner │ │ │ ├── CHANGELOG.rst │ │ │ ├── CMakeLists.txt │ │ │ ├── cfg │ │ │ │ └── ForwardLocalPlanner.cfg │ │ │ ├── flp_plugin.xml │ │ │ ├── include │ │ │ │ └── forward_local_planner │ │ │ │ │ └── forward_local_planner.h │ │ │ ├── package.xml │ │ │ ├── rosdoc.yaml │ │ │ └── src │ │ │ │ └── forward_local_planner.cpp │ │ ├── pure_spinning_local_planner │ │ │ ├── CHANGELOG.rst │ │ │ ├── CMakeLists.txt │ │ │ ├── cfg │ │ │ │ └── PureSpinningLocalPlanner.cfg │ │ │ ├── config │ │ │ │ └── pure_spinning_local_planner.yaml │ │ │ ├── include │ │ │ │ └── pure_spinning_local_planner │ │ │ │ │ └── pure_spinning_local_planner.h │ │ │ ├── package.xml │ │ │ ├── pslp_plugin.xml │ │ │ ├── rosdoc.yaml │ │ │ └── src │ │ │ │ └── pure_spinning_local_planner │ │ │ │ └── pure_spinning_local_planner.cpp │ │ └── undo_path_global_planner │ │ │ ├── CHANGELOG.rst │ │ │ ├── CMakeLists.txt │ │ │ ├── include │ │ │ └── undo_path_global_planner │ │ │ │ └── undo_path_global_planner.h │ │ │ ├── package.xml │ │ │ ├── rosdoc.yaml │ │ │ ├── src │ │ │ └── undo_path_global_planner.cpp │ │ │ └── upgp_plugin.xml │ └── move_base_z_client_plugin │ │ ├── CHANGELOG.rst │ │ ├── CMakeLists.txt │ │ ├── action │ │ └── OdomTracker.action │ │ ├── cfg │ │ └── OdomTracker.cfg │ │ ├── include │ │ └── move_base_z_client_plugin │ │ │ ├── client_behaviors.h │ │ │ ├── client_behaviors │ │ │ ├── cb_absolute_rotate.h │ │ │ ├── cb_move_base_client_behavior_base.h │ │ │ ├── cb_navigate_backwards.h │ │ │ ├── cb_navigate_forward.h │ │ │ ├── cb_navigate_global_position.h │ │ │ ├── cb_navigate_next_waypoint.h │ │ │ ├── cb_rotate.h │ │ │ ├── cb_undo_path_backwards.h │ │ │ └── cb_undo_path_backwards2.h │ │ │ ├── components │ │ │ ├── costmap_switch │ │ │ │ └── cp_costmap_switch.h │ │ │ ├── odom_tracker │ │ │ │ └── odom_tracker.h │ │ │ ├── planner_switcher │ │ │ │ └── planner_switcher.h │ │ │ ├── pose │ │ │ │ └── cp_pose.h │ │ │ └── waypoints_navigator │ │ │ │ ├── waypoints_event_dispatcher.h │ │ │ │ └── waypoints_navigator.h │ │ │ └── move_base_z_client_plugin.h │ │ ├── package.xml │ │ ├── rosdoc.yaml │ │ └── src │ │ ├── client_behaviors │ │ ├── cb_absolute_rotate.cpp │ │ ├── cb_move_base_client_behavior_base.cpp │ │ ├── cb_navigate_backward.cpp │ │ ├── cb_navigate_forward.cpp │ │ ├── cb_navigate_global_position.cpp │ │ ├── cb_navigate_next_waypoint.cpp │ │ ├── cb_rotate.cpp │ │ ├── cb_undo_path_backwards.cpp │ │ └── cb_undo_path_backwards2.cpp │ │ ├── components │ │ ├── costmap_switch │ │ │ └── cp_costmap_switch.cpp │ │ ├── odom_tracker │ │ │ ├── odom_tracker.cpp │ │ │ └── odom_tracker_node.cpp │ │ ├── planner_switcher │ │ │ └── planner_switcher.cpp │ │ ├── pose │ │ │ └── cp_pose.cpp │ │ └── waypoints_navigator │ │ │ ├── waypoints_event_dispatcher.cpp │ │ │ └── waypoints_navigator.cpp │ │ └── move_base_z_client_plugin.cpp ├── move_eye │ └── move_eye_client │ │ ├── CHANGELOG.rst │ │ ├── CMakeLists.txt │ │ ├── package.xml │ │ └── src │ │ └── cl_move_eye.cpp ├── move_group_interface_client │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── include │ │ └── move_group_interface_client │ │ │ ├── cl_movegroup.h │ │ │ ├── client_behaviors.h │ │ │ ├── client_behaviors │ │ │ ├── cb_attach_object.h │ │ │ ├── cb_circular_pivot_motion.h │ │ │ ├── cb_detach_object.h │ │ │ ├── cb_end_effector_rotate.h │ │ │ ├── cb_execute_last_trajectory.h │ │ │ ├── cb_move_cartesian_relative.h │ │ │ ├── cb_move_cartesian_relative2.h │ │ │ ├── cb_move_end_effector.h │ │ │ ├── cb_move_end_effector_relative.h │ │ │ ├── cb_move_end_effector_trajectory.h │ │ │ ├── cb_move_joints.h │ │ │ ├── cb_move_joints_relative.h │ │ │ ├── cb_move_known_state.h │ │ │ ├── cb_move_last_trajectory_initial_state.h │ │ │ ├── cb_move_named_target.h │ │ │ ├── cb_pouring_motion.h │ │ │ └── cb_undo_last_trajectory.h │ │ │ └── components │ │ │ ├── cp_grasping_objects.h │ │ │ ├── cp_tf_listener.h │ │ │ └── cp_trajectory_history.h │ ├── package.xml │ └── src │ │ └── move_group_interface_client │ │ ├── cl_movegroup.cpp │ │ ├── client_behaviors │ │ ├── cb_attach_object.cpp │ │ ├── cb_circular_pivot_motion.cpp │ │ ├── cb_detach_object.cpp │ │ ├── cb_end_effector_rotate.cpp │ │ ├── cb_execute_last_trajectory.cpp │ │ ├── cb_move_cartesian_relative.cpp │ │ ├── cb_move_end_effector.cpp │ │ ├── cb_move_end_effector_relative.cpp │ │ ├── cb_move_end_effector_trajectory.cpp │ │ ├── cb_move_joints.cpp │ │ ├── cb_move_known_state.cpp │ │ ├── cb_move_last_trajectory_initial_state.cpp │ │ ├── cb_move_named_target.cpp │ │ ├── cb_pouring_motion.cpp │ │ └── cb_undo_last_trajectory.cpp │ │ └── components │ │ ├── cp_grasping_objects.cpp │ │ └── cp_trajectory_history.cpp ├── multirole_sensor_client │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── include │ │ └── multirole_sensor_client │ │ │ ├── cl_multirole_sensor.h │ │ │ └── client_behaviors │ │ │ └── cb_default_multirole_sensor_behavior.h │ ├── package.xml │ └── rosdoc.yaml ├── ros_publisher_client │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── include │ │ └── ros_publisher_client │ │ │ ├── cl_ros_publisher.h │ │ │ └── client_behaviors │ │ │ ├── cb_default_publish_loop.h │ │ │ ├── cb_muted_behavior.h │ │ │ └── cb_publish_once.h │ └── package.xml └── ros_timer_client │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── include │ └── ros_timer_client │ │ ├── cl_ros_timer.h │ │ └── client_behaviors │ │ ├── cb_ros_timer.h │ │ ├── cb_timer_countdown_loop.h │ │ └── cb_timer_countdown_once.h │ ├── package.xml │ └── src │ └── ros_timer_client │ ├── cb_timer.cpp │ ├── cb_timer_countdown_loop.cpp │ ├── cb_timer_countdown_once.cpp │ └── timer_client.cpp ├── smacc_diagnostics ├── readme.md ├── scripts │ └── regex_template.py ├── smacc_runtime_test │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── config │ │ └── state_machine_config_test_file.yaml │ ├── launch │ │ └── meta_test.launch │ ├── package.xml │ └── src │ │ └── smacc_runtime_test_node.cpp └── smacc_rviz_plugin │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── icons │ └── classes │ │ ├── SMACC Logo - RViz Size.png │ │ └── SmaccRvizPanel.png │ ├── media │ └── .empty │ ├── package.xml │ ├── plugin_description.xml │ └── src │ ├── imu_visual.cpp │ ├── imu_visual.h │ ├── smacc_rviz_display.cpp │ └── smacc_rviz_display.h ├── smacc_event_generator_library ├── eg_conditional_generator │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── include │ │ └── eg_conditional_generator │ │ │ └── eg_conditional_generator.h │ ├── package.xml │ └── src │ │ └── eg_conditional_generator │ │ └── eg_conditional_generator.cpp └── eg_random_generator │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── include │ └── eg_random_generator │ │ └── eg_random_generator.h │ ├── package.xml │ └── src │ └── eg_random_generator │ └── eg_random_generator.cpp ├── smacc_msgs ├── CHANGELOG.rst ├── CMakeLists.txt ├── msg │ ├── SmaccContainerInitialStatusCmd.msg │ ├── SmaccContainerStatus.msg │ ├── SmaccContainerStructure.msg │ ├── SmaccEvent.msg │ ├── SmaccEventGenerator.msg │ ├── SmaccOrthogonal.msg │ ├── SmaccSMCommand.msg │ ├── SmaccState.msg │ ├── SmaccStateMachine.msg │ ├── SmaccStateReactor.msg │ ├── SmaccStatus.msg │ ├── SmaccTransition.msg │ └── SmaccTransitionLogEntry.msg ├── package.xml └── srv │ └── SmaccGetTransitionHistory.srv ├── smacc_sm_reference_library ├── sm_atomic │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ ├── sm_atomic_config.yaml │ │ └── sm_atomic_test.yaml │ ├── docs │ │ ├── smacc_state_machine_20200207-004735.dot.pdf │ │ └── smacc_state_machine_20200207-004740.dot.svg │ ├── include │ │ └── sm_atomic │ │ │ ├── orthogonals │ │ │ └── or_timer.h │ │ │ ├── sm_atomic.h │ │ │ └── states │ │ │ ├── st_state_1.h │ │ │ └── st_state_2.h │ ├── launch │ │ └── sm_atomic.launch │ ├── package.xml │ ├── src │ │ └── sm_atomic_node.cpp │ └── test │ │ └── sm_atomic.test ├── sm_atomic_cb │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ └── sm_atomic_cb_config.yaml │ ├── docs │ │ ├── smacc_state_machine_20200207-004735.dot.pdf │ │ └── smacc_state_machine_20200207-004740.dot.svg │ ├── include │ │ └── sm_atomic_cb │ │ │ ├── orthogonals │ │ │ └── or_timer.h │ │ │ ├── sm_atomic_cb.h │ │ │ └── states │ │ │ ├── st_state_1.h │ │ │ └── st_state_2.h │ ├── launch │ │ └── sm_atomic_cb.launch │ ├── package.xml │ └── src │ │ └── sm_atomic_cb_node.cpp ├── sm_atomic_mode_states │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ ├── sm_atomic_config.yaml │ │ └── sm_atomic_test.yaml │ ├── docs │ │ ├── smacc_state_machine_20200207-004735.dot.pdf │ │ └── smacc_state_machine_20200207-004740.dot.svg │ ├── include │ │ └── sm_atomic_mode_states │ │ │ ├── client_behaviors │ │ │ └── cb_updatable_test.h │ │ │ ├── orthogonals │ │ │ └── or_timer.h │ │ │ ├── sm_atomic_mode_states.h │ │ │ └── states │ │ │ ├── ms_state_1.h │ │ │ ├── ms_state_2.h │ │ │ ├── st_state_1.h │ │ │ └── st_state_2.h │ ├── launch │ │ └── sm_atomic_mode_states.launch │ ├── package.xml │ ├── src │ │ └── sm_atomic_node.cpp │ └── test │ │ └── sm_atomic.test ├── sm_atomic_services │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ ├── sm_atomic_services_config.yaml │ │ └── sm_atomic_services_test.yaml │ ├── docs │ │ ├── smacc_state_machine_20220330-064656.dot.pdf │ │ └── smacc_state_machine_20220330-064659.dot.svg │ ├── include │ │ └── sm_atomic_services │ │ │ ├── clients │ │ │ ├── cl_service_client.h │ │ │ ├── cl_service_server.h │ │ │ └── client_behaviors │ │ │ │ └── cb_service_server.h │ │ │ ├── orthogonals │ │ │ ├── or_services.h │ │ │ └── or_timer.h │ │ │ ├── sm_atomic_services.h │ │ │ └── states │ │ │ ├── st_state_1.h │ │ │ └── st_state_2.h │ ├── launch │ │ └── sm_atomic_services.launch │ ├── package.xml │ ├── src │ │ └── sm_atomic_services_node.cpp │ └── test │ │ └── sm_atomic_services.test ├── sm_calendar_week │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ └── sm_calendar_week_config.yaml │ ├── docs │ │ ├── smacc_state_machine_20200206-003738.dot.svg │ │ └── smacc_state_machine_20200206-004026.dot.pdf │ ├── include │ │ └── sm_calendar_week │ │ │ ├── clients │ │ │ └── cl_subscriber │ │ │ │ ├── cl_subscriber.h │ │ │ │ └── client_behaviors │ │ │ │ ├── cb_default_subscriber_behavior.h │ │ │ │ └── cb_watchdog_subscriber_behavior.h │ │ │ ├── mode_states │ │ │ ├── ms_weekend.h │ │ │ └── ms_workweek.h │ │ │ ├── orthogonals │ │ │ ├── or_keyboard.h │ │ │ └── or_timer.h │ │ │ ├── sm_calendar_week.h │ │ │ └── states │ │ │ ├── st_friday.h │ │ │ ├── st_monday.h │ │ │ ├── st_saturday.h │ │ │ ├── st_sunday.h │ │ │ ├── st_thursday.h │ │ │ ├── st_tuesday.h │ │ │ └── st_wednesday.h │ ├── launch │ │ └── sm_calendar_week.launch │ ├── package.xml │ ├── package_REMOTE_32590.xml │ └── src │ │ └── sm_calendar_week_node.cpp ├── sm_dance_bot │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ ├── move_base_client │ │ │ ├── backward_local_planner.yaml │ │ │ ├── base_local_planner_params.yaml │ │ │ ├── costmap_common_params.yaml │ │ │ ├── forward_local_planner.yaml │ │ │ ├── global_costmap_params.yaml │ │ │ ├── local_costmap_params.yaml │ │ │ └── waypoints_plan.yaml │ │ ├── navigation.rviz │ │ ├── rosconsole.config │ │ └── sm_dance_bot_config.yaml │ ├── docs │ │ ├── Global Transition Rules.txt │ │ ├── sm_dance_bot.JPG │ │ ├── smacc_state_machine_20200222-125051.dot.pdf │ │ └── smacc_state_machine_20200222-125058.dot.svg │ ├── include │ │ └── sm_dance_bot │ │ │ ├── clients │ │ │ ├── cl_led │ │ │ │ ├── cl_led.h │ │ │ │ └── client_behaviors │ │ │ │ │ ├── cb_led_off.h │ │ │ │ │ └── cb_led_on.h │ │ │ ├── cl_lidar │ │ │ │ ├── cl_lidar.h │ │ │ │ └── client_behaviors │ │ │ │ │ └── cb_lidar_sensor.h │ │ │ ├── cl_service3 │ │ │ │ ├── cl_service3.h │ │ │ │ └── client_behaviors │ │ │ │ │ └── cb_service3.h │ │ │ ├── cl_string_publisher │ │ │ │ ├── cl_string_publisher.h │ │ │ │ └── client_behaviors │ │ │ │ │ └── cb_string_publisher.h │ │ │ └── cl_temperature_sensor │ │ │ │ ├── cl_temperature_sensor.h │ │ │ │ └── client_behaviors │ │ │ │ └── cb_custom_condition_temperature_sensor.h │ │ │ ├── modestates │ │ │ ├── ms_dance_bot_recovery_mode.h │ │ │ └── ms_dance_bot_run_mode.h │ │ │ ├── orthogonals │ │ │ ├── or_led.h │ │ │ ├── or_navigation.h │ │ │ ├── or_obstacle_perception.h │ │ │ ├── or_service3.h │ │ │ ├── or_string_publisher.h │ │ │ ├── or_temperature_sensor.h │ │ │ ├── or_timer.h │ │ │ └── or_updatable_publisher.h │ │ │ ├── sm_dance_bot.h │ │ │ ├── states │ │ │ ├── f_pattern_states │ │ │ │ ├── sti_fpattern_forward_1.h │ │ │ │ ├── sti_fpattern_forward_2.h │ │ │ │ ├── sti_fpattern_loop_start.h │ │ │ │ ├── sti_fpattern_return_1.h │ │ │ │ ├── sti_fpattern_rotate_1.h │ │ │ │ └── sti_fpattern_rotate_2.h │ │ │ ├── radial_motion_states │ │ │ │ ├── sti_radial_end_point.h │ │ │ │ ├── sti_radial_loop_start.h │ │ │ │ ├── sti_radial_return.h │ │ │ │ └── sti_radial_rotate.h │ │ │ ├── s_pattern_states │ │ │ │ ├── sti_spattern_forward_1.h │ │ │ │ ├── sti_spattern_forward_2.h │ │ │ │ ├── sti_spattern_forward_3.h │ │ │ │ ├── sti_spattern_forward_4.h │ │ │ │ ├── sti_spattern_loop_start.h │ │ │ │ ├── sti_spattern_rotate_1.h │ │ │ │ ├── sti_spattern_rotate_2.h │ │ │ │ ├── sti_spattern_rotate_3.h │ │ │ │ └── sti_spattern_rotate_4.h │ │ │ ├── st_acquire_sensors.h │ │ │ ├── st_event_count_down.h │ │ │ ├── st_navigate_forward_1.h │ │ │ ├── st_navigate_forward_2.h │ │ │ ├── st_navigate_reverse_1.h │ │ │ ├── st_navigate_reverse_2.h │ │ │ ├── st_navigate_reverse_3.h │ │ │ ├── st_navigate_to_waypoint_1.h │ │ │ ├── st_navigate_to_waypoints_x.h │ │ │ ├── st_rotate_degrees_1.h │ │ │ ├── st_rotate_degrees_2.h │ │ │ ├── st_rotate_degrees_3.h │ │ │ ├── st_rotate_degrees_4.h │ │ │ ├── st_rotate_degrees_5.h │ │ │ └── st_rotate_degrees_6.h │ │ │ └── superstates │ │ │ ├── ss_f_pattern_1.h │ │ │ ├── ss_radial_pattern_1.h │ │ │ ├── ss_radial_pattern_2.h │ │ │ ├── ss_radial_pattern_3.h │ │ │ └── ss_s_pattern_1.h │ ├── launch │ │ ├── readme.md │ │ ├── ridgeback_simulation.launch │ │ └── sm_dance_bot.launch │ ├── package.xml │ ├── servers │ │ ├── action_server_node_3 │ │ │ └── src │ │ │ │ └── action_server_node_3.cpp │ │ ├── led_action_server │ │ │ ├── action │ │ │ │ └── LEDControl.action │ │ │ └── src │ │ │ │ └── led_action_server_node.cpp │ │ ├── lidar_node │ │ │ └── src │ │ │ │ └── lidar_node.cpp │ │ ├── service_node_3 │ │ │ ├── __init__.py │ │ │ └── src │ │ │ │ └── service_node_3.py │ │ └── temperature_sensor_node │ │ │ └── src │ │ │ └── temperature_sensor_node.cpp │ ├── src │ │ ├── clients │ │ │ └── cl_led │ │ │ │ └── cl_led.cpp │ │ └── sm_dance_bot.cpp │ └── urdf │ │ └── empty.xacro ├── sm_dance_bot_2 │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ ├── move_base_client │ │ │ ├── backward_local_planner.yaml │ │ │ ├── base_local_planner_params.yaml │ │ │ ├── costmap_common_params.yaml │ │ │ ├── forward_local_planner.yaml │ │ │ ├── global_costmap_params.yaml │ │ │ ├── local_costmap_params.yaml │ │ │ └── waypoints_plan.yaml │ │ ├── navigation.rviz │ │ ├── rosconsole.config │ │ └── sm_dance_bot_2_config.yaml │ ├── docs │ │ ├── Global Transition Rules.txt │ │ ├── StateChart - sm_dance_bot.odp │ │ ├── smacc_state_machine_20200222-125051.dot.pdf │ │ └── smacc_state_machine_20200222-125058.dot.svg │ ├── include │ │ └── sm_dance_bot_2 │ │ │ ├── clients │ │ │ ├── cl_led │ │ │ │ ├── cl_led.h │ │ │ │ └── client_behaviors │ │ │ │ │ ├── cb_led_off.h │ │ │ │ │ └── cb_led_on.h │ │ │ ├── cl_lidar │ │ │ │ ├── cl_lidar.h │ │ │ │ └── client_behaviors │ │ │ │ │ └── cb_lidar_sensor.h │ │ │ ├── cl_service3 │ │ │ │ ├── cl_service3.h │ │ │ │ └── client_behaviors │ │ │ │ │ └── cb_service3.h │ │ │ ├── cl_string_publisher │ │ │ │ ├── cl_string_publisher.h │ │ │ │ └── client_behaviors │ │ │ │ │ └── cb_string_publisher.h │ │ │ └── cl_temperature_sensor │ │ │ │ ├── cl_temperature_sensor.h │ │ │ │ └── client_behaviors │ │ │ │ └── cb_custom_condition_temperature_sensor.h │ │ │ ├── orthogonals │ │ │ ├── or_led.h │ │ │ ├── or_navigation.h │ │ │ ├── or_obstacle_perception.h │ │ │ ├── or_service3.h │ │ │ ├── or_string_publisher.h │ │ │ ├── or_temperature_sensor.h │ │ │ ├── or_timer.h │ │ │ └── or_updatable_publisher.h │ │ │ ├── sm_dance_bot_2.h │ │ │ └── states │ │ │ ├── ms_dance_bot_recovery_mode │ │ │ └── ms_dance_bot_recovery_mode.h │ │ │ └── ms_dance_bot_run_mode │ │ │ ├── f_pattern_states │ │ │ ├── ss_f_pattern_1.h │ │ │ ├── sti_fpattern_forward_1.h │ │ │ ├── sti_fpattern_forward_2.h │ │ │ ├── sti_fpattern_loop_start.h │ │ │ ├── sti_fpattern_return_1.h │ │ │ ├── sti_fpattern_rotate_1.h │ │ │ └── sti_fpattern_rotate_2.h │ │ │ ├── ms_dance_bot_run_mode.h │ │ │ ├── radial_motion_states │ │ │ ├── ss_radial_pattern_1.h │ │ │ ├── ss_radial_pattern_2.h │ │ │ ├── ss_radial_pattern_3.h │ │ │ ├── sti_radial_end_point.h │ │ │ ├── sti_radial_loop_start.h │ │ │ ├── sti_radial_return.h │ │ │ └── sti_radial_rotate.h │ │ │ ├── s_pattern_states │ │ │ ├── ss_s_pattern_1.h │ │ │ ├── sti_spattern_forward_1.h │ │ │ ├── sti_spattern_forward_2.h │ │ │ ├── sti_spattern_forward_3.h │ │ │ ├── sti_spattern_forward_4.h │ │ │ ├── sti_spattern_loop_start.h │ │ │ ├── sti_spattern_rotate_1.h │ │ │ ├── sti_spattern_rotate_2.h │ │ │ ├── sti_spattern_rotate_3.h │ │ │ └── sti_spattern_rotate_4.h │ │ │ ├── st_acquire_sensors.h │ │ │ ├── st_event_count_down.h │ │ │ ├── st_navigate_forward_1.h │ │ │ ├── st_navigate_forward_2.h │ │ │ ├── st_navigate_reverse_1.h │ │ │ ├── st_navigate_reverse_2.h │ │ │ ├── st_navigate_reverse_3.h │ │ │ ├── st_navigate_to_waypoint_1.h │ │ │ ├── st_navigate_to_waypoints_x.h │ │ │ ├── st_rotate_degrees_1.h │ │ │ ├── st_rotate_degrees_2.h │ │ │ ├── st_rotate_degrees_3.h │ │ │ ├── st_rotate_degrees_4.h │ │ │ ├── st_rotate_degrees_5.h │ │ │ └── st_rotate_degrees_6.h │ ├── launch │ │ ├── readme.md │ │ ├── ridgeback_simulation.launch │ │ └── sm_dance_bot_2.launch │ ├── package.xml │ ├── servers │ │ ├── action_server_node_3 │ │ │ └── src │ │ │ │ └── action_server_node_3.cpp │ │ ├── led_action_server │ │ │ ├── action │ │ │ │ └── LEDControl.action │ │ │ └── src │ │ │ │ └── led_action_server_node.cpp │ │ ├── lidar_node │ │ │ └── src │ │ │ │ └── lidar_node.cpp │ │ ├── service_node_3 │ │ │ ├── __init__.py │ │ │ └── src │ │ │ │ └── service_node_3.py │ │ └── temperature_sensor_node │ │ │ └── src │ │ │ └── temperature_sensor_node.cpp │ ├── src │ │ ├── clients │ │ │ └── cl_led │ │ │ │ └── cl_led.cpp │ │ └── sm_dance_bot_2.cpp │ └── urdf │ │ └── empty.xacro ├── sm_dance_bot_strikes_back │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ ├── move_base_client │ │ │ ├── backward_local_planner.yaml │ │ │ ├── base_local_planner_params.yaml │ │ │ ├── costmap_common_params.yaml │ │ │ ├── forward_local_planner.yaml │ │ │ ├── global_costmap_params.yaml │ │ │ ├── local_costmap_params.yaml │ │ │ └── waypoints_plan.yaml │ │ ├── rosconsole.config │ │ └── sm_dancebot_strikes_back_config.yaml │ ├── docs │ │ ├── sm_dance_bot_strikes_back.JPG │ │ ├── smacc_state_machine_20200222-122223.dot.pdf │ │ └── smacc_state_machine_20200222-122229.dot.svg │ ├── include │ │ └── sm_dance_bot_strikes_back │ │ │ ├── clients │ │ │ ├── cl_led │ │ │ │ ├── cl_led.h │ │ │ │ └── client_behaviors │ │ │ │ │ ├── cb_led_off.h │ │ │ │ │ └── cb_led_on.h │ │ │ ├── cl_lidar │ │ │ │ ├── cl_lidar.h │ │ │ │ ├── client_behaviors │ │ │ │ │ └── cb_lidar_sensor.h │ │ │ │ └── components │ │ │ │ │ └── cp_lidar_data.h │ │ │ ├── cl_service3 │ │ │ │ ├── cl_service3.h │ │ │ │ └── client_behaviors │ │ │ │ │ └── cb_service3.h │ │ │ ├── cl_string_publisher │ │ │ │ ├── cl_string_publisher.h │ │ │ │ └── client_behaviors │ │ │ │ │ └── cb_string_publisher.h │ │ │ └── cl_temperature_sensor │ │ │ │ ├── cl_temperature_sensor.h │ │ │ │ └── client_behaviors │ │ │ │ └── cb_custom_condition_temperature_sensor.h │ │ │ ├── modestates │ │ │ ├── ms_dance_bot_recovery_mode.h │ │ │ └── ms_dance_bot_run_mode.h │ │ │ ├── orthogonals │ │ │ ├── or_led.h │ │ │ ├── or_navigation.h │ │ │ ├── or_obstacle_perception.h │ │ │ ├── or_service3.h │ │ │ ├── or_string_publisher.h │ │ │ ├── or_temperature_sensor.h │ │ │ ├── or_timer.h │ │ │ └── or_updatable_publisher.h │ │ │ ├── sm_dance_bot_strikes_back.h │ │ │ ├── states │ │ │ ├── f_pattern_states │ │ │ │ ├── sti_fpattern_forward_1.h │ │ │ │ ├── sti_fpattern_forward_2.h │ │ │ │ ├── sti_fpattern_loop_start.h │ │ │ │ ├── sti_fpattern_return_1.h │ │ │ │ ├── sti_fpattern_rotate_1.h │ │ │ │ └── sti_fpattern_rotate_2.h │ │ │ ├── radial_motion_states │ │ │ │ ├── sti_radial_end_point.h │ │ │ │ ├── sti_radial_loop_start.h │ │ │ │ ├── sti_radial_return.h │ │ │ │ └── sti_radial_rotate.h │ │ │ ├── s_pattern_states │ │ │ │ ├── sti_spattern_forward_1.h │ │ │ │ ├── sti_spattern_forward_2.h │ │ │ │ ├── sti_spattern_forward_3.h │ │ │ │ ├── sti_spattern_forward_4.h │ │ │ │ ├── sti_spattern_loop_start.h │ │ │ │ ├── sti_spattern_rotate_1.h │ │ │ │ ├── sti_spattern_rotate_2.h │ │ │ │ ├── sti_spattern_rotate_3.h │ │ │ │ └── sti_spattern_rotate_4.h │ │ │ ├── st_acquire_sensors.h │ │ │ ├── st_event_count_down.h │ │ │ ├── st_fpattern_prealignment.h │ │ │ ├── st_navigate_to_waypoints_x.h │ │ │ └── st_spattern_prealignment.h │ │ │ └── superstates │ │ │ ├── ss_f_pattern_1.h │ │ │ ├── ss_radial_pattern_1.h │ │ │ ├── ss_radial_pattern_2.h │ │ │ ├── ss_radial_pattern_3.h │ │ │ └── ss_s_pattern_1.h │ ├── launch │ │ ├── readme.md │ │ ├── ridgeback_simulation.launch │ │ └── sm_dance_bot_strikes_back.launch │ ├── package.xml │ ├── servers │ │ ├── action_server_node_3 │ │ │ └── src │ │ │ │ └── action_server_node_3.cpp │ │ ├── led_action_server │ │ │ ├── action │ │ │ │ └── LEDControl.action │ │ │ └── src │ │ │ │ └── led_action_server_node.cpp │ │ ├── lidar_node │ │ │ └── src │ │ │ │ └── lidar_node.cpp │ │ ├── service_node_3 │ │ │ ├── __init__.py │ │ │ └── src │ │ │ │ └── service_node_3.py │ │ └── temperature_sensor_node │ │ │ └── src │ │ │ └── temperature_sensor_node.cpp │ ├── src │ │ ├── clients │ │ │ └── cl_led │ │ │ │ └── cl_led.cpp │ │ └── sm_dance_bot_strikes_back.cpp │ └── urdf │ │ └── empty.xacro ├── sm_ferrari │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ └── sm_three_some_config.yaml │ ├── include │ │ └── sm_ferrari │ │ │ ├── clients │ │ │ └── cl_subscriber │ │ │ │ ├── cl_subscriber.h │ │ │ │ └── client_behaviors │ │ │ │ └── cb_my_subscriber_behavior.h │ │ │ ├── mode_states │ │ │ ├── ms_recover.h │ │ │ └── ms_run.h │ │ │ ├── orthogonals │ │ │ ├── or_keyboard.h │ │ │ ├── or_subscriber.h │ │ │ ├── or_timer.h │ │ │ └── or_updatable_publisher.h │ │ │ ├── sm_ferrari.h │ │ │ ├── states │ │ │ ├── inner_states │ │ │ │ ├── sti_state_1.h │ │ │ │ ├── sti_state_2.h │ │ │ │ └── sti_state_3.h │ │ │ ├── st_state_1.h │ │ │ ├── st_state_2.h │ │ │ ├── st_state_3.h │ │ │ └── st_state_4.h │ │ │ └── superstates │ │ │ ├── ss_superstate_1.h │ │ │ └── ss_superstate_2.h │ ├── launch │ │ └── sm_ferrari.launch │ ├── package.xml │ ├── servers │ │ └── temperature_sensor_node │ │ │ └── src │ │ │ └── temperature_sensor_node.cpp │ └── src │ │ └── sm_ferrari_node.cpp ├── sm_packml │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ └── sm_packml_config.yaml │ ├── docs │ │ ├── smacc_state_machine_20200205-104844.dot.pdf │ │ └── smacc_state_machine_20200205-104849.dot.svg │ ├── include │ │ └── sm_packml │ │ │ ├── clients │ │ │ └── cl_subscriber │ │ │ │ ├── cl_subscriber.h │ │ │ │ └── client_behaviors │ │ │ │ ├── cb_default_subscriber_behavior.h │ │ │ │ └── cb_watchdog_subscriber_behavior.h │ │ │ ├── mode_states │ │ │ ├── ms_run.h │ │ │ └── ms_stop.h │ │ │ ├── orthogonals │ │ │ ├── or_keyboard.h │ │ │ ├── or_subscriber.h │ │ │ ├── or_timer.h │ │ │ └── or_updatable_publisher.h │ │ │ ├── sm_packml.h │ │ │ └── states │ │ │ ├── st_aborted.h │ │ │ ├── st_aborting.h │ │ │ ├── st_clearing.h │ │ │ ├── st_complete.h │ │ │ ├── st_completing.h │ │ │ ├── st_execute.h │ │ │ ├── st_held.h │ │ │ ├── st_holding.h │ │ │ ├── st_idle.h │ │ │ ├── st_resetting.h │ │ │ ├── st_starting.h │ │ │ ├── st_stopped.h │ │ │ ├── st_stopping.h │ │ │ ├── st_suspended.h │ │ │ ├── st_suspending.h │ │ │ ├── st_unholding.h │ │ │ └── st_unsuspending.h │ ├── launch │ │ └── sm_packML.launch │ ├── package.xml │ └── src │ │ └── sm_packml_node.cpp ├── sm_respira_1 │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ └── sm_respira_1_config.yaml │ ├── docs │ │ ├── smacc_state_machine_20200513-165801.dot.pdf │ │ └── smacc_state_machine_20200513-165805.dot.svg │ ├── include │ │ └── sm_respira_1 │ │ │ ├── clients │ │ │ └── cl_subscriber │ │ │ │ ├── cl_subscriber.h │ │ │ │ └── client_behaviors │ │ │ │ ├── cb_default_subscriber_behavior.h │ │ │ │ └── cb_watchdog_subscriber_behavior.h │ │ │ ├── mode_states │ │ │ ├── ms_calibration.h │ │ │ ├── ms_leaky_lung.h │ │ │ ├── ms_patient_obstruction.h │ │ │ ├── ms_run.h │ │ │ └── ms_shutdown.h │ │ │ ├── orthogonals │ │ │ ├── or_keyboard.h │ │ │ ├── or_subscriber.h │ │ │ ├── or_timer.h │ │ │ └── or_updatable_publisher.h │ │ │ ├── sm_respira_1.h │ │ │ ├── states │ │ │ ├── ac_cycle_inner_states │ │ │ │ ├── sti_ac_cycle_dwell.h │ │ │ │ ├── sti_ac_cycle_expire.h │ │ │ │ ├── sti_ac_cycle_inspire.h │ │ │ │ ├── sti_ac_cycle_loop.h │ │ │ │ └── sti_ac_cycle_plateau.h │ │ │ ├── cmv_cycle_inner_states │ │ │ │ ├── sti_cmv_cycle_dwell.h │ │ │ │ ├── sti_cmv_cycle_expire.h │ │ │ │ ├── sti_cmv_cycle_inspire.h │ │ │ │ ├── sti_cmv_cycle_loop.h │ │ │ │ └── sti_cmv_cycle_plateau.h │ │ │ ├── ms_calibration_inner_states │ │ │ │ └── st_calibration_step_1.h │ │ │ ├── ms_leaky_lung_inner_states │ │ │ │ ├── st_leaky_lung_step_1.h │ │ │ │ ├── st_leaky_lung_step_2.h │ │ │ │ └── st_leaky_lung_step_3.h │ │ │ ├── ms_patient_obstruction_inner_states │ │ │ │ ├── st_patient_obstruction_step_1.h │ │ │ │ └── st_patient_obstruction_step_2.h │ │ │ ├── ms_shutdown_inner_states │ │ │ │ └── st_system_shutdown.h │ │ │ ├── pc_cycle_inner_states │ │ │ │ ├── sti_pc_cycle_dwell.h │ │ │ │ ├── sti_pc_cycle_expire.h │ │ │ │ ├── sti_pc_cycle_inspire.h │ │ │ │ ├── sti_pc_cycle_loop.h │ │ │ │ └── sti_pc_cycle_plateau.h │ │ │ ├── ps_cycle_inner_states │ │ │ │ ├── sti_ps_cycle_dwell.h │ │ │ │ ├── sti_ps_cycle_expire.h │ │ │ │ ├── sti_ps_cycle_inspire.h │ │ │ │ ├── sti_ps_cycle_loop.h │ │ │ │ └── sti_ps_cycle_plateau.h │ │ │ └── st_observe.h │ │ │ └── superstates │ │ │ ├── ss_ac_cycle.h │ │ │ ├── ss_cmv_cycle.h │ │ │ ├── ss_pc_cycle.h │ │ │ └── ss_ps_cycle.h │ ├── launch │ │ └── sm_respira_1.launch │ ├── package.xml │ └── src │ │ └── sm_respira_1_node.cpp ├── sm_ridgeback_barrel_search_1 │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ ├── move_base_client │ │ │ ├── backward_local_planner.yaml │ │ │ ├── base_local_planner_params.yaml │ │ │ ├── costmap_common_params.yaml │ │ │ ├── forward_local_planner.yaml │ │ │ ├── global_costmap_params.yaml │ │ │ ├── local_costmap_params.yaml │ │ │ └── waypoints_plan.yaml │ │ ├── navigation.rviz │ │ ├── radial_motion_sm_config.yaml │ │ ├── rosconsole.config │ │ └── sm_ridgeback_barrel_search_1_config.yaml │ ├── docs │ │ ├── sm_ridgeback_barrel_search_1.jpg │ │ ├── smacc_state_machine_20200822-022028.dot.svg │ │ └── smacc_state_machine_20200822-022031.dot.pdf │ ├── include │ │ └── sm_ridgeback_barrel_search_1 │ │ │ ├── clients │ │ │ └── opencv_perception_client │ │ │ │ └── cl_opencv_perception_client.h │ │ │ ├── orthogonals │ │ │ ├── or_navigation.h │ │ │ └── or_perception.h │ │ │ ├── sm_ridgeback_barrel_search_1.h │ │ │ └── states │ │ │ ├── st_detect_items.h │ │ │ └── st_navigate_to_waypoint_x.h │ ├── launch │ │ ├── ridgeback_simulation.launch │ │ └── sm_ridgeback_barrel_search_1.launch │ ├── msg │ │ └── DetectedBlobs.msg │ ├── package.xml │ ├── servers │ │ ├── blue1.png │ │ ├── green1.png │ │ ├── opencv_perception_node │ │ │ ├── CMakeLists.txt2 │ │ │ └── opencv_perception_node.cpp │ │ ├── red1.png │ │ └── red2.png │ ├── simulation │ │ └── worlds │ │ │ └── opencv_world.sdf │ ├── src │ │ └── sm_ridgeback_barrel_search_1.cpp │ └── urdf │ │ ├── ridgeback.camera.gazebo │ │ └── ridgeback.urdf.xacro ├── sm_ridgeback_barrel_search_2 │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ ├── move_base_client │ │ │ ├── backward_local_planner.yaml │ │ │ ├── base_local_planner_params.yaml │ │ │ ├── costmap_common_params.yaml │ │ │ ├── forward_local_planner.yaml │ │ │ ├── global_costmap_params.yaml │ │ │ ├── local_costmap_params.yaml │ │ │ └── waypoints_plan.yaml │ │ ├── navigation.rviz │ │ ├── rosconsole.config │ │ └── sm_ridgeback_barrel_search_2_config.yaml │ ├── docs │ │ ├── sm_ridgeback_barrel_search_2.JPG │ │ ├── smacc_state_machine_20200822-022028.dot.svg │ │ └── smacc_state_machine_20200822-022031.dot.pdf │ ├── include │ │ └── sm_ridgeback_barrel_search_2 │ │ │ ├── clients │ │ │ └── opencv_perception_client │ │ │ │ └── cl_opencv_perception_client.h │ │ │ ├── orthogonals │ │ │ ├── or_navigation.h │ │ │ └── or_perception.h │ │ │ ├── sm_ridgeback_barrel_search_2.h │ │ │ └── states │ │ │ ├── st_detect_items.h │ │ │ └── st_navigate_to_waypoint_x.h │ ├── launch │ │ ├── ridgeback_simulation.launch │ │ └── sm_ridgeback_barrel_search_2.launch │ ├── msg │ │ └── DetectedBlobs.msg │ ├── package.xml │ ├── servers │ │ ├── blue1.png │ │ ├── green1.png │ │ ├── opencv_perception_node │ │ │ ├── CMakeLists.txt2 │ │ │ └── opencv_perception_node.cpp │ │ ├── red1.png │ │ └── red2.png │ ├── simulation │ │ └── worlds │ │ │ └── opencv_world.sdf │ ├── src │ │ └── sm_ridgeback_barrel_search_2.cpp │ └── urdf │ │ ├── ridgeback.camera.gazebo │ │ └── ridgeback.urdf.xacro ├── sm_ridgeback_floor_coverage_dynamic_1 │ └── config │ │ └── move_base_client │ │ └── base_local_planner_params.yaml ├── sm_ridgeback_floor_coverage_static_1 │ └── config │ │ └── move_base_client │ │ └── base_local_planner_params.yaml ├── sm_starcraft_ai │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ └── sm_starcraft_ai_config.yaml │ ├── docs │ │ ├── smacc_state_machine_20200302-001008.dot.pdf │ │ └── smacc_state_machine_20200302-001012.dot.svg │ ├── include │ │ └── sm_starcraft_ai │ │ │ ├── clients │ │ │ └── cl_subscriber │ │ │ │ ├── cl_subscriber.h │ │ │ │ └── client_behaviors │ │ │ │ ├── cb_default_subscriber_behavior.h │ │ │ │ └── cb_watchdog_subscriber_behavior.h │ │ │ ├── mode_states │ │ │ └── ms_run.h │ │ │ ├── orthogonals │ │ │ ├── or_keyboard.h │ │ │ ├── or_subscriber.h │ │ │ ├── or_timer.h │ │ │ └── or_updatable_publisher.h │ │ │ ├── sm_starcraft_ai.h │ │ │ ├── states │ │ │ ├── attack_inner_states │ │ │ │ ├── sti_attack_1.h │ │ │ │ ├── sti_attack_2.h │ │ │ │ └── sti_attack_3.h │ │ │ ├── build_inner_states │ │ │ │ ├── sti_build_1.h │ │ │ │ ├── sti_build_2.h │ │ │ │ └── sti_build_3.h │ │ │ ├── move_inner_states │ │ │ │ ├── sti_move_1.h │ │ │ │ ├── sti_move_2.h │ │ │ │ └── sti_move_3.h │ │ │ └── st_observe.h │ │ │ └── superstates │ │ │ ├── ss_attack.h │ │ │ ├── ss_build.h │ │ │ └── ss_move.h │ ├── launch │ │ └── sm_starcraft_ai.launch │ ├── package.xml │ └── src │ │ └── sm_starcraft_ai_node.cpp ├── sm_subscriber │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── config │ │ ├── rosconsole.config │ │ └── sm_subscriber_config.yaml │ ├── include │ │ └── sm_subscriber │ │ │ ├── clients │ │ │ └── cl_numbers_subscription │ │ │ │ ├── cl_numbers_subscription.h │ │ │ │ └── client_behaviors │ │ │ │ ├── cb_post_custom_event.h │ │ │ │ └── cb_print_message_number.h │ │ │ ├── orthogonals │ │ │ ├── or_subscriber.h │ │ │ └── or_timer.h │ │ │ ├── sm_subscriber.h │ │ │ └── states │ │ │ ├── st_state_1.h │ │ │ └── st_state_2.h │ ├── launch │ │ └── sm_subscriber.launch │ ├── package.xml │ ├── servers │ │ └── numbers_publisher │ │ │ └── numbers_publisher.cpp │ └── src │ │ └── sm_subscriber_node.cpp ├── sm_three_some │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ └── sm_three_some_config.yaml │ ├── docs │ │ ├── smacc_state_machine_20200220-115155.dot.svg │ │ └── smacc_state_machine_20200220-115158.dot.pdf │ ├── include │ │ └── sm_three_some │ │ │ ├── clients │ │ │ └── cl_subscriber │ │ │ │ ├── cl_subscriber.h │ │ │ │ └── client_behaviors │ │ │ │ ├── cb_default_subscriber_behavior.h │ │ │ │ └── cb_watchdog_subscriber_behavior.h │ │ │ ├── mode_states │ │ │ ├── ms_recover.h │ │ │ └── ms_run.h │ │ │ ├── orthogonals │ │ │ ├── or_keyboard.h │ │ │ ├── or_subscriber.h │ │ │ ├── or_timer.h │ │ │ └── or_updatable_publisher.h │ │ │ ├── sm_three_some.h │ │ │ ├── states │ │ │ ├── inner_states │ │ │ │ ├── sti_state_1.h │ │ │ │ ├── sti_state_2.h │ │ │ │ └── sti_state_3.h │ │ │ ├── st_state_1.h │ │ │ ├── st_state_2.h │ │ │ ├── st_state_3.h │ │ │ └── st_state_4.h │ │ │ └── superstates │ │ │ ├── ss_superstate_1.h │ │ │ └── ss_superstate_2.h │ ├── launch │ │ └── sm_three_some.launch │ ├── package.xml │ └── src │ │ └── sm_three_some_node.cpp ├── sm_update_loop │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ │ └── sm_update_loop_config.yaml │ ├── docs │ │ ├── smacc_state_machine_20200207-004735.dot.pdf │ │ └── smacc_state_machine_20200207-004740.dot.svg │ ├── include │ │ └── sm_update_loop │ │ │ ├── orthogonals │ │ │ └── or_timer.h │ │ │ ├── sm_update_loop.h │ │ │ └── states │ │ │ ├── st_state_1.h │ │ │ └── st_state_2.h │ ├── launch │ │ └── sm_update_loop.launch │ ├── package.xml │ └── src │ │ └── sm_update_loop_node.cpp └── sm_viewer_sim │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── config │ └── sm_viewer_sim_config.yaml │ ├── docs │ ├── smacc_state_machine_20200222-181448.dot.svg │ └── smacc_state_machine_20200222-181502.dot.pdf │ ├── include │ └── sm_viewer_sim │ │ ├── modestates │ │ ├── ms_recovery_mode.h │ │ └── ms_run_mode.h │ │ ├── orthogonals │ │ └── or_navigation.h │ │ ├── sm_viewer_sim.h │ │ └── states │ │ ├── st_st1.h │ │ ├── st_st2.h │ │ └── st_st3.h │ ├── launch │ └── sm_viewer_sim.launch │ ├── package.xml │ └── src │ └── sm_viewer_sim.cpp ├── smacc_state_reactor_library ├── sr_all_events_go │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── include │ │ └── sr_all_events_go │ │ │ └── sr_all_events_go.h │ ├── package.xml │ └── src │ │ └── sr_all_events_go │ │ └── sr_all_events_go.cpp ├── sr_conditional │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── include │ │ └── sr_conditional │ │ │ └── sr_conditional.h │ ├── package.xml │ └── src │ │ └── sr_conditional │ │ └── sr_conditional.cpp └── sr_event_countdown │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── include │ └── sr_event_countdown │ │ └── sr_event_countdown.h │ ├── package.xml │ └── src │ └── sr_event_countdown │ └── sr_event_countdown.cpp └── test ├── sm_coretest_transition_speed_1 ├── CHANGELOG.rst ├── CMakeLists.txt ├── README.md ├── config │ └── rosconsole.config ├── docs │ ├── smacc_state_machine_20200207-004735.dot.pdf │ └── smacc_state_machine_20200207-004740.dot.svg ├── include │ └── sm_coretest_transition_speed_1 │ │ ├── orthogonals │ │ └── or_timer.h │ │ ├── sm_coretest_transition_speed_1.h │ │ └── states │ │ ├── st_state_1.h │ │ └── st_state_2.h ├── launch │ └── sm_coretest_transition_speed_1.launch ├── package.xml └── src │ └── sm_coretest_transition_speed_1_node.cpp ├── sm_coretest_x_y_1 ├── CHANGELOG.rst ├── CMakeLists.txt ├── README.md ├── config │ └── rosconsole.config ├── include │ └── sm_coretest_x_y_1 │ │ ├── orthogonals │ │ └── or_timer.h │ │ ├── sm_coretest_x_y_1.h │ │ └── states │ │ ├── st_state_1.h │ │ └── st_state_2.h ├── launch │ └── sm_coretest_x_y_1.launch ├── package.xml └── src │ └── sm_coretest_x_y_1_node.cpp ├── sm_coretest_x_y_2 ├── CHANGELOG.rst ├── CMakeLists.txt ├── README.md ├── config │ └── rosconsole.config ├── docs │ ├── smacc_state_machine_20200207-004735.dot.pdf │ └── smacc_state_machine_20200207-004740.dot.svg ├── include │ └── sm_coretest_x_y_2 │ │ ├── orthogonals │ │ └── or_timer.h │ │ ├── sm_coretest_x_y_2.h │ │ └── states │ │ ├── st_state_1.h │ │ └── st_state_2.h ├── launch │ └── sm_coretest_x_y_2.launch ├── package.xml └── src │ └── sm_coretest_x_y_2_node.cpp └── sm_coretest_x_y_3 ├── CHANGELOG.rst ├── CMakeLists.txt ├── README.md ├── config └── rosconsole.config ├── include └── sm_coretest_x_y_3 │ ├── orthogonals │ └── or_timer.h │ ├── sm_coretest_x_y_3.h │ └── states │ ├── st_state_1.h │ └── st_state_2.h ├── launch └── sm_coretest_x_y_3.launch ├── package.xml └── src └── sm_coretest_x_y_3_node.cpp /.codespell-ignore-words.txt: -------------------------------------------------------------------------------- 1 | ba 2 | -------------------------------------------------------------------------------- /.github/workflows/CI.yaml: -------------------------------------------------------------------------------- 1 | name: Noetic Continuous Integration 2 | 3 | on: 4 | push: 5 | pull_request: 6 | 7 | jobs: 8 | CI: 9 | runs-on: ubuntu-latest 10 | container: osrf/ros:noetic-desktop 11 | steps: 12 | - uses: actions/checkout@v1 13 | with: 14 | path: src/SMACC 15 | 16 | - shell: bash 17 | run: | 18 | source /opt/ros/noetic/setup.bash 19 | apt update 20 | rosdep update 21 | rosdep install --from-paths . --ignore-src -r -y 22 | cd ../../ 23 | catkin_make -DCMAKE_BUILD_TYPE=Debug 24 | -------------------------------------------------------------------------------- /.github/workflows/code_quality.yml: -------------------------------------------------------------------------------- 1 | name: Code Format & Quality 2 | 3 | on: 4 | pull_request: 5 | push: 6 | 7 | jobs: 8 | pre-commit: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - run: | 12 | sudo apt-get update 13 | sudo apt-get install -y clang-format-12 14 | - uses: actions/checkout@v3 15 | - uses: actions/setup-python@v3 16 | with: 17 | python-version: 3.9 18 | - uses: pre-commit/action@v3.0.0 19 | -------------------------------------------------------------------------------- /.github/workflows/doxygen.yml: -------------------------------------------------------------------------------- 1 | name: Doxygen 2 | 3 | on: 4 | push: 5 | branches: [noetic-devel] 6 | 7 | jobs: 8 | doxygen: 9 | runs-on: ubuntu-20.04 10 | steps: 11 | - uses: actions/checkout@v1 12 | 13 | - uses: mattnotmitt/doxygen-action@v1 14 | with: 15 | doxyfile-path: 'smacc_ci/Doxyfile' 16 | 17 | - uses: peaceiris/actions-gh-pages@v3 18 | with: 19 | deploy_key: ${{ secrets.ACTION_DEPLOY_KEY }} 20 | external_repository: robosoft-ai/smacc_doxygen 21 | publish_branch: gh-pages 22 | publish_dir: docs/ 23 | destination_dir: noetic 24 | commit_message: ${{ github.event.head_commit.message }} 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | install 3 | log 4 | bin 5 | -------------------------------------------------------------------------------- /documentation/Dance_Bot FlowchartX.odp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/Dance_Bot FlowchartX.odp -------------------------------------------------------------------------------- /documentation/Dance_Bot FlowchartX.v2.odp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/Dance_Bot FlowchartX.v2.odp -------------------------------------------------------------------------------- /documentation/ReelSmacc.v2.odp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/ReelSmacc.v2.odp -------------------------------------------------------------------------------- /documentation/SMACC-Containers-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/SMACC-Containers-2.jpg -------------------------------------------------------------------------------- /documentation/SMACC-Containers-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/SMACC-Containers-3.jpg -------------------------------------------------------------------------------- /documentation/SMACC-Node-Map-2-2-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/SMACC-Node-Map-2-2-1.jpg -------------------------------------------------------------------------------- /documentation/action_result_transition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/action_result_transition.png -------------------------------------------------------------------------------- /documentation/custom_reaction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/custom_reaction.png -------------------------------------------------------------------------------- /documentation/orthogonal_lines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/orthogonal_lines.png -------------------------------------------------------------------------------- /documentation/radial_motion_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/radial_motion_example.png -------------------------------------------------------------------------------- /documentation/radial_motion_example_statechart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/radial_motion_example_statechart.png -------------------------------------------------------------------------------- /documentation/shared_resource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/shared_resource.png -------------------------------------------------------------------------------- /documentation/shared_resources.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/shared_resources.png -------------------------------------------------------------------------------- /documentation/simpleStateMachine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/documentation/simpleStateMachine.png -------------------------------------------------------------------------------- /smacc/include/smacc/smacc.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************************************************** 2 | * ReelRobotix Inc. - Software License Agreement Copyright (c) 2018 3 | * Authors: Pablo Inigo Blasco, Brett Aldrich 4 | * 5 | ******************************************************************************************************************/ 6 | #pragma once 7 | #include 8 | #include 9 | #include 10 | #include 11 | -------------------------------------------------------------------------------- /smacc/include/smacc/smacc_client_behavior.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************************************************** 2 | * ReelRobotix Inc. - Software License Agreement Copyright (c) 2018 3 | * Authors: Pablo Inigo Blasco, Brett Aldrich 4 | * 5 | ******************************************************************************************************************/ 6 | 7 | #pragma once 8 | #include 9 | 10 | namespace smacc 11 | { 12 | class SmaccClientBehavior : public ISmaccClientBehavior 13 | { 14 | public: 15 | virtual void onEntry() override; 16 | virtual void onExit() override; 17 | }; 18 | } // namespace smacc 19 | 20 | #include 21 | -------------------------------------------------------------------------------- /smacc/include/smacc/smacc_fifo_scheduler.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | typedef boost::statechart::fifo_scheduler SmaccFifoScheduler; 5 | -------------------------------------------------------------------------------- /smacc/include/smacc/smacc_fifo_worker.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | typedef std::allocator SmaccAllocator; 5 | typedef boost::statechart::fifo_worker SmaccFifoWorker; 6 | -------------------------------------------------------------------------------- /smacc/rosdoc.yaml: -------------------------------------------------------------------------------- 1 | - builder: doxygen 2 | name: C++ API 3 | output_dir: c++ 4 | file_patterns: '*.c *.cpp *.h *.cc *.hh *.dox' 5 | -------------------------------------------------------------------------------- /smacc/smacc_client_behavior_base.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | -------------------------------------------------------------------------------- /smacc/src/smacc/client_bases/smacc_action_client.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************************************************** 2 | * ReelRobotix Inc. - Software License Agreement Copyright (c) 2018 3 | * Authors: Pablo Inigo Blasco, Brett Aldrich 4 | * 5 | ******************************************************************************************************************/ 6 | #include "smacc/client_bases/smacc_action_client.h" 7 | 8 | namespace smacc 9 | { 10 | namespace client_bases 11 | { 12 | 13 | ISmaccActionClient::ISmaccActionClient() 14 | { 15 | } 16 | 17 | ISmaccActionClient::~ISmaccActionClient() 18 | { 19 | } 20 | 21 | } // namespace client_bases 22 | } // namespace smacc 23 | -------------------------------------------------------------------------------- /smacc/src/smacc/smacc_client_behavior.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace smacc 4 | { 5 | void SmaccClientBehavior::onEntry() 6 | { 7 | ROS_DEBUG("[%s] Default empty SmaccClientBehavior onEntry", this->getName().c_str()); 8 | } 9 | 10 | void SmaccClientBehavior::onExit() 11 | { 12 | ROS_DEBUG("[%s] Default empty SmaccClientBehavior onExit", this->getName().c_str()); 13 | } 14 | } // namespace smacc 15 | -------------------------------------------------------------------------------- /smacc_ci/.gitignore: -------------------------------------------------------------------------------- 1 | token_file.json 2 | -------------------------------------------------------------------------------- /smacc_ci/docker/ros_kinetic_ubuntu_16.04/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo docker build -t smacc_kinetic_ubuntu_1604 . 3 | -------------------------------------------------------------------------------- /smacc_ci/docker/ros_kinetic_ubuntu_16.04/examples/run_sm_atomic.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ./build.sh 3 | xhost + 4 | sudo docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -it smacc_kinetic_ubuntu_1604 bash -c "source /opt/ros/kinetic/setup.bash; roslaunch sm_atomic sm_atomic.launch & rosrun smacc_viewer smacc_viewer_node.py" 5 | -------------------------------------------------------------------------------- /smacc_ci/docker/ros_kinetic_ubuntu_16.04/run_bash.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ./build.sh 3 | xhost + 4 | sudo docker run --gpus device=0 -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -it smacc_kinetic_ubuntu_1604 bash 5 | -------------------------------------------------------------------------------- /smacc_ci/docker/ros_melodic_ubuntu_18.04/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo docker build -t smacc_melodic_ubuntu_1804 . 3 | -------------------------------------------------------------------------------- /smacc_ci/docker/ros_melodic_ubuntu_18.04/examples/run_sm_atomic.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ./build.sh 3 | xhost + 4 | sudo docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -it smacc_kinetic_ubuntu_1604 bash -c "source /opt/ros/melodic/setup.bash; roslaunch sm_atomic sm_atomic.launch & rosrun smacc_viewer smacc_viewer_node.py" 5 | -------------------------------------------------------------------------------- /smacc_ci/docker/ros_melodic_ubuntu_18.04/run_bash.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ./build.sh 3 | xhost + 4 | sudo docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -it smacc_melodic_ubuntu_1804 bash 5 | -------------------------------------------------------------------------------- /smacc_ci/docker/ros_noetic_ubuntu_20.04/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo docker build -t smacc_noetic_ubuntu_2004 . 3 | -------------------------------------------------------------------------------- /smacc_ci/docker/ros_noetic_ubuntu_20.04/examples/run_sm_atomic.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ./build.sh 3 | xhost + 4 | sudo docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -it smacc_kinetic_ubuntu_1604 bash -c "source /opt/ros/melodic/setup.bash; roslaunch sm_atomic sm_atomic.launch & rosrun smacc_viewer smacc_viewer_node.py" 5 | -------------------------------------------------------------------------------- /smacc_ci/docker/ros_noetic_ubuntu_20.04/run_bash.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ./build.sh 3 | xhost + 4 | sudo docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -it smacc_noetic_ubuntu_2004 bash 5 | -------------------------------------------------------------------------------- /smacc_ci/packagecloud_docker/.gitignore: -------------------------------------------------------------------------------- 1 | *.private.sh 2 | -------------------------------------------------------------------------------- /smacc_ci/packagecloud_docker/build_ubuntu_16_04_kinetic.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "build docker image with github user: $1" 3 | echo "build docker image with packagecloud user: $3" 4 | sudo docker build --build-arg ROS_DOCKER_BASE="ros:kinetic-robot" --build-arg ROS_VERSION_NAME="kinetic" --build-arg UBUNTU_VERSION="xenial" --build-arg GITHUB_USER="$1" --build-arg GITHUB_TOKEN="$2" --build-arg PACKAGE_CLOUD_USER="$3" --build-arg PACKAGE_CLOUD_TOKEN="$4" -t package_cloud_tool_docker . 5 | -------------------------------------------------------------------------------- /smacc_ci/packagecloud_docker/build_ubuntu_18_04_melodic.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "build docker image with github user: $1" 3 | echo "build docker image with packagecloud user: $3" 4 | sudo docker build --build-arg ROS_DOCKER_BASE="ros:melodic-robot" --build-arg ROS_VERSION_NAME="melodic" --build-arg UBUNTU_VERSION="bionic" --build-arg GITHUB_USER="$1" --build-arg GITHUB_TOKEN="$2" --build-arg PACKAGE_CLOUD_USER="$3" --build-arg PACKAGE_CLOUD_TOKEN="$4" -t package_cloud_tool_docker . 5 | -------------------------------------------------------------------------------- /smacc_ci/packagecloud_docker/build_ubuntu_20_04_noetic.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "build docker image with github user: $1" 3 | echo "build docker image with packagecloud user: $3" 4 | sudo docker build --build-arg ROS_DOCKER_BASE="ros:noetic-robot" --build-arg ROS_VERSION_NAME="noetic" --build-arg UBUNTU_VERSION="focal" --build-arg GITHUB_USER="$1" --build-arg GITHUB_TOKEN="$2" --build-arg PACKAGE_CLOUD_USER="$3" --build-arg PACKAGE_CLOUD_TOKEN="$4" --build-arg PYTHON_VERSION="3" -t package_cloud_tool_docker . 5 | -------------------------------------------------------------------------------- /smacc_ci/packagecloud_docker/local_build_18_04_melodic.sh: -------------------------------------------------------------------------------- 1 | export ROS_VERSION_NAME="melodic" 2 | export UBUNTU_VERSION="bionic" 3 | GITHUB_USER="$1" 4 | GITHUB_TOKEN="$2" 5 | PACKAGE_CLOUD_USER="$3" 6 | PACKAGE_CLOUD_TOKEN="$4" 7 | 8 | source /opt/ros/melodic/setup.bash --extend 9 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 10 | 11 | export SMACC_SRC_FOLDER=`realpath $DIR/../..` 12 | echo $SMACC_SRC_FOLDER 13 | source $SMACC_SRC_FOLDER/../../devel/setup.bash 14 | python $SMACC_SRC_FOLDER/smacc_ci/packagecloud_docker/generate_debs.py -ros_version="$ROS_VERSION_NAME" -src_folder="$SMACC_SRC_FOLDER" -smacc_viewer_src_folder="src/SMACC_Viewer" -token="$PACKAGE_CLOUD_TOKEN" -repo_owner="$PACKAGE_CLOUD_USER" -ubuntu_version="$UBUNTU_VERSION" 15 | -------------------------------------------------------------------------------- /smacc_ci/packagecloud_docker/local_build_20_04_noetic.sh: -------------------------------------------------------------------------------- 1 | export ROS_VERSION_NAME="noetic" 2 | export UBUNTU_VERSION="bionic" 3 | GITHUB_USER="$1" 4 | GITHUB_TOKEN="$2" 5 | PACKAGE_CLOUD_USER="$3" 6 | PACKAGE_CLOUD_TOKEN="$4" 7 | 8 | source /opt/ros/noetic/setup.bash --extend 9 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 10 | 11 | export SMACC_SRC_FOLDER=`realpath $DIR/../..` 12 | echo $SMACC_SRC_FOLDER 13 | source $SMACC_SRC_FOLDER/../../devel/setup.bash 14 | python $SMACC_SRC_FOLDER/smacc_ci/packagecloud_docker/generate_debs.py -ros_version="$ROS_VERSION_NAME" -src_folder="$SMACC_SRC_FOLDER" -smacc_viewer_src_folder="src/SMACC_Viewer" -token="$PACKAGE_CLOUD_TOKEN" -repo_owner="$PACKAGE_CLOUD_USER" -ubuntu_version="$UBUNTU_VERSION" 15 | -------------------------------------------------------------------------------- /smacc_client_library/battery_monitor_client/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_client_library/battery_monitor_client/README.md -------------------------------------------------------------------------------- /smacc_client_library/battery_monitor_client/server/battery_monitor_node.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import rospy 3 | import numpy 4 | 5 | from sensor_msgs.msg import BatteryState 6 | 7 | if __name__ == "__main__": 8 | rospy.init_node("battery_node") 9 | pub = rospy.Publisher("battery", BatteryState, queue_size=1) 10 | tinit = rospy.Time.now().to_time() 11 | speed = 0.05 12 | 13 | try: 14 | while not rospy.is_shutdown(): 15 | msg = BatteryState() 16 | 17 | t = rospy.Time.now().to_time() 18 | msg.charge = 10 * numpy.exp(speed * (tinit - t)) - 1.0 19 | 20 | rospy.sleep(0.5) 21 | pub.publish(msg) 22 | 23 | except Exception as e: 24 | print(e) 25 | -------------------------------------------------------------------------------- /smacc_client_library/battery_monitor_client/src/battery_monitor_client/cl_battery_monitor.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace cl_battery_monitor 4 | { 5 | 6 | ClBatteryMonitor::ClBatteryMonitor() 7 | { 8 | } 9 | 10 | ClBatteryMonitor::ClBatteryMonitor(std::string topicname) 11 | : smacc::client_bases::SmaccSubscriberClient(topicname) 12 | { 13 | 14 | } 15 | 16 | ClBatteryMonitor::~ClBatteryMonitor() 17 | { 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /smacc_client_library/keyboard_client/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_client_library/keyboard_client/README.md -------------------------------------------------------------------------------- /smacc_client_library/keyboard_client/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | keyboard_client 4 | 1.4.16 5 | The keyboard_client package 6 | 7 | 8 | Pablo Inigo Blasco 9 | 10 | 11 | 12 | BSD-3 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | catkin 26 | smacc 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /smacc_client_library/keyboard_client/src/keyboard_client/cl_keyboard.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace cl_keyboard { 4 | ClKeyboard::ClKeyboard() { 5 | initialized_ = false; 6 | topicName = "/keyboard_unicode"; 7 | } 8 | 9 | ClKeyboard::~ClKeyboard() 10 | { 11 | 12 | } 13 | 14 | void ClKeyboard::initialize() { 15 | 16 | SmaccSubscriberClient::initialize(); 17 | 18 | if (!this->initialized_) { 19 | this->onMessageReceived(&ClKeyboard::onKeyboardMessage, this); 20 | this->initialized_ = true; 21 | } 22 | } 23 | 24 | void ClKeyboard::onKeyboardMessage(const std_msgs::UInt16 &unicode_keychar) { 25 | 26 | postEventKeyPress(unicode_keychar); 27 | } 28 | } // namespace cl_keyboard 29 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/README.md: -------------------------------------------------------------------------------- 1 |

Description

2 | The MoveBaseZ client extends the ROS navigation stack in a high level way. It provides specialized navigation planners (for the ROS Navigation Stack) that navigate only using pure spinning motions and straight motions. Implements some mechanism to perform motions recording the path and undoing them later. These can be very useful in some industrial applications where the knowledge or certainty on the environment is higher (ros planners are focused on cluttered and dynamic environments). 3 | 4 |

Author

5 | Pablo Inigo Blasco 6 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/backward_global_planner/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package backward_global_planner 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/backward_global_planner/bgp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/backward_global_planner/rosdoc.yaml: -------------------------------------------------------------------------------- 1 | - builder: doxygen 2 | name: C++ API 3 | output_dir: c++ 4 | file_patterns: '*.c *.cpp *.h *.cc *.hh *.dox' 5 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/backward_local_planner/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package backward_local_planner 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/backward_local_planner/blp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/backward_local_planner/rosdoc.yaml: -------------------------------------------------------------------------------- 1 | - builder: doxygen 2 | name: C++ API 3 | output_dir: c++ 4 | file_patterns: '*.c *.cpp *.h *.cc *.hh *.dox' 5 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/forward_global_planner/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package forward_global_planner 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/forward_global_planner/fgp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/forward_global_planner/rosdoc.yaml: -------------------------------------------------------------------------------- 1 | - builder: doxygen 2 | name: C++ API 3 | output_dir: c++ 4 | file_patterns: '*.c *.cpp *.h *.cc *.hh *.dox' 5 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/forward_local_planner/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package forward_local_planner 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/forward_local_planner/flp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/forward_local_planner/rosdoc.yaml: -------------------------------------------------------------------------------- 1 | - builder: doxygen 2 | name: C++ API 3 | output_dir: c++ 4 | file_patterns: '*.c *.cpp *.h *.cc *.hh *.dox' 5 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/pure_spinning_local_planner/cfg/PureSpinningLocalPlanner.cfg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | PACKAGE = "pure_spinning_local_planner" 3 | 4 | from dynamic_reconfigure.parameter_generator_catkin import * 5 | 6 | gen = ParameterGenerator() 7 | 8 | gen.add("k_betta", double_t, 1, "goal angle error gain", 0.1 ) 9 | gen.add("yaw_goal_tolerance", double_t, 1, "radians", 0.05 ) 10 | gen.add("enable_obstacle_checking", bool_t, 1, "bool", True ) 11 | gen.add("max_angular_z_speed", double_t, 1, "maximum angular speed in radians per second", 1.0 ) 12 | 13 | exit(gen.generate(PACKAGE, "pure_spinning_local_planner", "PureSpinningLocalPlanner")) 14 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/pure_spinning_local_planner/config/pure_spinning_local_planner.yaml: -------------------------------------------------------------------------------- 1 | k_betta: 1.0 2 | yaw_goal_tolerance: 0.02 3 | max_angular_z_speed: 2.0 # rad/s 4 | intermediate_goals_yaw_tolerance: 0.04 5 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/pure_spinning_local_planner/pslp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/pure_spinning_local_planner/rosdoc.yaml: -------------------------------------------------------------------------------- 1 | - builder: doxygen 2 | name: C++ API 3 | output_dir: c++ 4 | file_patterns: '*.c *.cpp *.h *.cc *.hh *.dox' 5 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/undo_path_global_planner/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package backward_global_planner 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | * Initial SMACC version 8 | * Contributors: Pablo Iñigo Blasco 9 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/undo_path_global_planner/rosdoc.yaml: -------------------------------------------------------------------------------- 1 | - builder: doxygen 2 | name: C++ API 3 | output_dir: c++ 4 | file_patterns: '*.c *.cpp *.h *.cc *.hh *.dox' 5 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/custom_planners/undo_path_global_planner/upgp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/move_base_z_client_plugin/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package smacc_navigation_plugin 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/move_base_z_client_plugin/action/OdomTracker.action: -------------------------------------------------------------------------------- 1 | uint8 command 2 | 3 | # Possible command values 4 | uint8 RECORD_PATH = 0 5 | uint8 CLEAR_BACKWARDS = 1 6 | uint8 IDLE = 2 # do nothing 7 | uint8 START_BROADCAST_PATH = 3 8 | uint8 STOP_BROADCAST_PATH = 4 9 | uint8 PUSH_PATH = 5 10 | uint8 POP_PATH = 6 11 | --- 12 | --- 13 | uint8 result 14 | 15 | # Possible result values 16 | uint8 RESULT_SUCCESS = 0 17 | uint8 RESULT_ERROR = 1 18 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/move_base_z_client_plugin/cfg/OdomTracker.cfg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | PACKAGE = "move_base_z_client_plugin" 3 | 4 | from dynamic_reconfigure.parameter_generator_catkin import * 5 | 6 | gen = ParameterGenerator() 7 | 8 | gen.add("odom_frame", str_t, 1, "", "odom") 9 | gen.add("record_point_distance_threshold", double_t, 1, "", 0.005 ) 10 | gen.add("record_angular_distance_threshold", double_t, 1, "", 0.1 ) 11 | gen.add("clear_point_distance_threshold", double_t, 1, "", 0.05 ) 12 | gen.add("clear_angular_distance_threshold", double_t, 1, "", 0.1) 13 | 14 | exit(gen.generate(PACKAGE, "odom_tracker", "OdomTracker")) 15 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/move_base_z_client_plugin/include/move_base_z_client_plugin/client_behaviors.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/move_base_z_client_plugin/rosdoc.yaml: -------------------------------------------------------------------------------- 1 | - builder: doxygen 2 | name: C++ API 3 | output_dir: c++ 4 | file_patterns: '*.c *.cpp *.h *.cc *.hh *.dox' 5 | -------------------------------------------------------------------------------- /smacc_client_library/move_base_z_client/move_base_z_client_plugin/src/components/waypoints_navigator/waypoints_event_dispatcher.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace cl_move_base_z 4 | { 5 | void WaypointEventDispatcher::postWaypointEvent(int index) 6 | { 7 | auto& fn = postWaypointFn[index % WAYPOINTS_EVENTCOUNT]; 8 | if(fn!=nullptr) 9 | fn(); 10 | } 11 | } // namespace smacc 12 | -------------------------------------------------------------------------------- /smacc_client_library/move_eye/move_eye_client/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package move_eye_client 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | * move_eye package 8 | * Contributors: Pabo Iñigo Blasco 9 | 10 | * move_eye package 11 | * Contributors: Pabo Iñigo Blasco 12 | 13 | * move_eye package 14 | * Contributors: Pabo Iñigo Blasco 15 | 16 | * move_eye package 17 | * Contributors: Pabo Iñigo Blasco 18 | -------------------------------------------------------------------------------- /smacc_client_library/move_eye/move_eye_client/src/cl_move_eye.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_client_library/move_eye/move_eye_client/src/cl_move_eye.cpp -------------------------------------------------------------------------------- /smacc_client_library/move_group_interface_client/include/move_group_interface_client/client_behaviors/cb_move_joints_relative.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************************************************** 2 | * ReelRobotix Inc. - Software License Agreement Copyright (c) 2018-2020 3 | * Authors: Pablo Inigo Blasco, Brett Aldrich 4 | * 5 | ******************************************************************************************************************/ 6 | -------------------------------------------------------------------------------- /smacc_client_library/multirole_sensor_client/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package multirole_sensor_client 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_client_library/multirole_sensor_client/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_client_library/multirole_sensor_client/README.md -------------------------------------------------------------------------------- /smacc_client_library/multirole_sensor_client/rosdoc.yaml: -------------------------------------------------------------------------------- 1 | - builder: doxygen 2 | name: C++ API 3 | output_dir: c++ 4 | file_patterns: '*.c *.cpp *.h *.cc *.hh *.dox' 5 | -------------------------------------------------------------------------------- /smacc_client_library/ros_publisher_client/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_client_library/ros_publisher_client/README.md -------------------------------------------------------------------------------- /smacc_client_library/ros_publisher_client/include/ros_publisher_client/cl_ros_publisher.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | #include 5 | 6 | namespace cl_ros_publisher 7 | { 8 | 9 | class ClRosPublisher : public smacc::client_bases::SmaccPublisherClient 10 | { 11 | public: 12 | ClRosPublisher() 13 | { 14 | } 15 | 16 | template 17 | void configure(std::string topicName) 18 | { 19 | SmaccPublisherClient::configure(topicName); 20 | } 21 | 22 | template 23 | void publish(const MessageType &msg) 24 | { 25 | SmaccPublisherClient::publish(msg); 26 | } 27 | }; 28 | } // namespace cl_ros_publisher 29 | -------------------------------------------------------------------------------- /smacc_client_library/ros_publisher_client/include/ros_publisher_client/client_behaviors/cb_muted_behavior.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | #include 5 | 6 | namespace cl_ros_publisher 7 | { 8 | template 9 | class CbMutedBehavior : public smacc::SmaccClientBehavior 10 | { 11 | public: 12 | virtual void onEntry() override 13 | { 14 | } 15 | virtual void onExit() override 16 | { 17 | } 18 | }; 19 | } // namespace cl_ros_publisher 20 | -------------------------------------------------------------------------------- /smacc_client_library/ros_timer_client/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_client_library/ros_timer_client/README.md -------------------------------------------------------------------------------- /smacc_client_library/ros_timer_client/src/ros_timer_client/cb_timer.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace cl_ros_timer 4 | { 5 | void CbTimer::onEntry() 6 | { 7 | this->requiresClient(timerClient_); 8 | 9 | timerClient_->onTimerTick(&CbTimer::onClientTimerTickCallback, this); 10 | } 11 | 12 | void CbTimer::onClientTimerTickCallback() 13 | { 14 | this->postTimerEvent_(); 15 | } 16 | 17 | void CbTimer::onExit() 18 | { 19 | } 20 | } // namespace cl_ros_timer 21 | -------------------------------------------------------------------------------- /smacc_client_library/ros_timer_client/src/ros_timer_client/timer_client.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace cl_ros_timer 4 | { 5 | 6 | ClRosTimer::ClRosTimer(ros::Duration duration, bool oneshot) 7 | { 8 | this->duration = duration; 9 | this->oneshot = oneshot; 10 | } 11 | 12 | ClRosTimer::~ClRosTimer() 13 | { 14 | timer.stop(); 15 | } 16 | 17 | void ClRosTimer::initialize() 18 | { 19 | timer = nh_.createTimer(duration, boost::bind(&ClRosTimer::timerCallback, this, _1), oneshot); 20 | } 21 | 22 | void ClRosTimer::timerCallback(const ros::TimerEvent &timedata) 23 | { 24 | if (!onTimerTick_.empty()) 25 | { 26 | this->onTimerTick_(); 27 | } 28 | postTimerEvent_(); 29 | } 30 | 31 | } // namespace cl_ros_timer 32 | -------------------------------------------------------------------------------- /smacc_diagnostics/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_diagnostics/readme.md -------------------------------------------------------------------------------- /smacc_diagnostics/smacc_runtime_test/config/state_machine_config_test_file.yaml: -------------------------------------------------------------------------------- 1 | state_machine_rosparam_ws: sm_dance_bot 2 | success_switch: 3 | - type: state_reached 4 | state_name: state_1 5 | failure_switch: 6 | - type: timeout 7 | duration: 10.0 # sec 8 | -------------------------------------------------------------------------------- /smacc_diagnostics/smacc_runtime_test/launch/meta_test.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /smacc_diagnostics/smacc_rviz_plugin/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package smacc_rviz_plugin 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Progressing on transition log 9 | * progress on viewer, modestates and history mode 10 | * progress in the viewer and examples 11 | * Merge branch 'master' of https://github.com/robosoft-ai/SMACC 12 | * Added SMACC thumbnail for RViz Plugin 13 | * creating four rays for dance_bot and media folder missing 14 | * fixing-moving from cxx version from 17 to 14 15 | * fixing build 16 | * missing file 17 | * testing status message, creation of rviz display plugin, refactoring of sm_dance_bot.launch to make it lightweight, readme.md for launching 18 | * Contributors: Pablo Iñigo Blasco, brett2@robosoft-ai.com 19 | -------------------------------------------------------------------------------- /smacc_diagnostics/smacc_rviz_plugin/icons/classes/SMACC Logo - RViz Size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_diagnostics/smacc_rviz_plugin/icons/classes/SMACC Logo - RViz Size.png -------------------------------------------------------------------------------- /smacc_diagnostics/smacc_rviz_plugin/icons/classes/SmaccRvizPanel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_diagnostics/smacc_rviz_plugin/icons/classes/SmaccRvizPanel.png -------------------------------------------------------------------------------- /smacc_diagnostics/smacc_rviz_plugin/media/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_diagnostics/smacc_rviz_plugin/media/.empty -------------------------------------------------------------------------------- /smacc_diagnostics/smacc_rviz_plugin/plugin_description.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | smacc_msgs/SmaccStatus 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /smacc_event_generator_library/eg_conditional_generator/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package eg_random_generator 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Renamed sr_conditional & eg_random_generator 9 | * Contributors: Brett Aldrich 10 | 11 | * Renamed sr_conditional & eg_random_generator 12 | * Contributors: Brett Aldrich 13 | -------------------------------------------------------------------------------- /smacc_event_generator_library/eg_conditional_generator/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | eg_conditional_generator 4 | 1.4.16 5 | The eg_conditional_generator package 6 | 7 | Pablo Iñigo Blasco 8 | 9 | BSD-3 10 | 11 | 12 | 13 | 14 | 15 | 16 | catkin 17 | catkin 18 | smacc 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /smacc_event_generator_library/eg_random_generator/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package eg_random_generator 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Renamed sr_conditional & eg_random_generator 9 | * Contributors: Brett Aldrich 10 | 11 | * Renamed sr_conditional & eg_random_generator 12 | * Contributors: Brett Aldrich 13 | -------------------------------------------------------------------------------- /smacc_msgs/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package smacc_msgs 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | * removing error changelog 8 | * Contributors: Pablo Iñigo Blasco 9 | 10 | * removing error changelog 11 | * Contributors: Pablo Iñigo Blasco 12 | -------------------------------------------------------------------------------- /smacc_msgs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.8) 2 | 3 | project(smacc_msgs) 4 | 5 | find_package(catkin REQUIRED COMPONENTS 6 | message_generation std_msgs) 7 | 8 | add_message_files(FILES 9 | SmaccSMCommand.msg 10 | SmaccStatus.msg 11 | SmaccContainerInitialStatusCmd.msg 12 | SmaccContainerStructure.msg 13 | SmaccContainerStatus.msg 14 | 15 | SmaccState.msg 16 | SmaccTransition.msg 17 | SmaccEvent.msg 18 | SmaccOrthogonal.msg 19 | SmaccStateReactor.msg 20 | SmaccEventGenerator.msg 21 | SmaccStateMachine.msg 22 | SmaccTransitionLogEntry.msg 23 | ) 24 | 25 | add_service_files( 26 | FILES 27 | SmaccGetTransitionHistory.srv 28 | ) 29 | 30 | generate_messages(DEPENDENCIES std_msgs) 31 | 32 | catkin_package(CATKIN_DEPENDS message_runtime) 33 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccContainerInitialStatusCmd.msg: -------------------------------------------------------------------------------- 1 | # The path to the node in the server 2 | string path 3 | 4 | # The desired initial state(s) 5 | string[] initial_states 6 | 7 | # Initial values for the local user data of the state machine 8 | # A pickled user data structure 9 | # i.e. the UserData's internal dictionary 10 | string local_data 11 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccContainerStatus.msg: -------------------------------------------------------------------------------- 1 | Header header 2 | 3 | # The path to this node in the server 4 | string path 5 | 6 | # The initial state description 7 | # Effects an arc from the top state to each one 8 | string[] initial_states 9 | 10 | # The current state description 11 | string[] active_states 12 | 13 | # A pickled user data structure 14 | # i.e. the UserData's internal dictionary 15 | string local_data 16 | 17 | # Debugging info string 18 | string info 19 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccContainerStructure.msg: -------------------------------------------------------------------------------- 1 | Header header 2 | 3 | # The path to this node in the server 4 | string path 5 | 6 | # The children of this node 7 | string[] children 8 | 9 | # The outcome edges 10 | # Each index across these arrays denote one edge 11 | string[] internal_outcomes 12 | string[] outcomes_from 13 | string[] outcomes_to 14 | 15 | # The potential outcomes from this container 16 | string[] container_outcomes 17 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccEvent.msg: -------------------------------------------------------------------------------- 1 | string event_type 2 | string event_object_tag 3 | string event_source # the client, client behavior or component that generated that event 4 | string label 5 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccEventGenerator.msg: -------------------------------------------------------------------------------- 1 | int32 index 2 | string type_name 3 | string object_tag 4 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccOrthogonal.msg: -------------------------------------------------------------------------------- 1 | string name 2 | string[] client_behavior_names 3 | string[] client_names 4 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccSMCommand.msg: -------------------------------------------------------------------------------- 1 | int8 command 2 | 3 | int8 SM_STOP = 0 4 | int8 E_STOP = 0 5 | int8 SM_RESET = 1 6 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccState.msg: -------------------------------------------------------------------------------- 1 | int32 index 2 | string name 3 | string[] children_states 4 | int8 level 5 | smacc_msgs/SmaccTransition[] transitions 6 | smacc_msgs/SmaccOrthogonal[] orthogonals 7 | smacc_msgs/SmaccStateReactor[] state_reactors 8 | smacc_msgs/SmaccEventGenerator[] event_generators 9 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccStateMachine.msg: -------------------------------------------------------------------------------- 1 | smacc_msgs/SmaccState[] states 2 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccStateReactor.msg: -------------------------------------------------------------------------------- 1 | int32 index 2 | string type_name 3 | string object_tag 4 | 5 | smacc_msgs/SmaccEvent[] event_sources 6 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccStatus.msg: -------------------------------------------------------------------------------- 1 | std_msgs/Header header 2 | 3 | #returns the list of current states (the complete hierarchy) 4 | #from ancestor active states to descendents active states), ie: [Superstate1, State3] 5 | string[] current_states 6 | 7 | string[] global_variable_names 8 | string[] global_variable_values 9 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccTransition.msg: -------------------------------------------------------------------------------- 1 | int32 index 2 | string transition_name 3 | string transition_type 4 | string destiny_state_name 5 | string source_state_name 6 | bool history_node 7 | smacc_msgs/SmaccEvent event 8 | -------------------------------------------------------------------------------- /smacc_msgs/msg/SmaccTransitionLogEntry.msg: -------------------------------------------------------------------------------- 1 | time timestamp 2 | smacc_msgs/SmaccTransition transition 3 | -------------------------------------------------------------------------------- /smacc_msgs/srv/SmaccGetTransitionHistory.srv: -------------------------------------------------------------------------------- 1 | --- 2 | smacc_msgs/SmaccTransitionLogEntry[] history 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic/config/sm_atomic_config.yaml: -------------------------------------------------------------------------------- 1 | SmAtomic: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic/config/sm_atomic_test.yaml: -------------------------------------------------------------------------------- 1 | state_machine_rosparam_ws: /SmAtomic 2 | success_switch: 3 | - type: state_reached 4 | state_name: "sm_atomic::State2" 5 | failure_switch: 6 | - type: timeout 7 | duration: 10.0 # sec 8 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic/docs/smacc_state_machine_20200207-004735.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_atomic/docs/smacc_state_machine_20200207-004735.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic/include/sm_atomic/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace sm_atomic 5 | { 6 | class OrTimer : public smacc::Orthogonal 7 | { 8 | public: 9 | virtual void onInitialize() override 10 | { 11 | auto client = this->createClient(ros::Duration(1)); 12 | client->initialize(); 13 | } 14 | }; 15 | } // namespace sm_atomic 16 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic/launch/sm_atomic.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic/src/sm_atomic_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //-------------------------------------------------------------------- 4 | int main(int argc, char **argv) 5 | { 6 | ros::init(argc, argv, "sm_atomic"); 7 | ros::NodeHandle nh; 8 | 9 | smacc::run(); 10 | } 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic/test/sm_atomic.test: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_cb/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_atomic_cb 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Merge branch 'master' into melodic-devel 9 | * adding xterm dependency to examples 10 | * Updated CbTimer CB function Comments 11 | * Final CbTimer Push 12 | * Contributors: Brett Aldrich, Unknown 13 | 14 | * Merge branch 'master' into melodic-devel 15 | * adding xterm dependency to examples 16 | * Updated CbTimer CB function Comments 17 | * Final CbTimer Push 18 | * Contributors: Brett Aldrich, Unknown 19 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_cb/config/sm_atomic_cb_config.yaml: -------------------------------------------------------------------------------- 1 | SmAtomicCB: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_cb/docs/smacc_state_machine_20200207-004735.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_atomic_cb/docs/smacc_state_machine_20200207-004735.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_cb/include/sm_atomic_cb/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace sm_atomic_cb 5 | { 6 | class OrTimer : public smacc::Orthogonal 7 | { 8 | public: 9 | virtual void onInitialize() override 10 | { 11 | auto client = this->createClient(ros::Duration(1)); 12 | client->initialize(); 13 | } 14 | }; 15 | } // namespace sm_atomic_cb 16 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_cb/launch/sm_atomic_cb.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_cb/src/sm_atomic_cb_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //-------------------------------------------------------------------- 4 | int main(int argc, char **argv) 5 | { 6 | ros::init(argc, argv, "sm_atomic_cb"); 7 | ros::NodeHandle nh; 8 | 9 | smacc::run(); 10 | } 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_mode_states/config/sm_atomic_config.yaml: -------------------------------------------------------------------------------- 1 | SmAtomic: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_mode_states/config/sm_atomic_test.yaml: -------------------------------------------------------------------------------- 1 | state_machine_rosparam_ws: /SmAtomic 2 | success_switch: 3 | - type: state_reached 4 | state_name: "sm_atomic_mode_states::State2" 5 | failure_switch: 6 | - type: timeout 7 | duration: 10.0 # sec 8 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_mode_states/docs/smacc_state_machine_20200207-004735.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_atomic_mode_states/docs/smacc_state_machine_20200207-004735.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_mode_states/include/sm_atomic_mode_states/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace sm_atomic_mode_states 5 | { 6 | class OrTimer : public smacc::Orthogonal 7 | { 8 | public: 9 | virtual void onInitialize() override 10 | { 11 | auto client = this->createClient(ros::Duration(1)); 12 | client->initialize(); 13 | } 14 | }; 15 | } // namespace sm_atomic_mode_states 16 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_mode_states/launch/sm_atomic_mode_states.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_mode_states/src/sm_atomic_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //-------------------------------------------------------------------- 4 | int main(int argc, char **argv) 5 | { 6 | ros::init(argc, argv, "sm_atomic_mode_states"); 7 | ros::NodeHandle nh; 8 | 9 | smacc::run(); 10 | } 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_mode_states/test/sm_atomic.test: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_services/config/sm_atomic_services_config.yaml: -------------------------------------------------------------------------------- 1 | SmAtomicServices: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_services/config/sm_atomic_services_test.yaml: -------------------------------------------------------------------------------- 1 | state_machine_rosparam_ws: /SmAtomicServices 2 | success_switch: 3 | - type: state_reached 4 | state_name: "sm_atomic_services::State2" 5 | failure_switch: 6 | - type: timeout 7 | duration: 10.0 # sec 8 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_services/docs/smacc_state_machine_20220330-064656.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_atomic_services/docs/smacc_state_machine_20220330-064656.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_services/include/sm_atomic_services/clients/cl_service_client.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include 5 | 6 | namespace sm_atomic_services 7 | { 8 | class ClServiceClient : public smacc::client_bases::SmaccServiceClient 9 | { 10 | public: 11 | ClServiceClient(const std::string& service_name) : smacc::client_bases::SmaccServiceClient(service_name) {} 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_services/include/sm_atomic_services/clients/cl_service_server.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include 5 | 6 | namespace sm_atomic_services 7 | { 8 | class ClServiceServer : public smacc::client_bases::SmaccServiceServerClient 9 | { 10 | public: 11 | ClServiceServer(const std::string& service_name) : smacc::client_bases::SmaccServiceServerClient(service_name) {} 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_services/include/sm_atomic_services/orthogonals/or_services.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace sm_atomic_services 5 | { 6 | class OrServices : public smacc::Orthogonal 7 | { 8 | virtual void onInitialize() override 9 | { 10 | auto service_server_client = this->createClient("service"); 11 | service_server_client->initialize(); 12 | 13 | auto service_client = this->createClient("service"); 14 | service_client->initialize(); 15 | } 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_services/include/sm_atomic_services/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace sm_atomic_services 5 | { 6 | class OrTimer : public smacc::Orthogonal 7 | { 8 | public: 9 | virtual void onInitialize() override 10 | { 11 | auto client = this->createClient(ros::Duration(1)); 12 | client->initialize(); 13 | } 14 | }; 15 | } // namespace sm_atomic 16 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_services/launch/sm_atomic_services.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_services/src/sm_atomic_services_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //-------------------------------------------------------------------- 4 | int main(int argc, char **argv) 5 | { 6 | ros::init(argc, argv, "sm_atomic_services"); 7 | ros::NodeHandle nh; 8 | 9 | smacc::run(); 10 | } 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_atomic_services/test/sm_atomic_services.test: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_calendar_week/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_calendar_week 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_calendar_week/config/sm_calendar_week_config.yaml: -------------------------------------------------------------------------------- 1 | SmCalendarWeek: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_calendar_week/docs/smacc_state_machine_20200206-004026.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_calendar_week/docs/smacc_state_machine_20200206-004026.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_calendar_week/include/sm_calendar_week/clients/cl_subscriber/cl_subscriber.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | #include 5 | 6 | namespace sm_calendar_week 7 | { 8 | namespace cl_subscriber 9 | { 10 | class ClSubscriber : public smacc::client_bases::SmaccSubscriberClient 11 | { 12 | }; 13 | } // namespace client_1 14 | } // namespace sm_calendar_week 15 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_calendar_week/include/sm_calendar_week/clients/cl_subscriber/client_behaviors/cb_default_subscriber_behavior.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | 5 | namespace sm_calendar_week 6 | { 7 | namespace cl_subscriber 8 | { 9 | class CbDefaultSubscriberBehavior : public smacc::SmaccClientBehavior 10 | { 11 | public: 12 | typedef std_msgs::UInt16 TMessageType; 13 | //------------------------------------------------------------------------------- 14 | void onEntry() 15 | { 16 | } 17 | }; 18 | } // namespace cl_subscriber 19 | } // namespace sm_calendar_week 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_calendar_week/include/sm_calendar_week/clients/cl_subscriber/client_behaviors/cb_watchdog_subscriber_behavior.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | 5 | namespace sm_calendar_week 6 | { 7 | namespace cl_subscriber 8 | { 9 | class CbWatchdogSubscriberBehavior : public smacc::SmaccClientBehavior 10 | { 11 | public: 12 | typedef std_msgs::UInt16 TMessageType; 13 | 14 | void onEntry() 15 | { 16 | } 17 | }; 18 | } // namespace cl_subscriber 19 | } // namespace sm_calendar_week 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_calendar_week/include/sm_calendar_week/mode_states/ms_weekend.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_calendar_week 3 | { 4 | // STATE DECLARATION 5 | class MsWeekend : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | 10 | // TRANSITION TABLE 11 | // typedef mpl::list< 12 | 13 | // >reactions; 14 | }; 15 | } // namespace sm_calendar_week 16 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_calendar_week/include/sm_calendar_week/mode_states/ms_workweek.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_calendar_week 3 | { 4 | // STATE DECLARATION 5 | class MsWorkweek : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | }; 10 | } // namespace sm_calendar_week 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_calendar_week/include/sm_calendar_week/orthogonals/or_keyboard.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | namespace sm_calendar_week 6 | { 7 | 8 | class OrKeyboard : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto clKeyboard = this->createClient(); 14 | 15 | //ClKeyboard.queueSize = 1; 16 | clKeyboard->initialize(); 17 | } 18 | }; 19 | } // namespace sm_calendar_week 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_calendar_week/include/sm_calendar_week/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_calendar_week 7 | { 8 | class OrTimer : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto actionclient = this->createClient(ros::Duration(1)); 14 | actionclient->initialize(); 15 | } 16 | }; 17 | } // namespace sm_calendar_week 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_calendar_week/launch/sm_calendar_week.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_calendar_week/src/sm_calendar_week_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | ros::init(argc, argv, "CalendarWeek"); 6 | smacc::run(); 7 | } 8 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_dance_bot 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco, brett2@robosoft-ai.com, robosoft-ai 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/config/move_base_client/backward_local_planner.yaml: -------------------------------------------------------------------------------- 1 | # backwards configuration, the robot will move backwards 2 | BackwardLocalPlanner: 3 | k_rho: -1.4 # linear distance to the goal gain, default = -1.0 (related with carrot distance) 4 | k_alpha: -0.1 5 | k_betta: -1.0 6 | carrot_distance: 0.3 #meters default 0.5 7 | carrot_angular_distance: 0.3 # no constraint, max 3.1416 8 | xy_goal_tolerance: 0.003 # 3 mm 9 | yaw_goal_tolerance: 0.3 10 | pure_spinning_straight_line_mode: true 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/config/move_base_client/forward_local_planner.yaml: -------------------------------------------------------------------------------- 1 | # backwards configuration, the robot will move backwards 2 | ForwardLocalPlanner: 3 | k_rho: 2.0 4 | k_alpha: -0.4 5 | k_betta: -1.0 6 | carrot_distance: 0.2 #meters 7 | carrot_angular_distance: 0.5 # no constraint, max 3.1416 8 | xy_goal_tolerance: 0.04 9 | yaw_goal_tolerance: 0.01 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/config/move_base_client/global_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | global_costmap: 2 | global_frame: odom 3 | robot_base_frame: base_link 4 | update_frequency: 20 5 | publish_frequency: 5 6 | width: 40.0 7 | height: 40.0 8 | resolution: 0.05 9 | origin_x: -20.0 10 | origin_y: -20.0 11 | static_map: true 12 | rolling_window: false 13 | inflater_layer: 14 | inflation_radius: 0.6 15 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/config/move_base_client/local_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | local_costmap: 2 | global_frame: odom 3 | robot_base_frame: base_link 4 | update_frequency: 20.0 5 | publish_frequency: 5.0 6 | width: 10.0 7 | height: 10.0 8 | resolution: 0.05 9 | static_map: false 10 | rolling_window: true 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/config/rosconsole.config: -------------------------------------------------------------------------------- 1 | log4j.logger.ros=INFO 2 | log4j.logger.ros.roscpp.superdebug=WARN 3 | log4j.logger.ros.backward_local_planner=DEBUG 4 | log4j.logger.ros.move_base=DEBUG 5 | log4j.logger.ros.forward_local_planner=DEBUG 6 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/docs/Global Transition Rules.txt: -------------------------------------------------------------------------------- 1 | GLOBAL TRANSITION RULES 2 | --------------------------------- 3 | 4 | For all states, superstates, If any sensor is lost, transition back to st_acquire_sensors. 5 | 6 | For all states, If the Navigation Orthogonal is aborted, transition to st_navigate_to_waypoints_x. 7 | 8 | 9 | For all states, superstates, but not ssrs, If Keyboard Orthogonal = N, transition to next success state. 10 | 11 | For all states, superstates, but not ssrs, If Keyboard Orthogonal = P, transition to previous state. 12 | 13 | For all states, If Navigation Orthogonal is prempted, transition to previous state. 14 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/docs/sm_dance_bot.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot/docs/sm_dance_bot.JPG -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/docs/smacc_state_machine_20200222-125051.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot/docs/smacc_state_machine_20200222-125051.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/clients/cl_led/cl_led.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot 7 | { 8 | namespace cl_led 9 | { 10 | class ClLED : public smacc::client_bases::SmaccActionClientBase 11 | { 12 | 13 | public: 14 | SMACC_ACTION_CLIENT_DEFINITION(sm_dance_bot::LEDControlAction); 15 | 16 | ClLED(std::string actionServerName); 17 | virtual std::string getName() const override; 18 | virtual ~ClLED(); 19 | }; 20 | } // namespace cl_led 21 | } 22 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/clients/cl_led/client_behaviors/cb_led_off.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot 7 | { 8 | namespace cl_led 9 | { 10 | class CbLEDOff : public smacc::SmaccClientBehavior 11 | { 12 | public: 13 | cl_led::ClLED *ledActionClient_; 14 | 15 | virtual void onEntry() override 16 | { 17 | this->requiresClient(ledActionClient_); 18 | 19 | cl_led::ClLED::Goal goal; 20 | goal.command = cl_led::ClLED::Goal::CMD_OFF; 21 | ledActionClient_->sendGoal(goal); 22 | } 23 | 24 | virtual void onExit() override 25 | { 26 | //ROS_INFO("Entering ToolClientBehavior"); 27 | } 28 | }; 29 | } // namespace cl_led 30 | } // namespace sm_dance_bot 31 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/clients/cl_led/client_behaviors/cb_led_on.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot 7 | { 8 | namespace cl_led 9 | { 10 | class CbLEDOn : public smacc::SmaccClientBehavior 11 | { 12 | public: 13 | cl_led::ClLED *ledActionClient_; 14 | 15 | virtual void onEntry() override 16 | { 17 | this->requiresClient(ledActionClient_); 18 | 19 | cl_led::ClLED::Goal goal; 20 | goal.command = cl_led::ClLED::Goal::CMD_ON; 21 | ledActionClient_->sendGoal(goal); 22 | } 23 | 24 | virtual void onExit() override 25 | { 26 | //ROS_INFO("Entering ToolClientBehavior"); 27 | } 28 | }; 29 | } // namespace cl_led 30 | } // namespace sm_dance_bot 31 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/clients/cl_lidar/cl_lidar.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace sm_dance_bot 8 | { 9 | namespace cl_lidar 10 | { 11 | 12 | class ClLidarSensor : public cl_multirole_sensor::ClMultiroleSensor 13 | { 14 | public: 15 | ClLidarSensor() 16 | { 17 | } 18 | }; 19 | } // namespace cl_lidar 20 | } // namespace sm_dance_bot 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/clients/cl_service3/cl_service3.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | namespace sm_dance_bot 6 | { 7 | namespace cl_service3 8 | { 9 | class ClService3 : public smacc::client_bases::SmaccServiceClient 10 | { 11 | public: 12 | ClService3() 13 | { 14 | } 15 | }; 16 | } // namespace cl_service3 17 | } // namespace sm_dance_bot 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/clients/cl_string_publisher/cl_string_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot 7 | { 8 | namespace cl_string_publisher 9 | { 10 | class ClStringPublisher : public smacc::client_bases::SmaccPublisherClient 11 | { 12 | public: 13 | ClStringPublisher(std::string topicName) 14 | : smacc::client_bases::SmaccPublisherClient() 15 | { 16 | this->configure(topicName); 17 | } 18 | }; 19 | } // namespace cl_string_publisher 20 | } // namespace sm_dance_bot 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/clients/cl_temperature_sensor/cl_temperature_sensor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace sm_dance_bot 8 | { 9 | namespace cl_temperature_sensor 10 | { 11 | class ClTemperatureSensor : public cl_multirole_sensor::ClMultiroleSensor 12 | { 13 | public: 14 | ClTemperatureSensor() 15 | { 16 | } 17 | }; 18 | } // namespace cl_temperature_sensor 19 | } // namespace sm_dance_bot 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/modestates/ms_dance_bot_recovery_mode.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_dance_bot 3 | { 4 | // STATE DECLARATION 5 | class MsDanceBotRecoveryMode : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | 10 | // TRANSITION TABLE 11 | typedef mpl::list< 12 | 13 | Transition> 14 | 15 | >reactions; 16 | // typedef Transition reactions; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/modestates/ms_dance_bot_run_mode.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_dance_bot 3 | { 4 | // STATE DECLARATION 5 | class MsDanceBotRunMode : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | 10 | // TRANSITION TABLE 11 | typedef mpl::list< 12 | 13 | Transition 14 | 15 | >reactions; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/orthogonals/or_led.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace sm_dance_bot 6 | { 7 | class OrLED : public smacc::Orthogonal 8 | { 9 | public: 10 | virtual void onInitialize() override 11 | { 12 | auto actionclient = this->createClient("led_action_server"); 13 | actionclient->initialize(); 14 | } 15 | }; 16 | } // namespace sm_dance_bot 17 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/orthogonals/or_obstacle_perception.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot 7 | { 8 | class OrObstaclePerception : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto lidarClient = this->createClient(); 14 | 15 | lidarClient->topicName = "/front/scan"; 16 | //lidarClient->queueSize = "/front/scan"; 17 | lidarClient->timeout_ = ros::Duration(10); 18 | 19 | lidarClient->initialize(); 20 | } 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/orthogonals/or_service3.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot 7 | { 8 | class OrService3 : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto serviceClient = this->createClient(); 14 | serviceClient->serviceName_ = "/service_node3"; 15 | serviceClient->initialize(); 16 | } 17 | }; 18 | } // namespace sm_dance_bot 19 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/orthogonals/or_string_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | namespace sm_dance_bot 6 | { 7 | class OrStringPublisher : public smacc::Orthogonal 8 | { 9 | public: 10 | virtual void onInitialize() override 11 | { 12 | this->createClient("/string_publisher_out"); 13 | } 14 | }; 15 | } // namespace sm_dance_bot 16 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace sm_dance_bot 6 | { 7 | class OrTimer : public smacc::Orthogonal 8 | { 9 | public: 10 | virtual void onInitialize() override 11 | { 12 | auto actionclient = this->createClient(ros::Duration(0.5)); 13 | actionclient->initialize(); 14 | } 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/orthogonals/or_updatable_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot 7 | { 8 | class OrUpdatablePublisher : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto publisherClient_ = this->createClient(); 14 | publisherClient_->configure("/updatable_string_publisher_out"); 15 | } 16 | }; 17 | } // namespace sm_dance_bot 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/states/st_rotate_degrees_1.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_dance_bot 3 | { 4 | // STATE DECLARATION 5 | struct StRotateDegrees1 : smacc::SmaccState 6 | { 7 | using SmaccState::SmaccState; 8 | 9 | // TRANSITION TABLE 10 | typedef mpl::list< 11 | 12 | Transition, StNavigateForward1>, 13 | Transition, StNavigateToWaypointsX> 14 | 15 | >reactions; 16 | 17 | // STATE FUNCTIONS 18 | static void staticConfigure() 19 | { 20 | configure_orthogonal(/*30*/ 90); 21 | configure_orthogonal(); 22 | configure_orthogonal(); 23 | } 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/states/st_rotate_degrees_4.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_dance_bot 3 | { 4 | // STATE DECLARATION 5 | struct StRotateDegrees4 : smacc::SmaccState 6 | { 7 | using SmaccState::SmaccState; 8 | 9 | // TRANSITION TABLE 10 | typedef mpl::list< 11 | 12 | Transition, StNavigateReverse2>, 13 | Transition, StNavigateToWaypointsX> 14 | 15 | >reactions; 16 | 17 | // STATE FUNCTIONS 18 | static void staticConfigure() 19 | { 20 | configure_orthogonal(/*30*/ -180); 21 | configure_orthogonal(); 22 | configure_orthogonal(); 23 | } 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/include/sm_dance_bot/states/st_rotate_degrees_6.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_dance_bot 3 | { 4 | // STATE DECLARATION 5 | struct StRotateDegrees6 : smacc::SmaccState 6 | { 7 | using SmaccState::SmaccState; 8 | 9 | // TRANSITION TABLE 10 | typedef mpl::list< 11 | 12 | Transition, StNavigateReverse3>, 13 | Transition, StNavigateToWaypointsX> 14 | 15 | >reactions; 16 | 17 | // STATE FUNCTIONS 18 | static void staticConfigure() 19 | { 20 | configure_orthogonal(/*30*/ -180); 21 | configure_orthogonal(); 22 | configure_orthogonal(); 23 | } 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/servers/action_server_node_3/src/action_server_node_3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot/servers/action_server_node_3/src/action_server_node_3.cpp -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/servers/led_action_server/action/LEDControl.action: -------------------------------------------------------------------------------- 1 | uint8 command 2 | 3 | # Possible command values 4 | uint8 CMD_ON = 0 5 | uint8 CMD_OFF = 1 6 | --- 7 | uint8 state 8 | 9 | # Possible feeedback values (tool states) 10 | uint8 STATE_UNKNOWN = 0 11 | uint8 STATE_RUNNING = 1 12 | uint8 STATE_IDLE = 2 13 | --- 14 | uint8 result 15 | 16 | # Possible result values 17 | uint8 RESULT_SUCCESS = 0 18 | uint8 RESULT_ERROR = 1 19 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/servers/lidar_node/src/lidar_node.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot/servers/lidar_node/src/lidar_node.cpp -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/servers/service_node_3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot/servers/service_node_3/__init__.py -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/servers/service_node_3/src/service_node_3.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | 4 | import rospy 5 | import std_srvs 6 | 7 | 8 | if __name__ == "__main__": 9 | 10 | def set_bool_service(req): 11 | rospy.loginfo("RECEIVING SET BOOL SERVICE REQUEST: value=" + str(req.data)) 12 | 13 | response = std_srvs.srv.SetBoolResponse() 14 | response.message = "OK, value set" 15 | response.success = True 16 | return response 17 | 18 | rospy.init_node("service_node3") 19 | s = rospy.Service("service_node3", std_srvs.srv.SetBool, set_bool_service) 20 | rospy.spin() 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/servers/temperature_sensor_node/src/temperature_sensor_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, char** argv) 5 | { 6 | ros::init(argc,argv, "temperature_sensor_node"); 7 | 8 | ros::NodeHandle nh; 9 | auto pub = nh.advertise("/temperature",1); 10 | 11 | ros::Rate r(10); 12 | 13 | while(ros::ok()) 14 | { 15 | sensor_msgs::Temperature msg; 16 | pub.publish(msg); 17 | 18 | r.sleep(); 19 | ros::spinOnce(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/src/sm_dance_bot.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | ros::init(argc, argv, "dance_bot"); 6 | ros::NodeHandle nh; 7 | 8 | ros::Duration(5).sleep(); 9 | smacc::run(); 10 | } 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot/urdf/empty.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_dance_bot 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | * Initial SMACC version 8 | * Contributors: Pablo Iñigo Blasco, brett2@robosoft-ai.com, robosoft-ai 9 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/config/move_base_client/backward_local_planner.yaml: -------------------------------------------------------------------------------- 1 | # backwards configuration, the robot will move backwards 2 | BackwardLocalPlanner: 3 | k_rho: -1.4 # linear distance to the goal gain, default = -1.0 (related with carrot distance) 4 | k_alpha: -0.1 5 | k_betta: -1.0 6 | carrot_distance: 0.3 #meters default 0.5 7 | carrot_angular_distance: 0.3 # no constraint, max 3.1416 8 | xy_goal_tolerance: 0.003 # 3 mm 9 | yaw_goal_tolerance: 0.3 10 | pure_spinning_straight_line_mode: true 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/config/move_base_client/forward_local_planner.yaml: -------------------------------------------------------------------------------- 1 | # backwards configuration, the robot will move backwards 2 | ForwardLocalPlanner: 3 | k_rho: 2.0 4 | k_alpha: -0.4 5 | k_betta: -1.0 6 | carrot_distance: 0.2 #meters 7 | carrot_angular_distance: 0.5 # no constraint, max 3.1416 8 | xy_goal_tolerance: 0.04 9 | yaw_goal_tolerance: 0.01 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/config/move_base_client/global_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | global_costmap: 2 | global_frame: odom 3 | robot_base_frame: base_link 4 | update_frequency: 20 5 | publish_frequency: 5 6 | width: 40.0 7 | height: 40.0 8 | resolution: 0.05 9 | origin_x: -20.0 10 | origin_y: -20.0 11 | static_map: true 12 | rolling_window: false 13 | inflater_layer: 14 | inflation_radius: 0.6 15 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/config/move_base_client/local_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | local_costmap: 2 | global_frame: odom 3 | robot_base_frame: base_link 4 | update_frequency: 20.0 5 | publish_frequency: 5.0 6 | width: 10.0 7 | height: 10.0 8 | resolution: 0.05 9 | static_map: false 10 | rolling_window: true 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/config/rosconsole.config: -------------------------------------------------------------------------------- 1 | log4j.logger.ros=INFO 2 | log4j.logger.ros.roscpp.superdebug=WARN 3 | log4j.logger.ros.undo_path_global_planner=DEBUG 4 | log4j.logger.ros.backward_local_planner=DEBUG 5 | log4j.logger.ros.move_base=DEBUG 6 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/docs/Global Transition Rules.txt: -------------------------------------------------------------------------------- 1 | GLOBAL TRANSITION RULES 2 | --------------------------------- 3 | 4 | For all states, superstates, If any sensor is lost, transition back to st_acquire_sensors. 5 | 6 | For all states, If the Navigation Orthogonal is aborted, transition to st_navigate_to_waypoints_x. 7 | 8 | 9 | For all states, superstates, but not ssrs, If Keyboard Orthogonal = N, transition to next success state. 10 | 11 | For all states, superstates, but not ssrs, If Keyboard Orthogonal = P, transition to previous state. 12 | 13 | For all states, If Navigation Orthogonal is prempted, transition to previous state. 14 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/docs/StateChart - sm_dance_bot.odp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot_2/docs/StateChart - sm_dance_bot.odp -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/docs/smacc_state_machine_20200222-125051.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot_2/docs/smacc_state_machine_20200222-125051.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/clients/cl_led/cl_led.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot_2 7 | { 8 | namespace cl_led 9 | { 10 | class ClLED : public smacc::client_bases::SmaccActionClientBase 11 | { 12 | 13 | public: 14 | SMACC_ACTION_CLIENT_DEFINITION(sm_dance_bot_2::LEDControlAction); 15 | 16 | ClLED(std::string actionServerName); 17 | virtual std::string getName() const override; 18 | virtual ~ClLED(); 19 | }; 20 | } // namespace cl_led 21 | } 22 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/clients/cl_led/client_behaviors/cb_led_off.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot_2 7 | { 8 | namespace cl_led 9 | { 10 | class CbLEDOff : public smacc::SmaccClientBehavior 11 | { 12 | public: 13 | cl_led::ClLED *ledActionClient_; 14 | 15 | virtual void onEntry() override 16 | { 17 | this->requiresClient(ledActionClient_); 18 | 19 | cl_led::ClLED::Goal goal; 20 | goal.command = cl_led::ClLED::Goal::CMD_OFF; 21 | ledActionClient_->sendGoal(goal); 22 | } 23 | 24 | virtual void onExit() override 25 | { 26 | //ROS_INFO("Entering ToolClientBehavior"); 27 | } 28 | }; 29 | } // namespace cl_led 30 | } // namespace sm_dance_bot_2 31 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/clients/cl_led/client_behaviors/cb_led_on.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot_2 7 | { 8 | namespace cl_led 9 | { 10 | class CbLEDOn : public smacc::SmaccClientBehavior 11 | { 12 | public: 13 | cl_led::ClLED *ledActionClient_; 14 | 15 | virtual void onEntry() override 16 | { 17 | this->requiresClient(ledActionClient_); 18 | 19 | cl_led::ClLED::Goal goal; 20 | goal.command = cl_led::ClLED::Goal::CMD_ON; 21 | ledActionClient_->sendGoal(goal); 22 | } 23 | 24 | virtual void onExit() override 25 | { 26 | //ROS_INFO("Entering ToolClientBehavior"); 27 | } 28 | }; 29 | } // namespace cl_led 30 | } // namespace sm_dance_bot_2 31 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/clients/cl_lidar/cl_lidar.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace sm_dance_bot_2 8 | { 9 | namespace cl_lidar 10 | { 11 | 12 | class ClLidarSensor : public cl_multirole_sensor::ClMultiroleSensor 13 | { 14 | public: 15 | ClLidarSensor() 16 | { 17 | } 18 | }; 19 | } // namespace cl_lidar 20 | } // namespace sm_dance_bot_2 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/clients/cl_service3/cl_service3.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | namespace sm_dance_bot_2 6 | { 7 | namespace cl_service3 8 | { 9 | class ClService3 : public smacc::client_bases::SmaccServiceClient 10 | { 11 | public: 12 | ClService3() 13 | { 14 | } 15 | }; 16 | } // namespace cl_service3 17 | } // namespace sm_dance_bot_2 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/clients/cl_string_publisher/cl_string_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot_2 7 | { 8 | namespace cl_string_publisher 9 | { 10 | class ClStringPublisher : public smacc::client_bases::SmaccPublisherClient 11 | { 12 | public: 13 | ClStringPublisher(std::string topicName) 14 | : smacc::client_bases::SmaccPublisherClient() 15 | { 16 | this->configure(topicName); 17 | } 18 | }; 19 | } // namespace cl_string_publisher 20 | } // namespace sm_dance_bot_2 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/clients/cl_temperature_sensor/cl_temperature_sensor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace sm_dance_bot_2 8 | { 9 | namespace cl_temperature_sensor 10 | { 11 | class ClTemperatureSensor : public cl_multirole_sensor::ClMultiroleSensor 12 | { 13 | public: 14 | ClTemperatureSensor() 15 | { 16 | } 17 | }; 18 | } // namespace cl_temperature_sensor 19 | } // namespace sm_dance_bot_2 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/orthogonals/or_led.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace sm_dance_bot_2 6 | { 7 | class OrLED : public smacc::Orthogonal 8 | { 9 | public: 10 | virtual void onInitialize() override 11 | { 12 | auto actionclient = this->createClient("led_action_server"); 13 | actionclient->initialize(); 14 | } 15 | }; 16 | } // namespace sm_dance_bot_2 17 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/orthogonals/or_obstacle_perception.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot_2 7 | { 8 | class OrObstaclePerception : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto lidarClient = this->createClient(); 14 | 15 | lidarClient->topicName = "/front/scan"; 16 | //lidarClient->queueSize = "/front/scan"; 17 | lidarClient->timeout_ = ros::Duration(10); 18 | 19 | lidarClient->initialize(); 20 | } 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/orthogonals/or_service3.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot_2 7 | { 8 | class OrService3 : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto serviceClient = this->createClient(); 14 | serviceClient->serviceName_ = "/service_node3"; 15 | serviceClient->initialize(); 16 | } 17 | }; 18 | } // namespace sm_dance_bot_2 19 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/orthogonals/or_string_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | namespace sm_dance_bot_2 6 | { 7 | class OrStringPublisher : public smacc::Orthogonal 8 | { 9 | public: 10 | virtual void onInitialize() override 11 | { 12 | this->createClient("/string_publisher_out"); 13 | } 14 | }; 15 | } // namespace sm_dance_bot_2 16 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace sm_dance_bot_2 6 | { 7 | class OrTimer : public smacc::Orthogonal 8 | { 9 | public: 10 | virtual void onInitialize() override 11 | { 12 | auto actionclient = this->createClient(ros::Duration(0.5)); 13 | actionclient->initialize(); 14 | } 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/orthogonals/or_updatable_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot_2 7 | { 8 | class OrUpdatablePublisher : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto publisherClient_ = this->createClient(); 14 | publisherClient_->configure("/updatable_string_publisher_out"); 15 | } 16 | }; 17 | } // namespace sm_dance_bot_2 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/states/ms_dance_bot_recovery_mode/ms_dance_bot_recovery_mode.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_dance_bot_2 3 | { 4 | // STATE DECLARATION 5 | class MsDanceBotRecoveryMode : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | 10 | // TRANSITION TABLE 11 | typedef mpl::list< 12 | 13 | Transition> 14 | 15 | >reactions; 16 | // typedef Transition reactions; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/include/sm_dance_bot_2/states/ms_dance_bot_run_mode/ms_dance_bot_run_mode.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_dance_bot_2 3 | { 4 | // STATE DECLARATION 5 | class MsDanceBotRunMode : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | 10 | // TRANSITION TABLE 11 | typedef mpl::list< 12 | 13 | Transition 14 | 15 | >reactions; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/servers/action_server_node_3/src/action_server_node_3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot_2/servers/action_server_node_3/src/action_server_node_3.cpp -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/servers/led_action_server/action/LEDControl.action: -------------------------------------------------------------------------------- 1 | uint8 command 2 | 3 | # Possible command values 4 | uint8 CMD_ON = 0 5 | uint8 CMD_OFF = 1 6 | --- 7 | uint8 state 8 | 9 | # Possible feeedback values (tool states) 10 | uint8 STATE_UNKNOWN = 0 11 | uint8 STATE_RUNNING = 1 12 | uint8 STATE_IDLE = 2 13 | --- 14 | uint8 result 15 | 16 | # Possible result values 17 | uint8 RESULT_SUCCESS = 0 18 | uint8 RESULT_ERROR = 1 19 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/servers/lidar_node/src/lidar_node.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot_2/servers/lidar_node/src/lidar_node.cpp -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/servers/service_node_3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot_2/servers/service_node_3/__init__.py -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/servers/service_node_3/src/service_node_3.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | 4 | import rospy 5 | import std_srvs 6 | 7 | if __name__ == "__main__": 8 | 9 | def set_bool_service(req): 10 | rospy.loginfo("RECEIVING SET BOOL SERVICE REQUEST: value=" + str(req.data)) 11 | 12 | response = std_srvs.srv.SetBoolResponse() 13 | response.message = "OK, value set" 14 | response.success = True 15 | return response 16 | 17 | rospy.init_node("service_node3") 18 | s = rospy.Service("service_node3", std_srvs.srv.SetBool, set_bool_service) 19 | rospy.spin() 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/servers/temperature_sensor_node/src/temperature_sensor_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, char** argv) 5 | { 6 | ros::init(argc,argv, "temperature_sensor_node"); 7 | 8 | ros::NodeHandle nh; 9 | auto pub = nh.advertise("/temperature",1); 10 | 11 | ros::Rate r(10); 12 | 13 | while(ros::ok()) 14 | { 15 | sensor_msgs::Temperature msg; 16 | pub.publish(msg); 17 | 18 | r.sleep(); 19 | ros::spinOnce(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/src/sm_dance_bot_2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | ros::init(argc, argv, "dance_bot"); 6 | ros::NodeHandle nh; 7 | 8 | ros::Duration(5).sleep(); 9 | smacc::run(); 10 | } 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_2/urdf/empty.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_dance_bot_strikes_back 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco, brett2@robosoft-ai.com, robosoft-ai 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/config/move_base_client/backward_local_planner.yaml: -------------------------------------------------------------------------------- 1 | # backwards configuration, the robot will move backwards 2 | BackwardLocalPlanner: 3 | k_rho: -1.4 # linear distance to the goal gain, default = -1.0 (related with carrot distance) 4 | k_alpha: -0.1 5 | k_betta: -1.0 6 | carrot_distance: 0.3 #meters default 0.5 7 | carrot_angular_distance: 0.5 # no constraint, max 3.1416 8 | xy_goal_tolerance: 0.015 # 0.025 9 | yaw_goal_tolerance: 0.3 10 | pure_spinning_straight_line_mode: true 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/config/move_base_client/forward_local_planner.yaml: -------------------------------------------------------------------------------- 1 | # backwards configuration, the robot will move backwards 2 | ForwardLocalPlanner: 3 | k_rho: 1.0 4 | k_alpha: -0.4 5 | k_betta: -1.0 6 | carrot_distance: 1.5 #meters 7 | carrot_angular_distance: 0.5 # no constraint, max 3.1416 8 | xy_goal_tolerance: 0.04 9 | yaw_goal_tolerance: 0.01 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/config/move_base_client/global_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | global_costmap: 2 | global_frame: odom 3 | robot_base_frame: base_link 4 | update_frequency: 20 5 | publish_frequency: 5 6 | width: 40.0 7 | height: 40.0 8 | resolution: 0.05 9 | origin_x: -20.0 10 | origin_y: -20.0 11 | static_map: true 12 | rolling_window: false 13 | inflater_layer: 14 | inflation_radius: 0.6 15 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/config/move_base_client/local_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | local_costmap: 2 | global_frame: odom 3 | robot_base_frame: base_link 4 | update_frequency: 20.0 5 | publish_frequency: 5.0 6 | width: 10.0 7 | height: 10.0 8 | resolution: 0.05 9 | static_map: false 10 | rolling_window: true 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/config/rosconsole.config: -------------------------------------------------------------------------------- 1 | log4j.logger.ros=INFO 2 | log4j.logger.ros.roscpp.superdebug=WARN 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/docs/sm_dance_bot_strikes_back.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot_strikes_back/docs/sm_dance_bot_strikes_back.JPG -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/docs/smacc_state_machine_20200222-122223.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot_strikes_back/docs/smacc_state_machine_20200222-122223.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/clients/cl_led/cl_led.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot_strikes_back 7 | { 8 | namespace cl_led 9 | { 10 | class ClLED : public smacc::client_bases::SmaccActionClientBase 11 | { 12 | public: 13 | SMACC_ACTION_CLIENT_DEFINITION(sm_dance_bot_strikes_back::LEDControlAction); 14 | 15 | ClLED(std::string actionServerName); 16 | virtual std::string getName() const override; 17 | virtual ~ClLED(); 18 | }; 19 | } // namespace cl_led 20 | } 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/clients/cl_lidar/cl_lidar.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace sm_dance_bot_strikes_back 8 | { 9 | namespace cl_lidar 10 | { 11 | 12 | class ClLidarSensor : public cl_multirole_sensor::ClMultiroleSensor 13 | { 14 | public: 15 | ClLidarSensor(std::string topicname, ros::Duration timeout) 16 | { 17 | 18 | this->topicName = topicname; 19 | this->timeout_ = timeout; 20 | } 21 | }; 22 | } // namespace cl_lidar 23 | } // namespace sm_dance_bot_2 24 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/clients/cl_service3/cl_service3.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | namespace sm_dance_bot_strikes_back 6 | { 7 | namespace cl_service3 8 | { 9 | class ClService3 : public smacc::client_bases::SmaccServiceClient 10 | { 11 | public: 12 | ClService3() 13 | { 14 | } 15 | }; 16 | } // namespace cl_service3 17 | } // namespace sm_dance_bot_strikes_back 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/clients/cl_string_publisher/cl_string_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot_strikes_back 7 | { 8 | namespace cl_string_publisher 9 | { 10 | class ClStringPublisher : public smacc::client_bases::SmaccPublisherClient 11 | { 12 | public: 13 | ClStringPublisher(std::string topicName) 14 | : smacc::client_bases::SmaccPublisherClient() 15 | { 16 | this->configure(topicName); 17 | } 18 | }; 19 | } // namespace cl_string_publisher 20 | } // namespace sm_dance_bot_strikes_back 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/clients/cl_temperature_sensor/cl_temperature_sensor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace sm_dance_bot_strikes_back 8 | { 9 | namespace cl_temperature_sensor 10 | { 11 | class ClTemperatureSensor : public cl_multirole_sensor::ClMultiroleSensor 12 | { 13 | public: 14 | ClTemperatureSensor() 15 | { 16 | } 17 | }; 18 | } // namespace cl_temperature_sensor 19 | } // namespace sm_dance_bot_strikes_back 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/modestates/ms_dance_bot_recovery_mode.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_dance_bot_strikes_back 3 | { 4 | // STATE DECLARATION 5 | class MsDanceBotRecoveryMode : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | 10 | // TRANSITION TABLE 11 | typedef mpl::list< 12 | 13 | Transition> 14 | 15 | >reactions; 16 | // typedef Transition reactions; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/modestates/ms_dance_bot_run_mode.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_dance_bot_strikes_back 3 | { 4 | // STATE DECLARATION 5 | class MsDanceBotRunMode : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | 10 | // TRANSITION TABLE 11 | typedef mpl::list< 12 | 13 | Transition 14 | 15 | >reactions; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/orthogonals/or_led.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace sm_dance_bot_strikes_back 6 | { 7 | class OrLED : public smacc::Orthogonal 8 | { 9 | public: 10 | virtual void onInitialize() override 11 | { 12 | auto actionclient = this->createClient("led_action_server"); 13 | actionclient->initialize(); 14 | } 15 | }; 16 | } // namespace sm_dance_bot_strikes_back 17 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/orthogonals/or_obstacle_perception.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace sm_dance_bot_strikes_back 8 | { 9 | class OrObstaclePerception : public smacc::Orthogonal 10 | { 11 | public: 12 | virtual void onInitialize() override 13 | { 14 | auto lidarClient = 15 | this->createClient("/front/scan", ros::Duration(10)); 16 | 17 | lidarClient->initialize(); 18 | 19 | lidarClient->createComponent(); 20 | } 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/orthogonals/or_service3.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot_strikes_back 7 | { 8 | class OrService3 : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto serviceClient = this->createClient(); 14 | serviceClient->serviceName_ = "/service_node3"; 15 | serviceClient->initialize(); 16 | } 17 | }; 18 | } // namespace sm_dance_bot_strikes_back 19 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/orthogonals/or_string_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | namespace sm_dance_bot_strikes_back 6 | { 7 | class OrStringPublisher : public smacc::Orthogonal 8 | { 9 | public: 10 | virtual void onInitialize() override 11 | { 12 | this->createClient("/string_publisher_out"); 13 | } 14 | }; 15 | } // namespace sm_dance_bot_strikes_back 16 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace sm_dance_bot_strikes_back 6 | { 7 | class OrTimer : public smacc::Orthogonal 8 | { 9 | public: 10 | virtual void onInitialize() override 11 | { 12 | auto actionclient = this->createClient(ros::Duration(0.5)); 13 | actionclient->initialize(); 14 | } 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/include/sm_dance_bot_strikes_back/orthogonals/or_updatable_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_dance_bot_strikes_back 7 | { 8 | class OrUpdatablePublisher : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto publisherClient_ = this->createClient(); 14 | publisherClient_->configure("/updatable_string_publisher_out"); 15 | } 16 | }; 17 | } // namespace sm_dance_bot_strikes_back 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/servers/action_server_node_3/src/action_server_node_3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot_strikes_back/servers/action_server_node_3/src/action_server_node_3.cpp -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/servers/led_action_server/action/LEDControl.action: -------------------------------------------------------------------------------- 1 | uint8 command 2 | 3 | # Possible command values 4 | uint8 CMD_ON = 0 5 | uint8 CMD_OFF = 1 6 | --- 7 | uint8 state 8 | 9 | # Possible feeedback values (tool states) 10 | uint8 STATE_UNKNOWN = 0 11 | uint8 STATE_RUNNING = 1 12 | uint8 STATE_IDLE = 2 13 | --- 14 | uint8 result 15 | 16 | # Possible result values 17 | uint8 RESULT_SUCCESS = 0 18 | uint8 RESULT_ERROR = 1 19 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/servers/lidar_node/src/lidar_node.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot_strikes_back/servers/lidar_node/src/lidar_node.cpp -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/servers/service_node_3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_dance_bot_strikes_back/servers/service_node_3/__init__.py -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/servers/service_node_3/src/service_node_3.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | 4 | import rospy 5 | import std_srvs 6 | 7 | if __name__ == "__main__": 8 | 9 | def set_bool_service(req): 10 | rospy.loginfo("RECEIVING SET BOOL SERVICE REQUEST: value=" + str(req.data)) 11 | 12 | response = std_srvs.srv.SetBoolResponse() 13 | response.message = "OK, value set" 14 | response.success = True 15 | return response 16 | 17 | rospy.init_node("service_node3") 18 | s = rospy.Service("service_node3", std_srvs.srv.SetBool, set_bool_service) 19 | rospy.spin() 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/servers/temperature_sensor_node/src/temperature_sensor_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, char** argv) 5 | { 6 | ros::init(argc,argv, "temperature_sensor_node"); 7 | 8 | ros::NodeHandle nh; 9 | auto pub = nh.advertise("/temperature",1); 10 | 11 | ros::Rate r(10); 12 | 13 | while(ros::ok()) 14 | { 15 | sensor_msgs::Temperature msg; 16 | pub.publish(msg); 17 | 18 | r.sleep(); 19 | ros::spinOnce(); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/src/sm_dance_bot_strikes_back.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | int main(int argc, char **argv) 3 | { 4 | ros::init(argc, argv, "dance_bot_strikes_back"); 5 | ros::NodeHandle nh; 6 | 7 | ros::Duration(5).sleep(); 8 | smacc::run(); 9 | } 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_dance_bot_strikes_back/urdf/empty.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ferrari/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_ferrari 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ferrari/config/sm_three_some_config.yaml: -------------------------------------------------------------------------------- 1 | SmFerrari: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ferrari/include/sm_ferrari/clients/cl_subscriber/cl_subscriber.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | #include 5 | 6 | namespace sm_ferrari 7 | { 8 | namespace cl_subscriber 9 | { 10 | class ClSubscriber : public smacc::client_bases::SmaccSubscriberClient 11 | { 12 | public: 13 | ClSubscriber(std::string topicname): 14 | smacc::client_bases::SmaccSubscriberClient(topicname) 15 | { 16 | } 17 | }; 18 | } // namespace client_1 19 | } // namespace sm_ferrari 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ferrari/include/sm_ferrari/mode_states/ms_recover.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_ferrari 3 | { 4 | // STATE DECLARATION 5 | class MsRecover : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | 10 | // TRANSITION TABLE 11 | typedef mpl::list< 12 | 13 | Transition, SUCCESS> 14 | 15 | >reactions; 16 | }; 17 | } // namespace sm_ferrari 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ferrari/include/sm_ferrari/mode_states/ms_run.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_ferrari 3 | { 4 | // STATE DECLARATION 5 | class MsRun : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | }; 10 | } // namespace sm_ferrari 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ferrari/include/sm_ferrari/orthogonals/or_keyboard.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | namespace sm_ferrari 6 | { 7 | 8 | class OrKeyboard : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto clKeyboard = this->createClient(); 14 | 15 | //ClKeyboard.queueSize = 1; 16 | clKeyboard->initialize(); 17 | } 18 | }; 19 | } // namespace sm_ferrari 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ferrari/include/sm_ferrari/orthogonals/or_subscriber.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_ferrari 7 | { 8 | using namespace sm_ferrari::cl_subscriber; 9 | 10 | class OrSubscriber : public smacc::Orthogonal 11 | { 12 | public: 13 | virtual void onInitialize() override 14 | { 15 | auto subscriber_client = this->createClient("/temperature"); 16 | subscriber_client->initialize(); 17 | } 18 | }; 19 | } // namespace sm_ferrari 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ferrari/include/sm_ferrari/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_ferrari 7 | { 8 | class OrTimer : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto actionclient = this->createClient(ros::Duration(0.5)); 14 | actionclient->initialize(); 15 | } 16 | }; 17 | } // namespace sm_ferrari 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ferrari/include/sm_ferrari/orthogonals/or_updatable_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace sm_ferrari 8 | { 9 | using namespace cl_ros_publisher; 10 | 11 | class OrUpdatablePublisher : public smacc::Orthogonal 12 | { 13 | public: 14 | virtual void onInitialize() override 15 | { 16 | auto ros_publisher_client = this->createClient(); 17 | ros_publisher_client->initialize(); 18 | } 19 | }; 20 | } // namespace sm_ferrari 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ferrari/include/sm_ferrari/states/st_state_4.h: -------------------------------------------------------------------------------- 1 | namespace sm_ferrari 2 | { 3 | // STATE DECLARATION 4 | struct StState4 : smacc::SmaccState 5 | { 6 | using SmaccState::SmaccState; 7 | 8 | // DECLARE CUSTOM OBJECT TAGS 9 | struct TIMEOUT : SUCCESS{}; 10 | struct NEXT : SUCCESS{}; 11 | struct PREVIOUS : ABORT{}; 12 | 13 | 14 | // STATE FUNCTIONS 15 | static void staticConfigure() 16 | { 17 | } 18 | 19 | void runtimeConfigure() 20 | { 21 | } 22 | 23 | void onEntry() 24 | { 25 | ROS_INFO("On Entry!"); 26 | } 27 | 28 | void onExit() 29 | { 30 | ROS_INFO("On Exit!"); 31 | } 32 | 33 | }; 34 | } // namespace sm_ferrari 35 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ferrari/launch/sm_ferrari.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ferrari/src/sm_ferrari_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | ros::init(argc, argv, "sm_ferrari_node"); 6 | smacc::run(); 7 | } 8 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_packml 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/config/sm_packml_config.yaml: -------------------------------------------------------------------------------- 1 | SmPackML: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/docs/smacc_state_machine_20200205-104844.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_packml/docs/smacc_state_machine_20200205-104844.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/include/sm_packml/clients/cl_subscriber/cl_subscriber.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | #include 5 | 6 | namespace sm_packml 7 | { 8 | namespace cl_subscriber 9 | { 10 | class ClSubscriber : public smacc::client_bases::SmaccSubscriberClient 11 | { 12 | }; 13 | } // namespace client_1 14 | } // namespace sm_packml 15 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/include/sm_packml/clients/cl_subscriber/client_behaviors/cb_default_subscriber_behavior.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | 5 | namespace sm_packml 6 | { 7 | namespace cl_subscriber 8 | { 9 | class CbDefaultSubscriberBehavior : public smacc::SmaccClientBehavior 10 | { 11 | public: 12 | typedef std_msgs::UInt16 TMessageType; 13 | //------------------------------------------------------------------------------- 14 | void onEntry() 15 | { 16 | } 17 | }; 18 | } // namespace cl_subscriber 19 | } // namespace sm_packml 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/include/sm_packml/clients/cl_subscriber/client_behaviors/cb_watchdog_subscriber_behavior.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | 5 | namespace sm_packml 6 | { 7 | namespace cl_subscriber 8 | { 9 | class CbWatchdogSubscriberBehavior : public smacc::SmaccClientBehavior 10 | { 11 | public: 12 | typedef std_msgs::UInt16 TMessageType; 13 | 14 | void onEntry() 15 | { 16 | } 17 | }; 18 | } // namespace cl_subscriber 19 | } // namespace sm_packml 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/include/sm_packml/mode_states/ms_run.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_packml 3 | { 4 | // STATE DECLARATION 5 | class MsRun : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | }; 10 | } // namespace sm_packml 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/include/sm_packml/mode_states/ms_stop.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_packml 3 | { 4 | // STATE DECLARATION 5 | class MsStop : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | 10 | // TRANSITION TABLE 11 | // typedef mpl::list< 12 | 13 | // >reactions; 14 | }; 15 | } // namespace sm_packml 16 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/include/sm_packml/orthogonals/or_keyboard.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | namespace sm_packml 6 | { 7 | 8 | class OrKeyboard : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto clKeyboard = this->createClient(); 14 | 15 | //ClKeyboard.queueSize = 1; 16 | clKeyboard->initialize(); 17 | } 18 | }; 19 | } // namespace sm_packml 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/include/sm_packml/orthogonals/or_subscriber.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_packml 7 | { 8 | using namespace sm_packml::cl_subscriber; 9 | 10 | class OrSubscriber : public smacc::Orthogonal 11 | { 12 | public: 13 | virtual void onInitialize() override 14 | { 15 | auto subscriber_client = this->createClient(); 16 | subscriber_client->initialize(); 17 | } 18 | }; 19 | } // namespace sm_packml 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/include/sm_packml/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_packml 7 | { 8 | class OrTimer : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto actionclient = this->createClient(ros::Duration(0.5)); 14 | actionclient->initialize(); 15 | } 16 | }; 17 | } // namespace sm_packml 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/include/sm_packml/orthogonals/or_updatable_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace sm_packml 8 | { 9 | using namespace cl_ros_publisher; 10 | 11 | class OrUpdatablePublisher : public smacc::Orthogonal 12 | { 13 | public: 14 | virtual void onInitialize() override 15 | { 16 | auto ros_publisher_client = this->createClient(); 17 | ros_publisher_client->initialize(); 18 | } 19 | }; 20 | } // namespace sm_packml 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/launch/sm_packML.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_packml/src/sm_packml_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | ros::init(argc, argv, "packML"); 6 | smacc::run(); 7 | } 8 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_respira_1 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/config/sm_respira_1_config.yaml: -------------------------------------------------------------------------------- 1 | SmRespira1: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/docs/smacc_state_machine_20200513-165801.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_respira_1/docs/smacc_state_machine_20200513-165801.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/include/sm_respira_1/clients/cl_subscriber/cl_subscriber.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | #include 5 | 6 | namespace sm_respira_1 7 | { 8 | namespace cl_subscriber 9 | { 10 | class ClSubscriber : public smacc::client_bases::SmaccSubscriberClient 11 | { 12 | }; 13 | } // namespace client_1 14 | } // namespace sm_respira_1 15 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/include/sm_respira_1/clients/cl_subscriber/client_behaviors/cb_default_subscriber_behavior.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | 5 | namespace sm_respira_1 6 | { 7 | namespace cl_subscriber 8 | { 9 | class CbDefaultSubscriberBehavior : public smacc::SmaccClientBehavior 10 | { 11 | public: 12 | typedef std_msgs::UInt16 TMessageType; 13 | //------------------------------------------------------------------------------- 14 | void onEntry() 15 | { 16 | } 17 | }; 18 | } // namespace cl_subscriber 19 | } // namespace sm_respira_1 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/include/sm_respira_1/clients/cl_subscriber/client_behaviors/cb_watchdog_subscriber_behavior.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | 5 | namespace sm_respira_1 6 | { 7 | namespace cl_subscriber 8 | { 9 | class CbWatchdogSubscriberBehavior : public smacc::SmaccClientBehavior 10 | { 11 | public: 12 | typedef std_msgs::UInt16 TMessageType; 13 | 14 | void onEntry() 15 | { 16 | } 17 | }; 18 | } // namespace cl_subscriber 19 | } // namespace sm_respira_1 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/include/sm_respira_1/mode_states/ms_calibration.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_respira_1 3 | { 4 | // STATE DECLARATION 5 | class MsCalibration : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | }; 10 | } // namespace sm_respira_1 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/include/sm_respira_1/mode_states/ms_leaky_lung.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_respira_1 3 | { 4 | // STATE DECLARATION 5 | class MsLeakyLung : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | }; 10 | } // namespace sm_respira_1 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/include/sm_respira_1/mode_states/ms_patient_obstruction.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_respira_1 3 | { 4 | // STATE DECLARATION 5 | class MsPatientObstruction : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | }; 10 | } // namespace sm_respira_1 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/include/sm_respira_1/mode_states/ms_run.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_respira_1 3 | { 4 | // STATE DECLARATION 5 | class MsRun : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | }; 10 | } // namespace sm_respira_1 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/include/sm_respira_1/mode_states/ms_shutdown.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_respira_1 3 | { 4 | // STATE DECLARATION 5 | class MsShutdown : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | }; 10 | } // namespace sm_respira_1 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/include/sm_respira_1/orthogonals/or_keyboard.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | namespace sm_respira_1 6 | { 7 | 8 | class OrKeyboard : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto clKeyboard = this->createClient(); 14 | 15 | //ClKeyboard.queueSize = 1; 16 | clKeyboard->initialize(); 17 | } 18 | }; 19 | } // namespace sm_respira_1 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/include/sm_respira_1/orthogonals/or_subscriber.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_respira_1 7 | { 8 | using namespace sm_respira_1::cl_subscriber; 9 | 10 | class OrSubscriber : public smacc::Orthogonal 11 | { 12 | public: 13 | virtual void onInitialize() override 14 | { 15 | auto subscriber_client = this->createClient(); 16 | subscriber_client->initialize(); 17 | } 18 | }; 19 | } // namespace sm_respira_1 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/include/sm_respira_1/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_respira_1 7 | { 8 | class OrTimer : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto actionclient = this->createClient(ros::Duration(0.1)); 14 | actionclient->initialize(); 15 | } 16 | }; 17 | } // namespace sm_respira_1 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/include/sm_respira_1/orthogonals/or_updatable_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace sm_respira_1 8 | { 9 | using namespace cl_ros_publisher; 10 | 11 | class OrUpdatablePublisher : public smacc::Orthogonal 12 | { 13 | public: 14 | virtual void onInitialize() override 15 | { 16 | auto ros_publisher_client = this->createClient(); 17 | ros_publisher_client->initialize(); 18 | } 19 | }; 20 | } // namespace sm_respira_1 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/launch/sm_respira_1.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_respira_1/src/sm_respira_1_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | ros::init(argc, argv, "respira_1"); 6 | smacc::run(); 7 | } 8 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/config/move_base_client/backward_local_planner.yaml: -------------------------------------------------------------------------------- 1 | # backwards configuration, the robot will move backwards 2 | BackwardLocalPlanner: 3 | k_rho: -1.5 # linear distance to the goal gain, default = -1.0 (related with carrot distance) 4 | k_alpha: -0.1 5 | k_betta: -1.0 6 | carrot_distance: 0.3 #meters default 0.5 7 | carrot_angular_distance: 0.5 # no constraint, max 3.1416 8 | xy_goal_tolerance: 0.015 # 0.025 9 | yaw_goal_tolerance: 0.3 10 | pure_spinning_straight_line_mode: true 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/config/move_base_client/forward_local_planner.yaml: -------------------------------------------------------------------------------- 1 | # backwards configuration, the robot will move backwards 2 | ForwardLocalPlanner: 3 | k_rho: 1.0 4 | k_alpha: -0.4 5 | k_betta: -1.0 6 | carrot_distance: 1.5 #meters 7 | carrot_angular_distance: 0.5 # no constraint, max 3.1416 8 | xy_goal_tolerance: 0.04 9 | yaw_goal_tolerance: 0.01 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/config/move_base_client/global_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | global_costmap: 2 | global_frame: odom 3 | robot_base_frame: base_link 4 | update_frequency: 20 5 | publish_frequency: 5 6 | width: 250.0 7 | height: 120.0 8 | resolution: 0.3 9 | origin_x: -20.0 10 | origin_y: -20.0 11 | static_map: true 12 | rolling_window: false 13 | inflater_layer: 14 | inflation_radius: 0.6 15 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/config/move_base_client/local_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | local_costmap: 2 | global_frame: odom 3 | robot_base_frame: base_link 4 | update_frequency: 20.0 5 | publish_frequency: 5.0 6 | width: 10.0 7 | height: 10.0 8 | resolution: 0.05 9 | static_map: false 10 | rolling_window: true 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/config/rosconsole.config: -------------------------------------------------------------------------------- 1 | log4j.logger.ros=INFO 2 | log4j.logger.ros.roscpp.superdebug=WARN 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/config/sm_ridgeback_barrel_search_1_config.yaml: -------------------------------------------------------------------------------- 1 | SmRidgebackBarrelSearch1: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/docs/sm_ridgeback_barrel_search_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_1/docs/sm_ridgeback_barrel_search_1.jpg -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/docs/smacc_state_machine_20200822-022031.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_1/docs/smacc_state_machine_20200822-022031.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/include/sm_ridgeback_barrel_search_1/orthogonals/or_perception.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_ridgeback_barrel_search_1 7 | { 8 | class OrPerception : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto opencvPerceptionClient = this->createClient(); 14 | opencvPerceptionClient->initialize(); 15 | } 16 | }; 17 | } // namespace sm_ridgeback_barrel_search_1 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/include/sm_ridgeback_barrel_search_1/states/st_detect_items.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_ridgeback_barrel_search_1 3 | { 4 | // STATE DECLARATION 5 | struct StDetectItems : smacc::SmaccState 6 | { 7 | using SmaccState::SmaccState; 8 | 9 | // TRANSITION TABLE 10 | typedef mpl::list, StNavigateToWaypointX>> 11 | reactions; 12 | 13 | // STATE FUNCTIONS 14 | static void staticConfigure() 15 | { 16 | // configure_orthogonal(); 17 | } 18 | }; 19 | } // namespace sm_ridgeback_barrel_search_1 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/msg/DetectedBlobs.msg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_1/msg/DetectedBlobs.msg -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/servers/blue1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_1/servers/blue1.png -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/servers/green1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_1/servers/green1.png -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/servers/opencv_perception_node/CMakeLists.txt2: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.8) 2 | 3 | find_package(OpenCV REQUIRED) 4 | 5 | include_directories($OpenCV_INCLUDE_DIRS) 6 | 7 | add_executable(perception_node "opencv_perception_node.cpp") 8 | 9 | target_link_libraries(perception_node ${OpenCV_LIBRARIES}) 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/servers/red1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_1/servers/red1.png -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/servers/red2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_1/servers/red2.png -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_1/src/sm_ridgeback_barrel_search_1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | ros::init(argc, argv, "sm_ridgeback_barrel_search_1"); 6 | ros::NodeHandle nh; 7 | 8 | ros::Duration(5).sleep(); 9 | smacc::run(); 10 | } 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/config/move_base_client/backward_local_planner.yaml: -------------------------------------------------------------------------------- 1 | # backwards configuration, the robot will move backwards 2 | BackwardLocalPlanner: 3 | k_rho: -1.5 # linear distance to the goal gain, default = -1.0 (related with carrot distance) 4 | k_alpha: -0.1 5 | k_betta: -1.0 6 | carrot_distance: 0.3 #meters default 0.5 7 | carrot_angular_distance: 0.5 # no constraint, max 3.1416 8 | xy_goal_tolerance: 0.015 # 0.025 9 | yaw_goal_tolerance: 0.3 10 | pure_spinning_straight_line_mode: true 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/config/move_base_client/forward_local_planner.yaml: -------------------------------------------------------------------------------- 1 | # backwards configuration, the robot will move backwards 2 | ForwardLocalPlanner: 3 | k_rho: 1.0 4 | k_alpha: -0.4 5 | k_betta: -1.0 6 | carrot_distance: 1.5 #meters 7 | carrot_angular_distance: 0.5 # no constraint, max 3.1416 8 | xy_goal_tolerance: 0.04 9 | yaw_goal_tolerance: 0.01 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/config/move_base_client/global_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | global_costmap: 2 | global_frame: odom 3 | robot_base_frame: base_link 4 | update_frequency: 20 5 | publish_frequency: 5 6 | width: 40.0 7 | height: 40.0 8 | resolution: 0.05 9 | origin_x: -20.0 10 | origin_y: -20.0 11 | static_map: true 12 | rolling_window: false 13 | inflater_layer: 14 | inflation_radius: 0.6 15 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/config/move_base_client/local_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | local_costmap: 2 | global_frame: odom 3 | robot_base_frame: base_link 4 | update_frequency: 20.0 5 | publish_frequency: 5.0 6 | width: 10.0 7 | height: 10.0 8 | resolution: 0.05 9 | static_map: false 10 | rolling_window: true 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/config/rosconsole.config: -------------------------------------------------------------------------------- 1 | log4j.logger.ros=INFO 2 | log4j.logger.ros.roscpp.superdebug=WARN 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/config/sm_ridgeback_barrel_search_2_config.yaml: -------------------------------------------------------------------------------- 1 | SmRidgebackBarrelSearch2: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/docs/sm_ridgeback_barrel_search_2.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_2/docs/sm_ridgeback_barrel_search_2.JPG -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/docs/smacc_state_machine_20200822-022031.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_2/docs/smacc_state_machine_20200822-022031.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/include/sm_ridgeback_barrel_search_2/orthogonals/or_perception.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_ridgeback_barrel_search_2 7 | { 8 | class OrPerception : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto opencvPerceptionClient = this->createClient(); 14 | opencvPerceptionClient->initialize(); 15 | } 16 | }; 17 | } // namespace sm_ridgeback_barrel_search_2 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/include/sm_ridgeback_barrel_search_2/states/st_detect_items.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_ridgeback_barrel_search_2 3 | { 4 | // STATE DECLARATION 5 | struct StDetectItems : smacc::SmaccState 6 | { 7 | using SmaccState::SmaccState; 8 | 9 | // TRANSITION TABLE 10 | typedef mpl::list, StNavigateToWaypointX>> 11 | reactions; 12 | 13 | // STATE FUNCTIONS 14 | static void staticConfigure() 15 | { 16 | // configure_orthogonal(); 17 | } 18 | }; 19 | } // namespace sm_ridgeback_barrel_search_2 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/msg/DetectedBlobs.msg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_2/msg/DetectedBlobs.msg -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | sm_ridgeback_barrel_search_2 4 | 1.4.16 5 | The sm_ridgeback_barrel_search_2 package 6 | 7 | 8 | Pablo Iñigo Blasco 9 | 10 | 11 | 12 | BSD-3 13 | 14 | catkin 15 | 16 | roscpp 17 | smacc 18 | move_base_z_client_plugin 19 | cv_bridge 20 | ridgeback_gazebo 21 | ridgeback_navigation 22 | xterm 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/servers/blue1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_2/servers/blue1.png -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/servers/green1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_2/servers/green1.png -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/servers/opencv_perception_node/CMakeLists.txt2: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.8) 2 | 3 | find_package(OpenCV REQUIRED) 4 | 5 | include_directories($OpenCV_INCLUDE_DIRS) 6 | 7 | add_executable(perception_node "opencv_perception_node.cpp") 8 | 9 | target_link_libraries(perception_node ${OpenCV_LIBRARIES}) 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/servers/red1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_2/servers/red1.png -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/servers/red2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_ridgeback_barrel_search_2/servers/red2.png -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_ridgeback_barrel_search_2/src/sm_ridgeback_barrel_search_2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | ros::init(argc, argv, "sm_ridgeback_barrel_search_2"); 6 | ros::NodeHandle nh; 7 | 8 | ros::Duration(5).sleep(); 9 | smacc::run(); 10 | } 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_starcraft_ai 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/config/sm_starcraft_ai_config.yaml: -------------------------------------------------------------------------------- 1 | SmStarcraftAI: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/docs/smacc_state_machine_20200302-001008.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_starcraft_ai/docs/smacc_state_machine_20200302-001008.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/include/sm_starcraft_ai/clients/cl_subscriber/cl_subscriber.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | #include 5 | 6 | namespace sm_starcraft_ai 7 | { 8 | namespace cl_subscriber 9 | { 10 | class ClSubscriber : public smacc::client_bases::SmaccSubscriberClient 11 | { 12 | }; 13 | } // namespace client_1 14 | } // namespace sm_starcraft_ai 15 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/include/sm_starcraft_ai/clients/cl_subscriber/client_behaviors/cb_default_subscriber_behavior.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | 5 | namespace sm_starcraft_ai 6 | { 7 | namespace cl_subscriber 8 | { 9 | class CbDefaultSubscriberBehavior : public smacc::SmaccClientBehavior 10 | { 11 | public: 12 | typedef std_msgs::UInt16 TMessageType; 13 | //------------------------------------------------------------------------------- 14 | void onEntry() 15 | { 16 | } 17 | }; 18 | } // namespace cl_subscriber 19 | } // namespace sm_starcraft_ai 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/include/sm_starcraft_ai/clients/cl_subscriber/client_behaviors/cb_watchdog_subscriber_behavior.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | 5 | namespace sm_starcraft_ai 6 | { 7 | namespace cl_subscriber 8 | { 9 | class CbWatchdogSubscriberBehavior : public smacc::SmaccClientBehavior 10 | { 11 | public: 12 | typedef std_msgs::UInt16 TMessageType; 13 | 14 | void onEntry() 15 | { 16 | } 17 | }; 18 | } // namespace cl_subscriber 19 | } // namespace sm_starcraft_ai 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/include/sm_starcraft_ai/mode_states/ms_run.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_starcraft_ai 3 | { 4 | // STATE DECLARATION 5 | class MsRun : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | }; 10 | } // namespace sm_starcraft_ai 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/include/sm_starcraft_ai/orthogonals/or_keyboard.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | namespace sm_starcraft_ai 6 | { 7 | 8 | class OrKeyboard : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto clKeyboard = this->createClient(); 14 | 15 | //ClKeyboard.queueSize = 1; 16 | clKeyboard->initialize(); 17 | } 18 | }; 19 | } // namespace sm_starcraft_ai 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/include/sm_starcraft_ai/orthogonals/or_subscriber.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_starcraft_ai 7 | { 8 | using namespace sm_starcraft_ai::cl_subscriber; 9 | 10 | class OrSubscriber : public smacc::Orthogonal 11 | { 12 | public: 13 | virtual void onInitialize() override 14 | { 15 | auto subscriber_client = this->createClient(); 16 | subscriber_client->initialize(); 17 | } 18 | }; 19 | } // namespace sm_starcraft_ai 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/include/sm_starcraft_ai/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_starcraft_ai 7 | { 8 | class OrTimer : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto actionclient = this->createClient(ros::Duration(0.5)); 14 | actionclient->initialize(); 15 | } 16 | }; 17 | } // namespace sm_starcraft_ai 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/include/sm_starcraft_ai/orthogonals/or_updatable_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace sm_starcraft_ai 8 | { 9 | using namespace cl_ros_publisher; 10 | 11 | class OrUpdatablePublisher : public smacc::Orthogonal 12 | { 13 | public: 14 | virtual void onInitialize() override 15 | { 16 | auto ros_publisher_client = this->createClient(); 17 | ros_publisher_client->initialize(); 18 | } 19 | }; 20 | } // namespace sm_starcraft_ai 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/launch/sm_starcraft_ai.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_starcraft_ai/src/sm_starcraft_ai_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | ros::init(argc, argv, "starcraft_ai"); 6 | smacc::run(); 7 | } 8 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_subscriber/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_subscriber 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | * 0.9.4 8 | * noetic versioning update 9 | * code format and spelling - code quality via pre-commit 10 | * new noetic version 11 | * better subscribers client behaviors 12 | * better subscribers client behaviors 13 | * Contributors: pabloinigoblasco 14 | 15 | 0.9.1 (2020-06-29) 16 | ------------------ 17 | 18 | 0.9.0 (2020-06-26) 19 | ------------------ 20 | 21 | 0.0.1 (2019-11-18) 22 | ------------------ 23 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_subscriber/config/rosconsole.config: -------------------------------------------------------------------------------- 1 | log4j.logger.ros=INFO 2 | log4j.logger.ros.roscpp.superdebug=WARN 3 | log4j.logger.ros.smacc=WARN 4 | log4j.logger.ros.sm_subscriber=INFO 5 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_subscriber/config/sm_subscriber_config.yaml: -------------------------------------------------------------------------------- 1 | global_parameter_server: 2 | ros__parameters: 3 | signal_detector_loop_freq: 200 4 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_subscriber/include/sm_subscriber/clients/cl_numbers_subscription/cl_numbers_subscription.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | using namespace smacc::client_bases; 6 | 7 | namespace sm_subscriber 8 | { 9 | class ClNumbersSubscription : public SmaccSubscriberClient 10 | { 11 | public: 12 | ClNumbersSubscription(std::string topicname) : SmaccSubscriberClient(topicname) 13 | { 14 | } 15 | }; 16 | } // namespace sm_subscriber 17 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_subscriber/include/sm_subscriber/clients/cl_numbers_subscription/client_behaviors/cb_print_message_number.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_subscriber 7 | { 8 | 9 | class CbPrintMessageNumber : public smacc::CbSubscriptionCallbackBase 10 | { 11 | public: 12 | void onMessageReceived(const std_msgs::UInt16& msg) override 13 | { 14 | ROS_WARN_STREAM("**** [CbPrintMessageNumber] MESSAGE RECEIVED NUMBER: " << msg.data); 15 | } 16 | }; 17 | 18 | }; // namespace sm_subscriber 19 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_subscriber/include/sm_subscriber/orthogonals/or_subscriber.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | #include 5 | 6 | namespace sm_subscriber 7 | { 8 | class OrSubscriber : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto subscriber_client = this->createClient("/numbers"); 14 | subscriber_client ->initialize(); 15 | } 16 | }; 17 | } // namespace sm_subscriber 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_subscriber/include/sm_subscriber/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace sm_subscriber 5 | { 6 | class OrTimer : public smacc::Orthogonal 7 | { 8 | public: 9 | virtual void onInitialize() override 10 | { 11 | auto client = this->createClient(ros::Duration(1)); 12 | client->initialize(); 13 | } 14 | }; 15 | } // namespace sm_atomic 16 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_subscriber/launch/sm_subscriber.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_subscriber/servers/numbers_publisher/numbers_publisher.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, char** argv) 5 | { 6 | ros::init(argc, argv, "numbers_publisher"); 7 | 8 | ros::NodeHandle nh_; 9 | 10 | auto pub = nh_.advertise("/numbers", 1); 11 | 12 | ros::Rate r(0.5); 13 | 14 | int i = 0; 15 | while (ros::ok()) 16 | { 17 | std_msgs::UInt16 msg; 18 | msg.data = i++; 19 | 20 | pub.publish(msg); 21 | 22 | r.sleep(); 23 | ros::spinOnce(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_subscriber/src/sm_subscriber_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //-------------------------------------------------------------------- 4 | int main(int argc, char **argv) 5 | { 6 | ros::init(argc, argv, "SmSubscriber"); 7 | smacc::run(); 8 | } 9 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_three_some 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/config/sm_three_some_config.yaml: -------------------------------------------------------------------------------- 1 | SmThreeSome: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/docs/smacc_state_machine_20200220-115158.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_three_some/docs/smacc_state_machine_20200220-115158.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/include/sm_three_some/clients/cl_subscriber/cl_subscriber.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | #include 5 | 6 | namespace sm_three_some 7 | { 8 | namespace cl_subscriber 9 | { 10 | class ClSubscriber : public smacc::client_bases::SmaccSubscriberClient 11 | { 12 | }; 13 | } // namespace client_1 14 | } // namespace sm_three_some 15 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/include/sm_three_some/clients/cl_subscriber/client_behaviors/cb_default_subscriber_behavior.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | 5 | namespace sm_three_some 6 | { 7 | namespace cl_subscriber 8 | { 9 | class CbDefaultSubscriberBehavior : public smacc::SmaccClientBehavior 10 | { 11 | public: 12 | typedef std_msgs::UInt16 TMessageType; 13 | //------------------------------------------------------------------------------- 14 | void onEntry() 15 | { 16 | } 17 | }; 18 | } // namespace cl_subscriber 19 | } // namespace sm_three_some 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/include/sm_three_some/clients/cl_subscriber/client_behaviors/cb_watchdog_subscriber_behavior.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | #include 4 | 5 | namespace sm_three_some 6 | { 7 | namespace cl_subscriber 8 | { 9 | class CbWatchdogSubscriberBehavior : public smacc::SmaccClientBehavior 10 | { 11 | public: 12 | typedef std_msgs::UInt16 TMessageType; 13 | 14 | void onEntry() 15 | { 16 | } 17 | }; 18 | } // namespace cl_subscriber 19 | } // namespace sm_three_some 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/include/sm_three_some/mode_states/ms_recover.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_three_some 3 | { 4 | // STATE DECLARATION 5 | class MsRecover : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | 10 | // TRANSITION TABLE 11 | typedef mpl::list< 12 | 13 | Transition, SUCCESS> 14 | 15 | >reactions; 16 | }; 17 | } // namespace sm_three_some 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/include/sm_three_some/mode_states/ms_run.h: -------------------------------------------------------------------------------- 1 | #include 2 | namespace sm_three_some 3 | { 4 | // STATE DECLARATION 5 | class MsRun : public smacc::SmaccState 6 | { 7 | public: 8 | using SmaccState::SmaccState; 9 | }; 10 | } // namespace sm_three_some 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/include/sm_three_some/orthogonals/or_keyboard.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | namespace sm_three_some 6 | { 7 | 8 | class OrKeyboard : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto clKeyboard = this->createClient(); 14 | 15 | //ClKeyboard.queueSize = 1; 16 | clKeyboard->initialize(); 17 | } 18 | }; 19 | } // namespace sm_three_some 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/include/sm_three_some/orthogonals/or_subscriber.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_three_some 7 | { 8 | using namespace sm_three_some::cl_subscriber; 9 | 10 | class OrSubscriber : public smacc::Orthogonal 11 | { 12 | public: 13 | virtual void onInitialize() override 14 | { 15 | auto subscriber_client = this->createClient(); 16 | subscriber_client->initialize(); 17 | } 18 | }; 19 | } // namespace sm_three_some 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/include/sm_three_some/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace sm_three_some 7 | { 8 | class OrTimer : public smacc::Orthogonal 9 | { 10 | public: 11 | virtual void onInitialize() override 12 | { 13 | auto actionclient = this->createClient(ros::Duration(0.5)); 14 | actionclient->initialize(); 15 | } 16 | }; 17 | } // namespace sm_three_some 18 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/include/sm_three_some/orthogonals/or_updatable_publisher.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | namespace sm_three_some 8 | { 9 | using namespace cl_ros_publisher; 10 | 11 | class OrUpdatablePublisher : public smacc::Orthogonal 12 | { 13 | public: 14 | virtual void onInitialize() override 15 | { 16 | auto ros_publisher_client = this->createClient(); 17 | ros_publisher_client->initialize(); 18 | } 19 | }; 20 | } // namespace sm_three_some 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/include/sm_three_some/states/st_state_4.h: -------------------------------------------------------------------------------- 1 | namespace sm_three_some 2 | { 3 | // STATE DECLARATION 4 | struct StState4 : smacc::SmaccState 5 | { 6 | using SmaccState::SmaccState; 7 | 8 | // DECLARE CUSTOM OBJECT TAGS 9 | struct TIMEOUT : SUCCESS{}; 10 | struct NEXT : SUCCESS{}; 11 | struct PREVIOUS : ABORT{}; 12 | 13 | 14 | // STATE FUNCTIONS 15 | static void staticConfigure() 16 | { 17 | } 18 | 19 | void runtimeConfigure() 20 | { 21 | } 22 | 23 | void onEntry() 24 | { 25 | ROS_INFO("On Entry!"); 26 | } 27 | 28 | void onExit() 29 | { 30 | ROS_INFO("On Exit!"); 31 | } 32 | 33 | }; 34 | } // namespace sm_three_some 35 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/launch/sm_three_some.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_three_some/src/sm_three_some_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | ros::init(argc, argv, "three_some"); 6 | smacc::run(); 7 | } 8 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_update_loop/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_update_loop 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Merge branch 'master' into melodic-devel 9 | * adding xterm dependency to examples 10 | * More CbTimer Updating 11 | * cbtimer cleanup 12 | * Merge branch 'master' into melodic-devel 13 | * sm_update_loop renaming 14 | * Contributors: Brett Aldrich, Unknown, brettpac, pablo.inigo.blasco 15 | 16 | * Merge branch 'master' into melodic-devel 17 | * adding xterm dependency to examples 18 | * More CbTimer Updating 19 | * cbtimer cleanup 20 | * Merge branch 'master' into melodic-devel 21 | * sm_update_loop renaming 22 | * Contributors: Brett Aldrich, Unknown, brettpac, pablo.inigo.blasco 23 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_update_loop/config/sm_update_loop_config.yaml: -------------------------------------------------------------------------------- 1 | SmUpdateLoop: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_update_loop/docs/smacc_state_machine_20200207-004735.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_update_loop/docs/smacc_state_machine_20200207-004735.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_update_loop/include/sm_update_loop/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace sm_update_loop 5 | { 6 | class OrTimer : public smacc::Orthogonal 7 | { 8 | public: 9 | virtual void onInitialize() override 10 | { 11 | auto client = this->createClient(ros::Duration(1)); 12 | client->initialize(); 13 | } 14 | }; 15 | } // namespace sm_update_loop 16 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_update_loop/launch/sm_update_loop.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_update_loop/src/sm_update_loop_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //-------------------------------------------------------------------- 4 | int main(int argc, char **argv) 5 | { 6 | ros::init(argc, argv, "sm_update_loop"); 7 | ros::NodeHandle nh; 8 | 9 | smacc::run(); 10 | } 11 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_viewer_sim/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_viewer_sim 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_viewer_sim/config/sm_viewer_sim_config.yaml: -------------------------------------------------------------------------------- 1 | SmViewerSim: 2 | signal_detector_loop_freq: 20 3 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_viewer_sim/docs/smacc_state_machine_20200222-181502.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/smacc_sm_reference_library/sm_viewer_sim/docs/smacc_state_machine_20200222-181502.dot.pdf -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_viewer_sim/include/sm_viewer_sim/modestates/ms_recovery_mode.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace sm_viewer_sim 4 | { 5 | struct MsRecoveryMode : SmaccState 6 | { 7 | typedef mpl::list< 8 | Transition, SUCCESS>> 9 | 10 | reactions; 11 | 12 | using SmaccState::SmaccState; 13 | void onEntry() 14 | { 15 | ROS_INFO("Recovery"); 16 | delayedPostEvent(this, 3); 17 | } 18 | }; 19 | } 20 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_viewer_sim/include/sm_viewer_sim/modestates/ms_run_mode.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace sm_viewer_sim 4 | { 5 | struct MsRunMode : SmaccState 6 | { 7 | using SmaccState::SmaccState; 8 | void onEntry() 9 | { 10 | ROS_INFO("MS RUN MODE"); 11 | } 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_viewer_sim/include/sm_viewer_sim/orthogonals/or_navigation.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | namespace sm_viewer_sim 6 | { 7 | using namespace cl_move_base_z; 8 | 9 | class OrNavigation : public smacc::Orthogonal 10 | { 11 | public: 12 | virtual void onInitialize() override 13 | { 14 | auto movebaseClient = this->createClient(); 15 | movebaseClient->createComponent(); 16 | 17 | movebaseClient->initialize(); 18 | } 19 | }; 20 | } // namespace sm_viewer_sim 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_viewer_sim/include/sm_viewer_sim/states/st_st1.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace sm_viewer_sim 4 | { 5 | using namespace smacc::default_transition_tags; 6 | struct St1 : SmaccState 7 | { 8 | typedef mpl::list< 9 | Transition, 10 | Transition> 11 | reactions; 12 | 13 | using SmaccState::SmaccState; 14 | void onEntry() 15 | { 16 | ROS_INFO("St1"); 17 | delayedPostEvent(this, 7); 18 | } 19 | }; 20 | } // namespace sm_viewer_sim 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_viewer_sim/include/sm_viewer_sim/states/st_st3.h: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | 4 | namespace sm_viewer_sim 5 | { 6 | struct St3 : SmaccState 7 | { 8 | typedef mpl::list< 9 | Transition, 10 | Transition> 11 | reactions; 12 | 13 | using SmaccState::SmaccState; 14 | void onEntry() 15 | { 16 | ROS_INFO("St3"); 17 | delayedPostEvent(this, 3); 18 | } 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_viewer_sim/launch/sm_viewer_sim.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /smacc_sm_reference_library/sm_viewer_sim/src/sm_viewer_sim.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char **argv) 4 | { 5 | ros::init(argc, argv, "sm_viewer_sim"); 6 | ros::NodeHandle nh; 7 | 8 | smacc::run(); 9 | } 10 | -------------------------------------------------------------------------------- /smacc_state_reactor_library/sr_all_events_go/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sr_all_events_go 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Initial SMACC version 9 | * Contributors: Pablo Iñigo Blasco 10 | -------------------------------------------------------------------------------- /smacc_state_reactor_library/sr_conditional/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sr_conditional 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Renamed sr_conditional & eg_random_generator 9 | * Contributors: Brett Aldrich 10 | 11 | * Renamed sr_conditional & eg_random_generator 12 | * Contributors: Brett Aldrich 13 | 14 | * Renamed sr_conditional & eg_random_generator 15 | * Contributors: Brett Aldrich 16 | 17 | * Renamed sr_conditional & eg_random_generator 18 | * Contributors: Brett Aldrich 19 | -------------------------------------------------------------------------------- /smacc_state_reactor_library/sr_conditional/src/sr_conditional/sr_conditional.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace smacc 4 | { 5 | namespace state_reactors 6 | { 7 | Srsr_conditional::~Srsr_conditional() 8 | { 9 | } 10 | 11 | bool Srsr_conditional::triggers() 12 | { 13 | return this->conditionFlag; 14 | } 15 | } // namespace state_reactors 16 | } // namespace smacc 17 | -------------------------------------------------------------------------------- /smacc_state_reactor_library/sr_event_countdown/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sr_event_countdown 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * Renamed event_countdown to sr_event_countdown 9 | * Contributors: Brett Aldrich 10 | 11 | * Renamed event_countdown to sr_event_countdown 12 | * Contributors: Brett Aldrich 13 | -------------------------------------------------------------------------------- /test/sm_coretest_transition_speed_1/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_coretest_transition_speed_1 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * moved /test folder to top-level 9 | * Contributors: Brett Aldrich 10 | 11 | * moved /test folder to top-level 12 | * Contributors: Brett Aldrich 13 | -------------------------------------------------------------------------------- /test/sm_coretest_transition_speed_1/config/rosconsole.config: -------------------------------------------------------------------------------- 1 | log4j.logger.ros=INFO 2 | log4j.logger.ros.roscpp.superdebug=WARN 3 | log4j.logger.ros.smacc=WARN 4 | log4j.logger.ros.sm_coretest_transition_speed_1=WARN 5 | 6 | log4j.rootLogger=DEBUG, A1 7 | log4j.appender.A1=org.apache.log4j.ConsoleAppender 8 | log4j.appender.A1.layout=org.apache.log4j.PatternLayout 9 | 10 | # Print the date in ISO 8601 format 11 | log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 12 | 13 | # https://logging.apache.org/log4cxx/latest_stable/usage.html 14 | # https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html 15 | # http://wiki.ros.org/rosconsole 16 | -------------------------------------------------------------------------------- /test/sm_coretest_transition_speed_1/docs/smacc_state_machine_20200207-004735.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/test/sm_coretest_transition_speed_1/docs/smacc_state_machine_20200207-004735.dot.pdf -------------------------------------------------------------------------------- /test/sm_coretest_transition_speed_1/include/sm_coretest_transition_speed_1/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace sm_coretest_transition_speed_1 5 | { 6 | class OrTimer : public smacc::Orthogonal 7 | { 8 | public: 9 | virtual void onInitialize() override 10 | { 11 | auto client = this->createClient(ros::Duration(1)); 12 | client->initialize(); 13 | } 14 | }; 15 | } // namespace sm_coretest_transition_speed_1 16 | -------------------------------------------------------------------------------- /test/sm_coretest_transition_speed_1/include/sm_coretest_transition_speed_1/states/st_state_2.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace sm_coretest_transition_speed_1 4 | { 5 | // STATE DECLARATION 6 | 7 | extern int counter; 8 | 9 | struct State2 : smacc::SmaccState 10 | { 11 | using SmaccState::SmaccState; 12 | 13 | // TRANSITION TABLE 14 | typedef mpl::list< 15 | 16 | Transition> 17 | reactions; 18 | 19 | // STATE FUNCTIONS 20 | static void staticConfigure() 21 | { 22 | } 23 | 24 | void onEntry() 25 | { 26 | counter++; 27 | this->postEvent(); 28 | } 29 | }; 30 | } 31 | -------------------------------------------------------------------------------- /test/sm_coretest_transition_speed_1/launch/sm_coretest_transition_speed_1.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /test/sm_coretest_transition_speed_1/src/sm_coretest_transition_speed_1_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //-------------------------------------------------------------------- 4 | int main(int argc, char **argv) 5 | { 6 | ros::init(argc, argv, "sm_coretest_transition_speed_1"); 7 | ros::NodeHandle nh; 8 | 9 | smacc::run(); 10 | } 11 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_1/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_coretest_x_y_1 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * moved /test folder to top-level 9 | * Contributors: Brett Aldrich 10 | 11 | * moved /test folder to top-level 12 | * Contributors: Brett Aldrich 13 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_1/config/rosconsole.config: -------------------------------------------------------------------------------- 1 | log4j.logger.ros=INFO 2 | log4j.logger.ros.roscpp.superdebug=WARN 3 | log4j.logger.ros.smacc=WARN 4 | log4j.logger.ros.sm_coretest_x_y_1=WARN 5 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_1/include/sm_coretest_x_y_1/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace sm_coretest_x_y_1 5 | { 6 | class OrTimer : public smacc::Orthogonal 7 | { 8 | public: 9 | virtual void onInitialize() override 10 | { 11 | auto client = this->createClient(ros::Duration(1)); 12 | client->initialize(); 13 | } 14 | }; 15 | } // namespace sm_coretest_x_y_1 16 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_1/include/sm_coretest_x_y_1/states/st_state_2.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace sm_coretest_x_y_1 4 | { 5 | // STATE DECLARATION 6 | 7 | extern int counter; 8 | 9 | struct State2 : smacc::SmaccState 10 | { 11 | using SmaccState::SmaccState; 12 | 13 | // TRANSITION TABLE 14 | typedef mpl::list< 15 | 16 | Transition> 17 | reactions; 18 | 19 | // STATE FUNCTIONS 20 | static void staticConfigure() 21 | { 22 | } 23 | 24 | void onEntry() 25 | { 26 | counter++; 27 | this->postEvent(); 28 | } 29 | }; 30 | } 31 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_1/launch/sm_coretest_x_y_1.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_1/src/sm_coretest_x_y_1_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //-------------------------------------------------------------------- 4 | int main(int argc, char **argv) 5 | { 6 | ros::init(argc, argv, "sm_coretest_x_y_1"); 7 | ros::NodeHandle nh; 8 | 9 | smacc::run(); 10 | } 11 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_2/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_coretest_x_y_2 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * moved /test folder to top-level 9 | * Contributors: Brett Aldrich 10 | 11 | * moved /test folder to top-level 12 | * Contributors: Brett Aldrich 13 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_2/config/rosconsole.config: -------------------------------------------------------------------------------- 1 | log4j.logger.ros=INFO 2 | log4j.logger.ros.roscpp.superdebug=WARN 3 | log4j.logger.ros.smacc=WARN 4 | log4j.logger.ros.sm_coretest_x_y_2=WARN 5 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_2/docs/smacc_state_machine_20200207-004735.dot.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/robosoft-ai/SMACC/e5abc09c51b16a8911b2516892afc953a00020ea/test/sm_coretest_x_y_2/docs/smacc_state_machine_20200207-004735.dot.pdf -------------------------------------------------------------------------------- /test/sm_coretest_x_y_2/include/sm_coretest_x_y_2/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace sm_coretest_x_y_2 5 | { 6 | class OrTimer : public smacc::Orthogonal 7 | { 8 | public: 9 | virtual void onInitialize() override 10 | { 11 | auto client = this->createClient(ros::Duration(1)); 12 | client->initialize(); 13 | } 14 | }; 15 | } // namespace sm_coretest_x_y_2 16 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_2/include/sm_coretest_x_y_2/states/st_state_2.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace sm_coretest_x_y_2 4 | { 5 | // STATE DECLARATION 6 | 7 | extern int counter; 8 | 9 | struct State2 : smacc::SmaccState 10 | { 11 | using SmaccState::SmaccState; 12 | 13 | // TRANSITION TABLE 14 | typedef mpl::list< 15 | 16 | Transition> 17 | reactions; 18 | 19 | // STATE FUNCTIONS 20 | static void staticConfigure() 21 | { 22 | } 23 | 24 | void onEntry() 25 | { 26 | counter++; 27 | this->postEvent(); 28 | } 29 | }; 30 | } 31 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_2/launch/sm_coretest_x_y_2.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_2/src/sm_coretest_x_y_2_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //-------------------------------------------------------------------- 4 | int main(int argc, char **argv) 5 | { 6 | ros::init(argc, argv, "sm_coretest_x_y_2"); 7 | ros::NodeHandle nh; 8 | 9 | smacc::run(); 10 | } 11 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_3/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package sm_coretest_x_y_3 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | Forthcoming 6 | ----------- 7 | 8 | * moved /test folder to top-level 9 | * Contributors: Brett Aldrich 10 | 11 | * moved /test folder to top-level 12 | * Contributors: Brett Aldrich 13 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_3/config/rosconsole.config: -------------------------------------------------------------------------------- 1 | log4j.logger.ros=INFO 2 | log4j.logger.ros.roscpp.superdebug=WARN 3 | log4j.logger.ros.smacc=WARN 4 | log4j.logger.ros.sm_coretest_x_y_3=WARN 5 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_3/include/sm_coretest_x_y_3/orthogonals/or_timer.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | namespace sm_coretest_x_y_3 5 | { 6 | class OrTimer : public smacc::Orthogonal 7 | { 8 | public: 9 | virtual void onInitialize() override 10 | { 11 | auto client = this->createClient(ros::Duration(1)); 12 | client->initialize(); 13 | } 14 | }; 15 | } // namespace sm_coretest_x_y_3 16 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_3/include/sm_coretest_x_y_3/states/st_state_2.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace sm_coretest_x_y_3 4 | { 5 | // STATE DECLARATION 6 | 7 | extern int counter; 8 | 9 | struct State2 : smacc::SmaccState 10 | { 11 | using SmaccState::SmaccState; 12 | 13 | // TRANSITION TABLE 14 | typedef mpl::list< 15 | 16 | Transition> 17 | reactions; 18 | 19 | // STATE FUNCTIONS 20 | static void staticConfigure() 21 | { 22 | } 23 | 24 | void onEntry() 25 | { 26 | counter++; 27 | this->postEvent(); 28 | } 29 | }; 30 | } 31 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_3/launch/sm_coretest_x_y_3.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /test/sm_coretest_x_y_3/src/sm_coretest_x_y_3_node.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //-------------------------------------------------------------------- 4 | int main(int argc, char **argv) 5 | { 6 | ros::init(argc, argv, "sm_coretest_x_y_3"); 7 | ros::NodeHandle nh; 8 | 9 | smacc::run(); 10 | } 11 | --------------------------------------------------------------------------------