This is the big one. rrbtx_navigation.
– costmap_switcher (probably with move_base_z? it would be also
justified to be a component part of smacc)
create an opensource reelrbtx_msgs repo private repo for rrbtx_reel_client Keep rrbtx_navigation (for costmaps)
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.
Automate debian production & upload to packagecloud.io
- for rrbtx_control & rrbtx_navigation too.
We’re going to upload rrbtx_control to ROS repositories, and rrbtx_navigation will be the nucleus of the new rrbtx_reel_client
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***
Operation Client Buildout
The plan is adapting an Universal Robot manipulator to work with SMACC. A new example package would be created imitating dance_bot but replacing the move_base node by a move_group node. It would be needed to develop a new client: MoveBaseActionClient. The example would send the manipulator endpoint to different places. It could be even combined with some other substatebehaviors for other sensors (to show how a state machine could be useful in these contexts). For the example, the default ur5 gazebo simulation example launch file would be used.
Occupancy Map Updater for MoveIt perception client…
MoveIt Task Constructor
Stages = client behaviors, Solvers = client components
Alternate MoveIt! Client
New State Machines (clone from Threesome)
New reference machine with…
- Two arms/moveit clients
- Ridgeback base
Inverse Kinematic Solution
Create new folder AI Behaviors, for a state machine level version of logic units….
First implementation (in ai library) would be a counter, that counts the number of times some certain event happens, over the running of a state machine, then records that to some type of logfile.
DON’T DO ANYTHING BELOW THIS LINE
- transition from an orthogonal that doesn’t exist.
- transition from a source that doesn’t exist.
- cb from a client that doesn’t exist – don’t worry about making clients dynamically.
We decided to hold off on this one, after coming to the conclusion that the library is too immature for us to start shutting off portions of the library. So we decided to push but comment out the changes for now.
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.
Improved Compilation Error Msgs
For use case of state not correctly listing it’s context. Static Assert? https://gracicot.github.io/tricks/2017/07/01/deleted-function-diagnostic.html
We attempted this, but unfortunately our changes were compiled after boost.statechart, which made our attempts futile. Anyways, we tried.
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
Logging – log4cpp
Need to record…
- Parameter changes to Global Variables, Client Parameters, Mode Parameters, – Requires a stylistic distinction between variables and parameters?