-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generalize across rosdistros #1
Comments
Debconf could work. I also think an update-alternative solution would be fine as well. The latter would let you write specific implementation packages for different robots, or even variants of that robot while at the same time giving users a mechanism to point to their own workspaces. Are there any disadvantages to update-alternatives?
This seems to be one where user input definitely would be beneficial.
👍 |
I don't have a clear understanding of update-alternatives— it's a scheme for maintaining symlinks, is that correct? So you'd have a symlink somewhere ( Certainly just editing a text file is easiest for users, but being able to override it with a subsequent implementation package would be attractive. Regarding the network interface business, I think a better default might be to set ROS_HOSTNAME to $(hostname). This should/will always resolve locally, it will resolve correctly on any network with a proper DNS service, and can be corrected on a case-by-case basis by editing /etc/hosts or adding a HOSTALIASES env. This completely decouples the ros daemon from whether a particular network interface is connected or not, and probably allows the ROS service to start earlier in the overall system bringup. |
update-alternatives I believe you'd have something like that This also means you have the flexibility to install a deb workspace for a particular robot - and provide an alternative for that, e.g.
I haven't actually done the above, so we should test first . It does feel more in line with usual user workflows though...I run Interfaces Aye, we also already converged to always setting our
and in
Our DNS servers elsewhere get setup to find 'bob'. This has the advantage of letting the robot run on any network and also be agnostic about problems with its own wireless interfaces (driver problem or someone pulls the usb wireless dongle) and it will keep on chugging. The assumption here of course is the DNS Servers. Usually users don't have access or don't know how to do DNS serving, so it's a pretty high constraint. As you say though, researchers can quickly hack |
Re: interfaces, wouldn't that be:
This way, you can get a remote connection to the bot on your workstation with just:
And if your DNS infrastructure can't resolve robot_hostname to the robot's wired or wireless interface, you fix it via |
@mikepurvis are you still using If not, I'd like to get on the same page with other companies with regards to this so we can contribute to something that doesn't ordinarily get much love. |
We never switched over— we're still using robot_upstart across the board, except on Turtlebot and PR2 which have their own legacy systems. The version of this you and I were hacking on last year is here, but I never really pursued it (getting it on launchpad, imported to packages.ros.org, etc). This was for a variety of reasons, including confusion over what was going to happen with Ubuntu and systemd, and uncertainty that the amount of disruption at CPR would be worth whatever advantages were brought by the new scheme. |
Ok. We never got around to implementing autostart properly (i.e. beyond using |
Thanks for the update. |
The robot_upstart overhaul which occurred at the beginning of this year made the backend a pluggable affair. Right now there's only upstart supported, but a ticket exists (clearpathrobotics/robot_upstart#20) to add systemd support, which will cover... well, a lot of things, but importantly Ubuntu 16.04 + ROS Kinetic. It should be quick to do; just haven't gotten to it. |
Oh, that's a nice move and certainly seems a good place to start. I'll check it out - thanks. |
This seems like it's only very lightly specialized for hydro. Would we consider a generic ros-system-daemon package which uses a debconf setting for the path to the workspace/
setup.bash
file?Debconf would be an obvious choice as well for the question of which network interface to use (eth0/wlan0/other).
Finally, for headless robot computers, it would be great to weaken the coupling to NetworkManager. For example, supporting events from connman, wicd, etc.
The text was updated successfully, but these errors were encountered: