Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ const config = {
{
//...
versions: {
current: {label: "AICA Core v5", path: "", banner: "none"},
v4: {label: "AICA Core v4", path: "v4", banner: "none"},
current: {label: "Core v5", path: "", banner: "none"},
v4: {label: "Core v4", path: "v4", banner: "none"},
}
}
]
Expand All @@ -73,9 +73,9 @@ const config = {
{
//...
versions: {
current: {label: "AICA Core v6", path: "", banner: "none"},
v5: {label: "AICA Core v5", path: "v5", banner: "none"},
v4: {label: "AICA Core v4", path: "v4", banner: "none"},
current: {label: "Core v6", path: "", banner: "none"},
v5: {label: "Core v5", path: "v5", banner: "none"},
v4: {label: "Core v4", path: "v4", banner: "none"},
}
}
]
Expand Down
4 changes: 2 additions & 2 deletions docs/core/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ title: Examples

# Examples

Explore a collection of practical examples below to help you get started with AICA. These samples demonstrate common use
cases, integration patterns, and best practices, making it easier to learn and apply AICA System in your own projects.
Explore a collection of practical examples below to help you get started. These samples demonstrate common use
cases, integration patterns, and best practices, making it easier to learn and apply the System in your own projects.
2 changes: 1 addition & 1 deletion docs/core/examples/core-components/_category_.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"position": 2,
"link": {
"type": "generated-index",
"description": "This section contains various application examples using the AICA Core Components."
"description": "This section contains various application examples using the Core Components."
}
}
10 changes: 5 additions & 5 deletions docs/core/examples/core-components/colliders.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import colliderInterfaces from './assets/collider-interfaces.png'

# Colliders

The core components in AICA Studio contain several so-called _Collider_ components that detect whether a specific target
The core components in Studio contain several so-called _Collider_ components that detect whether a specific target
pose is inside or outside a virtual geometric object defined around a center pose. This functionality is crucial for
many robotic applications because it provides the ability to:

Expand Down Expand Up @@ -53,8 +53,8 @@ default, this is when the z position of the target pose is negative in the coord

:::note

Until collider visualizations are natively integrated in AICA Studio, these examples use RViz to visualize and move the
collision targets in space. RViz can be started directly from AICA Launcher.
Until collider visualizations are natively integrated in Studio, these examples use RViz to visualize and move the
collision targets in space. RViz can be started directly from Launcher.

<!-- TODO: Link to launcher page -->

Expand All @@ -70,7 +70,7 @@ is parametrized to define a box of dimensions 10 by 20 by 5 centimeters around t
<img src={boxCollider} alt="Box Collider" />
</div>

Start the application from AICA Studio, then go to RViz. Add the interactive marker frame and the geometric object
Start the application from Studio, then go to RViz. Add the interactive marker frame and the geometric object
marker as shown below. Observe how moving the interactive marker triggers the predicates of the collider component to
update when the target pose enters and exits the box.

Expand Down Expand Up @@ -211,7 +211,7 @@ This behavior can be inverted with the "Flip normal" parameter. The direction of
:::

The example below shows an application that is stopped entirely if the robot end-effector collides with the plane. This
demonstrates how soft safety mechanisms can be implemented in AICA Studio. As soon as the target pose, which is the
demonstrates how soft safety mechanisms can be implemented in Studio. As soon as the target pose, which is the
end-effector in this case, has a negative z coordinate relative to the center pose, the _in collision_ predicate fires
and the application is stopped immediately.

Expand Down
4 changes: 2 additions & 2 deletions docs/core/examples/core-components/point-attractor.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import pointAttractorExample from './assets/point-attractor-example.webm'
# Point Attractors

This page shows how Dynamical Systems (DS), and in particular Point Attractor components, can be used to generate
dynamic motions in AICA Studio. Point Attractor DS are valuable in robotics because they provide a simple and robust way
dynamic motions in Studio. Point Attractor DS are valuable in robotics because they provide a simple and robust way
to guide a robot toward a specific target. By continuously generating motion commands that drive to the attractor, these
components enable reaching, positioning, and interaction tasks, making them useful for applications such as
pick-and-place, assembly, and human-robot collaboration.
Expand Down Expand Up @@ -80,7 +80,7 @@ To set up this example, follow the steps below.
of the `Point Attractor` with the `Command` input of the controller.
5. Finally, make sure to load all components on start by creating the necessary event edges.

Start the application from AICA Studio, then switch to the 3D view. Drag the frame around and observe how the robot is
Start the application from Studio, then switch to the 3D view. Drag the frame around and observe how the robot is
dynamically attracted towards the frame.

<div style={{ display: "flex", justifyContent: "center" }}>
Expand Down
22 changes: 11 additions & 11 deletions docs/core/examples/core-components/signal-interoperability.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@ import signalRosPose from './assets/signal-ros-pose.png'

# Signal interoperability

As described in the [signals page](/docs/concepts/building-blocks/signals), AICA signals make it easy to exchange
As described in the [signals page](/docs/concepts/building-blocks/signals), signals make it easy to exchange
Cartesian and joint state variables in an internally consistent way. In components, state signals are automatically
converted into smart data classes that provide useful functions for conversions, transformations and other
manipulations.

Even though there is no official standard, there are a few signal types that are very commonly used in ROS. For ease of
interoperability, AICA Core includes several components that translate AICA signals to common ROS messages and back.
These components can be especially valuable when porting existing ROS nodes into AICA Studio using the Component SDK or
when communicating with ROS nodes outside the AICA System.
interoperability, Core includes several components that translate signals to common ROS messages and back.
These components can be especially valuable when porting existing ROS nodes into Studio using the Component SDK or
when communicating with ROS nodes outside the System.

## AICA signals to common ROS messages
## signals to common ROS messages

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Over here, now the capitalization is off and across all headers where it started with AICA


AICA state signals carrying Cartesian or joint space information can be converted into common ROS message types using
State signals carrying Cartesian or joint space information can be converted into common ROS message types using
the following components:

| Component name | Input signal type | Output message type |
Expand All @@ -32,9 +32,9 @@ the following components:
| Cartesian Signal to Wrench Stamped Message | Cartesian state or wrench | `geometry_msgs::msg::WrenchStamped` |
| Joint Signal To Joint State Message | Joint state, positions, velocities or torques | `sensor_msgs::msg::JointState` |

## Common ROS messages to AICA signals
## Common ROS messages to signals

Common ROS message types carrying Cartesian or joint space information can be converted back into AICA state signals
Common ROS message types carrying Cartesian or joint space information can be converted back into state signals
using the following components:

| Component name | Input message type | Output signal type |
Expand All @@ -49,7 +49,7 @@ using the following components:
All of these components are single-input single-output blocks. Each time a new message is received, it is translated and
immediately published. For that reason, the `rate` parameter doesn't affect the behavior of these components.

## AICA Signal to ROS message example
## Signal to ROS message example

This example uses the `Joint Signal To Joint State Message` component to translate the joint state output from the
hardware interface to a `sensor_msgs::msg::JointState` message and the `Cartesian Signal to Pose Stamped Message`
Expand Down Expand Up @@ -193,7 +193,7 @@ With content:

</details>

## ROS message to AICA Signal example
## ROS message to Signal example

Mirroring the first example, the following application uses the `Wrench Stamped Message To Cartesian Signal` component
to translate a `geometry_msgs::msg::WrenchStamped` from some custom component to a Cartesian signal that is connected to
Expand All @@ -202,7 +202,7 @@ the force controller of the hardware interface.
:::note

The custom component is just an example placeholder for any implementation that has a ROS standard message output, which
might occur when porting existing ROS nodes into AICA Studio using the AICA SDK.
might occur when porting existing ROS nodes into Studio using the SDK.

:::

Expand Down
2 changes: 1 addition & 1 deletion docs/core/examples/core-controllers/_category_.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"position": 3,
"link": {
"type": "generated-index",
"description": "This section contains various application examples using the AICA Core Controllers."
"description": "This section contains various application examples using the Core Controllers."
}
}
2 changes: 1 addition & 1 deletion docs/core/examples/core-controllers/jtc-example.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Visit our learning platform AICAdemy for an interactive training module with a r

## Setting up the application

Launch AICA Studio and create a new application by pressing "Create new".
Launch Studio and create a new application by pressing "Create new".

Copy the following YAML and generate the graph.

Expand Down
2 changes: 1 addition & 1 deletion docs/core/examples/guides/_category_.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
"position": 1,
"link": {
"type": "generated-index",
"description": "This section contains step-by-step guides of various application examples using the AICA System."
"description": "This section contains step-by-step guides of various application examples using the System."
}
}
24 changes: 12 additions & 12 deletions docs/core/examples/guides/abb-hardware-interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ import abbHIParameters from './assets/abb-hi-parameters.png'

ABB offers a wide range of industrial articulated manipulators, from compact 6-axis robots for small-part handling and
payloads of a few kilograms to heavy-duty models capable of lifting up to 800 kg. This guide provides instructions for
using ABB robots within the AICA System, focusing on connecting and configuring both simulated environments using
using ABB robots within the System, focusing on connecting and configuring both simulated environments using
RobotStudio and real hardware setups.

To use the ABB collection, add `collections/abb` **v1.0.0 or higher** to your configuration in AICA Launcher, currently
To use the ABB collection, add `collections/abb` **v1.0.0 or higher** to your configuration in Launcher, currently
supporting the following robot models out of the box:

- IRB 1010
- IRB 6730-210/3.1
- GoFa CRB 15000-12/1.27

Other robot models can be added on request. Reach out to the AICA support team for further information.
Other robot models can be added on request. Reach out to the support team for further information.

## General

Expand All @@ -38,7 +38,7 @@ and features described below.

:::warning

This collection supports RobotWare versions 7.X and above. For older versions, contact the AICA support team.
This collection supports RobotWare versions 7.X and above. For older versions, contact the support team.

:::

Expand All @@ -58,7 +58,7 @@ EGM is an optional add-in and has to be purchased separately.

### Robot Web Services

The second ABB feature that AICA System utilizes to connect to the robot is Robot Web Services (RWS). RWS is a platform
The second ABB feature that the System utilizes to connect to the robot is Robot Web Services (RWS). RWS is a platform
that enables developers to create applications that interact with the robot controller, using RESTful APIs that leverage
the HTTPS protocol. The hardware interface uses RWS for auxiliary functionality, such as starting/stopping the program
and the motors, and setting IOs. Setting up RWS on the simulator and on the actual robot requires slightly different
Expand Down Expand Up @@ -114,12 +114,12 @@ Setting up a virtual workstation and controller can be achieved by following the
<div class="text--center">
<img src={abbAdditionalOptions} alt="Additional options in the RobotStudio project." />
</div>
7. Disable the Windows firewall on the network where the PC running AICA Core is connected to.
8. Finally, the PC running AICA Core has to be whitelisted to communicate with RobotStudio. As explained
7. Disable the Windows firewall on the network to which the PC running Core is connected.
8. Finally, the PC running Core has to be whitelisted to communicate with RobotStudio. As explained
[here](https://forums.robotstudio.com/discussion/12082/using-robotwebservices-to-access-a-remote-virtual-controller),
create a file called `vcconf.xml` under `C:/Users/<user>/AppData/Roaming/ABB Industrial IT/Robotics IT/RobVC` with
the content below. Replace `<user>` in the path above with your Windows user and the IP address in the snippet below with
the IP of the PC running AICA Core (in this example 192.168.137.100).
the IP of the PC running Core (in this example 192.168.137.100).
```xml title="vcconf.xml"
<?xml version="1.0" encoding="UTF-8"?>
<VCConfiguration><RemoteVCConfiguration PublicationEnabled="true"/><hosts><host ip="192.168.137.100"/></hosts></VCConfiguration>
Expand Down Expand Up @@ -149,7 +149,7 @@ and then restart.
After connecting to the robot, the controller should be configured to accept commands from an external device.

1. Navigate to the Controller tab > Configuration > Communication > UDP Unicast Device, and add a new UDPUC device (or
modify the existing one), configured as shown below. This is the PC running AICA Core, the external control device,
modify the existing one), configured as shown below. This is the PC running Core, the external control device,
so the address should be set accordingly.
<div class="text--center">
<img src={abbControllerConfiguration} alt="Controller configuration settings." />
Expand All @@ -171,7 +171,7 @@ After connecting to the robot, the controller should be configured to accept com

## RAPID module

The ABB hardware interface provided by AICA needs a matching RAPID module running on the robot to allow external control
The ABB hardware interface needs a matching RAPID module running on the robot to allow external control
through EGM. Place the module below in the controller's home directory and upload it to the current task.

:::warning
Expand Down Expand Up @@ -380,7 +380,7 @@ UDP data exchange.

:::

Returning to AICA Studio and the hardware interface, it is now possible to define the parameters and connect to the
Returning to Studio and the hardware interface, it is now possible to define the parameters and connect to the
robot. The majority of the hardware interface parameters enable connection to EGM and RWS:

<div class="text--center">
Expand All @@ -400,7 +400,7 @@ robot. The majority of the hardware interface parameters enable connection to EG
`AICA_EGM`, respectively.
- Uc Device: The name of the UDPUC device configured above.

Before starting an application with an ABB hardware interface in AICA Studio, the motors and RAPID program on the robot
Before starting an application with an ABB hardware interface in Studio, the motors and RAPID program on the robot
must be started manually through the teach pendant or RobotStudio. After that, running the application will connect to
the robot and get information about the mechanical setup of the robot being used.

Expand Down
8 changes: 4 additions & 4 deletions docs/core/examples/guides/application-frames.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@ import createFrame from './assets/create-frame.webm'
import recordFrame from './assets/record-frame.webm'
import editFrame from './assets/edit-frame.webm'

# Application Frames in AICA Studio
# Application Frames in Studio

This guide explains the various methods to create and modify application frames in AICA Studio.
This guide explains the various methods to create and modify application frames in Studio.

:::tip

If you haven't done so already, review the corresponding [concepts page](/docs/concepts/building-blocks/frames) first.

:::

There are two ways to access settings and functionality for application frames in AICA Studio, depending on where the 3D
There are two ways to access settings and functionality for application frames in Studio, depending on where the 3D
scene lies:

- With the 3D scene on the main view of the AICA Studio editor, the options to create and record frames can be found
- With the 3D scene on the main view of the Studio editor, the options to create and record frames can be found
under the **Scene** tab in the right panel.
- With the 3D scene in the right panel, under **3D view**, the options can be found by clicking on the **Settings**
button on the top left of the scene.
Expand Down
7 changes: 3 additions & 4 deletions docs/core/examples/guides/camera-calibration.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ A calibration procedure allows you to determine your camera's intrinsic (focal l
undistort images in real time, improving the spatial accuracy of detections and any downstream estimation tasks (e.g.,
pose reconstruction, depth reasoning, or robot alignment).

## Calibrate camera using AICA Studio and a checkerboard
## Calibrate camera using Studio and a checkerboard

If you are using the `CameraStreamer` with a camera with an unknown calibration, we recommend to follow this guide with
the code from the corresponding [`CameraStreamer` example](./camera-streamer.md). Cameras with first-party drivers (such
Expand Down Expand Up @@ -75,7 +75,7 @@ where the calibration square sizes are in meters.

:::warning

If you are using AICA's `CameraStreamer` example to produce the image stream, the above command should already work. If
If you are using the `CameraStreamer` example to produce the image stream, the above command should already work. If
you are using your own node to stream images, you will likely need to specify which topic the calibrator needs to
subscribe to by adding the `--calibration-topic YOUR_ROS_TOPIC` argument to the command above.

Expand All @@ -95,8 +95,7 @@ Back at your host computer's filesystem, you will notice a `calibration` directo
`docker-image/camera_calibration` that contains a compressed file. The file itself contains the images that were sampled
along with a YAML file containing the camera calibration information.

Finally, move the YAML file into the `data` folder of your AICA configuration such that it becomes available from AICA
Studio.
Finally, move the YAML file into the `data` folder of your System configuration such that it becomes available from Studio.

<div style={{ display: "flex", justifyContent: "center" }}>
<video autoPlay loop muted playsInline style={{ maxWidth: "100%", borderRadius: "8px" }}>
Expand Down
4 changes: 2 additions & 2 deletions docs/core/examples/guides/camera-streamer.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import cameraStreamerExample from './assets/camera-streamer-example.png'

# CameraStreamer component

AICA's `core-vision` package includes, among others, the `CameraStreamer` component that can read image streams from
The `core-vision` package includes, among others, the `CameraStreamer` component that can read image streams from
USB devices, network streams, or video files. Most of the standard consumer-grade webcams and video formats are
supported out-of-the-box.

Expand All @@ -25,7 +25,7 @@ of a camera device.

## Using the CameraStreamer

Launch AICA Studio with a configuration that contains the `core-vision` package and create a new application.
Launch Studio with a configuration that contains the `core-vision` package and create a new application.

1. Remove the hardware interface that is included in new applications by default.
2. From the `Scene` menu, use the `Add Component` tab and look for the **Camera Streamer** component either by searching
Expand Down
Loading