RoboCupAtHome / RuleBook

Rulebook for RoboCup @Home 2024
https://robocupathome.github.io/RuleBook/
Other
149 stars 60 forks source link

Robocup@Home SSPL Request Softbank Pepper root access #365

Closed awesomebytes closed 6 years ago

awesomebytes commented 7 years ago

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:

Subject: Pepper root access for Robocup@Home SSPL

Dear Sir or Madam,

We, the community of participants of the Robocup@Home Standard Social Platform League, would like to have root access for the Pepper robots for taking part 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.

Yours Truly,

The Robocup@Home SSPL League

And I'd like to hear your opinions and even better, see if you want to add/modify anything about the letter.

LoyVanBeek commented 7 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'.

kyordhel commented 7 years ago

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

awesomebytes commented 7 years ago

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.

awesomebytes commented 7 years ago

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 :)

kyordhel commented 7 years ago

@awesomebytes any updates?

awesomebytes commented 7 years ago

Nope, I'll ping.

awesomebytes commented 6 years ago

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

AMR- commented 6 years ago

Thank you for engaging in this correspondence @awesomebytes . Hope that it works out.

warp1337 commented 6 years ago

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...

awesomebytes commented 6 years ago

Which compared to using a package manager is a lot of work.

warp1337 commented 6 years ago

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!

awesomebytes commented 6 years ago

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 :(

warp1337 commented 6 years ago

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.

awesomebytes commented 6 years ago

I'm pretty sure the league will greatly appreciate the release of your work.

moriarty commented 6 years ago

@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.

awesomebytes commented 6 years ago

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!

victorpaleologue commented 6 years ago

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?

awesomebytes commented 6 years ago

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.

victorpaleologue commented 6 years ago

But when does these needs cross robotics, and therefore Robocup@Home, for you?

awesomebytes commented 6 years ago

I'm sorry I don't understand your question. Could you rephrase?

victorpaleologue commented 6 years ago

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...

?

awesomebytes commented 6 years ago

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.

victorpaleologue commented 6 years ago

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.

awesomebytes commented 6 years ago

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).

kyordhel commented 6 years ago

@awesomebytes Please remove all trailing text when replying to keep the github issue clean.

moriarty commented 6 years ago

@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.

warp1337 commented 6 years ago

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.

[1] https://pub.uni-bielefeld.de/publication/2914820

nlyubova commented 6 years ago

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! :)

awesomebytes commented 6 years ago

É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 !

kyordhel commented 6 years ago

@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

kyordhel commented 6 years ago

Since SoftBank Robotics is not granting Root access to the Pepper under any circumstances, I'm closing this issue now.