ROS (Robot Operating System)

Does anyone have any experience with ROS?

The Robot Operating System (ROS) is a flexible framework for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of robotic platforms.

4 Likes

I doā€¦ Please check my github repo written long back for Hackathon ā€¦I used NuPIC in combination with ROS ā€¦

https://github.com/arhik/NuLocale.git ā€¦

Ignore my README (Its sounds funny now even to me)ā€¦I was new to github and was playing with itā€¦

I will attach a graph structure of implementation if you want me toā€¦or you can get one from rqtgraph command.

1 Like

I think ROS was used by NuPIC before (atleast there is an attempt to use it or talked about it) ā€¦ ā€¦

May be ROS is inefficient and ignoredā€¦ correct me if I am wrongā€¦ I am bit fuzzy in my recall detailsā€¦

:raised_hand:

Ignore me I guess I mixed up different projects. I could not find ROS code in nupic.research.

I am curious to know if you are working on something.

openai gym is also interesting.

No, but I found this when processing some old issues:

https://github.com/numenta/nupic/issues/1076

Hello @rhyolight. I remember that issue. Coolā€¦My memory is not that bad. I know that I saw it somewhere but i was not thinking about ā€˜issuesā€™.

I tried to use ROS with NuPIC for Parking Lot problem. It was CPU intensive to connect them both. My actual focus was on project named ā€˜sensorimotorā€™ in nupic.research folder and my attempts were to come up with connecting dots to sensorimotor interface and make RL environment out of it. I realized I am attempting to solve a hard problem without much critical thinking and stopped working on it. But during my pathetic attempts I realized connecting ROS with NuPIC is trivial. I will share ā€˜NuParkingā€™ code if I find it. I didnā€™t push the code to the github remote repository for some reason. It was more cleaner code than ā€˜NuLocaleā€™ so I better find it and share it.

If you have decided to support ROS as part of nupic.research I will try to contribute. Also some of the plus points of ROS support is we can use ROS as a simulation tool for projects instead of Unity (Yuwei/Chetan used Unity for simulation in nupic.research repo). Moving to ROS will have consistency with languages of choice, C++ and python, for research .

Current OpenAI gym is dependent on proprietary 3D Engine. They might eventually move to gazebo and ROS has a good interface with gazebo. When Jeff mentioned about networked AI, ROS was first framework that flashed in my head.

I also went through github comments section. Over all cool Idea.

nupic.ros sounds good.

No, but I have a few arduinos! :slight_smile:

Do we have any instructions on how to integrate NuPIC in ROS? I am very new to NuPIC but active user and developer of ROS and farmework like ROS. It would be great if you can direct me to some started materials on how to install and get started.

There is no definite support for ROS by NuPIC. They might soon based on the comments here ROS API issue.

These are possible ways to support ROS (based on comments):

Thereā€™s one question to decide: ā€œmake NuPIC a ROS nodeā€:

make a ROSRegion wrapper, so each region can be made into a lego-piece separately
make ā€œHTM applicationsā€ (prediction, AD,ā€¦) and wrap that as a functional Node?

None of them may come to reality if its not important.

But the good news is its not difficult to integrate in a hacky way. If you want to check one possible way please refer to my github repo NuLocale. In this case a pygame instance listens to different node (4 BLE modules, accelerometers on my surface pro 3 and light switch emulator". They all run in parallel and values are passed to multiencoder of NuPIC. Thats how i did it and I am pretty sure its not best way but serves as a reference to start playing with NuPIC and ROS. You Need ROS only to accumulate data (How you do it depends on node graph and model architecture). You will then encode them using appropriate NuPIC encoders and from then you will depend on NuPICā€™s Network API or OPF to build appropriate model for your use case.

1 Like

We noticed this problem with OpenAI Gym when it first came out. @ericlaukien converted some of his old 3D RL code and built the Portable Game Engine to run OpenAI Gym agents. Weā€™ve submitted it to OpenAI and they are considering adding it to the Gym. Eric has created a few environments, please feel free to add your own.

2 Likes

See GitHub - numenta/nupic-legacy: Numenta Platform for Intelligent Computing is an implementation of Hierarchical Temporal Memory (HTM), a theory of intelligence based strictly on the neuroscience of the neocortex.

@fergalbyrne Thank you for the information. This looks promising. I will check it soon.

Thanks. I was able to install nupic and nupic.core. It was easier than I thought. Thanks for the detail tutorial.
I have a full software stack running on ROS and now I want to integrate nupic into it. I am also developing my own version of ROS and wouldnā€™t mind getting into detail on how to best integrate nupic in that framework. Any help or pointer will be helpful. @karthik.katipalli I will check out https://github.com/arhik/NuLocale

:flushed: Thatā€™s the first time anyone has told me that!

1 Like