Multiple questions regarding: Controlling the CORE2 with ROS on RPi 3

Hello,

I am going to develop a robot and I have some questions. Its system architecture will look like the following picture:

image

First question: the remote station and both CORE2-ROS SBC’s will need to be connected to each other wirelessly. The remote station will control the system and also run ROS (roscore). Is this all possible? We have ordered 2 CORE2-ROS but we don’t know where to start.

Second question: is it possible to connect motor drivers and encoders to the CORE2, and publish that data to the ROS network. And is it also possible that the CORE2-ROS will receive data from the remote station that the RPi 3 (on the CORE2-ROS) will use to control the motor drivers connected to the CORE2?

Third question: at this tutorial page it states that

In this section you will create a node for interfacing motors. Your node will subscribe to topic with geometry_msgs/Twist messages, drive the motors, read encoders and publish their state to appropriate topic. To create this node you will use Husarion Cloud. Create new project and paste following

So first the text says that I will create a node, then it says that I need to create a new projcet in the husarion Cloud. Also the code that needs to be pasted contains:

void hMain()

This does not seem to be a ROS node function but a CORE2 function, which means that we are not creating a node. This makes me very confused.

The main question I have is: how does the CORE2 communicate with ROS running on the RPi 3?

Fourth question: I will need to use a Wi-Fi adapter to improve the Wi-Fi signal between the remote station and the robot. This adapter is connected to the USB port of the RPi 3. Will this also work?

Hello M11,

First. It is possible, all devices (SBCs and remote station) need to be in the same network. You will need to set network configuration as in Running ROS on multiple machines

Second and Third It is possible to connect CORE2 to ROS network.
CORE2 is connected with RPi3 by serial port. Messages between both devices are serialized, transferred by serial port and de-serialized with use of rosserial library.
When you create project in Husarion Cloud it includes version of rosserial library ported for CORE2 board, while RPi3 image that we provide has rosserial installed by default.
This way, you are building a node which runs on CORE2 and connects with ROS network by serial bridge.

Fourth Yes, this will work, before you choose WiFi adapter, please check RPi USB Wi-Fi Adapters list.

Regards,
Łukasz

1 Like

Thank you kindly for guiding me in the right direction with the quick reply!

Sorry if I have asked dumb questions but this project I am working on has a short deadline and I saw a lot of unclear things on the tutorial and manual pages so the fastest way to get things clear is to ask these questions.

I will choose the TP-Link WN722N adapter.

If I have more questions I will ask them here. Again, thanks!

@lukasz.mitka One more question, can I develop with the CORE2-ROS without a power supply and just use a micro USB cable? I won’t connect anything else to it. Because I’ve read that a power supply is mandatory, but I’ve also read that a micro USB cable can be used to develop stuff or to act as some sort of bridge.

No, it is not possible to use only micro USB to power up CORE2-ROS.
Micro USB cable can be used for development, but it is used only for transferring data, not powering device.

Regards,
Łukasz

1 Like

@lukasz.mitka So now I have the TP-Link WN722N Wi-Fi adapter, is there anything that I have to set up to make the CORE2-ROS use that?

I was thinking of logging in to the RPi 3 and in Wi-Fi settings connect to the existing network via the adapter instead of the onboard adapter.

You do not need to make any other configurations.
Login through remote desktop or HDMI screen and GUI network setup will be easiest option.

Regards,
Łukasz