Where do our XBee packets go?

An important component of our hardware is a pair of 900MHz XBee radios, one on the robot and the other at our operator control station. We use them as a second communications channel with the robot in addition to the WiFi. Among other messages, the XBee carries the RTK correction data from our base station GPS to the GPS unit on the robot. The XBee configuration also allows simultaneous communication with multiple robots while each robot runs its own contained ROS system. The case of the dropped packets Our issue, discovered while debugging the most recent updates to our XBee interface code, was that some of the packets sent from our operator control station XBee were never received from the robot XBee. We use the XBee in API Mode 1 (no escaped characters), so we can broadcast messages to all XBees within range and target specific XBees as needed. In this mode, the user is responsible for assembling packets with a maximum payload...
Read More

Using QT in a ROS Catkin Package

This post is a brief account of how to compile a QT GUI as part of a ROS catkin package. I spent the past week migrating a ROS project to the latest release, ROS Groovy. A major change with this release is the deprecation of the build system rosbuild in favor of a new build system, catkin. Catkin is a light-weight wrapper for CMake. Overall, the migration went smoothly, but it took significantly longer than anticipated (which I probably should have anticipated). One sticking point was compiling our Operator Control Station (OCS) GUI, designed in QT4. The problems were related to the removal of QT-specific rosbuild macros for the CMakeLists.txt and the use of out of source builds by catkin. The Setup I used qt_ros to generate a QT form, an accompanying QMainWindow derived class, and a ROS interface class as the basis for the OCS. The original CMakeLists.txt was based on rosbuild and modifications for the transition to catkin. I relied on a variety...
Read More