Closed awesomebytes closed 6 years ago
Not sure who the intended receiver is, but consider helping that person send this on the the correct person/department. I'm pretty sure the people at the desk of my employer has no idea what is meant with 'root access'.
I agree with Loy. Specially "Dear Sir or Madame" is quite generic and acceptable only when you have no idea to whom you are addressing, kind of a "to whom it may concern".
I advice the following upgrade
Dear Dr. Daneel R. Olivaw, Department of Positronic Research, U.S. Robots and Mechanical Men,
Hereby the community of participants of the Robocup@Home Standard Social Platform League would like to request to you the set of procedures to obtain root access in the Pepper robots used in our competition.
The league aims to develop service and assistive robot technology with high relevance for future personal domestic applications and in doing so we face lots of technological challenges. Not having root access becomes a bottleneck for teams as standardised software frameworks can’t be used out of the box given their requirements to be installed in privileged parts of the system. Overcoming this limitation implies time spent aside of advancing the state of the art.
After the last Robocup in Nagoya, we commented the issue to the support people of Softbank Robotics who were positive about it, although they advised a written request to you. Hence, we are looking forward to receive your response.
With kind regards, Sam Pfeiffer In behalf of the RoboCup @Home Standard Social Platform League community
Thank you very much for your help guys! I've asked to whom I should address the letter, I'll keep you updated on this issue.
The letter was sent to both Mr. Edouard Lagrue whom was providing us support in Nagoya and Dr. Amit Kumar Pandey as Chief Scientist of Softbank Robotics. Now we can only wait. Thank you once again for the help guys :)
@awesomebytes any updates?
Nope, I'll ping.
Latest answer was:
Dear Sam,
This topic is still under discussion, as we are trying to push in this direction, but there are pros and cons and the decision hasn't been taken.
Thank you for keeping the energy to ask, and be sure that I will keep the same energy to push internally.
Best,
Edouard Lagrue
Thank you for engaging in this correspondence @awesomebytes . Hope that it works out.
bottleneck for teams as standardised software frameworks can’t be used out of the box given their requirements to be installed in privileged parts of the system. Overcoming this limitation implies time spent aside of advancing the state of the art.
What exactly do you mean by that? ROS, for instance, is no problem at all on Pepper (head pc). If you can compile stuff from source, you can always change the install $prefix, rpath, etc...
Which compared to using a package manager is a lot of work.
That's true, however, the package manager aka emerge on Pepper is somehow useless because it is outdated. Even with root privileges you cannot install ROS without massive manual labor.
Anyways, thx for your effort!
Having root opens the chance to try to set it up in different ways to get ROS to work (and other SW! Not only ROS), docker, chroot, custom apt setup... And maybe others I can't think of!
Miniupdate on the topic: there are no updates :(
I have worked on a couple of scripts that allow for easy installation of ROS on the Pepper. Also my approach is something "like" a chroot. No root required, no emerge required here. I am currently thinking about releasing it to the public. Let me know what you think about this.
I'm pretty sure the league will greatly appreciate the release of your work.
@awesomebytes have you considered tagging random-but-active-on-github softbank employees here? Or has the letter just been forwarded to the upper management? Like @LoyVanBeek & @kyordhel pointed out, it might end on a meeting agenda item where those discussing the pros and cons haven't really faced the reality of trying to develop completely without root access.
I get that there are cons to enabling root access. I work in an office where developers don't have root access, but the SI department can install software which is deemed required, and the process of getting needed software installed can be done quickly. In my old RoboCup team, we all had root access, but that was just chaos and then restricted it to just research staff.
Then, there is the issue of a company supporting clients who have then made a mess of their system with their root access. So some sort of waiver agreement and way to revert to the stock system would be required. I think Lego solved this nicely with the EV3, they made the default boot device the micro-SD card slot, and you can have root and custom Linux image installed, but remove the SD and it's back to the standard firmware... (too late for the Pepper- and I've burnt through a few too many microsd cards running ROS on my EV3... but worth mentioning if SoftBank is listening)
Hopefully, they won't find it annoying spam, and join in the conversation or at least know someone else to tag or forward this issue to.
I will just tag active contributers from 2017.
From github.com/ros-naoqi/pepper_robot (& RoboCup 2017) @nlyubova From github.com/alderbaran/libqi @victorpaleologue & @nyibbang From github.com/pepperhacking @EmileKroeger
To those I've tagged... I apologize if you find this as spam.
I didn't consider that, as I was told by the SoftBank employees to approach it in the letter via email way directed to specific people.
They did say they are discussing it internally.
But I guess it doesn't hurt!
Indeed please escalate it through the support, because us contributors are actually working on other things... So at best we may forward the information, but you may understand that it is of little use without an actual study of the why of the request, which is one the duties of the support.
However, you made me curious: I do trust the decision of not allowing root access on the robots because (normally), you can already take full control of the robot without it. What is so particular you want to do that requires a root access?
In general and informal terms "do whatever is necessary".
More specifically, allow installing software that needs to be in privileged folders, add more users to the robot, add USB rules, get low level control of networking / bluetooth, change the kernel... And probably many more, those are use cases we have that just come to my mind.
And yes, you can always (cross)compile everything you need but that process is complicated, error prone and slow compared to use prepackaged software that's already available.
Obviously with a rooted robot one can break it by accident, but that's the (advanced) user responsibility to not break it and know how to fix it if so.
Given that the robot has a USB port, a workaround would be booting from it as first boot device and have a rooted OS there. With an extension cable one can make that USB port easier to access. The board has also a serial port microUSB port, which may have some usage too.
But when does these needs cross robotics, and therefore Robocup@Home, for you?
I'm sorry I don't understand your question. Could you rephrase?
What is that you try to do with a robot that requires you to:
installing software that needs to be in privileged folders, add more users to the robot, add USB rules, get low level control of networking / bluetooth, change the kernel...
?
Install ROS without cross-recompiling everything is the main reason.
Having another user so other labmates cannot touch stuff that we consider privileged is also very useful.
Alright, thanks. And yeah it's boring, but I'm afraid it does not challenge enough the decision... Anyway I reported it informally, but I still recommend you ping the support and see if it escalates.
Being able to use docker to deploy anything would be very useful and it involves root (it does have some problems given is a 32bits OS, but I believe it can work).
@awesomebytes Please remove all trailing text when replying to keep the github issue clean.
@victorpaleologue thanks for taking the time to reply I am sure you have more important things to work on.
Out of my curiosity- do Softbank Pepper developers internally not have access to root while doing R&D?
I'm not a Pepper/NAO user, nor am I currently a RoboCup Team Member. It was this commet from @warp1337
I have worked on a couple of scripts that allow for easy installation of ROS on the Pepper. Also my approach is something "like" a chroot. No root required, no emerge required here. I am currently thinking about releasing it to the public. Let me know what you think about this.
Which made me interested in joining this conversation and made me think to tag some active developers from SoftBank. I thought your developers and especially support staff will want a heads up if there is an easier way to install ROS coming soon. If there is a way a client can break something, they will find it.
And I said, in my current work environment, developers don't have access to root: it would be a mess. We deliver to clients worldwide, have guaranteed uptime and control some huge $ amount in hardware, which transports some bigger $ amount of goods... with uncontrolled root access, a developer with good intentions, could introduce a 3rd party dependency or insecure patch and break a lot of things... one customer lost over 1/4 billion when they went down due to ransomware last June... so I get that stakes can be high, and the reasons not to want to give out root access. But that said, there are ways to get things installed if they're required and approved.
You can control the robot without root. But usually RoboCup teams, are doing more than just basic control and are often mixing and matching piles of software projects (and hopefully doing some decent architecture and also contributing back to the software projects ROS/PCL/OpenCV: and I see at least @awesomebytes and @warp1337 have at least gotten one commit each into ros-naoqi/pepper_robot) and want to be able to install via package manager (or docker but I really don't know how many teams are there yet) as much as possible so that they can focus on the tasks at hand and their R&D.
More specifically, allow installing software that needs to be in privileged folders, add more users to the robot, add USB rules, get low level control of networking / bluetooth, change the kernel...
But when does these needs cross robotics, and therefore Robocup@Home, for you?
The list from @awesomebytes is sounds like the basic setup for any RoboCup (not only @Home) team.
I'm shocked that the Pepper doesn't have an additional user. Usually, if these robots are in a lab, they're (unfortunately) not one per student, its a one or a couple per lab. It's always good to have a "demo" account where you can simply log into that user and know it's ready for a demonstration, and not in some untested state. In RoboCup- this is the same, teams will want to try something last minute once they're on site, but doing so in a different user allows they to switch back to the stable version for the official tests. ROS users can do some fancy workspace overlays to work around this, but then they'd still all be on the same account and you could never be certain of the state because the rules are soft verbal agreements and not actual user access control.
The networking and kernel stuff is usually standard RoboCup hacking because Teams will want to control what has network priority so that they use the limited bandwidth as efficiently as possible. Although, from the TC/OC point of view, limiting kernel and wifi hacking to some extent is only fair, but that's another issue, and this reply has gotten long enough.
Thanks again.
Hey everyone, I would like to point you towards our TDP which, at least to some degree, explains our system architecture ---> ROS on Pepper head,etc. [1]
However, @moriarty is right, giving root access to, e.g., students is a mess and from a companies' perspective the situation it is even worse --- actually, I just reviewed a paper investigating security on recent popular robotic platforms ;)
However, if this gains more traction, I will create a github repo that includes all the necessary steps to install ROS from scratch without root permissions and without using the package manager. The advantage here is, that you can install almost anything in this environment. I know, I am probably giving away at least some 'technological advantage' of our team, but to be honest, I guess that is what RoboCup is all about, the community.
Last point: I really don't need any package manager, I am more of a "I compile stuff from source with optimized compiler flags kind of guy". Also, I am not really convinced docker will make things easier on the Pepper, correct me if I am wrong.
Hello, @moriarty Regarding SoftBank, please consider to talk to Édouard (from RoboCup 2017) for tech questions. As I am no longer working for SB.
Wish you all good luck! And please do not hesitate to contribute to the open-source packages for Pepper and Nao! :)
Édouard is already our contact person for this topic (and probably anything related to Robocup@Home SSPL) in case anyone is wondering.
Good luck on your new endeavours @nlyubova !
@warp1337 Thanks for the contribution. When you have the tutorial, please contact the OC so we can add links/references in the Wiki to it. It might also be considered by TC/EC as a contribution worthy of the Open-Source Software Award
Since SoftBank Robotics is not granting Root access to the Pepper under any circumstances, I'm closing this issue now.
Hello everyone,
In the last Robocup in Nagoya I asked around what would be the opinion on requesting root access on the Pepper robot for teams taking part in the league. I got a positive feedback about it. I also commented the issue to the very helpful Softbank people and they seemed positive about it although they said we should write them about it as a community.
So I've written a first draft letter on this topic that you can find here: https://docs.google.com/document/d/1qb49URvwXr7CkCKaMFc99Mh8Xce-z-reyn4P46ijiWw/edit?usp=sharing
It just says:
And I'd like to hear your opinions and even better, see if you want to add/modify anything about the letter.