The Core Concepts of ByName Motion And Control

ASTER::Motion Instruction Manual, About:

Common Setup Instructions

The procedures for using object motion control are generally commonized below.

  1. Select a motion template
  2. Select object instances
  3. Assign a name (Motion Group Name) to the collection of instances
  4. Send parameters to the controller

About Motion Templates

There are five main types of motion templates available. The following explains the characteristics of the motion templates other than Null.

  1. Null
  2. Horizontal | Vertical
  3. SineWave
  4. Orbital
  5. MoveTowards

Horizontal | Vertical


Horizontal | Vertical is very simple and easy to understand, representing constant speed movement in the horizontal or vertical direction.

  1. Horizontal :: Wrap

  2. Horizontal :: Flip

  3. Vertical :: Wrap

  4. Vertical :: Flip

There is a concept called the “virtual wall”, where designated coordinates are considered as invisible walls.

Horizontal :: Flip and Wrap .. Blue Robot ToyBox
When an object comes into contact with a wall, you can choose the behavior from Flip|Wrap. Flip reverses the movement direction, while Wrap teleports the coordinates to the opposite wall in the direction of motion.


SineWave


It is a motion template that adds Sinewave to Horizontal|Vertical. This is not a simple derivative of horizontal and vertical movement, but a motion with the feature of being able to set parameters for a “swarm”, incorporating the concept of a group to move cohesively.

  1. Horizontal :: Wrap :: Sinewave
  2. Horizontal :: Flip :: Sinewave
  3. Vertical :: Wrap :: Sinewave
  4. Vertical :: Flip :: Sinewave
Description of the image
The Sinewave motion incorporates the concept of a "swarm" within the motion group unit, allowing for parameter settings that enable collective movement as a group. In this respect, it shares a common motion concept with the Orbital and MoveTowards behaviors, which will be explained later.


Orbital


Orbital introduces not only the concept of a “swarm” but also a new concept of a “target.” The “virtual wall” is not used.

  1. Orbital :: OwnXy
  2. Orbital :: TgtXy

Orbital and MoveTowards involve behaviors such as orbiting or following (tracking) by designating other instances as targets and moving based on the target coordinates.

Additional target-related settings may be required in addition to the common setup instructions mentioned earlier, such as the “instance that serves as the center of orbit” or the “instance with target coordinates.” The following is an example of the setup instructions for Orbital::TgtXy.

  1. Select a motion template
  2. Select object instances
  3. Select the target instance that serves as the center of the orbit
  4. Assign a name (Motion Group Name) to the collection of instances
  5. Send parameters to the controller
Description of the image
Orbital acquires the center coordinates of the orbit from other instances (Target). It can create movements that continuously reference and follow the target's position while orbiting, allowing for not only simple orbital movements but also complex trajectories.
Description of the image
The movement of Orbital is specified by angular velocity, and it is also possible to create custom events when a certain angle is reached.


MoveTowards


In addition to the previously explained concepts of “swarm” and “target,” the new concept of “pursuer” is added, providing a rich set of utilities for target selection and other functions in this motion template.

  1. MoveTowards
  2. MoveTowards :: Swap
  3. MoveTowards :: RefVec
Description of the image
MoveTowards :: TgtArr
Description of the image
MoveTowards :: SwapEPs


Common Basic Functions


Motion templates have standardized basic functions.

The Null motion, which has no motion, is an exception, so Stop and Sleep do not function. However, the following four commands can be used for all other motions: Reject, Destroy, Stop, and Sleep.

There are two command systems for basic functions, ByName and Directly, which developers can choose according to their needs.

Type Description
ByName Issues instructions to the motion controller using the Motion Group Name
Directly Issues instructions by specifying instances

Basic Command :: Reject

This is a basic command to deregister a registered motion group from the motion controller.

There are two types: the ByName system, which deregisters the entire group by specifying the motion group name, and the Direct system, which individually deregisters selected instances.

It includes a Time-Bound feature, where the command is executed after a certain period.

Among the standardized basic commands, this is the highest priority command.

It is not affected by other commands, and it cannot be changed or canceled after issuance, including Time-Bound values and conditions.


Basic Command :: Destroy

This command is not used alone; it is a command to destroy the instance.

It is used in the Reject + Destroy command, which combines Reject and Destroy.

It is inconvenient for the controller if an instance registered with a motion is destroyed before being deregistered. Therefore, this command set first issues a Reject command and then destroys the instance.


Basic Command :: Stop

Temporarily stops motions.

For motions that are already stopped, this command will resume the motions.

The Stop command is similar to the Sleep command; however, while Sleep pauses the motion with the intent to resume it, the Stop command is positioned as a higher-ranking command that can also stop the motion, including Sleep.

However, it is positioned lower than the Reject command, so it cannot stop a Reject command.


Basic Command :: Sleep

A command to temporarily pause motions with the intent to resume them. It is characterized by having a Repetition value because it repeatedly executes stop and resume actions with a time limit.

The time-limited Sleep does not function for the Orbital system.

For Orbital, there is a dedicated Sleep :: Angular that functions in angle units.

However, since Orbital incorporates Sleep in its standard parameter settings, there is no opportunity to issue the Sleep command afterward.

Since Sleep is a lower-ranking command compared to Stop, if a Stop command is issued to a motion during Sleep, the Sleep command itself will be stopped. The Sleep counter also stops during Stop, so the Sleep function itself will remain stopped until the Stop command is released.



Additional Parameter Setups


Each motion has its own “additional parameter setups” according to its characteristics.

The Reverse Movement command, which reverses the movement amount’s sign, can be applied to all motions except Null and MoveTowards.

Both Sinewave and Orbital motions have common parameters called “angular velocity” and “radius”. Each of these motions has its own specific extension command, GrowRadius.

Description of the image
Grow Radius for Sinewave
Description of the image
Grow Radius for Orbital


Additionally, there is a Change Target command specifically for Orbital motion.

Description of the image
Change Target of Centre for Orbital