Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Oct 22 18:05
    dependabot[bot] labeled #181
  • Oct 22 18:05
    dependabot[bot] opened #181
  • Oct 22 18:05

    dependabot[bot] on pip

    Bump flask from 0.10.1 to 1.0 i… (compare)

  • Jun 24 10:37
    goodahn commented #177
  • Jun 19 13:18
    asmodehn commented #144
  • Jun 19 13:17
    asmodehn commented #177
  • Jun 19 13:16
    asmodehn commented #163
  • Jun 19 13:09
    asmodehn labeled #82
  • Jun 19 13:09
    asmodehn labeled #82
  • Jun 19 13:08
    asmodehn commented #82
  • May 20 19:07

    asmodehn on scheduled-update-2019-05-13

    (compare)

  • May 20 19:07
    pyup-bot closed #179
  • May 20 19:07
    pyup-bot commented #179
  • May 20 19:07
    pyup-bot opened #180
  • May 20 19:07

    asmodehn on scheduled-update-2019-05-20

    Update numpy from 1.14.2 to 1.1… (compare)

  • May 20 19:07

    asmodehn on scheduled-update-2019-05-20

    Update hypothesis from 3.56.3 t… (compare)

  • May 20 19:07

    asmodehn on scheduled-update-2019-05-20

    Update pytest-xdist from 1.22.2… (compare)

  • May 20 19:07

    asmodehn on scheduled-update-2019-05-20

    Update pytest from 3.5.0 to 4.5… (compare)

  • May 20 19:07

    asmodehn on scheduled-update-2019-05-20

    (compare)

  • May 13 19:05

    asmodehn on scheduled-update-2019-05-06

    (compare)

Ben Kehoe
@benkehoe

The usual Pythonic way of doing it is something like this:

_ROCON = False
try:
  import rocon
  _ROCON = True
except: pass

if _ROCON:
  def func_that_uses_rocon():
    pass
  class RoconWrapper(object):
    pass

class SomeClass(object):
  def always_want_this(self):
    pass
  if _ROCON:
    def this_method_only_with_rocon(self):
      pass

Does that make sense?

You can see a more complicated example in my tfx package (which gives much more convenient transform classes than tf; let me know if you want to know more about it) https://bitbucket.org/benkehoe/tfx/src/19d68953da5bc84804ca91ad85d980fc4146cae6/src/tfx/canonical.py?at=default
AlexV
@asmodehn
Thanks. I started to change the code to follow this pattern where needed. Still needs a lot more testing...
AlexV
@asmodehn
Hi everyone,
I recently realized that I needed another interface from outside (celery task scheduler) to ROS. So I started splitting rostful's rosinterface into another package, that I can unittest and reuse even without rostful. It s there https://github.com/asmodehn/rostful-node, feel free to have a look and let me know if you have any comment. I m currently writing basic tests for it and fixing things along the way.
AlexV
@asmodehn

@benkehoe I am wondering about some design detail inside rostful. When adding or removing Topic, Service, and Action, a lot of method have a

        if ws_name is None:
            ws_name = topic_name
        if ws_name.startswith('/'):
            ws_name = ws_name[1:]

I couldn't figure out so far what was the use of it... I am always using only the first case... Could you please explain it to me ?

AlexV
@asmodehn
Quick update : after adding celery into rostful ( following examples to integrate celery into webservers ), I am now separating it into another repository to simplify rostful itself.
Let me know if you experience any trouble during this transition.
Pito Salas
@pitosalas
Hey, from the way past. Are you still using this? From the high level it looks like just what I am using but this looks like it might be abandoned.
AlexV
@asmodehn
Hey hey ! Actually I m still using it, but company had other priorities to move me on since this "works", and whenever I get time I m doing low level changes to pyros to prepare for HTTP2 support ( and push communication ).
I ll be happy to get some help to maintain the whole pyros suite if you re interested, let me know !
Pito Salas
@pitosalas
I would be , except I'm more of a ruby guy :) Learning Python now. Designing a course in robotics. I will have students who are python experts so maybe I can get some of them to help!
http2 and push are both advanced things in a way. I am setting up a turtlebot3 -- what kind of robot do you have?
AlexV
@asmodehn
working in a company with a huge (proprietary) thing :) http://gocart.yujinrobot.com/
ROS integrate pretty bad with python, so I had to rebuild a lot of things before being able to integrate with web and stuff...
and things that are already "working good enough" are not the focus of most companies, so maintenance is lacking, sadly...
Pito Salas
@pitosalas
cool!
yeah I understand. well we're earlier and in a teaching environment so my needs are probably a subset of yours :)
and you can look around the site if you're curious about the course :)
AlexV
@asmodehn
yeah... Just a few words though : teach python without ROS first... to get the basics right.
Pito Salas
@pitosalas
gotcha.
thanks for the tip
AlexV
@asmodehn
no pb ;)
wow outdoors ?
Pito Salas
@pitosalas
its a good point actually... The students will know java really well and some will know ruby really well too, and I was assuming I could just assume they could pick up python. maybe a bad assumption...
Well look - that's the long term vision, I know now that we will not get that done in even multiple semesters but we will learn and teach a lot as we strive for it :)
(see the caveats below the vision)
AlexV
@asmodehn
python language is easy to pick up. the trick is the environment... complex tools, different packages, standards always changing... and ROS is a very old framework using deprecated python features on top of that.
Pito Salas
@pitosalas
yeah I totally agree with that.
AlexV
@asmodehn
FYI : we are already doing elevators, but not outdoors.
Pito Salas
@pitosalas
I think ROS is overly complicated and very delicate when it comes even to just installing and configurations.
how do you do elevators?
AlexV
@asmodehn
IoT and building things can integrate once you get network comm out of you robot (HTTP or something else)
Pito Salas
@pitosalas
I see!
so now elevators have a REST api???
AlexV
@asmodehn
no they are all proprietary... but it s possible to integrate, protocols are not too tricky
just contact hte manufacturer in your building ;)
Pito Salas
@pitosalas
good luck. I was thinking of having the robot wait by the elevator until a human comes by and ask the human for a ride :)
AlexV
@asmodehn
hhehe yeah you can do that too :)
or you can see the elevator as just another kind of robot :)
Pito Salas
@pitosalas
yeah
so what's your guess: will your library work for me on ROS kinetic, Ubuntu 16.04 on a Pi or am I in for a nightmare of configuration problems?
AlexV
@asmodehn
I see your Robot API page now :) It should work fine, if you take the right version of it and it s dependencies...
Becuse of that very troublesome python/ROS integration it can be quite challenging, and understanding why is not simple...
But it s working for us here.
I m working to make it simple and package everything properly, hopefully in the next few weeks, if I dont get derailed doing something else...
Pito Salas
@pitosalas
I went through that trying to get a direct install of pos on a MacOS. I spent too too much time on it and then gave up and instead went to Ubuntu on VMWare on MacOS and that worked much much better!
AlexV
@asmodehn
In general I think the software level needed for doing robotics is much higher than what people usually... so the goal of robotic platform writer should be to make things simpler. but ROS sadly fails at that, making everything distributed and asynchronous makes everything so much more random and unpredictible.
If I understand correctly your summary for Robot API, you want the students write the web server that connects to ROS ?
Pito Salas
@pitosalas
yes, and that then enables them to write a mobile app to give it commands without needing the mobile app to talk ROS. It opens it up a lot.
AlexV
@asmodehn
yeah thats why I did rostful :). But then you dont want to use rostful, it s better if they do something smaller and simpler...