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.

AD-R1M Milano robot hardware architecture and connections

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

Robot side buttons: 1 (silver, power), 2 (red, joystick receiver reset), 3 (green, not used)
  • 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

Remote control layout with KILLSWITCH (SB), lift (SC), power, and TELE buttons
  • 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 shows RxBt 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.

Connect to ADIADV_LIFT Wi‑Fi network
  • 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 / password analog

SSH to Raspberry Pi
  • VNC:
    • Install VNC Viewer

    • Open Viewer → File → New Connection

    • VNC Server: ad-r1m-pi-milano.local

    • Credentials: user analog / password analog

VNC connection to Raspberry Pi

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.

RViz startup showing robot model and laser scan with odom fixed frame

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.

RViz mapping view showing how to change fixed frame to map and 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.

../../../_images/do_mapping.gif

Figure 1 Robot mapping demonstration using remote control

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.

../../../_images/locate.gif

Figure 2 Robot localization demonstration

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