I know this topic has been done to death. I know this because I have been reading posts on it until I'm bleary eyed. Out of all the posts I have read there have been some concrete answers and some iffy so I've decided to add yet another to that long list of posts and just ask straight up.
I've only just ordered more EZB4s and some other parts so I won't be able to actually test out anything for at least another month, but I would like to do prep work in the meantime. To do this I need answers on using multiple robots, all under client mode AND using the same ARC instance.
What I gleaned from the posts: You can only send Say commands to the first robot connected. You can set Uart and associated commands on a per board basis. You can send servo commands on a per board basis.
What is not clear: Do all (or any for that matter) Control Commands take an optional board number in the first value position of the arguments? If they do, does that work for anything sent, such as Auto-Position actions? If you sent a Say command via a ControlCommand() would you then be able to route it to other robots? For example, having it in a script such as: Script name is "SayThePhrase" This script is part of a Script Manager called "Base Commands"
The SayThePhrase script is simply:
In turn this can allow for the Control Command:
$PhraseToSay ="hello world" CC("Base Commands",ScriptStartWait,"SayThePhrase") #Now, adding a Board Index to it: $PhraseToSay ="hello world" CC(2,"Base Commands",ScriptStartWait,"SayThePhrase")
Will that work to robot 2?
Or something like this:
CC(2,"Auto Position",AutoPositionAction,"Move Forward")
Will that automatically route the Action "Move Forward" to robot 2?
Or would you have to create a script that had in it all the servo moves to make Move Forward happen, with the servo instructions having a board number in the first argument position. Then send that via a ControlCommand() (without a board number)?Skip to comments