Move Trees that are colliding with hills, Add some trees, add some barrels to north, move waypoints for North/South/Return Travel.
Let’s add camera to sm_dance_bot & sm_dance_bot_strikes_back – Do Last
Add opencv client to client library. – Using “Facial Recognition” example, we just make empty classes & create the client. -WAIT
***END THIS PHASE***
New SM Folder Structure
New Client Library Folder Structure
Random Generator State Reactor
I want a state reactor, with a function that generates a random number within a specified range, similar to this.
So that on a given event, the reactor generates a random number (say between 1-12), and if x<4, it throws event A, if 5<x<8, it throws event B, and if x>9, it throws event C.
As this requires changes to the Reactor classes, our goal is to add support for multiple output events, and also for a “NULL” option where the state reactor doesn’t take an event but either fires once on the States OnEntry() function, or multiple times on the states Update() function.
I liked the code sample we talked about earlier that’s in the picture below..
Add Update() Function to States
The order of operations should be Orthogonals first, then state.
The idea is to have State Reactors, that require at least one event as input, and Choice Points, that don’t require an input event.
These were described by Harel & Doenni (see below)…
These would be used a lot in SuperStates (in a pattern known as a Fallback, where you enter Ss1, check a condition, and based on that condition go to StiX or StiY.
SMACC Viewer Dependencies
Can we add the current version, somewhere on the viewer, so that users are able to know if they have the most up-to-date version?
Need to add to shell script, functionality that adds commit number to the version #
***PHASE AFTER THAT***
Occupancy Map Updater for MoveIt perception client…
Stages = client behaviors, Solvers = client components
DON’T DO ANYTHING BELOW THIS LINE
Action Client Timeout Issue
Actionclient attempt to connect to the Actionserver, and then waits with a blocking call.
: Can we do this asynchronously? Ideally, we would attempt to connect and wait x amount of time, and repeat y times. Then produce a warning message if the ActionServer isn’t there.
If the ActionServer is not there, we skip and just send a warning message.
Continue adding hierarchy to components
Initialization order issue – Let’s implemenent a first pass.
Mode State Work
- Need to add the ability to create orthogonals & initiate clients via some Mulitple Inheritance mechanism or something, kind of like we did with the update function, so that only states (mode, super, etc) with that explicit functionality can create orthogonals/clients
Philosophy: We are a ROS based library. So our users are going to be trying to work with us and other ROS Nodes (MoveBase, MoveIt, etc.) And consequently we should try to match that interface.
https://discourse.ros.org/t/ros2-logging/6469 – Great overview of ROS Logging
Need to record…
- Parameter changes to Global Variables, Client Parameters, Mode Parameters, – Requires a stylistic distinction between variables and parameters?