Ask Your Question
1

hrpsys halts at 'wait for ModelLoader' for Nextage

asked 2017-04-04 05:21:51 -0600

robotfan gravatar image

updated 2017-04-05 00:24:25 -0600

Hi,
I have the following setup:

  1. on the QNX, I run roslaunch nextage_ros_bridge nextage_ros_bridge_real.launch MODEL_FILE:=/opt/jsk/etc/HIRONX/model/main.wrl (and another path for CONF_FILE_COLLISIONDETECT as a colleage told me, but not sure if this is actually relevant here)
  2. I can then do two things: on another machine, set the right ROS_MASTER_URI and start MoveIt using roslaunch nextage_moveit_config moveit_planning_execution.launch. And it is also possible to stay on QNX and start in interactive iPython session with ipython -i /opt/ros/indigo/share/nextage_ros_bridge/script/nextage.py -- --host %HOST% --port %PORT% --modelfile /opt/jsk/etc/HIRONX/model/main.wrl.
  3. What does not work, however, is to start the iPython session from another machine. I assume I would have to pass a hostname and port both for the ros master core + ros bridge which run on the QNX as well as hostname and port for the nextage robot. Is that correct? How can I do this? I tried with different --host and --port arguements to the ipython command, but it either halts after 'configuration ORB with nxconsole:%PORT%' or it gets stuck in a seemingly endless loop printing 'wait for ModelLoader'.

Any thoughts?


UPDATE After giving this some more hours of thought, this should be a clarification and more precise questions: Is it correct that the nextage_ros_bridge MUST run on the QNX while the iPyhton session could run elsewhere? If I pass the hostname (as set in /etc/hosts) and the port that is labeled corbaloc using nmap, the program freezes at "wait for ModelLoader". This seems to be the same issue that was described here but sadly the links to the solution (?) do not work anymore. Could someone point me to the right place?


UPDATE 2 Running roslaunch nextage_ros_bridge nextage_ros_bridge_real.launch MODEL_FILE:=/opt/jsk/etc/HIRONX/model/main.wrl or the same without the MODEL_FILE argument on a separate machine (i.e. not on QNX), leads to CORBA::SystemException raised by ModelLoader: IDL:omg.org/CORBA/INV_OBJREF:1.0 omniORB: ERROR -- the application attempted to invoke an operation on a nil reference. like here with and without the MODEL_FILE argument.


UPDATE 3 (in response to the first answer) So I actually thought I was running stuff ON the QNX. At least I run it on a computer that is positioned inside the robot's physical socket. But there are two machines (set up by previous students or so ...) Now I can ping the machine I thought was the QNX from another machine and using nmap I found that it has exactly one open port called corbaloc (and not 15005). The other IP address (called nextage I think in /etc/hosts) does not answer pings nor has open ports. Maybe this 'nextage' is the real QNX? What can I do if pinging this does not work? How can I verify the IP address?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2017-04-04 17:37:43 -0600

130s gravatar image

updated 2017-04-05 05:57:25 -0600

0-. Clarification for where ROS nodes and non-ROS lower layer processes run.

on the QNX, I run roslaunch...

I assume you meant your computer is accessing QNX, instead of running roslaunch on QNX. AFAIK there's no roslaunch or any ROS implementation for QNX (I've managed to run Catkin on it years ago but no other ROS tools are ported yet).

the ros master core + ros bridge which run on the QNX as well as hostname and port for the nextage robot.

Having said my comment above, this isn't correct.

1-. "ipython access" to the robot fails from another computer

All you need for the Python client to access the robot is that CORBA communication in between. Most easily, usually you can simply ping your robot if there's IP connection. If it goes through then you're probably good (CORBA uses 15005 for NEXTAGE, which usually isn't a problem). You should be able to skip --port, --modelfile args by default.

(BTW, typically when we talk about NEXTAGE computer resource-wise, we call QNX and "robot" as the same thing because that's where all the low level hardware controll processes run on.)

2-. "wait for ModelLoader" issue

This kind of error message gives me an impression that something is not working right on the robot/QNX side. If possible, reboot QNX and try again. Also provide us rtls result.


Lastly, I assume you've been working on the tutorials http://wiki.ros.org/rtmros_nextage/Tu... . I'm more than happy to hear if you could point to particular pages that are unclear to you. You can just keep using answers.ros.org or GitHub actually works better for that kind of feedback.


UPDATE1 (Disclaimer: The following is mostly AFAIK since I'm not affiliated with the manufacturer.) NEXTAGE Open should come with 2 computers by default. So seeing 2 machines by the robot isn't surprising.

The other IP address (called nextage I think in /etc/hosts) does not answer pings nor has open ports. Maybe this 'nextage' is the real QNX?

Normally yes unless customized.

What can I do if pinging this does not work?

In factory setting QNX should be using a specific IP address that I have in mind for the robot's LAN (i.e. not your office/lab's LAN). But the manufacturer didn't want us to disclose IP address publicly. I'll email you their support contact info in case you don't have it.

edit flag offensive delete link more

Comments

Thanks, I updated my original question I will keep the last point in mind and plan to give some feedback soon ;)

robotfan gravatar imagerobotfan ( 2017-04-05 00:26:03 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2017-04-04 05:21:51 -0600

Seen: 58 times

Last updated: Apr 05 '17