0
$\begingroup$

Rosanswers logo

We're looking into ways to make "training-wheels" for ROS. Before you get mad, hear me out. We have active ROS projects on TurtleBots and more in our Robotics Lab. We have computer science grad students working and being effective.

However I am interested in making those robots available to other disciplines or departments. Psychology, anthropology, theatre arts, cognitive science all have ideas on how they could incorporate Robotics into their research or curriculum. But these are not engineers or computer scientists.

I believe that we're not the first to see this need: to allow beginning or non-programmers to write simple programs for the robots. It could be a "blocks" programming interface, a different language, or just a simplified python binding with higher level abstractions, simplified concepts, probably more limited flexibility, but a simpler "hello world" experience.

Possible responses and my comment:

  1. "Why don't they just use simple arduino robots for that?" Because we happen to have a fully equipped and growing robotics lab that is ROS based.
  2. "Programming robots is hard. You can't dumb it down." I beg to differ. If you're willing to forgo some power and flexibility you should be able to get a simpler experience
  3. "Just google" I googled quite a bit and wasn't able to find something that seemed to match.

Thanks!


Originally posted by pitosalas on ROS Answers with karma: 628 on 2019-10-24

Post score: 0


Original comments

Comment by gvdhoorn on 2019-10-24:
Is this connected to #q325733? Can you tell us what happened after you asked that question?

$\endgroup$

3 Answers 3

0
$\begingroup$

Rosanswers logo

I'm always a fan of: if you cant find it, make it. It sounds like you just want to write some simple ROS-wrapped libraries for your users. For example, instead of making them know about pub/sub/ros, you can create a simple python library that will create a ROS node in the background (without their knowledge) and give them simple primitives like my_lib.stop() my_lib.go_forward() my_lib.go_to_pose()

Its on you to write that wrapper but there's nothing conceptually challenging about wrapping ROS-like concepts for a non-ROS user. Instead of roslaunch, you can just make a startup.sh bash script and as long as they don't need to know what's happening, I'd expect you to be able to teach an introduction to programming student about bash.

I'm surprised there isn't a lego-mindstorm-like ROS wrapper for certain projects in the ROS community, but also doesn't surprise me there might not be something to meet your specific needs since everyone's needs are different.


Originally posted by stevemacenski with karma: 8272 on 2019-10-24

This answer was ACCEPTED on the original site

Post score: 1


Original comments

Comment by gvdhoorn on 2019-10-24:\

I'm surprised there isn't a lego-mindstorm-like ROS wrapper for certain projects in the ROS community

there are various Blockly or Blockly-like 'wrappers' with ROS compatibility. Those would perhaps cover the OP's needs. But it's slightly unclear whether any programming would be ok.

Comment by pitosalas on 2019-10-24:
Absolutely -- some programming is fine. In fact using some language that is better at conceptualizing concurrency is fine too. It just has to have a much shallower learning curve.

Comment by pitosalas on 2019-10-24:
And yes @stevemacenski certainly I could write it myself. But I am an even bigger fan of: look hard because almost everything has been done by someone before :)

Comment by stevemacenski on 2019-10-24:
(well those things are done by others because someone had to do them ;-) )

$\endgroup$
0
$\begingroup$

Rosanswers logo

One possible option is to use SMACH - the state machine library which has some visualization of the state machine and which states are active. You could basically build out a library of states that do various primitives, and then end users could tie those states together using some simple python.


Originally posted by fergs with karma: 13902 on 2019-10-24

This answer was NOT ACCEPTED on the original site

Post score: 1


Original comments

Comment by gvdhoorn on 2019-10-25:
If SMACH would be acceptable, then perhaps FlexBE or even py_trees_ros or BehaviorTree.CPP (with its graphical editor) could be options.

$\endgroup$
0
$\begingroup$

Rosanswers logo

Hello !

I just add my 2 cents to the other answers :

I work a lot on affordance for robotics, making robots as accessible as possible, and I totally agree that we should take them to fields to gather more use case.

The Poppy Project use Snap! (BYOB or Blockly V2) to program robot, so you could use it / Connect it with ROS. I didn't dived into the documentation a lot, but since many forks exist for different application, I'm sure someone can / did / will do a ROS fork.

I use Blockly at work as a way to program robot for non programming people (including 13 year old highschool student, they do pretty impressive things since they learn Scratch in french highschool), I cannot share code, but Blockly allow you to generate Python code with custom blocks, so you can generate ROS nodes ! (and fun friday afternoon applications)


Originally posted by lmathieu with karma: 591 on 2019-10-25

This answer was NOT ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.