-
Need some software
09/19/2024 at 14:30 • 0 commentsROS2 (Robotic Operating System) was the SW of choice for the restored platform.
After reviewing the various distributions the Humble Hawksbill distro was selected as the baseline for this restoration. This distro is the latest with long term support and has an anticipated end of life date of May 2027.
The primary supported platform is Ubuntu 22.04 (Jammy) so I now have a focus for my OS. Installation of the OS and ROS was fairly simple utilizing the ROS2 install guide. This gives me a headless Ubuntu server on my RPI4.
To talk to the robotics platform and develop I decided to set up a Ubuntu install in a virtual machine using Oracle VirtualBox and then setting up the same ROS2 distro listed above. The only issue I recall was needing to make sure to share the network interface with the virtual machine in order to expose the VM to the same network as the robot platform.
Visual Code Studio Remote development is highly recommended. I found this to be highly valuable and allowed me to develop on the robot platform remotely from various machines. This made my job a LOT easier. No matter if I was sitting with my laptop watching a Netflix episode or on my primary development desktop I was able to connect flawlessly to the robot platform. Everything was hosted in its final location. If you don't know what I am referring to I recommend you spend the time to figure it out. It will be worth it.
My first task was to establish a baseline by replicating the great work done here. This is a ROS2 node for driving the wheel servo's vai the M3 controller. The basic structure is show below. The velocity_cmd topic is used to send command for movement. A simple test utility is included to demonstrate its usage. Note: that wbr914 expects to get commands continually, sending command only once will not move it.
No matter how bold and prevalent that warning was place on the developers page my mind refused to register it until I took a few days of hard lessons to learn it for myself. :(
Basic movement is now established but the structure is not one that I believe I will use long term. The reason being is that the wbr914_node is structured for continuous use of the velocity_cmd topic and in my structure the node will be hosted on the robotics platform with command and control intended to be remote via wireless connection. This is a lot of network traffic to maintain basic functionality and I would desire to send higher level goals tot he platform and let the local platform service the details. Once more capability is established I will rearchitect an efficient control scheme.
I decided to create fork and see if I can add a few more features. My current working branch is here. This branch is intended to add the additional functionality of the M3 control board to the ROS2 node. So far I have been able to port the player/stage code for IR sensor reads, digital input status and digital output control. The new services added are listed below.
- IrdataGet
- DioGet
- DioSet
-
Step 1 in restoration - Power
09/17/2024 at 22:09 • 0 commentsDusting off the old PCBOT I was happily surprised to find that when external power was applied the old machine started up. It was very nostalgic to see the OS and apps on an external display although I did have difficulty finding an old VGA cable. Active fans, rotating media and windows XP with a 2 min boot time was not something I found highly useful. Time to upgrade. The mini ITX Core 2 duo board was removed. This will leave a large enclosed space for future electronics.
On the other side of the bot the enclosure housed the dual mini ITX power supplies. These were removed and replaced with 12V to 5V DC converters.
The main ITX board was replace with a Raspberry Pi 4 Model B (2GB). This allowed me to eliminate many power hungry devices
- CD ROM
- Hard drive
- Cooling Fan
- USB wireless adapter
Final step was the replacement of the Qty 2 12V 9ah SLA batteries in the base. Now the platform is ready for some software work.