Closed spd-intermodalics closed 2 years ago
I understand that what is missing in the read me is to mention that you need to actually run the suggested project, because the Listen
block rises a server listening in port 5890
.
So, effectively there are 2 connections: TM_SVR
and TM_SCT
. In my case, the former was successfully connected to 5981
but the latter failed to connect to 5890
:
TM_SVR
server in the robot is set up by the ethernet slave configuration page of TMFlow and broadcasts to port 5891
.TM_SCT
server in the robot is set up by the Listener
block of a running project, and listens to port 5890
.Is there any option to only launch the part related to report the status of the robot, without needing the Listener
block? So that obtaining robot poses is independent from the program running and the console is not spammed with futile attempts to connect to 5980
?
Hey @spd-intermodalics, I'm currently facing the same issue. However my TM_SVR is also giving errors. Is your Modbus working correctly? Because I get the error "Modbus initialize error" on bootup. Which ethernet port on the TMFlow machine did you use?
Hi @julespalles You need to use GigE port. During initial setup, I ignored the SVR connection timeout and tested the demo program. Its working fine.
Thanks for your response @jrajaram20. Yes, I managed to get both SVR and SCT working by using the GigE port!
Failure on communication with TM12
I need some assistance to find out why I cannot communicate properly with TM12. Please, read the Setup section to know whether there is a missing step that I overlooked, and the Errors section to see how TM Driver reports the error.
Setup
I have a TM12 with its
control box
up and running, configured properly to manually run.Network setup
Let's say that the Ethernet interface where the TMFlow sets the Ethernet Listener server is connected to a
client PC
which runs Ubuntu 18.04 and ROS melodic. The ethernet network card of client PC and the ethernet interface of the controller are set correctly in the same subnet:client PC: 192.168.x.1
andcontrol box: 192.168.x.105
. A check that passes OK is thatclient PC
can ping and receive answer fromcontrol box
.In the controller PC, the settings for the ethernet slave has been setting according to the documentation in the read me, including settings exactly the same list of data to report, creating a project with Listener as the main component, and starting the ethernet server reporting (Status: Enabled) and showing in the log a message:
A check that passes OK is that
client PC
can manually connect to that port withnc 192.168.x.105
and a stream of binary data arrives properly. Also when opting forString
or forJson
the stream of data changes the serialization and can be human readable properly.Launching
tm_driver
In
client PC
the software of this repository is compiled, after manually needing to patch thepackage.xml
to add the commented out packages (not sure why they are commented out whenCMakeLists.txt
requires them). The robot description is launched inclient PC
and then thetm_driver
is launched inclient PC
against its own ROS core.roslaunch tm12_description tm12_upload.launch
and then:
roslaunch tm_driver tm12_bringup.launch robot_ip:=192.168.x.105
Errors
In
Binary
modeThe result of the second command logs:
Showing that the communication is not working as expected. It reports Connection timeout. But as explained before, when manually connecting to that port the information exists.
In
String
orJson
modeFurthermore, when changing the communication mode in TMFlow to either String or Json, the reported error changes to the next:
Which indicates that the connection is established but not understood.
Any suggestions?