AD-R1M Quick Start Guide
Power on robot
Connect the charged battery pack to the robot via the XT60 connector on the back of the robot, see the figure below for the general hardware architecture and connections.

Use the side-panel buttons to power and initialize the robot electronics.

Button 1 (silver): Press to power up the robot. It will latch/stay pressed.
Button 2 (red): Press to reset the RC transceiver. You should hear an audio output indicating the tele‑joystick connected to the robot.
Button 3 (green): Not used in this configuration.
Control robot using remote control

Power on the RC: press the On/Off button. The screen will show the model configuration and the RC battery state.
View robot battery: press the
TELE
button (bottom-left). The display showsRxBt
indicating the robot battery level.
Caution
Ensure the robot battery does not drop below 9 V during operation.
Enable motion: move the KILLSWITCH (SB) to the OFF position (as shown in the figure). The robot will slightly shake to indicate it is enabled.
Drive: use the indicated CONTROL GIMBAL to command the robot (forward/back/turn ~ up/down/left-right).
Lift: use switch SC to raise/hold/lower the lift as labeled in the figure.
Control robot using keyboard teleop
MOTODO
Network Setup
Connect your workstation to the robot’s Wi‑Fi network before starting.

SSID:
ADIADV_LIFT
Password:
Sq7e4T9W
Device Access
After connecting to the Wi‑Fi, you can access onboard computers as follows.
Raspberry Pi (edge computer)
SSH:
ssh analog@ad-r1m-pi-milano.local
Credentials: user
analog
/ passwordanalog

- VNC:
Install VNC Viewer
Open Viewer → File → New Connection
VNC Server:
ad-r1m-pi-milano.local
Credentials: user
analog
/ passwordanalog

Note
Use VNC for GUI tasks like RViz, especially on the Raspberry Pi, SSH is sufficient for Portenta access and navigating the OS.
Raspberry Pi Runtime
Start docker container and RViz visualization
After connecting via VNC, run the start_rviz script to start the ROS 2 Docker container and visualize the robot.
# In the VNC session on Raspberry Pi
~/start_rviz
This launches RViz with the robot model, odometry, and camera laser scan visualization.

The RViz window starts with odom
as the Fixed Frame, displaying the robot model and sensor data.
Mapping
To map the environment, run the mapping script and change the fixed frame to visualize the mapping process:
# In the VNC session on Raspberry Pi
~/do_mapping.sh
Important
In RViz, change the Fixed Frame from odom
to map
to visualize the mapping process.

The figure shows how to change the fixed frame in RViz and observe the real-time mapping process.
Move the robot around the environment using the remote control to build the map, as shown in the animated demonstration below.

The video shows the complete mapping process where the robot navigates the environment while building a real-time map using SLAM (Simultaneous Localization and Mapping). Save the map ~~~~~~~~~~~~~~~~ After completing the mapping, open a new terminal and save the map to a file:
# In the VNC session on Raspberry Pi
~/save_map.sh
This saves the map as office-map.pgm
and office-map.yaml
files in the ~/ros_data/maps
directory on the Raspberry Pi.
Note
Save the map while the mapping node is still running and the map is being published. You can stop the mapping script after saving the map.
Localization
To localize the robot on a previously saved map, run the localization script (make sure you stopped the do_mapping.sh
script first):
# In the VNC session on Raspberry Pi
~/locate.sh
This starts the AMCL (Adaptive Monte Carlo Localization) node to localize the robot on the saved map (~/ros_data/maps/office-map.yaml
).
Note
After starting localization, press 2D Pose Estimate in RViz and click on the map to set an approximate initial pose for the robot, this helps AMCL converge faster. You will see the robot’s estimated position and orientation as a red arrow, and the covariance as a purple ellipse around it, see the localization demo.

Caution
Stop do_mapping.sh
before starting locate.sh
.
Working with Docker Containers
Start Docker container:
docker start ros_app
Open Docker container:
docker exec -it ros_app bash
The localization and navigation scripts run inside the ros_app
Docker container and use configs and maps stored in the ~/ros_data
directory on the Raspberry Pi host.
You can copy configuration and map files from the Docker containers on the Raspberry Pi host system using the following commands:
Copy map files:
docker cp ros_app:/ros2_ws/src/adrd_demo_ros2/maps/map.yaml ~/ros_data/maps/
docker cp ros_app:/ros2_ws/src/adrd_demo_ros2/maps/map.pgm ~/ros_data/maps/
Copy navigation parameters:
docker cp ros_app:/ros2_ws/src/adrd_demo_ros2/config/nav2_params_minimal.yaml ~/ros_data/
Copy mapper parameters:
docker cp ros_app:/ros2_ws/src/adrd_demo_ros2/config/mapper_params_online_async.yaml ~/ros_data/
Note
Files copied to ~/ros_data
persist on the Raspberry Pi host between container runs.
Todo
Brief overview of ROS 2 topics
Create a map
Point-and-click navigation in rviz