Autonomous Mobile Robots (AMRs) have become revolutionary forerunners in a time of technological advancement and the persistent search for efficiency. With their seamless integration of cutting-edge technology like artificial intelligence, computer vision, and sophisticated sensors to navigate and interact with their surroundings, these amazing machines represent a revolution in the field of robotics and Industry 4.0. Autonomous mobile robots are a type of mobile robots (For general information on mobile robots, read our blog: ” Essentials of Building a Mobile Robot: All You Need To Know”), but they have the ability to comprehend and navigate their surroundings on their own. They are basically the updated and better versions of simple mobile robots and AGVs. Autonomous Guided Vehicles (AGVs), also a type of AMR, rely on tracks and predetermined trajectories and frequently need operator supervision. They are considered as entry/low-level autonomous vehicles. The level of autonomy is an important figure of merit for AMRs, but it is not a focus topic in this article.
AMRs are more than just tools; they represent a new era in which machines are capable of autonomous decision-making and adaptability, significantly altering the landscape of sectors ranging from logistics and manufacturing to healthcare and agriculture.
These AMRs are in charge of transporting goods from one place to another where humans or other robots can pick and perform other tasks such as fulfilling orders.
These types of AMRs are often found in warehouses operating in the logistics industry, playing a huge role in managing storage space. Normal Forklifts need skilled and experienced operators, self-driving forklifts are good for those industries or companies struggling to find such workers.
Delivery robots are autonomous machines designed to transport goods from one location to another. These could be Food Delivery, Package Delivery, Retail Delivery, Medication and Healthcare, Last-Mile Delivery etc.
These UV disinfection robots travel within (mostly) hospital corridors and sanitize surfaces.
The anatomy of an Autonomous Mobile Robot (AMR) can vary depending on its specific design and purpose. The current one contains a lot of characteristics that make it simple for a beginner to assemble and learn from. Improved cornering and overall speed are worth noting. In addition to being a great starting point, R/C hobbyists may maximize the AMR's potential by modifying it with a variety of the available Hop-Up Options (ie. physical model car upgrades) to boost speed and performance. Acrome AMR (AAMR) is a programmable, compact, inexpensive, ROS-supporting mobile robot that can be used for hobby, teaching, research, and robotics competitions as well. Based on user preferences, the AAMR can be programmed in Python or Arduino IDE for basic applications such as line following and/or obstacle avoidance but ROS support can be leveraged if it’s going to be used for autonomous applications like SLAM or mission navigation purposes. The good thing about AAMR is that multiple applications can be done with it thanks to the modularity of ACROME’s SMD Kits.
Here are the mechanical structural properties of the robot:
Sensors and actuators are the most important part of autonomous mobile robots, which together make up the sensory and motoric systems that enable these machines to communicate with and navigate their environment successfully. The robots' sensory organs are sensors, which provide real-time data about the surroundings, such as details on obstacles, topography, and ambient conditions. This information is essential for the robot to navigate safely and precisely and to make deft decisions and adjust to changing conditions. Actuators, on the other hand, serve as the robots' limbs and muscles, carrying out the motions and actions required to complete tasks and travel distances. Actuators give robots the ability to manipulate items, avoid impediments, and perform the tasks for which they are designed.
Here is the list of different sensors and actuators used on Acrome’s Autonomous Mobile Robot (AAMR in short) with brief explanations.
AAMR is equipped with an array of sensors that enable it to perceive and navigate its environment. As a note, the AAMR uses SMD add-on modules for easy connectivity and integration of all the sensors with the main controller. Please note that the number and selection of the sensors are customizable. Here is the major sensors that are included in the AAMR:
Lidar sensors use lasers to measure distances and create a detailed 3D map of the surroundings. They are best operated by ROS programming, either in Python or C++. Acrome’s AMR includes a 360o Lidar sensor for SLAM and Navigation purposes. LDS-01 is used in AAMR. 360 Laser Distance Sensor LDS-01 is a 2D laser scanner capable of sensing 360 degrees that collects a set of data around the robot to use for SLAM (Simultaneous Localization and Mapping) and Navigation.
Ambient Light Sensor adjusts its resistance in response to the amount of incident light, with lower resistance being produced by higher light levels. Acrome’s AMR contains an ambient light sensor module for applications similar to Line Follower Robot, or Black Dot Avoider Robot.
These sensors use sound waves to detect nearby obstacles. These are used in Acrome’s AMR in order to detect any nearby obstacles and avoid possible collisions. Their response time and ease of use make them a simpler choice for
IMUs include accelerometers and gyroscopes to measure the robot's orientation and movement. The IMU sensor mounted on Acrome’s AMR gives the roll and pitch data of the top platform which is used to stabilize the robot while turning sharp corners or climbing steep hills etc.
Let's talk about the Acrome SMD add-on modules a little more. There are 10 Modules in total. All have Python and Arduino libraries embedded in them. One notable feature is the ID selection parts on all of them. The ID selection part consists of 5 pins selected with shunts (jumpers). Therefore, whichever pin is selected with the shunt, that will be the ID of that module. (Exhibit A: You can see the module in the picture has an ID of 1, since the shunt is placed on the pins numbered 5.) This helps the user to simply add five of each module simultaneously and ID them easily. Also if there is only a single module used, there is no need to physically ID that module since it is going to have a default ID of 1 too.
Another notable feature worth mentioning is the ease of use. All these modules communicate with each other with an RS-485 based communication link and use a common RJ-45 socket (known from the ethernet cables). The order of connection has no importance. That is what is called the Daisy chain.
Actuators are responsible for motion and manipulation. Acrome’s AMRs use DC motors and Servo motors to drive their wheels. For a brief explanation on different actuator types and how they work, please see our blog Beginners Guide to Actuators.
The Motor used in Acrome’s AMR is the Mabuchi RS-540 Torque tuned motor. It has a nominal 12 volts power input and has a small size of 3.75 x 2.88 x 1.63 inches, which is crucial for tight space requirements of the mobile robots. The power to the DC motor is taken from the power supply (LiPo battery in general) and delivered through the SMD brushed motor driver module.
A single motor is used for light-weight operations, however users may use a second motor to achieve higher torque and/or 4x2 kind of traction. Hence it will give a higher payload and/or hill climbing capacity. The second motor can easily be daisy-chained to the 2nd motor driver board. This is depicted with the dashed-lines in the Cabling and Connection Diagram of the AAMR section.
The Servo Module is used to control a servo motor. A servo motor is an electromechanical device that provides precise control of angular or linear position. It operates based on feedback control systems, where it receives signals to adjust its position and velocity, ensuring accuracy and stability. In order to have a servo motor in a desired angle, the Servo module gets the data from the SMD which is then sent to the servo motor connected to that module. AAMR is using Hitec’s D645MW 32-Bit, High Torque, Metal Gear Servo. You can find some of the specifications below but for more information be sure to check out BOM. Here are some performance specifications about this servo motor. The operation voltage range (volts DC) is 4.8V ~ 6.0V ~ 7.4V with speed (second @ 60 ) range of 0.28 ~ 0.20 ~ 0.17. The maximum torque range kg/cm is 8.3 ~ 11.3 ~ 12.9 and a no load operating current draw of 500 mA while the stall current draw is 2650 mA. Considering the physical specifications, the dimensions in metric are 40.6 x 19.8 x 37.8, weighing about 57.0 grams.
AMRs need a motor driver system to control and drive their motors. Acrome’s SMD (Smart Motor Drivers) is used to control and drive AAMR’s motors.
The SMD is not only easy to use but also since it is “SMART” it offloads the main controller (the PID control is calculated inside the embedded micro-controller) for controlling the speed of the motors, also collects data from the sensor modules and delivers power through its daisy-chained power network. Experience seamless connectivity with our innovative design! Our two power ports are thoughtfully connected in parallel, offering you the freedom to tap into your power source from either one. Meanwhile, our RS-485 ports are also harmoniously linked in parallel, making driver interconnection a breeze.
But here's where the magic happens: introducing the I2C port, the gateway to a world of simplicity. It kickstarts the Daisy Chain connection between your sensor modules and the driver module. Just connect one sensor module to this port, and like a string of pearls, the rest elegantly follow suit, effortlessly linked to each other.
Gone are the days of fretting about connection orders or deciphering complex pin configurations on your Arduino or Raspberry Pi. The solution is crystal clear – unite your drivers through the RS-485 ports while feeding them with power via the power ports, and voilà, it's time for coding wizardry.
The Arduino and Raspberry Pi libraries make coding even easier! While coding, the potential rest of the code appears in front of you for you to choose, making the process smoother and faster. No longer will you need to spend precious time searching for elusive code lines. Additionally, you can effortlessly access the library for valuable information on how to harness its power. With our innovative solution, you're set to unlock a world of connectivity and coding with unparalleled ease.
Batteries or power packs provide the necessary energy for the AAMR to operate autonomously. Two 12 volt LiPo batteries are used in parallel to increase the capacity and as a future plan to power the system redundantly. Redundant battery packs are important for servicing the AMRs and an SMD sensor add-on for battery management can be used for hot-swapping the batteries while the AAMR is operational. Power source is connected to the SMD network. The SMD has an on-board 5V regulator which is used to power the computing hardware (RPi).
AAMR is equipped with a Raspberry Pi single board computer, which processes the sensor data, run algorithms for navigation and decision-making. It sends the velocity and steer commands to the SMD modules for motion and communication with remote systems possibly via its WiFi chip and/or through a cloud service.
The cabling and connection diagram of the AAMR is pretty simple. Below sketch summarizes all the connections. Starting from the left, we have the Computing hardware (RPi) at top. The LIDAR sensor is connected to one USB port, the SMD’s USB Gateway dongle is connected to another USB port of the RPi. The battery is connected to one Power Port of the SMD RED motor driver module (#1). The SMD RED #2 motor driver module is an optional one, which can be daisy chained directly with the first motor driver module, if needed. The motor(s) will be connected to the motor port of the SMD(s). Finally, the sensors are connected to the I2C port of the RED #1 module or can be distributed to both RED modules for ease of cabling.
The steering of the AAMR is achieved with the front wheels, which are connected to a servo motor. This servo motor is also connected to the SMD network, via the Servo add-on module. All add-on modules are self powered and connected to each other using the daisy-chain I2C port of the SMD RED modules.
This concludes all the cabling requirements of the AAMR. It is as simple as it looks and below you may find a photo from the real implementation of the cabling outside the car chassis. The cover image of this blog post shows how the same connections look when all the items are placed inside the car’s chassis.
Acrome’s AMR is programmed in Python. An example navigation code can be found on Acrome’s GitHub page. However the user can also program it as desired. Here is an excerpt from the example code:
from smd.red import*
port = "/dev/ttyUSB0"
m = Master(port)
distanceID = Index.Distance_1
servoID = Index.Servo_1
distance = m.get_distance(0)
if distance <= 20:
As mentioned before, Acrome’s AMR can be used with the ROS (Robot Operating System) infrastructure. The LiDAR sensor is heavily used for SLAM algorithms in ROS. Let’s inform you about ROS a little bit here.
The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it's all open source. ROS offers a standard software platform to developers across industries that will carry them from research and prototyping all the way through to deployment and production. AAMR can be used in ROS thanks to its open-source software libraries.
Simultaneous Localisation and Mapping (SLAM) is a technique for autonomous cars that enables simultaneous map construction and vehicle localization. The vehicle is able to map out uncharted terrain thanks to SLAM algorithms. The map data is used by engineers to perform activities like path planning and obstacle avoidance.
There are two different methods of SLAM. Visual SLAM and LiDAR SLAM. Lidar is a technique that primarily makes use of a laser sensor (also known as a distance sensor).
Lasers are employed in applications with high-speed moving vehicles like self-driving cars and drones because they are substantially more precise than cameras, ToF, and other sensors. Laser sensors often provide point clouds in 2D (x, y) or 3D (x, y, z) dimensions. For the purpose of creating maps using SLAM, the laser sensor point cloud offers highly accurate distance measurements.
 Acrome’s Smart Motor Drivers Full Kit which includes following items: