This guide assumes you are using the Anvil Devbox and have an additional PC to run Sentinel’s teleop stack. Make sure both are connected to the same network (i.e. same WiFi or LAN).
Plug in the follower arms and cameras to the correct ports. To allow communication between your PC and the devbox, update the config file at /home/anvil/anvil-loader/.env.config :
# Arms control config (see config/ for available configs)
ARMS_CONTROL_CONFIG_FILE=openarm_v2_inference.yaml
# ROS Domain ID (0-232).
ROS_DOMAIN_ID=<PEER_DOMAIN_ID>
# CycloneDDS distributed communication (e.g. GPU PC for inference).
# When enabled, RMW switches to CycloneDDS with peer discovery.
ENABLE_CYCLONEDDS=true
# IP of the remote peer (e.g. the GPU PC) to discover.
CYCLONEDDS_PEER_IP=<PEER_IP_ADDRESS>
# Advanced tuning (all optional, blank = defaults)
# Pin to one interface instead of autodetecting
CYCLONEDDS_IFACE=<PEER_INTERFACE>
# "spdp" = multicast for discovery only, unicast for data (the wifi recipe).
# Do NOT use "false": it breaks discovery between nodes on the same host.
CYCLONEDDS_ALLOW_MULTICAST=spdp
# Fragment / max message size for a constrained MTU. Units required, e.g. 1100B /
# 1200B (defaults: 1344B / 14720B).
CYCLONEDDS_FRAGMENT_SIZE=
CYCLONEDDS_MAX_MESSAGE_SIZE=
# Transport: udp (default) | udp6 | tcp | tcp6.
CYCLONEDDS_TRANSPORT=
# Write-history-cache high watermark for backpressure on bursty writes, e.g. 8MB.
CYCLONEDDS_WHC_HIGH=
# Tracing verbosity for debugging discovery, e.g. config | fine | finest (-> stdout).
CYCLONEDDS_VERBOSITY=
# VR teleop
ENABLE_VR_TELEOP=false
# Position scaling for teleop controller input
TELEOP_POSITION_SCALE=1.0
Set the following values in this config file:
<PEER_DOMAIN_ID> :67<PEER_IP_ADDRESS> : The IP address of your separate PC. This can be found by running ifconfig on the peer PC and noting the IP address next to inet. Make sure you get the IP address from the correct network interface.<PEER_INTERFACE> : The network interface of your separate PC. This can be found by running ifconfig on the peer PC and noting the network inferface at the beginning of the string. It should look something like enp8s0 or wlp7s0.Once the config file is read, navigate to /home/anvil/anvil-loader/ and run docker compose up. You should see your OpenARM follow a homing motion with the arms ending at a 90 degree angle.
Follow the “Getting Started” guide here: https://docs.avearobotics.com/Getting-Started-346e77aee94c80fcbacbc3627bba3ad3
You can see a template config file for the OpenARM here.
It’s as simple as that! You can now teleoperate your robots.