Robotics StackExchange | Archived questions

ROS Upstart Not Launching One Node of a Launchfile

Hello,

I am trying to run a Rosbridge server and a listener node on startup. I am using ROS Kinetic on a RPi 3B+ running Ubuntu 16.04 LTS.

I have tried to setup separate services using robot_upstart and tried putting them into one service (one vs. two .launch files). In both situations, the listener will not run but the server will.

I have tried to debug using sudo journalctl -u (service name) but am not seeing anything besides various callbacks in Python or ROS code. I am 'installing' the service properly, is there anything else I need to add to get the service working properly?

I can post the code if necessary but I didn't want to clutter the post. It is a simple listener script with a callback that will set a PWM controller based on a letter received by the subscriber. Could it be imports making the node unable to launch? It is able to be launched through both rosrun and roslaunch, but will not appear on startup.

Thank you.

Asked by ratelle on 2019-08-14 17:10:03 UTC

Comments

I experienced this when the nodes that are launched access devices they don't have access to, due to not being run with the same privileges as a logged in user (e.g. group memberships). See this section on the wiki.

As you are talking to a PWM controller, this could be the case here. you can also start the node with sudo <job-name>-start to get a console output. Maybe this reports some issues.

My guess (but only a guess) is that you'd need to make the hardware resource you are accessing world read-writable (or better, use a udev rule to do this when the specific device is plugged in, if possible).

Asked by mgruhler on 2019-08-15 00:59:56 UTC

Answers