NetworkViewer 1.1.15alpha (Multi Protocol) Preview
Here is a demonstration of why it is useful to support multiple interfaces and protocols with NetworkViewer. The following demonstration is made with a robot in construction from IntRoLab named Johnny0. Here we will not go into the details of the mechanical hardware, but focus on the communication part of the robot. Figure 1 shows the bus configuration of the robot.
Figure 1 : Johnny0 bus configuration
Here is how it works :
- Bus 1 (CAN bus, 1Mbps with NETVProtocolStack for dsPIC). On this bus we have 4 motor controllers for each joint of the right arm + the power board.
- Bus 2 (CAN bus, 1Mbps with NETVProtocolStack for dsPIC). On this bus we have 4 motor controllers for each joint of the left arm.
- Bus 3 (Serial bus, 115kbps with Arduino UNO using [NETVProtocolStack] for Arduino). This module can be used as an simple oscilloscope and can be connected to external sensors for prototyping.
Selecting Multiple Interfaces with NetworkViewer
Figure 2 : Selecting NetworkViewer Interfaces
Figure 2 shows the new dialog to add or remove an interface.
Visualizing All Modules with NetworkViewer
Figure 3 : Viewing multiple modules from different buses in the unified NetworkViewer
Figure 3 shows all the modules discovered on the three buses. The idea here is to make the abstraction of "where" the modules are connected. They appear as if they were on a single bus.
Application
Once we have everything accessible, we can easily tune our motor controllers and power board. We can also script some tests with the ScriptEngine and plot some variables with the Scope.
Limitations
- We may get some performance issues if we have too many buses.
- More testing need to be done before releasing this version.
- Some stability issues need to be resolved with Linux.
- DeviceID must be different, even for modules on different buses, for the ScriptEngine to work.
What's Next
- Once that we have everything tuned with NetworkViewer, we can use ROS to make the high level controllers / sensor processing / AI integration. IntRoLab have built ROS components for communication with the [NETVProtocolStack] protocols.