Astrotrack – Week 3


After laying the groundwork in Weeks 1–2, we used Week 3 to turn our concept into an executable plan. Our focus was on getting the core toolchain and hardware in place so we can move faster in the coming sprints. Since our project centers on software, AI, and systems integration, we’re standardizing on Ubuntu 22.04 and ROS 2 Humble across the team, and building the rover stack around a PC ↔ Raspberry Pi ↔ micro:bit chain. This lets us split heavy compute and visualization on the PC, keep real-time control on the Pi, and drive motors/servos reliably via the micro:bit. Everyone in the group has ordered their own Raspberry Pi, and we have investigated som possibilities individually for how the system should be configured. We now have established how and where to work forward in our project. 



August: 

This week I have been continuing building the code environment on my pc. First, I installed Ubuntu on my PC, which took some time.. After that, I installed ROS2 on my PC and tested that it works. It was a bit tricky at first, but I managed to get some basic examples running. I sourced Ros2 in WSL. In that way, Ros2 always is recognized in WSL everytime I start it.  

Then, I moved on to the Raspberry Pi I had ordered. I got Ubuntu running on the Raspberry Pi and made sure I could connect to it from my PC' s terminal. I enabled SSH on the Raspberry Pi After that, I connected the Raspberry Pi to a microcontroller. I also spent time figuring out how to program the Micro:bit. It took some experimenting to understand how to write code and upload it to the Micro:bit, but I got some simple programs running. 

I managed to make the Micro:bit communicate with the Raspberry Pi. It took some trial and error, but now they can send data back and forth. I also made a simple diagram for how the hardware will communicate. 

Overall, it was a week full of setup and testing. No big coding yet, but it feels good to have the basic environment ready and the Micro:bit talking to the Raspberry Pi. I think there will be faster progression from here on.  


Sondre: 

We are going to use ROS2 Humble as the framework, which requires Ubuntu 22.04 as the operating system. In addition, we will use OpenCV for image processing, which works well with Ubuntu. That’s why I started the week by replacing Pi OS with Ubuntu on the Raspberry Pi. 

To work more flexibly, I also set up wireless connectivity. The Pi can now be accessed via SSH over the same network, and I have additionally configured it to function as a hotspot. This way, I can connect to the Pi even if no external network is available. 

Since I switched to Ubuntu, I had to download and set up ROS2 again, both on the Pi and on my desktop computer at home. Once both machines were ready, I tested the communication between them via SSH. I ran a publisher node on the Pi and a subscriber node on the PC, and they connected as expected. 

I also received a Pi Camera Module 3 in the mail this week, which we are going to use. I had a quick look at it, but I’ll need to dive deeper into it in week 4. 



Sander: 


After recieving the rover and the ordered Raspberry Pi the weekend was spent on a simple proof of concept, by getting the Raspberry Pi to run ubuntu, and being able to ssh onto it using both a hotspot and ethernet, from here ros2 was installed on the Pi, and I tried some simple serial communication between these two to control the motors. Setting up a base for the rest of the project to be built upon.  

Over the past sessions, I have worked on integrating a BBC micro:bit V2 with the DFRobot Driver Expansion Board (DFR0548) to build a small rover that can be controlled from a Raspberry Pi running ROS 2 Humble.

Motorcontrol with the microBit 

The initial step was to test motor control using the micro:bit together with the Micro:Driver expansion board. Different hardware versions of the micro:bit required some adjustments and finding the correct library to work with this expansion board took some time, I focused on creating simple code examples to reliably run the motors using PlatformIO. 

The expansion board uses a PCA9685 PWM driver (I²C @ 0x40) to control four DC motors via HR8833 bridges. Initially, I tried using CODAL and direct I²C commands, but after several iterations I discovered that the board is fully compatible with the Adafruit PWM Servo Driver library, which made the integration straightforward. 

ROS 2 Integration on Raspberry Pi 

On the Raspberry Pi, I installed and configured ROS 2 on ubuntu server 22.04 LTS. By creating and running custom ROS 2 nodes, I was able to publish basic commands and control the rover through the microbit interface. This provided a working pipeline from ROS 2 to the rover’s motors. The RP is set up with both ethernet and a hotspot for ssh onto it together with some configs to simplify enabling the connection with aliases, and with the Remote - ssh extension from VSC this simplifies code development.  

The best method for communication would have been using wifi, but getting the raspberry pi on eduroam would not work.  

Current Status 

The rover can now be driven with simple commands from ROS 2, and the hardware/software integration between micro:bit, and Raspberry Pi is established. The next steps will involve expanding functionality with additional sensors and more advanced ROS 2 features. 


Oliver:  

This week I completed the installation of ROS 2 Humble and managed to run it in WSL. Along the way, I encountered some issues with certain packages, which took time to resolve in order to get everything working. In addition, there was a plugin that did not function right away. 
I also looked into battery packs and concluded that we need a 20,000 mAh power bank to power the Raspberry Pi, the RealSense camera, and the other modules. 
In addition, I set up the programming environment for the micro:bit, including Visual Studio Code and the necessary extensions/programs, so that I can now continue working on the development. 
In week 4, I will try to fix the LiDAR, as it is missing the belt for the motor and needs to be reinstalled. I will also start looking into how it should be set up and how to retrieve data from it. 


Nicolay: 

I was a little sick this week, so i wasnt able to meet the guys this week, but I still made some steady progress. I installed Ubuntu 22.04 and ROS 2 Humble on my laptop and spent some time getting familiar with the tools we’ll rely on—ROS 2 basics, i looked at some codes in Visual Studio Code that can be useful, looked into some basics in micro:bit, and our editor setup. I tested a few examples in ROS2, tried and failed abit there. I also created my account in our Taiga Kanban, since we have made a project there together for tasks. In parallel with the rest, I placed an order for my own Raspberry Pi and drafted a short setup plan (flashing Ubuntu, enabling SSH/hotspot) so I can get it running quickly when it arrives, since it still hasnt arrived to this day. Still no big coding yet, but i plan to look more into this the next week.  
I reviewed and cleaned up our blog as well—fixing structure and consistency across Week 1–2 and this Week 3—so the documentation keeps up with the technical work and fixing the common part.

Leave a Reply