[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Literate programming

From: Svjatoslav Agejenko
Subject: Re: Literate programming
Date: Wed, 20 Jul 2022 01:10:03 +0300
User-agent: Evolution 3.38.3-1

Hello !

Sorry. This is greatly off-topic from Axiom, but your wild ideas got
me triggered in a good sense. So I throw few my ideas, comments to the
mix :)

> My research is on self-reproducing systems (SRP). The idea is that
> this leads to exponential growth. The goal is to terraform Mars.

AFAIK life did just that on earth. Lifeforms emerged in succession
enabling possibilities for new and more advanced life forms to emerge.

If your goal is synthetic/robotic life on mars, then why terraform at
all ? Robots might be happy with the existing way of things there.

Also AFAIK Mars used to be like earth is today long time ago. And
earth long time ago used to be like Venus today. So maybe Venus will
be at some point like Earth is today. Maybe it then makes sense to
focus on terraforming Venus, if biological life on another planet is
the goal ?

> By "learning" *I* mean self-modifying programs [6]. Learning, in
> this system, is defined as a permanent change based on experienced
> events.

I think that self modifying and learning approach will work in setting
where those new iterations also compete with one another. In this way
strongest and most aggressive variants will win. Those who find ways
to cooperate could also succeed. Again this is like life is on earth.

> To make systems that are efficient I need hardware that can
> self-adapt.  Field Programmable Gate Arrays (FPGAs) are ideal for
> this. I need an adaptable CPU instruction set.

Maybe I'm wrong, but I got feeling that you are trying to solve
monumental problem too far ahead of our time. Look at Leonardo da
Vinci paintings, he designed aeroplane, parachute, tank, helicopter,
diving system. They all were impractical given technology of the time,
but at some point when technology evolved, they all inevitably were
realized. Maybe our current crude ways of resource harvesting and
manufacturing are not yet practical to realize SRP on mars, but at
some later point it will effortlessly and inevitably arrive.

It might possibly happen in the following way: Elon Musk believes that
humans are biological bootstrapper for artificial
intelligence. Artificial intelligence taking over control is
unavoidable. Evolution of more advanced life forms will continue from
there in non biological form. Human will be just intermediary
evolutionary step. This means that SRP will first arise here on earth
and those future robots might easily colonize mars and go further.

It is possible that this more advanced life will have respect towards
humans and will leave us alone regarding entire earth as a nature
reserve. It is also possible that this had already happened in the
long past.

> I have to get better at 3D modeling.

I know how to use FreeCAD. Example projects:

I can teach basics.

Best regards,

On Tue, 2022-07-19 at 12:19 -0400, Tim Daly wrote:
> Clifford,
> My research is on self-reproducing systems (SRP). Specifically I am trying to 
> build
> a robot / 3D printer combination that can (a) make two copies of itself and 
> then
> (b) forage for materials that can be used by those copies to make two copies.
> The idea is that this leads to exponential growth. The goal is to terraform 
> Mars.
> Exponential growth is the only way to solve planet-scale problems.
> A sub-problem is creating these SRP systems with software that learns.
> By "learning" *I* mean self-modifying programs [6]. Learning, in this system, 
> is
> defined as a permanent change based on experienced events. It is not the
> current "machine learning" / "deep learning" model. Post-learning, the 
> software
> is running self-changed code. (This raises an interesting philosophical 
> question I'll address below [0]).
> To make self-modifying programs I need a language that can self-represent.
> Lisp is ideal for this. Because I am using such limited hardware I need to 
> make a space-efficient implementation. Forth is ideal for this.
> To make systems that are efficient I need hardware that can self-adapt.
> Field Programmable Gate Arrays (FPGAs) are ideal for this. I need an
> adaptable CPU instruction set. I am using RISC-V as it is designed to
> support extensions. In particular, I'm looking at extended instructions to
> natively support Forth / Lisp.
> There are a raft of problems that need to be solved. For example, the
> "wire problem"[2] or the "fastener problem"[3]. One question is how to
> construct a servo motor. I'm looking at 3D printed metal [7] (or, more 
> recently
> 3D printed glass [5] since quartz is easier to find).
> Another research question is how to find material. It turns out that certain
> plants can extract things like metals [4]. Some of these metals are 
> radioactive
> which could provide a power source. An alternative idea is to develop
> insects, such as ants, that prefer to build nests in various kinds of metal
> rich soils, bringing the spoil to the surface. Quartz seems to be readily
> available, making glass structures interesting.
> The current state of implementation of the research is primitive so far.
> o I have 2 robots and 2 3D printers. One of each will be disassembled to
>    provide models for 3D parts. This will obviously fail various criteria but
>    it provides a starting point for raising questions. I have to get better at
>    3D modeling.
> o I have experimented with 3D printed Japanese joinery parts. I have
>    to prototype constructing a multi-segment "joinery'd" arm.
> o I have an FPGA I have programmed in Verilog. It runs RISC-V.
>    It will soon run Forth. The game is to get the FPGA to compute
>    and output an FPGA bitstream that can be re-loaded into the FPGA,
>    thus demonstrating self-modifying hardware. This also requires
>    careful thought about self-representation which is keeping me up
>    at night.
> o I have to write FPGA routines to make an FPGA-ROS node capable of
>    controlling a joint. Each joint will contain a custom FPGA for control.
>    This will allow for joint adaptation. This is queued behind the prior 
> problem.
> o I have micro- and nano- controller boards running Forth. I have a 6
>    breadboard pseudo-joint layout (servos controlled by the 
> microcontrollers). 
>    I'm programming each joint to be a ROS node. I have to write ROS
>    node software in Forth. I also have to write Forth code to control the
>    Wifi / Bluetooth hardware. This will demonstrate non-wire joint control.
> o I have Freecad and Gazebo software that can talk to ROS
>    so I can model the robot and use them to drive the pseudo-joints over
>    Wifi / Bluetooth. I have to prototype this setup. This will enable 
>    merging real parts with simulated parts as the system evolves.
>    I have both Freecad and Gazebo running but need to demonstrate
>    remote ROS / Gazebo integrated control. This is the "top of stack"
>    effort.
> o I have composite conductive PLA for the 3D printer [2a]
> . I need to prototype embedding these "printed wires" into a structure. 
>    I need to measure the voltage / current limits. I need to find / 
> experiment 
>    with other materials.
> o I have been looking at 3D printed harmonic drives [10] to enable higher
>    torque from minimal motors.
> o I have cameras and an iRobot Create3 [8] platform. I have mounted a
>    camera and a Raspberry Pi 4. I want to experiment merging OpenCV
>    with the Freecad / Gazebo / Pseudo-arm over ROS. I need to prototype
>    the ROS / Wireless connection on the Pi. This will prototype the
>    post-reproduce material search behavior.
> o I have a novel idea for end-point measurement of the robot hand.
>    I have linear diffraction gratings [11] and various lasers. This can 
> project
>    spots that can be used to remotely measure the robot location. This
>    needs a spot sensor and needs to be prototyped.
> o I have a hydroponic setup to grow sunflowers. I need to figure out
>    how to measure the uptake of metals I put into the soil. (I also have
>    free-range ants but they are not yet subject to test :-) )
> It is all rather disconnected at the moment. However, it is all really just
> a Gedanken platform for my omphaloskepsis [9] :-)
> Tim
> [0] If a system learns by self-modification it will be fundamentally
> different from all other "copies". That means that it can't "teach"
> other systems by simple copying since they will also have diverged
> from the original. Thus it forces "learning by teaching" so that each
> system can adapt "what it learns" based on "what it knows". Or to
> put it simply: "You can't teach an old dog new tricks" because the
> "old dog" is fundamentally different than it was.
> [1] Japanese joinery
> [2] The Wire Problem
> We don't want wires if we can help it. Each joint requires power and signals.
> Bluetooth at each joint can eliminate signal wires. The Proto-pasta company
> makes composite conductive PLA material for 3D printers. The game is to
> embed this conductive material in the physical structure of the robot to carry
> power / ground without wires.
> [2a]
> [3] The Fastener problem
> We don't want fasteners since that requires tools. So the game is to use
> Japanese joinery [1] techniques. I am prototyping 3D printed versions to
> build the robot structure.
> [4] Heavy Metals Extraction Potential Of Sunflower And Canola
> If we can seed the planet with phytoextractive plants then we can use
> the plants as a "mining operation". It appears that these plants can even
> extract radioactive elements which will make a useful power source.
> [5] Glass 3D Printing
> Glass has interesting advantages. In particular, it is easily shaped and
> can be made to fit areas without fasteners.
> [6] TIRES - A Robot / Human Cooperative Effort To Change Tires.
> This is research I did at CMU with Scott Fahlman. 
> [7] 3D printed metal
> There are various parts that need metal. In particular we need to be
> able to create 3D printed servo motors.
> [8] iRobot Create3
> Foraging is a whole other problem that is still "on my horizon". But I
> have a deep background in vision so it is easy to create a prototype.
> [9] Navel Gazing
> [10] Harmonic drives
> [11] Linear diffraction grating
> Lasers can be used with these gratings to patterns based on 
> position and orientation. This makes it ideal for remotely measuring
> things like robot end-effector pose.
> On Tue, Jul 19, 2022 at 8:33 AM Clifford Yapp <> wrote:
> > On Tue, Jul 19, 2022 at 12:31 AM Svjatoslav Agejenko 
> > <> wrote:
> > > Maybe that higher level language
> > > can be compiled to forth or forth byte-code, or forth should be
> > > used to implement lisp ?
> > > 
> > 
> > 
> > Interesting you should mention that - I'm aware of a couple cases were 
> > people looked at Lisp implemented in Forth, although I don't think any of 
> > them were intended to become something that might
> > support full fledged production systems:
> > 
> >  A Forth implementation of Lisp by T. Hand in 1988  
> > (
> > 
> > The code for Mark Probst's forthlisp on github:  
> >
> > 
> > 

Svjatoslav Agejenko
phone: +358 4 0355 5446

reply via email to

[Prev in Thread] Current Thread [Next in Thread]