opencog / ocpkg

Installing, packaging, deploying and managing OpenCog
22 stars 44 forks source link

octool -rdv unable to locate packages libcpprest and liboctomap-dev on 14.04 #144

Closed MikeyBeez closed 4 years ago

MikeyBeez commented 5 years ago

octool not working after

curl -L http://raw.github.com/opencog/ocpkg/master/ocpkg -o /usr/local/bin/octool &&\

chmod +x /usr/local/bin/octool &&\

octool -rdv

[octool] Installing OpenCog build dependencies.... Reading package lists... Done Building dependency tree
Reading state information... Done E: Unable to locate package libcpprest E: Unable to locate package liboctomap-dev root@e5d3dca5e730:/#

linas commented 5 years ago

If I recall correctly, liboctomap-dev did not exist in 14.04. More or less exactly the same content could be found in some other package, something like "ros-octomap" or similar. But that was ugly, since the ROS dependency resulted in hundreds of other ROS packages being pulled in. So when liboctomap-dev showed up later, it was a relief.

Anyway, 14.04 is more than five years old now, and no longer supported by Ubuntu (support ended in April) so really you should consider upgrading.

linas commented 5 years ago

(If you are attached to gnome2, and fear its loss in later versions of Ubuntu, then take a look at MATE -- it maintains the old gnome2 desktop style. Its what I use, to avoid the intrusive anti-productivity aspects of gnome3 and other desktops.)

amebel commented 4 years ago

Ubuntu 14.04 is not supported.

amebel commented 4 years ago

On ubuntu 14.04, for liboctomap-dev use ros-indigo-octomap and the steps at https://github.com/opencog/ocpkg/blob/c58b6948a03933e40d436dbf92ee54b9036a072b/ocpkg#L802-L821 for libcpprest.

MikeyBeez commented 4 years ago

Thank you all for your kind replies. I'm setting aside the Hanson Head Docker build for now. There are too many problems with outdated requirements. I'll be looking at opencog again but probably on 16.04. That appears to be the preferred platform. Or am I better off choosing something later. As It's in Docker, it's a simple change. BTW, @linas , I do run Ubuntu Mate on my daily driver, and I love it. Cheers all!

linas commented 4 years ago

Hi @MikeyBeez For opencog, pretty much any modern version of Linux works (developers run various flavors of debian ubuntu, rhel, etc according to taste. There's even a guix effort.)

Re: the Hanson head docker: Unfortunately, Hanson Robotics has moved over to a (mostly) proprietary stack. I'm still very interested in getting the opencog variant working again, but ... most opencog efforts are pure-research efforts, trying to get either novel theories working, or integrating various popular frameworks in new ways. There's little (no) effort going into motor control (where I use "motor" in the generic sense: movement, even if its of a virtual avatar (so, in the hanson docker image, it was a Blender avatar, "eva", and it that still works just fine; its just not hooked up to any code to animate it)) Distinct from motor is perception (e.g. using your webcam to see you) and language (hooking up the language subsystem so that the robot can respond to "Hey Eva, give us a smile" and "Eva, do you see me?") Conceptually simple, but promptly descends into a bog... it requires very clear thinking and a lot of patience to make progress. And then, on top of that, actual low-brow effort. (viz, both architecture and also plain-old grunt coding, to put it in classical terms)

amebel commented 4 years ago

If you are using docker then you can pull an image with all the dependencies installed by running docker pull opencog/opencog-deps.

MikeyBeez commented 4 years ago

Thank you @AmeBel !

MikeyBeez commented 4 years ago

@linas The head is just fun for me. I really want a decent chatbot to train. I've been pulling together pieces for my own little chatbot/assistant, bit by bit. I have the voice recognition and text to speech down. You can see that in my otto project on github. I don't want to just have a long chain of if then else statements the way all the other assistants are written. It's just bad architecture, and I'd like there to be some intelligence. I'm hoping opencog can provide some.

linas commented 4 years ago

From what I recall, none of the Hanson Robotics docker images contain a chatbot. The focus there was on face tracking and recognition, and reacting with facial expressions, gestures, head movement, and eye gaze.

From what I understand, opencog does not have a "trainable" chatbot. It does have "ghost" which provides a form of compatibility with chatscript, but it is not "trainable" in any sense that I know. AmeBel can explain ghost in great detail.

MikeyBeez commented 4 years ago

@linas, I just put this repo together this morning: https://github.com/MikeyBeez/chatterbot.git It should do everything I need with some tweaking. I'll merge this with either Otto3 or J.A.R.V.I.S. One good thing is that I can curate an aiml library as well as add my own files. The "dostuff" file contains code that can turn the chatbot into an assistant. I still want to find two pieces. I want to find simple code for adding opencog's probabilistic logic engine and a good library to store and call commands from something like Mongodb. The second should be easy. Opencog seems really difficult. If you've seen any good articles on opencog that can help me do that without my understanding opencog too well, I'd appreciate your telling me. Basically, I just want to route some responses to opencog rather than to an aiml and/or Mongodb lookup. Cheers! M BTW, thanks for responding to me. It's great to be able to talk about this sort of thing with someone. Most people run away when I get started on ai.

linas commented 4 years ago

At the core of opencog is something called the atomspace. The atomspace is a kind-of "graph database" with all sorts of advanced features. The main reason to use it instead of something else is because you want to use one of these whizzy advanced features. However, it's not magic: to use it, you have to design your own data format to represent whatever it is you want to represent.

The probabilistic logic engine is ... experimental. The demos work, I believe. But again: to use it, you have to decide how to represent your data, designing it so that PLN can act on it (work on it; transform one kind of graph into another) PLN does not have any build-in natural-clanguage support, nor any common-sense reasoning, nor any chatbot features. It's a kind-of rule-engine with a collection of certain specific rules.

MikeyBeez commented 4 years ago

@AmeBel I tried another build using opencog/opencog-deps, but I ran into other problems -- probably because I'm confused. I tried building ros-base on top, and it failed. To build EVA the readme says build ros-base, then ros-opencog from ros-base, then ros-blender fro ros-open-cog. Finally build Eva from ros-blender. Should I try building Eva right from opencog/opencog-deps? Sorry for being so slow witted. This is all new to me. Cheers! M

MikeyBeez commented 4 years ago

@linas From the little I understand, I believe the atomspace might be a bit like wikidata and SPARQL. At least atomspace seems to have those kinds of connections and attributes like "human is an animal." Is it more than just that? I'm guessing that it's somewhat analogous to working memory in meat based intelligence. Cheers, M ;)

linas commented 4 years ago

It's light-years beyond sparql. But sure, at the base, there's a "QL".

MikeyBeez commented 4 years ago

@linas forgive me, I don't mean to be rude at all. I just want to understand some of the differences. Is there a whitepaper I could read? Something not too difficult would be great. I'm a lazy learner. ;)

amebel commented 4 years ago

https://github.com/opencog/docker/tree/master/indigo, haven't been updated in a while, and are likely not going to be udpated because the associated code have been redacted or bit rotten. Unless you are using ros there is no need to fix the build break in that.

If you just want an image with atomspace and opencog installed, so as to start playing with https://github.com/opencog/atomspace/tree/master/examples, then do the following

docker pull opencog/opencog-dev:cli
docker run -it opencog/opencog-dev:cli bash

git, curl, man, tmux and vim are also installed in it, so you can start playing with the examples right away.

The python examples give you the basics of creating atoms in python, while the more extensive scheme examples shows how to do the same, quering, and much more.

Just in case you are new to scheme, guile is the implementation of scheme that is used. Its manual can be found here, and there is a tutorial for a bit different implementation of scheme called racket here, so as to get you started with the basics.

MikeyBeez commented 4 years ago

@AmeBel Thank you so much. I really appreciate you dumbing it down for me. I'm old, and my mind is not as facile as it once was. I need a certain amount of help with new things, and you are so kind to have helped me with this. Cheers, M

amebel commented 4 years ago

You are welcome :smile:

MikeyBeez commented 4 years ago

@AmeBel That image doesn't even have python installed? python --version returns bash: python: command not found. I'm starting to think you're all just having some fun with me.

amebel commented 4 years ago

Sorry, I should have said python3

MikeyBeez commented 4 years ago

That's okay. I'm done. After spending two weeks trying to learn anything about opencog, the only thing I've learned is it's a waste of time. On the bright side, I have learned a lot about docker. That free software works great.