Robotics StackExchange | Archived questions

Omron multi sensors

i want to use 2 omron laser scanners but the following code doesn't work:

<launch> 
<node ns="first" pkg="omron_os32c_driver" type="omron_os32c_node" name="omron_os32c_node"> 
<param name="host" value="192.162.0.10"/> 
<param name="frame_id" value="laser1"/> 
<param name="start_angle" value="1.0471975512" /> 
<param name="end_angle" value="-1.0471975512" /> 
<remap from="scan" to="scan1">
</node> 
<node ns="second" pkg="omron_os32c_driver" type="omron_os32c_node" name="omron_os32c_node_2"> 
<param name="host" value="192.162.0.11"/> 
<param name="frame_id" value="laser2"/> 
<param name="start_angle" value="1.0471975512" /> 
<param name="end_angle" value="-1.0471975512" /> 
<remap from="scan" to="scan2">
</node>
</launch>

have someone an idea how launch 2 same node simultaneously? thanks.


Edit:

started roslaunch server http://localhost:57492/

SUMMARY
========

PARAMETERS
 * /first/omron_os32c_node/end_angle: -1.0471975512
 * /first/omron_os32c_node/frame_id: middle_torso_b_ba...
 * /first/omron_os32c_node/host: 192.168.0.10
 * /first/omron_os32c_node/start_angle: 1.0471975512
 * /rosdistro: indigo
 * /rosversion: 1.11.10
 * /second/omron_os32c_node_2/end_angle: -1.0471975512
 * /second/omron_os32c_node_2/frame_id2: middle_torso_a_ba...
 * /second/omron_os32c_node_2/host: 192.168.0.11
 * /second/omron_os32c_node_2/start_angle: 1.0471975512

NODES
  /first/
    omron_os32c_node (omron_os32c_driver/omron_os32c_node)
  /second/
    omron_os32c_node_2 (omron_os32c_driver/omron_os32c_node)

auto-starting new master
process[master]: started with pid [13686]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 1663060e-f667-11e5-bb4c-00187d98c03c
process[rosout-1]: started with pid [13699]
started core service [/rosout]
process[first/omron_os32c_node-2]: started with pid [13716]
process[second/omron_os32c_node_2-3]: started with pid [13735]
[FATAL] [1459335832.918327894]: Exception caught opening session: bind
[second/omron_os32c_node_2-3] process has died [pid 13735, exit code 255, cmd /opt/ros/indigo/lib/omron_os32c_driver/omron_os32c_node scan:=scana __name:=omron_os32c_node_2 __log:=/home/omni/.ros/log/1663060e-f667-11e5-bb4c-00187d98c03c/second-omron_os32c_node_2-3.log].
log file: /home/omni/.ros/log/1663060e-f667-11e5-bb4c-00187d98c03c/second-omron_os32c_node_2-3*.log 

Asked by SH_Developer on 2016-03-30 03:52:19 UTC

Comments

What do you mean by saying "doesnt work"? Any error message when you launch?

Asked by DavidN on 2016-03-30 05:25:15 UTC

@heno: please don't use answers to post updates. If you want to add more information (because @DavidN asked for that fi), edit your original question. Use the edit link/button for that. I've already merged your two posts, but please keep it in mind next time.

Asked by gvdhoorn on 2016-03-30 08:42:25 UTC

same problem here, any suggestions?

Asked by wassimhariri on 2016-03-30 10:04:39 UTC

I'm pretty sure this is a limitation coming from the way in which the current implementation works with its sockets. I suggest you report this at ros-drivers/omron/issues.

Asked by gvdhoorn on 2016-03-30 10:05:33 UTC

It seems the output of your launch is not equivalent to the launch file you posted on top. Host ip, ns, start and end angles are different from what specified in launch file.

Asked by DavidN on 2016-03-30 21:02:57 UTC

I am getting the same problem. Please an answer ?

Asked by Selano on 2016-03-31 08:56:46 UTC

Answers

In the above output the host ip seems to be the same for both laser-scanners. Are you sure you are start the correct launch file ?

If I use two sick laser scanners the launch file would look like this:

    <launch>
    <node pkg="sick_tim5xx" type="sick_tim5xx_node" name="laser_node_right">
    <param name="frame_id" value="laser_link_right" />
    <param name="host" value="192.168.30.10"/>
    <param name="topic_id" value="/fmSensors/scan_right" />
    <param name="min_usable_angle" value="-2.35619449" />
    <param name="max_usable_angle" value="2.35619449" />
    </node>

    <node pkg="sick_tim5xx" type="sick_tim5xx_node" name="laser_node_left">
    <param name="frame_id" value="laser_link_left" />
    <param name="host" value="192.168.30.11"/>
    <param name="topic_id" value="/fmSensors/scan_left" />
    <param name="min_usable_angle" value="-2.35619449" />
    <param name="max_usable_angle" value="2.35619449" />
    </node>
    </launch>

Asked by mpc_agro on 2016-03-30 10:12:20 UTC

Comments

@mpc_agro the host IP above is different...

Asked by mgruhler on 2016-03-31 02:52:07 UTC

can you please send me the link where you downloaded the sick_tim5xx package? thanks in advance

Asked by wassimhariri on 2016-03-31 05:12:43 UTC

First look at your IP again and try to read this link: https://en.wikipedia.org/wiki/Private_network

I think it is unlikely that the IP is 192.162.xxx.xxx.

For a sick node that can be used with their scanner look her: https://github.com/FroboLab/frobomind/tree/master/fmSensors/local_sensing/sick_l

Asked by mpc_agro on 2016-03-31 08:53:10 UTC

As I've answered on the github issue, the current Omron driver really doesn't support that. The way Ethernet/IP and specifically the Omron works is that scan data is sent back via UDP to a static port on the local host. It may be possible to change that port number, but TBH I don't know how to tell the Omron which port to call back on or if that's actually possible. It's probably better to try to make the one node support two Omron's. This can be done by reusing the receiving IO port with two instances of the OS32C class.

Another option would be to use TCP to receive scan data. This might be slower, but would mean that you could use two different nodes.

Asked by KareemShehata on 2016-04-06 16:23:10 UTC

Comments

thx for your answer. I tried to used one node support two Omron's but it still binding.

Asked by SH_Developer on 2016-04-08 08:57:31 UTC