Robotics is the branch of technology that deals with the design, construction, operation, and application of automated machines known as robots. It also involves the computers systems for their control, sensory feedback, and information processing.

Share tech news, updates, or what's on your mind.

Sign up to Post

This is about my first experience with programming Arduino.

I am accessing my Raspberry Pi 3 from my WIndows 10 Laptop through VNC/RDP.
Now, I installed Samba in RPi. I am following a tutorial for that in the following link ""
I also followed a link from ""

What I have done till now:

1. I installed Samba in RPi
2. I created a Folder Named PiShare in RPi.
3. I checked the following lines in

workgroup = WORKGROUP
wins support = yes

 comment=Raspberry Pi Share
 only guest=no
 create mask=0777
 directory mask=0777

4. I created a shared folder in RPi with following command
                  mkdir PiShare
                  sudo chmod +777 PiShare/

5. Now when I want to see that folder from Win10 Laptop I am getting the following screen. Neither RPi nor PiShare folder is visible in my network location.

Please help


i am very novice in raspberry pi.

i purchased a raspberry (screen shot attached here) pi 3. i installed raspbian there. i can connect that with my laptop (headless installation). for that i opened command.txt and put an extra parameter as "ip=". until this it worked as through PuTTY i can connect.

problem occurs after this. i needs to use "sudo apt-get update". but without internet in raspderry i can not update. i have an wifi router. how can i use that internet access in raspberry pi? or is there any way to use my laptop internet to raspberry?

i am using windows 10 in my laptop through which i connected raspberry.

I can't get numbers on their sites, other than syllabus,
but might anyone give me an idea of the size of MIT and UC Berkley Artificial Intelligence programs - Masters, PHD's, undergraduates?
What is the premier AI institute? Is it in the USA? Gaming AI? NLP? Stock Market analysis?

Is Java the most often used language when it comes to AI research?

Which is the best software tool to automate tasks taking the inputs from desktop to citrix environment.

example i have my files (excel/pdf) in local environment, data needs to be copied and pasted in applications (SAP, JDE, Oracle apps etc.,,) hosted in citrix environment

thank you
I am not sure if this is a good place for this question but I thought I would ask.  Some parents in the community are putting together an afterschool program for grade schoolers to learn different things such as programming, robotics and such.  We want to set up Minecraft on about 10 to 12 ipads (they were donated from a local business :D)

Can anyone give me an idea if 100mbps business internet hookup will handle 10-12 kids doing Minecraft at the same time?  Is it too much, too little?

Hi Experts,

I had searching for programming (VBA) on Google & I found one article which says "Sanskrit is the most convenient language for computer software programming".

How much truth in this?  Sanskrit

from a scientific point of view, how long do you think before robots can have very significant role in human every day lives.. is that realistic .. the below gave something to think about?

are there more adventurous robot projects compared to the above, in existence today?


Looking for a robotic solution that will copy DVD's and CD's contents to the local hard drive. For example, I have 100 or possibly 1000 disks that I want to get data off and extract to folders on my hard drive or preferrably networked drive. Is there such a solution?? I know they make CD duplicators and robotic DVD scribes but looking for the opposite of that solution...

Instead of a human person telling a story, a 3D animation (puppet, robot) is used to render the sign language on screen for deaf  pepole,  - and without human intervention -

i know that the The program should be a combination of translation software, and conversion software

i need steps to understand more or tutorial so i can understand the problem or
link for peaper to know the steps
Hi guys, i'm developing a robotics project

I need to control my robot from a pc inside the robot.

so far i have found controllers online, but i rather them be connected into the pc, which is housed inside the robot itself.

The programming will be done in .net


and, NO.. I don't want to go the easy way and avoid this
I am creating a Tarining Video for my application . I have tried various Text to Voice solutions but unfortunately none of them have a way of defining emotions and sound very Robotic .

The best solution so far I see from MAC -OS X advanced speech markup and the "Repeat After Me" .Here you can code in Phonetics and expressions

Unfortunately I dont have a MAC and I was wondering if there a Windows equivalent or any FREE ware that does this (Google or otherwise ) .
I'd like to implement a search function on my site that let's people enter their question and then selects the best answer, from those I've put into my database,  according to which of the answers contains the most words from the question.   At least that would be an initial approach to it.

I'm striving for a certain amount of artificial intelligence here so I'm thinking that there may be programs, modules, techniques, etc. already out there that will take this a step farther and make a decision based on criteria more sophisticated than which answer contains the most words from the question. If I can capture the query the user entered into the search engine to reach my page, I could perhaps get some extra context from that.

Thanks for any ideas.
I am working on application that write and read information from/to a PLC.

The problem is that PLC1 read the information from PLC2. The data in PLC2 is written by a robot that is transporting pallets with finish goods. ones the pallets are drop in the new conveyor, the data is writen in PLC2 and the PLC1 read from it. The time to copy this information is really small, the size of this data is 400 kb.

The problem here is that the network is to slow and PLC1 does not have enough time to copied all the data.

I am thinking is delaying the process one second right after the data is writen.

what would you recommend?  timer, counter, process delay?

thank you
I'm writing a mobile robotics application in C/C++ in Ubuntu and, at the moment, I'm using a laser sensor to scan the environment and detect collisions with objects when the robot moves.

This laser has a scan area of 270° and a maximum radius of 4000mm.
It is able to detect an object within this range and to report their distance from the sensor.

Each distance is in planar coordinates, so to get more readeable data, I convert them from planar to cartesian coordinates and then I print them in a text file and then I plot them in MatLab to see what the laser had detected.

This picture shows a typical detection on cartesian coordinates.
Values are in meters, so 0.75 are 75 centimeters and 2 are two meters. Contiguous blue points are all the detected objects, while the points near (0,0) refer to the laser position and must be discarded. Blue points under y < 0 are produced since laser scan area is 270°; I added the red line square (1.5 x 2 meters) to determine the region within I want to implement the collisions check.
So, I would like to detect in realtime if there are points (objects) inside that area and, if yes, call some functions. This is a little bit tricky, because, this check should be able to detect also if there are contiguous point to determine if the object is real or not (i.e. if it detects a point, then it should search the nearest point to determine if they compose an …
I am trying to fully understand the concept , and function MiniMax which is an algorithm used in Game Artificial Intelligence to determine the best move for a player in the game.

I have a very fundamental understanding of it, but want to fully understand this.

The algorithm is widely used in TIC TAC TOE.

Below is WORKING code, using this algorithm. It is flawless. The game is unbeatable.

For this question, here is what I need help with:

I want to strip out all the extras from this code and only have a working console program that will simply show me the next move, using the algorithm, assuming it's the computer's turn.

I have tried, but I ran into all sorts of errors  regarding undefined functions, and variables.

An ideal solution would be to have the bare bones code simply show me the NEXT best move by using the game board state I provide, such as this:

	// Populate Board - In this example, the
	// current state of the board looks like this:
	// X | O | O
	// --+---+---
	//   | X |
	// --+---+---
	//   |   |

	board[0] = 'X';
    board[1] = 'O';
    board[2] = 'O';
    board[3] = 0;
    board[4] = 'X';
    board[5] = 0;
    board[6] = 0;
    board[7] = 0;
    board[8] = 0;

Open in new window

If I can see this stripped down version of the code, I think I will be able to use my debugger and step through it, to actually SEE how this works.

Please help me to simply use the board I provided, press ANY key, and show an updated board with the computer's next move.

Thank you so much! I am excited to dive in and learn this algorithm!


Open in new window

I'm developing a mobile robot application and i'm using a high-level board (pandaboard es) which can run linux operating system and a low I/O board to manage the sensors.

These two boards share data over ethernet while the high-level board controls a motor driver by using the USB port.

At the moment, i've installed Ubuntu Maverick on the high-level board and it works great.

The problem is that i'd like to minimize all the operating system functions, to use just the command line (i do not need the X server) and to avoid not-necessary resources consumption.

What i need to do on the high-level board is just to run a C program which takes information from the ethernet, do some calculations and send data over the USB.

So, what i need is:

- use ethernet
- use boost library, multi threading, I/O operations
- read/write on serial port (USB) with termios library
- sometimes, use a remote connection in order to control the system from another pc

Furthermore, i need to let the C program start automatically when the operatin system is powered up.

It is possible to start the C program when the operating system is on?
I have to use a bash script to do this?

Is there any Ubuntu minimal distro which i can use for my purpose?

(This is the board i'm using:
I'm developing a mobile robot application and i'd like to add a text to speech function which let the robot "talk" with the humans by reading some text strings which i'll pass to it.

For example, since my robot has a sonar network, i'd like to let it signal an obstacle presence by diretcly speacking with the human operator.

Something like:

if(sonar_front_detect == ok){

speak_to_human("I found an object in front of me);


Open in new window

Is there any simple open-source library which i can use to accomplish this task?
I'm looking for something which is very easy to use because i am not an expert programmer; it would be fine to use a library which has a function which takes as parameter the string which the robot has to read.

I hope to find a solution to my problem.

Thanks to all!
Hey Guys,

I am trying to fix a windows application that communicates with a com port that is attached to a robotic device that moves.  This application was built a long while back using VStudio 2003 and a library called TransPort that is used to communicate with the com port has 'expired' . So now I am working to get this going on VS2005 with the System.IO.Ports. Seems I have some of it working but it crashes when it tries to move because there is a line of code that I cannot convert and need help.

 private void MoveY(int Y)
            //Connect to the kaidan
            string Ymove = ("YR+" + (Y * 1000).ToString());
            comm.WriteData((Ymove + LF_RETURN));
            YReady = false;
            txtDebug.Text += "Attempting to Move Y";

            //Start Timer to Check every 2 seconds if the move has been completed
            YZTimer.Interval = 2 * 1000;
            YZTimer.Tick += new EventHandler(YZTimerTick);

            } while (!YReady);


            YZTimer.Tick -= null;

After the above method sends the command to move the following eventhandler was in place to check for a response.

 private void YZTimerTick(object obj, EventArgs e)
I'm writing a mobile robot C program which reads data from a serial port to check some sensors and then try to load a joypad to control two servos.

Since i'm using a blocking read to acquire data for sonars from serial port, i can't get input from joypad and from the serial port at the same time, so i can't stop my robot in time if sonars detect a possible collision.

For this reason, after having received few infos from the serial port, I start an infinite while loop to reads possible collisions from the serial port and I start a new thread with Boost library to load and receive input from the joypad.

With this solution, i'm able to use the joypad and receive collisions information at the same time; the problem is that i'm not able to share variable between the previous thread which reads from serial port and the new thread which load the joypad so the previous thread is not able to communicate the the joypad thread if a collision occurs.

I want to do this:

Previous thread detect a collision -> write a value in a linked list -> new thread read it and stop servos.

What can i do in order to let the new thread detect a collision from the previous thread?
I have to use signal() function?

When i try to compile this code, g++ says me that linked list, and in particular, result variable is not declared in the scope.
I think because new thread does not share the old variables and declarations.

int main(){
// do a lots of stuff then..


Open in new window

I'm having a problem with my program flow because I'm trying to receive information from a blocking function.
I'm trying to control a mobile robot in C by using a blue-tooth joy-pad and two C program which communicates over a serial port: a program control joy-pad and servos, the other one controls the sonars. If sonars detect a collision, then servos have to stop immediately.

I try to explain better what my problem is.
At the moment, my program flow is:

1. Open Serial port
2. Send and Receive information over the serial port
3. Load a blue-tooth joy-pad with robot_move()
4. Every time there is an input from the joypad, call send_event() which is a function to move servos and in parallel trying to receive information about collision with another function check_coll() which reads these data from the serial port.

The problem is that check_coll() uses a blocking read to acquire data on the serial port, so i'm not able to send commands to my servos because every time i have to wait for check_coll().

I was thinking to use fork() to start two process: the first for the send_event() function and the second for the check_coll() function; then, when there is a collision, check_coll() sends a signal to send_event() to stop the servos.

Do you think it is possible?
It's a little bit difficult to do this for me, but i'd like to know if this can be a solution.

Or may be, is there a more simple solution just editing the while loop inside the send_event function?
I'd like to use my bluetooth joypad to control my mobile robot direction.
I've found on the net a C program which let Ubuntu recognize my joy-pad and load it as a bluetooth mouse.
This program works greatly since I'm able to use my joy-pad as a mouse.

What i need to do is just to detect the key pressing and the direction signals which come from the joy-pad and use them to control my robot; the problem is that i tried to do this by modifying the code a little bit and the key pressing works fine but I realised that sometimes the detected directions are not correct.

I added some printf() in order to check if the modifies are ok and sometimes if, for example, i move the joy-pad stick to the left and i actually see the mouse pointer going to the left, the program (with the modifies i did) detect the wrong direction.

I'm posting the whole code below: I added to Boolean variables to detect the X or Y axis and i check them in the send_event() function.

Can you help me to correctly detect when I move the joy-pad stick, please?
This code is a little bit difficult to understand for me.
I'd like to delete the mouse moving function and to substitute it with a function which detect the stick direction and control my mobile robot direction.

Thanks to all, guys!

EDIT: I attached the C file for a better reading.

#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <ctype.h>
#include <stdbool.h>

#include <sys/types.h>

Open in new window

I'm writing a mobile robot application under Ubuntu and i'm using two C/C++ applications which share information over the serial port like client and server.
In particular, client controls the sensors and sends information to the server which use these information to control the servos.
At the moment, i'm using three sonars (A,B,C), a 2-axis gyroscope and two encoders.

I thought about a communication protocol to use to send information about all the sensors in the same string by avoiding multiple writings on the serial port.

I'd like to know if it is possible to let the client to enclose information about all the sensors in a long string, such as:


Open in new window

# character is to mark the beginning and the end of the whole string
* character is to separate the information

For example, with the previous string, server should now that:
sonar A, sonar B and sonar C are all ok if the following integer value is 1, on the contrary, if A1B0C1 then sonar B is not working correctly; if integer value is 2 then a collision has detecting by that sonar.
gyroscope and encoders are OK

The problem is when i have to send more information about encoders and gyroscope, for example, after the first check, when i run the robot, i'd like to send strings like this:

Open in new window

where, for example, for the gyroscope, X=12 and Y=12,5 are the coordinates and for …
I'm developing a mobile robot and i'd like to remote control it.
My system use Ubuntu and i'm developing the main application to control the robot in C/C++.

I want to use Zeemote in order to control the direction of my mobile robot, but i do not know how to do it.
(Zeemote is like any other bluetooth joypad)

On the zeemote website there is a developer section, but it only describes Android code which i'm not able to translate in C code because I'm not an expert programmer.

I think I need to trap the bluetooth signal sent between Zeemote and my Ubuntu pc in order to implement something like:

if(zeemote_stick == UP) robot_direction = head;
elase if (zeemote_stick == RIGHT) robot_direction = right;

Open in new window

and so on.

The problem is that i never used Zeemote and Bluetooth application so 'm not able to understand what i should have to do.

Can you help me, please?
Thanks a lot!
Hi guys,
Since I have conscious, I know I love computers
And electronic devices
And mechanic designs.

Now there is an industrial science which is called mechatronics includes all of them.

After some device designs and learning ASM for PIC controllers and getting experience with Delphi I realised I just not love mechatronics, besides I have talent for it.

My plan is getting enough money with my current job (8 hours a day) and (same time) get experience by projects and reading (10 hours a day) after getting enough foundation get good education for mechanic, electronic and Delphi from a Professional.
So, which universiy in USA you can recommend me
Or do you think should I hire experts to teach me for the advances of programming, electronics and mechatronics?
Or what would you do if you were me?
Thank you

** additional information added at askers request (evilrix EEZA)

A mechatronics project to stop Hunger in Africa

Hi guys,

I love mechatronics

And my real job is Veterinarian an I also love it.

I have seen Pictures of childreen from Africa for years and suffer for them.

When I combine these 3 situations I decided to make a project.

Self managed robotic barns with digital and infrared camera visioned different kind of robots.

I want to build prototypes in my country then in the other countries which suffer from hunger.

I have sense that I can accomplish this idea in years. But I need your guide to be a good mechatronic






Robotics is the branch of technology that deals with the design, construction, operation, and application of automated machines known as robots. It also involves the computers systems for their control, sensory feedback, and information processing.

Top Experts In