Things I Learned Only After Stepping Into Robotics
I have been learning software engineering for a while and getting taught in an academic way but not really getting my hands dirty or ready for low-level language practice. Even if the academics do not have enough resources to set up modules for it, I highly encourage people to explore a little bit, and then you might find, just like me afterwards, “I know little about software even if I can created applications from zero.” There are a lot of A-HA moments. Software is composed of various concepts, and application is just one of them. There is always the excitement greater than scareness for me to dive into a new area — Robotics, more exactly Embedded. IoT Communication Protocol I barly thought about how my speaker connect to my phone before I started my first mock task: controlling a humidity sensor by modifying the parameters in the cloud. It was really fun to have a peek at how the home automation works. This one highly depends on the MQTT protocol. Classic. I will go for more details about common protocols in the following articles. A short introduction to MQTT: it creates a bridge for developers to make communications with devices through its unique information. The MQTT library makes things simple as long as the client id, address, etc. are provided. MQTT’s source code helps me understand the logic behind it. Share Messages Forwards Okay. Now I’ve got the details from the device and they should be shared with more audience to have more control over the robot’s movement. Here comes to the core of robotics: ROS2. Another protocol to publish or subscribe to messages under the same Local Area Network(LAN). I appreciate how they make ROS2 documentation tutorial so well-structured. Bon appetit with its open-source repository. DDS is the protocol that ROS2 is built on. They wrap it via DDS(Data Distribution Service) and help developers skip the time-consuming and repetitive steps. For developers, they only need to invoke ROS APIs. Standing on the shoulders of giants. When I was looking for the utlisation of some functions, some of them only exist in ROS1. What’s the difference? Briefly, the milestone is the introduction of DDS, which makes ROS2 more flexible with more nodes, while ROS1 is built on TCP/UDP. ROS2 supports multiple OSes not just limited to Linux like ROS1. Source Code Source code is more important than I thought. It does not look digest-friendly. Using keywords make it much easier to identify the useful messages I’m looking for. If not, the sense of the logic is still wort to taking a look at. I am on my way to getting used to it.