Kevin’s Status Report for 09/26

This week I focused on the SLAM and mapping portion of SWARM, and I also prepared for the design review presentation. I worked on improving the software architecture for the distributed mapping system, and I also investigated how SLAM Toolbox fits into the ROS2-based architecture. SLAM Toolbox is a better fit for this project compared to DOOR-SLAM because it supports LiDAR and ROS2, and it also provides functionality for decentralized multi-robot mapping.

I also worked on defining how we’ll quantitatively test and validate the system. The design requirements are mapped to specific tests, like LiDAR range, scan frequency, robot speed, wall-position error, etc.

My progress is currently on schedule, and the main dependency is receiving and assembling the physical robot hardware. Next week, I plan on working with the team to assemble the physical robot and integrate the SLAM software to begin initial mapping tests.

Zhuoyi’s Status report for 09/26

This week, I worked more on the robot communication infrastructure. Testing on the Ubuntu Linux Docker environment, I have infrastructure code performing all of the standard distributed communication patterns over ROS2. I prepared a ROS 2 Python demonstration package with three peer nodes. It exercises direct messages, broadcast, scatter, gather, reduce, allgather, allreduce, and a barrier. The package includes the node code, a launch file, and instructions for running the peers on separate computers.

I also outlined the software architecture for the design review: each Raspberry Pi runs its own sensor input, odometry, SLAM, and robot control software. The robots exchange mapping data over ROS 2, while RViz2 observes the results.

The progress is on schedule, next week I will be working with the team to integrate the infrastructure and Kevin’s SLAM work onto actual robot hardware for testing. This work will begin once the robot components arrive.

Team Status Report 9/26

This week, on the robot-hardware side of things, the team fleshed out a wiring plan for the bot and ordered all associated components to be assembled next week.

Again, the most significant risk is a hardware defect or delay, which would push back all of our integration and on-robot development work. Our plan is still to leave enough budget and time in the event of any hardware issues.

We changed the design to use SLAM-toolbox instead of DOOR-SLAM. This was because DOOR-SLAM uses camera input, which is not compatible with our LiDAR-only design. Additionally, SLAM-toolbox has been designed with distributed fault tolerance in mind, is natively ROS2 + LiDAR, and has a built-in simulator for tests when hardware is not available.

A was written by Zhuoyi Zou, B was written by Rachel Lewis and C was written by Kevin Huang.

Part A:

SWARM is intended to help warehouse staff identify blocked aisles and shifted obstacles by comparing the robots’ updated map with the expected layout. An alert would direct staff to a specific location so they can assess and clear a hazard, or identify security issues preemptively, which would help keep routes accessible for safe worker and goods movement. We will test obstacle detection and alert accuracy before claiming that the system reliably identifies hazards.

The robots could themselves create a collision hazard when operating near people. Our safety design will limit robot speed during testing, stop motion when an obstacle is detected or required sensor data becomes unavailable, and provide a human-operated way to cut motor power. We will verify stopping behavior and sensor-failure responses during our development and testing.

Part B: For our obstacle-alerting system that is built on top of the 2D mapping data we receive from our robot SWARM, we are imagining a very clean and simple UI that is universal in understanding across diverse users. This is our main social factor consideration, to ensure that our final product is actually usable in the real world, to folks without an engineering or software or robotics background.
Ultimately, the goal of our technology is to promote warehouse operations to work as smoothly as possible, and this by nature doesn’t touch many of the realms of social considerations, like politics or culture. That being said, a connection could be made between providing the most accurate up-to-date data and improving the collaboration, culture, and social atmosphere of the warehouse working environment. Bringing real-time, reliable notifications of obstructions and potential discrepancies on the warehouse floor could surpass the office politics of word-of-mouth telephone, seeking approval/intervention from different departments, or worker-by-worker opinions/arguments about what-should-be-where-and-why. With the source-map underlying our technology, and the live mapping on top, obstacle detection is simple, accurate, and can be alerted to the folks in charge right away.

Part C:

For economic factors, we focused on keeping SWARM relatively low-cost and scalable by using cheap, commercially available components such as Raspberry PIs, LiDAR sensors, and publicly available robot chassis (instead of using specialized industrial hardware). This makes it easier to add additional robots to the system without requiring expensive hardware or centralized compute infrastructure. Since each robot is designed as a standalone unit that can do mapping and computation by itself, the system can continue operating if an individual robot fails, which makes failures much more economical than if there was a single expensive central point of failure.

In a warehouse, the economic benefit comes from reducing the amount of manual effort and time required to inspect and update warehouse layouts, and from identifying misplaced inventory or blocked paths more quickly. Using multiple robots helps reduce mapping time, which could streamline and reduce downtimes in warehouse operations. On the other hand, adding robots increases the hardware, maintenance, and replacement costs, so adding more robots only makes sense if they provide a significant improvement in mapping time and coverage.

We also considered repair and replacement costs when we selected components. Our design uses modular and replaceable parts, and we leave room in the project budget for duplicate robots and replacement components, which further reduces the impact of individual hardware failures.

Rachel’s Status Report for 9/26

This past week I finalized the hardware selection for our first prototype bot in order to have parts ordered on Thursday, so they arrive next week for full assembly.

I also contributed key slides and visuals (made in Canva and Slides) to our team Design Presentation deck in order to assist in an easy-to-understand delivery next week.

Before this week there was a black-box in my mind where the power and wiring of the robot lived, that I had to actually make concrete. I’ve never built an entire robot from scratch, so I was very careful in my approach. I started with the components we knew we needed to connect: Robot Chassis Motors, RPi 5, Lidar, IMU. From here I had much back-and-forth with ChatGPT to research and learn about the required components to connect and power each of these safely.

With some time, I established that power from our battery needed to be split into two separate streams: 5V 5A, as per the RPi 5 documentation, and 6V 10A, estimated (with plenty of buffer) based on the limited specs on the robot chassis motors. These two desired voltages informed my part search, along with economic considerations, because as a team we want to maintain room in the budget for a duplicate bot, PLUS extra wiggle room for part replacements/changes/fixes etc.

I had ChatGPT create a block diagram of how the new parts will be connected in between the core components (Robot Chassis Motors, RPi 5, Lidar, IMU), the final iteration shown below.
SWARM bot wiring diagram

After research and part finalization, I updated the team BOM to do auto total-price calculations in order to save time in the future, and logged the new parts to order.

I am currently on track with the team Gantt Chart. Assuming all parts arrive next week (which they should considering it was all <2 day Amazon Prime shipping), I can stay on pace. Next weeks’ tasks are transitioning from planning/digital work to physical assembly of the chassis, drivetrain, wiring connections, and mounting of sensors. The most immediate next step is going to be creating a more detailed wiring diagram for pin connections between the Rpi, Lidar, and Motor Controller specifically based on documentation pin-outs.

Some questions left unanswered are:
Chassis encoder output voltage (not documented anywhere) is 5V or 3.3V? This determines if it is directly compatible with the Rpi 3.3V GPIO pins or not.
Motor stall and startup current quantity (not documented)? I built in buffer for these current spikes into the battery, buck converter and wire ratings, but it’s important to quantify them to make sure we won’t have any issues down the line.

Rachel’s Status Report 9/19

This week I spent the majority of my time prepping for the Proposal presentation to give in class on Wednesday. I also spent time researching chassis to build our robot upon, weighing the pros and cons of the available cheap models. I ordered our first robot chassis in order to start prototyping ASAP

Team Status Report for 09/19

The most significant risk that could jeopardize the success of the project is a delay in building a single functional robot. Most of our team effort this week was allocated to sourcing the parts for the robot, which for now is the compute + motor chassis. We are making the first order early, but only ordering a small number of components so we have enough budget in case the first batch does not meet our requirements.

We made one minor change to the system since the proposal presentation. The proposal outlines DOOR-SLAM as an example of a distributed SLAM algorithm, but since DOOR-SLAM uses cameras instead of LiDAR, we will not be using it and are still searching for a LiDAR-based distributed SLAM algorithm designed for ROS2.

Zhuoyi’s Status Report for 09/19

This week, I focused on researching and setting up initial code for the robot communication infrastructure. I built some sample communication code for ROS2 and set up a Ubuntu Linux Docker environment to run the sample code. The sample code currently sets up a skeleton for P2P communication over ROS2, but from my experimentation, ROS2 should have a library already for the complex communication we need, so we do not need to build everything from scratch.

The progress is on schedule, next week I will be working with Kevin to integrate a distributed SLAM implementation into our ROS2 infrastructure.